Exemplo n.º 1
0
        public void CadastrarErroGenerico(int grvId, int usuarioId, string identificadorNota, OrigemErro origemErro, Acao acao, string mensagemErro)
        {
            var erro = new NfeWsErroModel
            {
                GrvId             = grvId,
                IdentificadorNota = identificadorNota,
                UsuarioId         = usuarioId,
                Acao         = (char)acao,
                OrigemErro   = (char)origemErro,
                MensagemErro = mensagemErro
            };

            try
            {
                int id = new NfeWsErroController().Cadastrar(erro);
            }
            catch { }
        }
Exemplo n.º 2
0
        public List <NfeWsErroModel> Listar(NfeWsErroModel model)
        {
            var SQL = new StringBuilder();

            SQL.AppendLine("SELECT ErroId");
            SQL.AppendLine("      ,GrvId");
            SQL.AppendLine("      ,IdentificadorNota");
            SQL.AppendLine("      ,UsuarioId");
            SQL.AppendLine("      ,Acao");
            SQL.AppendLine("      ,OrigemErro");
            SQL.AppendLine("      ,Status");
            SQL.AppendLine("      ,CodigoErro");
            SQL.AppendLine("      ,MensagemErro");
            SQL.AppendLine("      ,CorrecaoErro");
            SQL.AppendLine("      ,DataHoraCadastro");

            SQL.AppendLine("  FROM dbo.tb_dep_nfe_ws_erros");

            SQL.AppendLine(" WHERE 1 = 1");

            if (model.ErroId > 0)
            {
                SQL.Append("   AND ErroId = ").Append(model.ErroId).AppendLine();
            }

            if (model.GrvId > 0)
            {
                SQL.Append("   AND GrvId = ").Append(model.GrvId).AppendLine();
            }

            if (!string.IsNullOrWhiteSpace(model.IdentificadorNota))
            {
                SQL.Append("   AND IdentificadorNota = '").Append(model.IdentificadorNota).AppendLine("'");
            }

            using (var dataTable = DataBase.Select(SQL))
            {
                return(dataTable == null ? null : DataTableUtil.DataTableToList <NfeWsErroModel>(dataTable));
            }
        }
