public JsonResult AtualizarStatusPedido(int codigoStatus, List <int> pedidos) { RoteirizacaoBLL roteirizacaoBLL = new RoteirizacaoBLL(); CabecalhoPedidoBLL cabecalhoPedidoBLL = new CabecalhoPedidoBLL(); NotificacoesBLL notificacoesBLL = new NotificacoesBLL(); string mensagemErro; StatusNegociacao status = new StatusNegociacao(codigoStatus); var codigoUsuario = Convert.ToInt32(HttpContext.Request.Cookies["CODIGO_USUARIO"]); foreach (int pedido in pedidos) { if (!roteirizacaoBLL.updateStatusPedido(pedido, codigoStatus, out mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } //Grava Notificação CabecalhoPedido cabecalhoPedido = cabecalhoPedidoBLL.GetPedidoByCodigo(pedido, out mensagemErro); //Notificacoes notificacao = new Notificacoes(); //notificacao.FuncionarioCriador = new Funcionario() { Codigo = codigoUsuario }; //notificacao.FuncionarioDestino = new Funcionario() { Codigo = cabecalhoPedido.FuncionarioVendedor.Codigo }; //notificacao.Mensagem = "Status do pedido " + cabecalhoPedido.Codigo + " atualizado para " + status.Descricao + "!"; //notificacoesBLL.insertNotificacao(notificacao, out mensagemErro); } TempData["mensagemSucesso"] = "Pedidos atualizados com sucesso!"; return(Json(new { sucesso = true })); }
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 IActionResult NovoPedido2(int?codigoCliente, int?codigoPedido) { if (HttpContext.Request.Cookies["USUARIO"] == null) { return(RedirectToAction("Login", "Login", new { urlRetorno = HttpContext.Request.Path })); } string mensagemErro; CabecalhoPedidoBLL cabecalhoPedidoBLL = new CabecalhoPedidoBLL(); ClienteBLL clienteBLL = new ClienteBLL(); if (codigoPedido.HasValue && codigoPedido != 0) { CabecalhoPedido cabecalho = cabecalhoPedidoBLL.GetPedidoByCodigo((int)codigoPedido, out mensagemErro); cabecalho.Cliente = clienteBLL.GetClientes((int)cabecalho.Cliente.Codigo, out mensagemErro).First(); return(View(cabecalho)); } else { CabecalhoPedido cabecalho = new CabecalhoPedido((int)codigoCliente, Convert.ToInt32(HttpContext.Request.Cookies["CODIGO_USUARIO"].ToString())); if (!cabecalhoPedidoBLL.insertCabecalhoPedido(cabecalho, out mensagemErro)) { TempData["mensagemErro"] = mensagemErro; return(RedirectToAction("Index", "Home")); } cabecalho.Cliente = clienteBLL.GetClientes((int)cabecalho.Cliente.Codigo, out mensagemErro).First(); return(View(cabecalho)); } }
public JsonResult UpdateCobrarBoletos(int codigoPedido, int codigoCondicao, bool cobrarBoletos) { CabecalhoPedidoBLL BLL = new CabecalhoPedidoBLL(); CondicaoPagamentoBLL condicaoBLL = new CondicaoPagamentoBLL(); string mensagemErro; CabecalhoPedido cabecalho = BLL.GetPedidoByCodigo(codigoPedido, out mensagemErro); if (String.IsNullOrEmpty(mensagemErro)) { cabecalho.CobrarBoletos = cobrarBoletos; cabecalho.CondicaoPagamento.Codigo = codigoCondicao; if (cobrarBoletos) { //Atualiza valores para boletos CondicaoPagamento condicao = condicaoBLL.getCondicoes(cabecalho.CondicaoPagamento.Codigo, "", out mensagemErro).FirstOrDefault(); int nParcelas = condicao.Descricao.Split('/').Length; cabecalho.ValorBoletos = Convert.ToDecimal(nParcelas * 3.00); } else { cabecalho.ValorBoletos = 0; } if (BLL.updateCabecalhoPedido(cabecalho, out mensagemErro)) { return(Json(new { sucesso = true, valorBoletos = cabecalho.ValorBoletos, codigoCondicao = cabecalho.CondicaoPagamento.Codigo })); } } return(Json(new { sucesso = false, mensagemErro = mensagemErro })); }
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 AtualizarRotaCompleta(int codigoInstrutor, string arrayPedidosRota) { RoteirizacaoBLL roteirizacaoBLL = new RoteirizacaoBLL(); CabecalhoPedidoBLL cabecalhoPedidoBLL = new CabecalhoPedidoBLL(); NotificacoesBLL notificacoesBLL = new NotificacoesBLL(); string mensagemErro; List <RotaComplexaViewModel> listaPedidos = JsonConvert.DeserializeObject <List <RotaComplexaViewModel> >(arrayPedidosRota); var codigoUsuario = Convert.ToInt32(HttpContext.Request.Cookies["CODIGO_USUARIO"]); foreach (RotaComplexaViewModel pedido in listaPedidos) { if (!roteirizacaoBLL.updatePedidoRota(pedido.codigoPedido, codigoInstrutor, "", "", Convert.ToDateTime(pedido.dataInicioTreinamento), Convert.ToDateTime(pedido.dataFimTreinamento), 13, out mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } //Grava Notificação CabecalhoPedido cabecalhoPedido = cabecalhoPedidoBLL.GetPedidoByCodigo(pedido.codigoPedido, out mensagemErro); //Notificacoes notificacao = new Notificacoes(); //notificacao.FuncionarioCriador = new Funcionario() { Codigo = codigoUsuario }; //notificacao.FuncionarioDestino = new Funcionario() { Codigo = cabecalhoPedido.FuncionarioVendedor.Codigo }; //notificacao.Mensagem = "Pedido " + cabecalhoPedido.Codigo + " incluído na rota!"; //notificacoesBLL.insertNotificacao(notificacao, out mensagemErro); } TempData["mensagemSucesso"] = "Rota criada com sucesso!"; return(Json(new { sucesso = true })); }
public JsonResult UpdateCobrarEncargos(int codigoPedido, bool cobrarEncargos) { CabecalhoPedidoBLL BLL = new CabecalhoPedidoBLL(); string mensagemErro; if (BLL.updateEncargosItensPedidos(codigoPedido, cobrarEncargos, out mensagemErro)) { CabecalhoPedido cabecalho = BLL.GetPedidoByCodigo(codigoPedido, out mensagemErro); return(Json(new { sucesso = true, ValorTotal = cabecalho.ValorTotal.ToString().Replace(".", ",") })); } 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 AtualizarPedidoRota(int codigoPedido, int ddlInstrutorRota, string ddlSalaRota, string txtInformacoesAdicionais, DateTime dtpDataInicioTreinamento, DateTime dtpDataFimTreinamento, int codigoStatus, string detalheRetornoPedido = "") { RoteirizacaoBLL roteirizacaoBLL = new RoteirizacaoBLL(); CabecalhoPedidoBLL cabecalhoPedidoBLL = new CabecalhoPedidoBLL(); NotificacoesBLL notificacoesBLL = new NotificacoesBLL(); string mensagemErro; var codigoUsuario = Convert.ToInt32(HttpContext.Request.Cookies["CODIGO_USUARIO"]); if (!roteirizacaoBLL.updatePedidoRota(codigoPedido, ddlInstrutorRota, ddlSalaRota, txtInformacoesAdicionais, dtpDataInicioTreinamento, dtpDataFimTreinamento, codigoStatus, out mensagemErro, detalheRetornoPedido)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } CabecalhoPedido cabecalhoPedido = cabecalhoPedidoBLL.GetPedidoByCodigo(codigoPedido, out mensagemErro); //Grava Notificação //Notificacoes notificacao = new Notificacoes(); //notificacao.FuncionarioCriador = new Funcionario() { Codigo = codigoUsuario }; //notificacao.FuncionarioDestino = new Funcionario() { Codigo = cabecalhoPedido.FuncionarioVendedor.Codigo }; //notificacao.Mensagem = "Pedido " + cabecalhoPedido.Codigo + " incluído na rota!"; //notificacoesBLL.insertNotificacao(notificacao, out mensagemErro); //EM CASO DE PEDIDO PENDENTE (17 / 18) ENVIAR EMAIL PARA O AGENTE RESPONSÁVEL if (codigoStatus == 17 || codigoStatus == 18) { var usuario = new Funcionario(Convert.ToInt32(HttpContext.Request.Cookies["CODIGO_USUARIO"])); string templateEmail = System.IO.File.ReadAllText("./wwwRoot/Templates/TemplateEmailPendencia.html"); templateEmail = templateEmail.Replace("@colaborador", cabecalhoPedido.FuncionarioVendedor.Nome) .Replace("@codigoPedido", cabecalhoPedido.Codigo.ToString()) .Replace("@motivo", detalheRetornoPedido); var emails = "[email protected], [email protected]," + cabecalhoPedido.FuncionarioVendedor.Email; //ENVIAR EMAIL PARA O CLIENTE string Assunto = "A/C " + cabecalhoPedido.FuncionarioVendedor.Nome + " / Cia do Treinamento."; string retornoEmail = Uteis.SendMailRoteirizacao(usuario.Login, emails, Assunto, templateEmail, usuario.Email); } return(Json(new { sucesso = true })); }
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 })); }