Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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));
            }
        }