Exemplo n.º 3
0
        private bool ProcessarResultado(string json, int usuarioId, NfeEntity nfe)
        {
            try
            {
                var results = JsonConvert.DeserializeObject <dynamic>(json);

                if (json.Contains("processando_autorizacao"))
                {
                    nfe.CodigoRetorno = int.Parse(results["ref"].ToString().Replace("{", "").Replace("}", ""));

                    new NfeMensagemController().Cadastrar(new NfeMensagemEntity
                    {
                        NfeId = nfe.NfeId,

                        Tipo = nfe.NfeComplementarId == null ? 'E' : 'R',

                        Mensagem = (string)JObject.Parse(json)["status"]
                    });

                    if (nfe.NfeComplementarId == null)
                    {
                        nfe.Status = 'A';
                    }
                    else
                    {
                        nfe.Status = 'S';
                    }

                    new NfeController().AguardandoProcessamento(nfe);

                    return(true);
                }
                else
                {
                    var retornoErro = new NfeWsErroModel
                    {
                        GrvId = nfe.GrvId,

                        IdentificadorNota = nfe.IdentificadorNota,

                        UsuarioId = usuarioId,

                        Acao = (char)Acao.Retorno,

                        OrigemErro = (char)OrigemErro.WebService,

                        Status = results["codigo"],

                        MensagemErro = results["mensagem"]
                    };

                    retornoErro.Status = retornoErro.Status.Trim().ToUpper();

                    retornoErro.MensagemErro = retornoErro.MensagemErro.Trim();

                    retornoErro.ErroId = new NfeWsErroController().Cadastrar(retornoErro);

                    nfe.Status = 'E';

                    new NfeController().Atualizar(nfe);

                    return(false);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Exemplo n.º 4
0
        public int Cadastrar(NfeWsErroModel model)
        {
            var SQL = new StringBuilder();

            SQL.AppendLine("INSERT INTO dbo.tb_dep_nfe_ws_erros");

            SQL.AppendLine("    (GrvId");
            SQL.AppendLine("    ,IdentificadorNota");
            SQL.AppendLine("    ,UsuarioId");
            SQL.AppendLine("    ,Acao");
            SQL.AppendLine("    ,OrigemErro");
            SQL.AppendLine("    ,Status");
            SQL.AppendLine("    ,CodigoErro");
            SQL.AppendLine("    ,MensagemErro");
            SQL.AppendLine("    ,CorrecaoErro)");

            SQL.AppendLine("VALUES");

            SQL.AppendLine("    (@GrvId");
            SQL.AppendLine("    ,@IdentificadorNota");
            SQL.AppendLine("    ,@UsuarioId");
            SQL.AppendLine("    ,@Acao");
            SQL.AppendLine("    ,@OrigemErro");
            SQL.AppendLine("    ,@Status");
            SQL.AppendLine("    ,@CodigoErro");
            SQL.AppendLine("    ,@MensagemErro");
            SQL.AppendLine("    ,@CorrecaoErro)");

            if (model.Status != null)
            {
                model.Status = model.Status.ToUpper().Trim();

                if (model.Status.Length > 30)
                {
                    model.Status = model.Status.Substring(0, 30);
                }
            }

            if (model.CodigoErro != null)
            {
                model.CodigoErro = model.CodigoErro.ToUpper().Trim();

                model.CodigoErro = model.CodigoErro.Trim();

                if (model.CodigoErro.Equals("---") || model.CodigoErro.Equals("..."))
                {
                    model.CodigoErro = string.Empty;
                }
                else if (model.CodigoErro.Length > 30)
                {
                    model.CodigoErro = model.CodigoErro.Substring(0, 30).Trim();
                }
            }

            if (model.MensagemErro != null)
            {
                model.MensagemErro = model.MensagemErro.Trim();

                if (model.MensagemErro.Length > 1000)
                {
                    model.MensagemErro = model.MensagemErro.Substring(0, 1000).Trim();
                }
            }

            if (model.CorrecaoErro != null)
            {
                model.CorrecaoErro = model.CorrecaoErro.Trim();

                if (model.CorrecaoErro.Equals("---") || model.CorrecaoErro.Equals("..."))
                {
                    model.CorrecaoErro = string.Empty;
                }
                else if (model.CorrecaoErro.Length > 1000)
                {
                    model.CorrecaoErro = model.CorrecaoErro.Substring(0, 1000).Trim();
                }
            }

            SqlParameter[] sqlParameters =
            {
                new SqlParameter("@GrvId", SqlDbType.Int)
                {
                    Value = model.GrvId
                },

                new SqlParameter("@IdentificadorNota", SqlDbType.VarChar)
                {
                    Value = model.IdentificadorNota
                },

                new SqlParameter("@UsuarioId", SqlDbType.Int)
                {
                    Value = model.UsuarioId
                },

                new SqlParameter("@Acao", SqlDbType.Char)
                {
                    Value = model.Acao
                },

                new SqlParameter("@OrigemErro", SqlDbType.Char)
                {
                    Value = model.OrigemErro
                },

                new SqlParameter("@Status", SqlDbType.VarChar)
                {
                    Value = model.Status
                },

                new SqlParameter("@CodigoErro", SqlDbType.VarChar)
                {
                    Value = model.CodigoErro
                },

                new SqlParameter("@MensagemErro", SqlDbType.VarChar)
                {
                    Value = model.MensagemErro
                },

                new SqlParameter("@CorrecaoErro", SqlDbType.VarChar)
                {
                    Value = model.CorrecaoErro
                }
            };

            return(DataBase.ExecuteScopeIdentity(SQL, sqlParameters));
        }
Exemplo n.º 5
0
        public NfeWsErroModel Selecionar(NfeWsErroModel model)
        {
            var list = Listar(model);

            return(list?.FirstOrDefault());
        }
        private RetornoNotaFiscalEntity ProcessarRetorno(GrvEntity grv, NfeEntity nfe, Consulta identificaoNotaFiscal, string retornoJson)
        {
            RetornoNotaFiscalEntity retornoConsulta = new JavaScriptSerializer()
            {
                MaxJsonLength = int.MaxValue
            }.Deserialize <RetornoNotaFiscalEntity>(retornoJson);

            if (retornoConsulta.status.Trim().Equals("processando_autorizacao", StringComparison.CurrentCultureIgnoreCase))
            {
                return(retornoConsulta);
            }

            NfeWsErroModel retornoErro = new NfeWsErroModel();

            NfeWsErroController NfeWsErroController = new NfeWsErroController();

            if (retornoConsulta.erros != null)
            {
                foreach (Erros erro in retornoConsulta.erros)
                {
                    retornoErro.GrvId             = identificaoNotaFiscal.GrvId;
                    retornoErro.IdentificadorNota = identificaoNotaFiscal.IdentificadorNota;
                    retornoErro.UsuarioId         = identificaoNotaFiscal.UsuarioId;
                    retornoErro.Acao       = (char)Acao.Retorno;
                    retornoErro.OrigemErro = (char)OrigemErro.WebService;
                    retornoErro.Status     = retornoConsulta.status.Trim().ToUpper();

                    if (erro.codigo != null)
                    {
                        retornoErro.CodigoErro = erro.codigo.Replace("  ", " ").Trim().ToUpper();
                    }

                    if (erro.mensagem != null)
                    {
                        retornoErro.MensagemErro = erro.mensagem.Replace("  ", " ").Trim();
                    }

                    if (erro.correcao != null)
                    {
                        retornoErro.CorrecaoErro = erro.correcao.Replace("  ", " ").Trim();
                    }

                    retornoErro.ErroId = NfeWsErroController.Cadastrar(retornoErro);
                }

                nfe.Status = 'E';

                new NfeController().Atualizar(nfe);

                return(retornoConsulta);
            }
            else
            {
                retornoErro.GrvId             = identificaoNotaFiscal.GrvId;
                retornoErro.IdentificadorNota = identificaoNotaFiscal.IdentificadorNota;
                retornoErro.UsuarioId         = identificaoNotaFiscal.UsuarioId;
                retornoErro.Acao       = (char)Acao.Retorno;
                retornoErro.OrigemErro = (char)OrigemErro.WebService;
                retornoErro.Status     = retornoConsulta.status.Trim().ToUpper();

                NfeWsErroController.Cadastrar(retornoErro);
            }

            if (!string.IsNullOrWhiteSpace(retornoConsulta.url))
            {
                retornoConsulta.url = retornoConsulta.url.Replace("nfse.aspx", "/NFSE/contribuinte/notaprintimg.aspx");

                if (!string.IsNullOrWhiteSpace(retornoConsulta.url))
                {
                    retornoConsulta.ImagemNotaFiscal = BaixarImagem(grv.ClienteId, grv.DepositoId, nfe.IdentificadorNota, identificaoNotaFiscal, retornoConsulta.url);
                }

                if (identificaoNotaFiscal.BaixarImagemOriginal)
                {
                    return(retornoConsulta);
                }

                nfe.Status = nfe.Status == 'A' ? 'P' : 'T';

                new NfeImagemController().Excluir(nfe.NfeId);

                new NfeImagemController().Cadastrar(nfe.NfeId, retornoConsulta.ImagemNotaFiscal);

                new NfeController().AtualizarRetornoNotaFiscal(nfe, retornoConsulta);
            }

            return(retornoConsulta);
        }
Exemplo n.º 7
0
        public string CancelarNotaFiscal(Cancelamento model)
        {
            DataBase.SystemEnvironment = model.Homologacao ? SystemEnvironment.Development : SystemEnvironment.Production;

            var nfe = new NfeController().ConsultarNotaFiscal(model.GrvId, model.UsuarioId, model.IdentificadorNota, Acao.Cancelamento);

            if (nfe == null)
            {
                new NfeWsErroController().CadastrarErroGenerico(model.GrvId, model.UsuarioId, model.IdentificadorNota, OrigemErro.MobLink, Acao.Retorno, "Nota Fiscal não encontrada");

                return($"Nota Fiscal {model.GrvId}/{model.IdentificadorNota} não encontrada");
            }

            var grv = new GrvController().Selecionar(model.GrvId);

            #region Empresa
            EmpresaEntity Empresa;

            if ((Empresa = new EmpresaController().Selecionar(new EmpresaEntity {
                EmpresaId = new DepositoController().Selecionar(grv.DepositoId).EmpresaId
            })) == null)
            {
                new NfeWsErroController().CadastrarErroGenerico(model.GrvId, model.UsuarioId, model.IdentificadorNota, OrigemErro.MobLink, Acao.Retorno, "Empresa associada não encontrada");

                return("Empresa associada não encontrada");
            }
            else if (Empresa.Token == null)
            {
                new NfeWsErroController().CadastrarErroGenerico(model.GrvId, model.UsuarioId, model.IdentificadorNota, OrigemErro.MobLink, Acao.Retorno, $"Empresa {Empresa.Nome} sem Token cadastrado");

                return($"Empresa {Empresa.Nome} sem Token cadastrado");
            }
            #endregion Empresa

            var tools = new Tools();

            string jsonEnvio = tools.ObjToJSON(new Dictionary <string, string>()
            {
                {
                    "justificativa",
                    model.Justificativa
                }
            });

            string jsonRetorno;

            try
            {
                jsonRetorno = tools.CancelarNfse(new NfeConfiguracao().GetRemoteServer() + "/" + model.IdentificadorNota, jsonEnvio, Empresa.Token);
            }
            catch (Exception ex)
            {
                new NfeWsErroController().CadastrarErroGenerico(nfe.GrvId, model.UsuarioId, nfe.IdentificadorNota, OrigemErro.WebService, Acao.Cancelamento, "Ocorreu um erro ao cancelar a Nota Fiscal: " + ex.Message);

                return($"Ocorreu um erro ao cancelar a Nota Fiscal ({model.GrvId}/{model.IdentificadorNota}): {ex.Message}");
            }

            try
            {
                var retornoConsulta = new JavaScriptSerializer()
                {
                    MaxJsonLength = int.MaxValue
                }.Deserialize <RetornoCancelamentoEntity>(jsonRetorno);

                if (retornoConsulta.erros != null)
                {
                    var retornoErro = new NfeWsErroModel();

                    foreach (var erro in retornoConsulta.erros)
                    {
                        retornoErro.GrvId             = model.GrvId;
                        retornoErro.IdentificadorNota = model.IdentificadorNota;
                        retornoErro.UsuarioId         = model.UsuarioId;
                        retornoErro.Acao       = (char)Acao.Retorno;
                        retornoErro.OrigemErro = (char)OrigemErro.WebService;
                        retornoErro.Status     = retornoConsulta.status.Trim().ToUpper();

                        if (erro.codigo != null)
                        {
                            retornoErro.CodigoErro = erro.codigo.Replace("  ", " ").Trim().ToUpper();
                        }

                        if (erro.mensagem != null)
                        {
                            retornoErro.MensagemErro = erro.mensagem.Replace("  ", " ").Trim();
                        }

                        if (erro.correcao != null)
                        {
                            retornoErro.CorrecaoErro = erro.correcao.Replace("  ", " ").Trim();
                        }

                        retornoErro.ErroId = new NfeWsErroController().Cadastrar(retornoErro);
                    }

                    return(jsonRetorno);
                }
            }
            catch (Exception ex)
            {
                if (true)
                {
                }
            }



            nfe.Status = 'N';

            new NfeController().Atualizar(nfe);

            return(jsonRetorno);
        }