public JsonResult BuscarPedidoARoteirizar(int codigoPedido) { CabecalhoPedidoBLL cabecalhoPedidoBLL = new CabecalhoPedidoBLL(); ItemPedidoBLL itemPedidoBLL = new ItemPedidoBLL(); string mensagemErro; CabecalhoPedido cabecalho = cabecalhoPedidoBLL.GetPedidoByCodigo(codigoPedido, out mensagemErro); if (!String.IsNullOrEmpty(mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } else { //BUSCAR ITENS DO PEDIDOS List <ItemPedido> itensPedido = itemPedidoBLL.getItemPedido(null, codigoPedido, out mensagemErro); if (!String.IsNullOrEmpty(mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } return(Json(new { sucesso = true, temVistoria = (itensPedido.Where(x => x.Produto.TemVISTORIA == true).Count() > 0), pedido = cabecalho, itensPedido = itensPedido })); } }
public JsonResult UpdateDescontoCabecalhoPedidoPercentual(int codigoPedido, decimal percentualDesconto, bool cobrarEncargos) { ItemPedidoBLL itemPedidoBLL = new ItemPedidoBLL(); CabecalhoPedidoBLL cabecalhoPedidoBLL = new CabecalhoPedidoBLL(); string mensagemErro; List <ItemPedido> itens = itemPedidoBLL.getItemPedido(null, codigoPedido, out mensagemErro); if (String.IsNullOrEmpty(mensagemErro)) { foreach (ItemPedido item in itens) { decimal valorDescontoItem = Decimal.Multiply(item.Produto.ValorPorPessoa, (percentualDesconto / 100)); item.ValorDesconto = valorDescontoItem * item.Quantidade; item.valorFinal = item.Produto.ValorPorPessoa - valorDescontoItem; item.Subtotal = item.Quantidade * item.valorFinal; itemPedidoBLL.updateItemPedido(item, out mensagemErro); } this.UpdateCobrarEncargos(codigoPedido, cobrarEncargos); CabecalhoPedido cabecalho = cabecalhoPedidoBLL.GetPedidoByCodigo(codigoPedido, out mensagemErro); return(Json(new { sucesso = true, valorTotal = cabecalho.ValorTotal, percentualDesconto = cabecalho.PercentualDesconto, valorDesconto = cabecalho.ValorDesconto })); } else { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } }
public JsonResult FecharPedido(int codigoPedido, int codigoVendedor, int?codigoHotel, int?codigoSalaTreinamento, bool enviarPorCorreio, int codigoConta) { string mensagemErro; CabecalhoPedidoBLL BLL = new CabecalhoPedidoBLL(); ItemPedidoBLL itemPedidoBLL = new ItemPedidoBLL(); CabecalhoPedido cabecalhoPedido = BLL.GetPedidoByCodigo(codigoPedido, out mensagemErro); //VALIDA SE TODOS OS ITENS FORAM CONFIRMADOS List <ItemPedido> listaItens = itemPedidoBLL.getItemPedido(null, codigoPedido, out mensagemErro); if (listaItens.Count() == 0) { return(Json(new { sucesso = false, mensagemErro = "O pedido não possui itens!" })); } if (listaItens.Where(x => x.Confirmado == false).Count() > 0) { return(Json(new { sucesso = false, mensagemErro = "Existem itens que não foram confirmados no pedido!" })); } cabecalhoPedido.FuncionarioVendedor = new Funcionario(codigoVendedor); if (codigoHotel != null) { cabecalhoPedido.ParceiroHotel = new Parceiro() { Codigo = codigoHotel }; } if (codigoSalaTreinamento != null) { cabecalhoPedido.ParceiraSalaTreinamento = new Parceiro() { Codigo = codigoSalaTreinamento }; } cabecalhoPedido.EnviarPorCorreio = enviarPorCorreio; cabecalhoPedido.ContaBancaria = new ContaBancaria() { Codigo = codigoConta }; cabecalhoPedido.StatusNegociacao.CodigoStatus = 8; cabecalhoPedido.DataFechamento = DateTime.Now; if (!BLL.updateCabecalhoPedido(cabecalhoPedido, out mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } return(Json(new { sucesso = true })); }
public JsonResult BuscarItensPedido(int codigoPedido) { ItemPedidoBLL itemPedidoBLL = new ItemPedidoBLL(); string mensagemErro; //BUSCAR ITENS DO PEDIDOS List <ItemPedido> itensPedido = itemPedidoBLL.getItemPedido(null, codigoPedido, out mensagemErro); if (!String.IsNullOrEmpty(mensagemErro)) { return(Json(new { sucesso = true, mensagemErro = mensagemErro })); } return(Json(new { sucesso = true, itensPedido = itensPedido })); }
public JsonResult BuscarProdutoPedido(int codigoPedido, int codigoProduto) { ItemPedidoBLL BLL = new ItemPedidoBLL(); string mensagemErro; ItemPedido produto = BLL.getItemPedido(codigoProduto, codigoPedido, out mensagemErro).FirstOrDefault(); if (produto != null) { return(Json(new { sucesso = true, itemPedido = produto })); } else { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } }
public JsonResult BuscarDadosClienteRota(int codigoPedido) { try { string mensagemErro; ClienteBLL clienteBLL = new ClienteBLL(); ItemPedidoBLL itemPedidoBLL = new ItemPedidoBLL(); AtendimentosBLL atendimentosBLL = new AtendimentosBLL(); ClienteRotaViewModel vm = new ClienteRotaViewModel(); vm.cliente = clienteBLL.getClientesDetalheRota(codigoPedido, out mensagemErro).First(); vm.listaItens = itemPedidoBLL.getItemPedido(null, codigoPedido, out mensagemErro); vm.atendimentos = atendimentosBLL.getAtendimentosPedido(codigoPedido, out mensagemErro); return(Json(new { sucesso = true, retorno = vm })); } catch (Exception ex) { return(Json(new { sucesso = false, mensagemErro = ex.Message })); } }
public JsonResult UpdateConfirmarItem(int codigoPedido, int codigoProduto) { ItemPedidoBLL BLL = new ItemPedidoBLL(); string mensagemErro; ItemPedido itemPedido = BLL.getItemPedido(codigoProduto, codigoPedido, out mensagemErro).FirstOrDefault(); if (itemPedido != null) { itemPedido.Confirmado = true; if (!BLL.updateItemPedido(itemPedido, out mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } } else { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } return(Json(new { sucesso = true })); }
public JsonResult InserirItemResumido(int codigoPedido, int codigoProduto, int quantidade, decimal valorVenda, bool cobrarEncargos, int?codigoMotivo) { string mensagemErro; ProdutoBLL produtoBLL = new ProdutoBLL(); ItemPedidoBLL itemPedidoBLL = new ItemPedidoBLL(); //Buscar o produto Produto produto = produtoBLL.GetProdutoById(codigoProduto, out mensagemErro); //CRIAR ITEM VENDIDO ItemPedido itemPedido = new ItemPedido(); itemPedido.Produto.Codigo = codigoProduto; itemPedido.CodigoPedido = codigoPedido; itemPedido.Quantidade = quantidade; //ATRIBUIR DATAS itemPedido.DataInicioVigencia = DateTime.Now.AddDays(7); itemPedido.DataExpiracao = DateTime.Now.AddDays(7).AddMonths(produto.MesesVigencia); //CALCULAR OS ENCARGOS decimal valorEncargo = 0; if (cobrarEncargos) { valorEncargo = valorVenda * (produto.PercentualIIS / 100); } itemPedido.ValorEncargos = quantidade * valorEncargo; //CALCULAR VALOR DE DESCONTO itemPedido.ValorDesconto = (produto.ValorPorPessoa - valorVenda > 0 ? produto.ValorPorPessoa - valorVenda : 0); //CALCULAR VALORES TOTAIS itemPedido.valorFinal = valorVenda; itemPedido.Subtotal = (valorVenda * quantidade) + itemPedido.ValorEncargos; //DADOS GERAIS itemPedido.Confirmado = false; itemPedido.CodigoMotivoPedido = (codigoMotivo.HasValue && codigoMotivo > 0 ? (int)codigoMotivo : 1); itemPedido.ValorDesconto = 0; //VERIFICAR SE O PRODUTO JÁ FOI VENDIDO List <ItemPedido> retorno = itemPedidoBLL.getItemPedido(codigoProduto, codigoPedido, out mensagemErro); if (retorno == null || retorno.Count == 0) { //INSERIR O ITEM if (itemPedidoBLL.insertItemPedido(itemPedido, out mensagemErro)) { return(Json(new { sucesso = true, item = itemPedido })); } else { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } } else { //ATUALIZA O ITEM if (itemPedidoBLL.updateItemPedido(itemPedido, out mensagemErro)) { return(Json(new { sucesso = true, item = itemPedido })); } else { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } } }
public JsonResult ConfirmarItemRota(int codigoRota, int codigoPedido, int codigoInstrutor, DateTime dataInicioTreinamento, DateTime dataFimTreinamento, DateTime dataInicioColeta, DateTime dataFimColeta, int?codigoSala, int?codigoHotel, string observacao, string ObservacaoInstrutor, string nomeCliente, string horarioAtendimento, string[] listaEmails) { string mensagemErro; ParceiroBLL parceiroBLL = new ParceiroBLL(); ItemPedidoBLL itemPedidoBLL = new ItemPedidoBLL(); var usuario = new Funcionario(Convert.ToInt32(HttpContext.Request.Cookies["CODIGO_USUARIO"])); //ATUALIZAR PEDIDOS COM OS DADOS INFORMADOS CabecalhoPedidoBLL cabecalhoPedidoBLL = new CabecalhoPedidoBLL(); CabecalhoPedido cab = cabecalhoPedidoBLL.GetPedidoByCodigo(codigoPedido, out mensagemErro); if (cab != null) { cab.FuncionarioInstrutor = new Funcionario(codigoInstrutor); cab.DataInicioTreinamento = dataInicioTreinamento; cab.DataFinalTreinamento = dataFimTreinamento; if (codigoSala.HasValue && codigoSala > 0) { cab.ParceiraSalaTreinamento = parceiroBLL.getParceiros(codigoSala, null, null, null, null, out mensagemErro).First(); } if (codigoHotel.HasValue && codigoHotel > 0) { cab.ParceiroHotel = parceiroBLL.getParceiros(codigoHotel, null, null, null, null, out mensagemErro).First(); } cab.InfoTreinamento = ObservacaoInstrutor; cab.StatusNegociacao = new StatusNegociacao() { CodigoStatus = 13 }; //ENVIAR PARA AGUARDANDO GERAÇÃO DE DOCUMENTOS if (!cabecalhoPedidoBLL.updateCabecalhoPedido(cab, out mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } //Grava Notificação //NotificacoesBLL notificacoesBLL = new NotificacoesBLL(); //Notificacoes notificacao = new Notificacoes(); //notificacao.FuncionarioCriador = usuario; //notificacao.FuncionarioDestino = new Funcionario() { Codigo = cab.FuncionarioVendedor.Codigo }; //notificacao.Mensagem = "Pedido " + cab.Codigo + " incluído na rota!"; //notificacoesBLL.insertNotificacao(notificacao, out mensagemErro); //ATUALIZA ITEM ROTA ItemRota itemRota = ItemRotaBLL.selectItensRota(codigoRota, out mensagemErro).Where(x => x.CabecalhoPedido.Codigo == codigoPedido).FirstOrDefault(); if (itemRota != null) { itemRota.Aprovado = true; ItemRotaBLL.updateRota(itemRota, out mensagemErro); } } else { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } //BUSCAR ITENS PEDIDO var listaItens = itemPedidoBLL.getItemPedido(null, (int)cab.Codigo, out mensagemErro); var listaItensConcat = ""; listaItensConcat = "<ul>"; foreach (ItemPedido item in listaItens) { listaItensConcat += "<li>" + item.Produto.Descricao + "</li>"; } listaItensConcat += "</ul>"; //MONTAR LISTA COM HORÁRIOS string listHorarios = "<ul>"; foreach (string item in horarioAtendimento.Split(new string[] { "###" }, StringSplitOptions.None)) { //if (Convert.ToDateTime(item.Substring(0, 10)).Date >= dataInicioTreinamento.Date && Convert.ToDateTime(item.Substring(0, 10)).Date <= dataFimTreinamento.Date) //{ // listHorarios += "<li>" + item + " (Treinamento) " + "</li>"; //} //else //{ // listHorarios += "<li>" + item + " (Coleta de dados) " + "</li>"; //} listHorarios += "<li>" + item + "</li>"; } listHorarios += "</ul>"; //MONTAR EMAIL CLIENTE string templateEmail = System.IO.File.ReadAllText("./wwwRoot/Templates/TemplateEmailRoteirizacao.html"); templateEmail = templateEmail.Replace("@nomeCliente", nomeCliente) .Replace("@razaoSocial", cab.Cliente.RazaoSocial) .Replace("@instrutor", cab.FuncionarioInstrutor.Nome) .Replace("@servicos", listaItensConcat) .Replace("@dataAtendimento", listHorarios) .Replace("@observacao", "<strong>2º Obs.:</strong> " + observacao) .Replace("@localAtendimento", (cab.ParceiraSalaTreinamento == null || cab.ParceiraSalaTreinamento.Codigo == 0 ? "Posto" : cab.ParceiraSalaTreinamento.Descricao + " - " + cab.ParceiraSalaTreinamento.Endereco + "," + cab.ParceiraSalaTreinamento.Cidade.Descricao + "-" + cab.ParceiraSalaTreinamento.Cidade.Estado)); if (listaItens.Where(x => x.Produto.CategoriaProduto.Codigo == 1).Count() > 0) { templateEmail = templateEmail.Replace("@infoAdicionais", @"<strong>Informações Adicionais:</strong> <br /> <ul> <li>A Cia do Treinamento se resguarda do direto de não realizar os treinamentos, caso o número mínimo de participantes por turma não seja atingida.</li> <br /> <li>A Cia do Treinamento se resguarda do direito de somente encaminhar o certificado dos alunos que comparecerem integralmente aos treinamentos.</li> <br /> <li>Não será permitido ao inscrito, troca de horário no decorrer do treinamento.</li> <br /> <li>Caso o inscrito não compareça ao Treinamento o valor da inscrição não será devolvido. Deverá ser feito uma nova inscrição e um novo pagamento.</li> </ul>" ); } else { templateEmail = templateEmail.Replace("@infoAdicionais", ""); } //INCLUIR RELATO string relatoAtendimento = System.IO.File.ReadAllText("./wwwRoot/Templates/TemplateRelatoRoteirizacao.txt"); relatoAtendimento = relatoAtendimento.Replace("@nomeCliente", nomeCliente) .Replace("@razaoSocial", cab.Cliente.RazaoSocial) .Replace("@instrutor", cab.FuncionarioInstrutor.Nome) .Replace("@servicos", listaItensConcat) .Replace("@dataAtendimento", horarioAtendimento) .Replace("@observacao", "2º Obs.: " + observacao) .Replace("@localAtendimento", (cab.ParceiraSalaTreinamento == null || cab.ParceiraSalaTreinamento.Codigo == 0 ? "Posto" : cab.ParceiraSalaTreinamento.Descricao + " - " + cab.ParceiraSalaTreinamento.Endereco + "," + cab.ParceiraSalaTreinamento.Cidade.Descricao + "-" + cab.ParceiraSalaTreinamento.Cidade.Estado)); if (!String.IsNullOrEmpty(relatoAtendimento)) { Atendimentos atendimento = new Atendimentos(); atendimento.CodigoPedido = (int)cab.Codigo; atendimento.DataRegistro = DateTime.Now; atendimento.Descricao = relatoAtendimento; atendimento.Funcionario = usuario; AtendimentosBLL atendimentosBLL = new AtendimentosBLL(); if (!atendimentosBLL.insertAtendimento(atendimento, out mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } } if (listaEmails.Length > 0) { string emails = ""; for (var i = 0; i < listaEmails.Length; i++) { emails += listaEmails[i] + ","; } emails += "[email protected]," + cab.FuncionarioVendedor.Email; //ENVIAR EMAIL PARA O CLIENTE string Assunto = "A/C " + nomeCliente + " - Confirmação de Atendimento a " + cab.Cliente.Cidade.Descricao + " - " + cab.Cliente.Cidade.Estado + " / Cia do Treinamento"; string retornoEmail = Uteis.SendMailRoteirizacao(usuario.Login, emails, Assunto, templateEmail, usuario.Email); } return(Json(new { sucesso = true })); }