public JsonResult EmitirNotaEntradaSapiens(string codigoRegistro, string operacao, string tipoNota) { if (this.Logado != ((char)Enums.Logado.Sim).ToString()) { return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet)); } try { var N0203REGBusiness = new N0203REGBusiness(); var E000NFCBusiness = new E000NFCBusiness(); E085CLIBusiness E085CLIBusiness = new E085CLIBusiness(); var aprovadoSucesso = false; var msgRetornoSapiens = string.Empty; var msgRetornoPedido = string.Empty; // Operação ==> Aprovar e Tipo Nota ==> Nutriplan if (int.Parse(operacao) == (int)Enums.OperacaoAprovacaoFaturamento.Aprovar && int.Parse(tipoNota) == (int)Enums.TipoNotaDevolucao.Nutriplan) { var dadosProtocolo = N0203REGBusiness.PesquisaRegistroOcorrencia(long.Parse(codigoRegistro)); if (dadosProtocolo != null) { var cnpj = E085CLIBusiness.PesquisaClientes(dadosProtocolo.CODCLI).FirstOrDefault().CnpjCpf; // Agrupa notas para validar se há xml de cliente com a mesma nota do protocolo var listNotas = (from a in dadosProtocolo.N0203IPV group new { a } by new { a.CODEMP, a.CODFIL, a.NUMNFV } into grupo select new { grupo.Key.CODFIL, grupo.Key.NUMNFV }).ToList(); var nota = listNotas.FirstOrDefault(); var validarNotas = E000NFCBusiness.ValidarNotaCliente(nota.NUMNFV.ToString(), nota.CODFIL.ToString(), cnpj); if (validarNotas.Count() == 0) { // Lançar Nota No SISTEMA SAPIENS bool Motivo = N0203REGBusiness.ConsultarOrigem(Convert.ToInt32(codigoRegistro)); if (Motivo == true) { N0203REGBusiness.PedidosViaOcorrencia(Convert.ToInt32(codigoRegistro), int.Parse(this.CodigoUsuarioLogado), out msgRetornoPedido); } if (!N0203REGBusiness.EmitirLancamentoNfe(dadosProtocolo, out msgRetornoSapiens)) { msgRetornoSapiens = "Registro de devolução Nº " + codigoRegistro + " não aprovado.<br/><br/>Erro de integração com o sistema sapiens.<br/><br/>" + msgRetornoSapiens + " " + msgRetornoPedido; var tipoAtend = Enums.TipoAtendimento.DevolucaoMercadorias; if (dadosProtocolo.TIPATE == (int)Enums.TipoAtendimento.TrocaMercadorias) { tipoAtend = Enums.TipoAtendimento.TrocaMercadorias; } // Envia Email para TI informando ERRO de integração... this.MontarEmailErroIntegracaoSapiens(codigoRegistro, msgRetornoSapiens, tipoAtend); } else { aprovadoSucesso = true; } } else { N0203REGBusiness.RollbackAprovacao(codigoRegistro); msgRetornoSapiens = "Registro de devolução Nº " + codigoRegistro + " não aprovado.<br/><br/>Verifique as notas " + string.Join(",", validarNotas) + " do cliente.<br/><br/>Selecione o tipo de nota Cliente."; } } else { msgRetornoSapiens = "Registro de devolução Nº " + codigoRegistro + " não encontrado."; } } if (aprovadoSucesso == false) { N0203REGBusiness.RollbackAprovacao(codigoRegistro); } return(this.Json(new { msgRetornoSapiens, AprovadoSucesso = aprovadoSucesso }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { this.Session["ExceptionErro"] = ex; return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet)); } }
public JsonResult AprovarRegistrosOcorrenciaNivel1(string codigoRegistro, string observacaoAprovacao) { if (this.Logado != ((char)Enums.Logado.Sim).ToString()) { return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet)); } try { N0203REGBusiness N0203REGBusiness = new N0203REGBusiness(); N9999USU N9999USU = new N9999USU(); N9999USUBusiness N9999USUBusiness = new N9999USUBusiness(); UsuarioADModel usuarioAD = new UsuarioADModel(); var ActiveDirectoryBusiness = new ActiveDirectoryBusiness(); var dadosProtocolo = N0203REGBusiness.PesquisaRegistroOcorrencia(long.Parse(codigoRegistro)); if (dadosProtocolo != null) { var tipoAtend = Enums.TipoAtendimento.DevolucaoMercadorias; if (dadosProtocolo.TIPATE == (int)Enums.TipoAtendimento.TrocaMercadorias) { tipoAtend = Enums.TipoAtendimento.TrocaMercadorias; } N9999USU = N9999USUBusiness.ListaDadosUsuarioPorCodigo(Convert.ToInt64(dadosProtocolo.USUGER)); usuarioAD = ActiveDirectoryBusiness.ListaDadosUsuarioAD(N9999USU.LOGIN); bool AprovadoSucesso = N0203REGBusiness.AprovarRegistrosOcorrenciaNivel1(long.Parse(codigoRegistro), long.Parse(this.CodigoUsuarioLogado), observacaoAprovacao); //#if DEBUG //System.IO.File.WriteAllText(@"C:\Projetos_Desenvolvimento\Arquivo.txt", usuarioAD.Email); //#endif this.MontarEmailProtocoloAprovado(codigoRegistro, "", tipoAtend, usuarioAD.Email); if (AprovadoSucesso) { E140NFVBusiness E140NFVBusiness = new E140NFVBusiness(); var notas = (from a in dadosProtocolo.N0203IPV group new { a } by new { a.CODFIL, a.NUMNFV } into grupo select new { CodFilial = grupo.Key.CODFIL, NumeroNota = grupo.Key.NUMNFV, ValorBruto = decimal.Round(decimal.Parse(grupo.Sum(v => v.a.QTDDEV * v.a.PREUNI).ToString()), 2, MidpointRounding.AwayFromZero), ValorIpi = decimal.Round(decimal.Parse(grupo.Sum(v => (v.a.QTDDEV * v.a.PREUNI) * float.Parse(((v.a.PERIPI / 100).ToString()))).ToString()), 2, MidpointRounding.AwayFromZero), }).ToList(); string notasEmail = string.Empty; string cliente = string.Empty; if (notas.Count > 0) { E085CLIBusiness E085CLIBusiness = new E085CLIBusiness(); var codCli = Convert.ToInt64(dadosProtocolo.CODCLI); var nomeCliente = E085CLIBusiness.PesquisaClientes(codCli).FirstOrDefault().NomeFantasia; cliente = "Cliente: " + codCli + " - " + nomeCliente; foreach (var item in notas) { // Nota Tipo Boleto if (E140NFVBusiness.PesquisarTipoPagamentoNota(item.CodFilial, item.NumeroNota) == 2) { var valorNota = E140NFVBusiness.PesquisarDadosNota(item.NumeroNota, item.CodFilial, null, "3").FirstOrDefault().ValorLiquido; var valorFatNotaMask = Convert.ToDouble(valorNota).ToString("###,###,##0.00"); var valorNotaDev = Convert.ToDouble(item.ValorBruto + item.ValorIpi).ToString("###,###,##0.00"); var d = valorNotaDev.ToString().Split(','); var x = d[1].Substring(0, 2).PadRight(2, '0'); var valorDevNotaMask = d[0] + "," + x; double valorNotaD = Convert.ToDouble(valorFatNotaMask); double valorNotaDevD = Convert.ToDouble(valorNotaDev); var valorReceber = Convert.ToDouble(valorNotaD - valorNotaDevD).ToString("###,###,##0.00"); notasEmail = notasEmail + "Número da Nota: " + item.NumeroNota.ToString() + " - Filial: " + item.CodFilial.ToString() + " - Val. Líquido: " + valorFatNotaMask + " - Val. Líquido Devolução: " + valorDevNotaMask + " - Valor a Receber: " + valorReceber + "&"; } } } if (dadosProtocolo.TIPATE == (int)Enums.TipoAtendimento.TrocaMercadorias) { tipoAtend = Enums.TipoAtendimento.TrocaMercadorias; } if (!string.IsNullOrEmpty(notasEmail)) { this.MontarEmailFinanceiroNotasBoleto(dadosProtocolo.NUMREG.ToString(), notasEmail, cliente, tipoAtend); } } return(this.Json(new { AprovadoSucesso }, JsonRequestBehavior.AllowGet)); } else { var msgRetornoSapiens = string.Empty; msgRetornoSapiens = "Registro de devolução Nº " + codigoRegistro + " não encontrado."; return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { this.Session["ExceptionErro"] = ex; return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet)); } }