public void GravaRoboReceita(RoboReceitaCNPJ roboReceita, ref ROBO robo) { try { MontaRobo(roboReceita, robo); } catch (Exception ex) { Log.Error(string.Format("Error ao gravar os dados da Receita Federal", robo.ID), ex); } }
public RoboReceitaCNPJ CarregaRoboCNPJ(string cnpj, string path) { RoboReceitaCNPJ robo = new RoboReceitaCNPJ(); try { if (!Validacao.ValidaCNPJ(cnpj)) { robo.Code = 0; robo.Data = new Data(); robo.Data.Message = "CNPJ Inválido!"; return(robo); } var ativarConsultasFake = Convert.ToBoolean(ConfigurationManager.AppSettings["AtivarConsultasFake"]); string textResult = string.Empty; if (ativarConsultasFake) { textResult = ReceitaFederalCNPJ_fake(path); } else { string token = ConfigurationManager.AppSettings["SintegraToken"]; string cont = "7"; string url = String.Format("https://webservice.keyconsultas.net/receita/cnpj/?cnpj={0}&token={1}&cont={2}", cnpj, token, cont); var request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = request.GetResponse() as HttpWebResponse; Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); textResult = reader.ReadToEnd(); } robo = JsonConvert.DeserializeObject <RoboReceitaCNPJ>(textResult); return(robo); } catch { robo.Code = 0; robo.Data = new Data(); robo.Data.Message = "Não foi possível acessar o serviço de consulta dos Orgãos Públicos! Tente novamente."; return(robo); } }
public void MontaCssMessagem(RoboReceitaCNPJ roboReceita) { if (roboReceita.Code == 1) { roboReceita.cssCor = (roboReceita.Data.SituacaoCadastral.ToUpper() == "ATIVA" ? "success" : "danger"); roboReceita.Data.Message = roboReceita.Code + " - Consulta Realizada com sucesso. (Situação Cadastral: " + roboReceita.Data.SituacaoCadastral + ") <i class='fa fa-arrow-circle-down'></i>"; } else if (roboReceita.Code == 2) { roboReceita.cssCor = "warning"; roboReceita.Data.Message = roboReceita.Code + " - " + roboReceita.Data.Message; } else { roboReceita.cssCor = "danger"; roboReceita.Data.Message = roboReceita.Code + " - " + roboReceita.Data.Message; } }
public RoboReceitaCNPJ MontaRoboView(ROBO robo) { RoboReceitaCNPJ roboReceita = new RoboReceitaCNPJ(); roboReceita.Data = new Data(); if (robo != null) { roboReceita.Data.DataEmissao = robo.RF_CONSULTA_DTHR.HasValue ? robo.RF_CONSULTA_DTHR.Value.ToString("dd/MM/yyyy HH:mm:ss") : null; roboReceita.DataConsulta = robo.RF_CONSULTA_DTHR; roboReceita.Code = robo.RF_CODE_ROBO; roboReceita.Data.CNPJ = robo.CNPJ; roboReceita.Data.RazaoSocial = robo.RECEITA_FEDERAL_RAZAO_SOCIAL; roboReceita.Data.Bairro = robo.RF_BAIRRO; roboReceita.Data.CEP = robo.RF_CEP; roboReceita.HTML = robo.RF_CERTIFICADO_HTML; roboReceita.Data.AtividadeEconomicaPrincipal = robo.RF_CNAE_COD_PRINCIPAL + " - " + robo.RF_CNAE_DSC_PRINCIPAL; roboReceita.Data.DataAbertura = robo.RF_CNPJ_DT_ABERTURA.HasValue ? robo.RF_CNPJ_DT_ABERTURA.Value.ToString("dd/MM/yyyy"): null; roboReceita.Data.NaturezaJuridica = robo.RF_COD_NATUREZA_JURIDICA + " - " + robo.RF_DSC_NATUREZA_JURIDICA; roboReceita.Data.Complemento = robo.RF_COMPLEMENTO; roboReceita.Data.Logradouro = robo.RF_LOGRADOURO; roboReceita.Data.MatrizFilial = robo.RF_MATRIZ_FILIAL; roboReceita.Data.MotivoSituacaoCadastral = robo.RF_MOTIVO_CNPJ_SITU_CADASTRAL; roboReceita.Data.Municipio = robo.RF_MUNICIPIO; roboReceita.Data.NomeFantasia = robo.RF_NOME_FANTASIA; roboReceita.Data.Numero = robo.RF_NUMERO; roboReceita.Data.SituacaoCadastral = robo.RF_SIT_CADASTRAL_CNPJ; roboReceita.Data.DataSituacaoCadastral = robo.RF_SIT_CADSTRAL_CNPJ_DT.HasValue ? robo.RF_SIT_CADSTRAL_CNPJ_DT.Value.ToString("dd/MM/yyyy") : null; roboReceita.Data.SituacaoEspecial = robo.RF_SIT_ESPECIAL_CNPJ; roboReceita.Data.DataSituacaoEspecial = robo.RF_SIT_ESPECIAL_CNPJ_DT.HasValue ? robo.RF_SIT_ESPECIAL_CNPJ_DT.Value.ToString("dd/MM/yyyy") : null; roboReceita.Data.UF = robo.RF_UF; return(roboReceita); } return(null); }
private void MontaRobo(RoboReceitaCNPJ roboReceita, ROBO robo) { if (roboReceita != null) { if (roboReceita.Code == 1) { #region Parse de Dados do Robo string roboHtmlFormatado = roboReceita.HTML; string asAscii = _metodosGerais.EncodeCodigoHtml(roboHtmlFormatado); DateTime dataSituacaoCadastral; DateTime dataSituacaocadastralEspecial; DateTime.TryParse(roboReceita.Data.DataSituacaoCadastral, out dataSituacaoCadastral); DateTime.TryParse(roboReceita.Data.DataSituacaoEspecial, out dataSituacaocadastralEspecial); #endregion robo.ROBO_DT_EXEC = DateTime.Now; robo.RF_CODE_ROBO = roboReceita.Code; robo.CNPJ = roboReceita.Data.CNPJ; robo.RECEITA_FEDERAL_RAZAO_SOCIAL = roboReceita.Data.RazaoSocial; robo.RF_BAIRRO = roboReceita.Data.Bairro; robo.RF_CEP = roboReceita.Data.CEP; robo.RF_CERTIFICADO_HTML = asAscii.Replace("images/brasao2.gif", "http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/images/brasao2.gif"); robo.RF_CNAE_COD_PRINCIPAL = (roboReceita.Data.AtividadeEconomicaPrincipal.Length >= 10) ? roboReceita.Data.AtividadeEconomicaPrincipal.Substring(0, 10).Replace(".", "").Replace("-", "") : roboReceita.Data.AtividadeEconomicaPrincipal; robo.RF_CNAE_DSC_PRINCIPAL = roboReceita.Data.AtividadeEconomicaPrincipal.Split(new string[] { " - " }, StringSplitOptions.None).Last().ToString(); robo.RF_CNPJ_DT_ABERTURA = DateTime.Parse(roboReceita.Data.DataAbertura); robo.RF_COD_NATUREZA_JURIDICA = roboReceita.Data.NaturezaJuridica == "" ? "" : roboReceita.Data.NaturezaJuridica.Substring(0, 6).Replace("-", "").TrimEnd(); robo.RF_COMPLEMENTO = roboReceita.Data.Complemento; robo.RF_CONSULTA_DTHR = DateTime.Now; robo.RF_CONTADOR_TENTATIVA = 0; robo.RF_DSC_NATUREZA_JURIDICA = roboReceita.Data.NaturezaJuridica.Split(new string[] { " - " }, StringSplitOptions.None).Last().ToString(); robo.RF_LOGRADOURO = roboReceita.Data.Logradouro; robo.RF_MATRIZ_FILIAL = roboReceita.Data.MatrizFilial; robo.RF_MOTIVO_CNPJ_SITU_CADASTRAL = roboReceita.Data.MotivoSituacaoCadastral; robo.RF_MUNICIPIO = roboReceita.Data.Municipio; robo.RF_NOME_FANTASIA = roboReceita.Data.NomeFantasia; robo.RF_NUMERO = roboReceita.Data.Numero; robo.RF_SIT_CADASTRAL_CNPJ = roboReceita.Data.SituacaoCadastral; robo.RF_SIT_CADSTRAL_CNPJ_DT = dataSituacaoCadastral; robo.RF_SIT_ESPECIAL_CNPJ = roboReceita.Data.SituacaoEspecial; robo.RF_SIT_ESPECIAL_CNPJ_DT = dataSituacaocadastralEspecial; robo.RF_UF = roboReceita.Data.UF; } else { int?contador = robo.RF_CONTADOR_TENTATIVA; if (!contador.HasValue) { contador = 0; } if (roboReceita.Code == 2 || roboReceita.Code == 3) { robo.ROBO_DT_EXEC = DateTime.Now; robo.RF_CODE_ROBO = roboReceita.Code; robo.RF_SIT_CADASTRAL_CNPJ = roboReceita.Data.Message; robo.RF_CONSULTA_DTHR = DateTime.Now; robo.RF_CONTADOR_TENTATIVA = 0; } else { contador += 1; robo.ROBO_DT_EXEC = DateTime.Now; robo.RF_CONTADOR_TENTATIVA = contador; } } } }
static void ChamaRobo(int pjpfId) { try { WebForLinkContexto db = new WebForLinkContexto(); var pjpf = BuscarFonecedorBaseParaRobo(db, pjpfId); RoboReceitaCNPJ roboReceita = new RoboReceitaCNPJ(); RoboSintegra roboSintegra = new RoboSintegra(); RoboSimples roboSimples = new RoboSimples(); RoboReceitaCPF roboReceitaCpf = new RoboReceitaCPF(); if (pjpf.ROBO == null) { pjpf.ROBO = new ROBO(); } bool validaReceita = (pjpf.ROBO.ID == 0 || pjpf.ROBO.RF_CONSULTA_DTHR == null); bool validaSintegra = (pjpf.ROBO.ID == 0 || pjpf.ROBO.SINT_CONSULTA_DTHR == null); bool validaSimples = (pjpf.ROBO.ID == 0 || pjpf.ROBO.SN_CONSULTA_DTHR == null); if (pjpf.PJPF_TIPO == 1) { if (validaReceita && pjpf.CNPJ != null) { roboReceita = roboReceita.CarregaRoboCNPJ(pjpf.CNPJ, path); var robo = pjpf.ROBO; RoboReceitaCNPJ roboReceitaCnpj = new RoboReceitaCNPJ(); roboReceitaCnpj.GravaRoboReceita(roboReceita, ref robo); GravaLog(db, roboReceita.Code, roboReceita.Data.Message, EnumRobo.ReceitaFederal.ToString(), pjpf.CONTRATANTE_ID, pjpf.ID); } if (validaSintegra && pjpf.ROBO.RF_UF != null) { roboSintegra = roboSintegra.CarregaSintegra(pjpf.ROBO.RF_UF, pjpf.CNPJ, path); var robo = pjpf.ROBO; RoboSintegra roboSintegraObj = new RoboSintegra(); roboSintegraObj.GravaRoboSintegra(roboSintegra, ref robo); GravaLog(db, roboSintegra.Code, roboSintegra.Data.Message, EnumRobo.Sintegra.ToString(), pjpf.CONTRATANTE_ID, pjpf.ID); } if (validaSimples && pjpf.CNPJ != null) { roboSimples = roboSimples.CarregaSimplesCNPJ(pjpf.CNPJ, path); var robo = pjpf.ROBO; RoboSimples roboSimplesObj = new RoboSimples(); roboSimplesObj.GravaRoboSimples(roboSimples, ref robo); GravaLog(db, roboSimples.Code, roboSimples.Data.Message, EnumRobo.SimplesNacional.ToString(), pjpf.CONTRATANTE_ID, pjpf.ID); } } // Pessoa Fisica if (pjpf.PJPF_TIPO == 3) { if (validaReceita && pjpf.CPF != null) { DateTime nasc = (DateTime)pjpf.DT_NASCIMENTO; roboReceitaCpf = roboReceitaCpf.CarregaRoboCPF(pjpf.CPF, nasc.ToString("dd/MM/yyyy"), path); var robo = pjpf.ROBO; RoboReceitaCPF roboCpfObj = new RoboReceitaCPF(); roboCpfObj.GravaRoboCpf(roboReceitaCpf, ref robo); GravaLog(db, roboReceitaCpf.Code, roboReceitaCpf.Data.Message, EnumRobo.ReceitaFederalPF.ToString(), pjpf.CONTRATANTE_ID, pjpf.ID); } } #region BLOQUEIO bool ReceitaIrregular = false, ReceitaInativa = false, SintegraNaoHabilitado = false; if (pjpf.PJPF_TIPO == 1) { ReceitaInativa = (!String.IsNullOrEmpty(roboReceita.Data.SituacaoCadastral) && roboReceita.Data.SituacaoCadastral.ToUpper() != "ATIVA"); SintegraNaoHabilitado = (!String.IsNullOrEmpty(roboSintegra.Data.SituacaoCadastral) && roboSintegra.Data.SituacaoCadastral == "HABILITADO ATIVO" && roboSintegra.Data.SituacaoCadastral == "HABILITADO"); } else { ReceitaIrregular = (!String.IsNullOrEmpty(roboReceitaCpf.Data.SituacaoCadastral) && roboReceitaCpf.Data.SituacaoCadastral.ToUpper() != "REGULAR"); } SOLICITACAO solicitacao = new SOLICITACAO(); SOLICITACAO_BLOQUEIO bloq = new SOLICITACAO_BLOQUEIO(); if (ReceitaInativa || SintegraNaoHabilitado || ReceitaIrregular) { var BloqManual = db.WFD_CONTRATANTE_CONFIG.FirstOrDefault(x => x.CONTRATANTE_ID == pjpf.CONTRATANTE_ID).BLOQUEIO_MANUAL; if (!BloqManual) { GeraBloqueioAutomatico(db, pjpf, solicitacao, bloq); } } #endregion if (pjpf.ROBO.RF_CONSULTA_DTHR != null && pjpf.ROBO.SINT_CONSULTA_DTHR != null && pjpf.ROBO.SN_CONSULTA_DTHR != null) { pjpf.ROBO_EXECUTADO = true; } if (pjpf.ROBO.RF_CONTADOR_TENTATIVA >= 3 && pjpf.ROBO.SINT_CONTADOR_TENTATIVA >= 3 && pjpf.ROBO.SN_CONTADOR_TENTATIVA >= 3) { pjpf.ROBO_TENTATIVAS_EXCEDIDAS = true; } ContratanteId = pjpf.CONTRATANTE_ID; DataSolicitacao = (DateTime)pjpf.DT_SOLICITACAO_ROBO; atualizaPJPFBase(db, pjpf); db.Entry(pjpf).State = EntityState.Modified; db.SaveChanges(); //ATUALIZA TRAMITE SE HOUVER CRIAÇÃO DE BLOQUEIO if (ReceitaInativa || SintegraNaoHabilitado) { int papel = db.WFL_PAPEL.FirstOrDefault(x => x.CONTRATANTE_ID == pjpf.CONTRATANTE_ID && x.PAPEL_TP_ID == 10).ID; _tramite.AtualizarTramite(pjpf.CONTRATANTE_ID, solicitacao.ID, solicitacao.FLUXO_ID, papel, 2, null); } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { foreach (var ve in eve.ValidationErrors) { } } } catch (Exception ex) { Log.Error(string.Format("Error ao percorrer a lista 'lstFornecedorRobo' exception: {0}", ex)); } }
static void ChamaRobo(int solicitacaoId) { try { WebForLinkContexto db = new WebForLinkContexto(); var solicitacao = BuscarsolicitacaoParaRobo(db, solicitacaoId); RoboReceitaCNPJ roboReceita = new RoboReceitaCNPJ(); RoboSintegra roboSintegra = new RoboSintegra(); RoboSimples roboSimples = new RoboSimples(); RoboReceitaCPF roboReceitaCpf = new RoboReceitaCPF(); var robo = solicitacao.ROBO.FirstOrDefault(); var solForn = solicitacao.SolicitacaoCadastroFornecedor.FirstOrDefault(); bool validaReceita = (robo.ID == 0 || robo.RF_CONSULTA_DTHR == null); bool validaSintegra = (robo.ID == 0 || robo.SINT_CONSULTA_DTHR == null); bool validaSimples = (robo.ID == 0 || robo.SN_CONSULTA_DTHR == null); if (solForn.PJPF_TIPO == 1) { if (validaReceita && solForn.CNPJ != null) { roboReceita = roboReceita.CarregaRoboCNPJ(solForn.CNPJ, path); RoboReceitaCNPJ roboReceitaCnpj = new RoboReceitaCNPJ(); roboReceitaCnpj.GravaRoboReceita(roboReceita, ref robo); GravaLog(db, roboReceita.Code, roboReceita.Data.Message, EnumRobo.ReceitaFederal.ToString(), solicitacao.CONTRATANTE_ID, solicitacao.PJPF_ID, solicitacao.ID); } if (validaSintegra && robo.RF_UF != null) { roboSintegra = roboSintegra.CarregaSintegra(robo.RF_UF, solForn.CNPJ, path); RoboSintegra roboSintegraObj = new RoboSintegra(); roboSintegraObj.GravaRoboSintegra(roboSintegra, ref robo); GravaLog(db, roboSintegra.Code, roboSintegra.Data.Message, EnumRobo.Sintegra.ToString(), solicitacao.CONTRATANTE_ID, solicitacao.PJPF_ID, solicitacao.ID); } if (validaSimples && solForn.CNPJ != null) { roboSimples = roboSimples.CarregaSimplesCNPJ(solForn.CNPJ, path); RoboSimples roboSimplesObj = new RoboSimples(); roboSimplesObj.GravaRoboSimples(roboSimples, ref robo); GravaLog(db, roboSimples.Code, roboSimples.Data.Message, EnumRobo.SimplesNacional.ToString(), solicitacao.CONTRATANTE_ID, solicitacao.PJPF_ID, solicitacao.ID); } } // Pessoa Fisica if (solForn.PJPF_TIPO == 3) { if (validaReceita && solForn.CPF != null) { roboReceitaCpf = roboReceitaCpf.CarregaRoboCPF(solForn.CPF, solForn.DT_NASCIMENTO.ToString(), path); RoboReceitaCPF roboCpfObj = new RoboReceitaCPF(); roboCpfObj.GravaRoboCpf(roboReceitaCpf, ref robo); GravaLog(db, roboReceitaCpf.Code, roboReceitaCpf.Data.Message, EnumRobo.ReceitaFederalPF.ToString(), solicitacao.CONTRATANTE_ID, solicitacao.PJPF_ID, solicitacao.ID); } } if (robo.RF_CONSULTA_DTHR != null && robo.SINT_CONSULTA_DTHR != null && robo.SN_CONSULTA_DTHR != null) { solicitacao.ROBO_EXECUTADO = true; } if (robo.RF_CONTADOR_TENTATIVA >= 3 && robo.SINT_CONTADOR_TENTATIVA >= 3 && robo.SN_CONTADOR_TENTATIVA >= 3) { solicitacao.ROBO_TENTATIVAS_EXCEDIDAS = true; } ContratanteId = solicitacao.CONTRATANTE_ID; DataSolicitacao = (DateTime)solicitacao.SOLICITACAO_DT_CRIA; db.Entry(solicitacao).State = EntityState.Modified; db.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { foreach (var ve in eve.ValidationErrors) { } } } catch (Exception ex) { Log.Error(string.Format("Error ao percorrer a lista 'lstFornecedorRobo' exception: {0}", ex)); } }