public JsonResult AprovarRegistrosOcorrencia(string codigoRegistro, string operacao, string tipoOperacao, string tipoNota, string observacao, string msgRetornoSapiens) { 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 aprovadoSucesso = true; string msgRetorno = ""; string msgRetornoPedido = ""; bool Motivo = N0203REGBusiness.ConsultarOrigem(Convert.ToInt32(codigoRegistro)); if (Motivo == true && operacao.Contains("1")) { N0203REGBusiness.PedidosViaOcorrencia(Convert.ToInt32(codigoRegistro), int.Parse(this.CodigoUsuarioLogado), out msgRetornoPedido); } if (msgRetornoPedido == "" || msgRetornoPedido == "OK") { msgRetorno = N0203REGBusiness.AprovarRegistrosOcorrencia(long.Parse(codigoRegistro), long.Parse(this.CodigoUsuarioLogado), observacao, int.Parse(operacao), tipoOperacao); } else { aprovadoSucesso = false; } if (msgRetorno.Contains("Operação não permitida, verifique se a ocorrência está com a situação integrado ou faturada.") || msgRetorno.Contains("Operação não permitida, verifique se a ocorrência está com a situação recebida") || msgRetorno.Contains("não está com a situação recebido") || msgRetorno.Contains("Registro de Ocorrência está vinculada a um agrupamento.")) { aprovadoSucesso = false; } else if (msgRetorno != "Registros de ocorrências agrupadas foram integradas com sucesso!") { if (int.Parse(operacao) == (int)Enums.OperacaoAprovacaoFaturamento.Aprovar && int.Parse(tipoNota) == (int)Enums.TipoNotaDevolucao.Nutriplan) { var descNota = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.TipoNotaDevolucao.Nutriplan).GetValue <string>(); if (msgRetornoPedido != " " && msgRetornoPedido != "") { msgRetorno += "<br></br> Retorno Sapiens: " + msgRetornoSapiens + "<br/>Tipo Nota: " + tipoNota + " - " + descNota + ". Obs Aprovação Faturamento: " + observacao + " <br/>Pedido Indenizado: " + msgRetornoPedido; } else { msgRetorno += "<br></br> Retorno Sapiens: " + msgRetornoSapiens + "<br/>Tipo Nota: " + tipoNota + " - " + descNota + ". Obs Aprovação Faturamento: " + observacao; } } else if (int.Parse(operacao) == (int)Enums.OperacaoAprovacaoFaturamento.Aprovar && int.Parse(tipoNota) == (int)Enums.TipoNotaDevolucao.Cliente) { var descNota = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.TipoNotaDevolucao.Cliente).GetValue <string>(); if (msgRetornoPedido != "") { msgRetorno += "<br></br> Tipo Nota: " + tipoNota + " - " + descNota + ". Obs Aprovação Faturamento: " + observacao + " <br/>Pedido Indenizado: " + msgRetornoPedido; } else { msgRetorno += "<br></br> Tipo Nota: " + tipoNota + " - " + descNota + ". Obs Aprovação Faturamento: " + observacao; } } if (int.Parse(tipoNota) == (int)Enums.TipoNotaDevolucao.Nutriplan) { if (msgRetornoPedido != "") { msgRetorno += msgRetorno + "<br/><br/>Retorno Sapiens: " + msgRetornoSapiens + "<br/> Pedido Indenizado: " + msgRetornoPedido; } else { msgRetorno += msgRetorno + "<br/><br/>Retorno Sapiens: " + msgRetornoSapiens; } } } return(this.Json(new { msgRetorno, 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 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)); } }