Exemple #1
0
        public RoboSintegra MontaRoboView(ROBO robo)
        {
            RoboSintegra roboSintegra = new RoboSintegra();

            roboSintegra.Data = new DataSintegra();

            if (robo != null)
            {
                roboSintegra.Code                             = robo.SINT_CODE_ROBO;
                roboSintegra.HTML                             = robo.SINT_CERTIFICADO_HTML;
                roboSintegra.DataConsulta                     = robo.SINT_CONSULTA_DTHR;
                roboSintegra.Data.InscricaoEstadual           = robo.SINT_IE_COD;
                roboSintegra.Data.MultiplasIE                 = robo.SINT_IE_MULTIPLA == "Sim" ? true : false;
                roboSintegra.Data.SituacaoCadastral           = robo.SINT_IE_SITU_CADASTRAL;
                roboSintegra.Data.DataSituacaoCadastral       = robo.SINT_IE_SITU_CADSTRAL_DT;
                roboSintegra.Data.DataInclusao                = robo.SINT_INCLUSAO_DT.HasValue ? robo.SINT_INCLUSAO_DT.Value.ToString("dd/MM/yyyy") : null;
                roboSintegra.Data.Telefone                    = robo.SINT_TEL;
                roboSintegra.Data.AtividadeEconomicaPrincipal = robo.SINT_ATIVIDADE_PRINCIPAL;
                roboSintegra.Data.Bairro                      = robo.SINT_BAIRRO;
                roboSintegra.Data.CEP                         = robo.SINT_CEP;
                roboSintegra.Data.CNPJ                        = robo.CNPJ;
                roboSintegra.Data.Complemento                 = robo.SINT_COMPLEMENTO;
                roboSintegra.Data.EnquadramentoFiscal         = robo.SINT_ENQUADRAMENTO_FISCAL;
                roboSintegra.Data.Logradouro                  = robo.SINT_LOGRADOURO;
                roboSintegra.Data.Numero                      = robo.SINT_NUMERO;
                roboSintegra.Data.Municipio                   = robo.SINT_MUNICIPIO;
                roboSintegra.Data.UF                          = robo.SINT_UF;
                roboSintegra.Data.RazaoSocial                 = robo.SINT_RAZAO_SOCIAL;

                return(roboSintegra);
            }

            return(null);
        }
Exemple #2
0
 public void MontaCssMessagem(RoboSintegra roboSintegra)
 {
     if (roboSintegra.Code == 1)
     {
         roboSintegra.cssCor       = (roboSintegra.Data.SituacaoCadastral.ToUpper() == "HABILITADO ATIVO" || roboSintegra.Data.SituacaoCadastral.ToUpper() == "HABILITADO" ? "success" : "warning");
         roboSintegra.Data.Message = roboSintegra.Code + " - Consulta Realizada com sucesso. (Situação Cadastral: " + roboSintegra.Data.SituacaoCadastral + ") &nbsp;&nbsp;&nbsp;<i class='fa fa-arrow-circle-down'></i>";
     }
     else if (roboSintegra.Code == 2)
     {
         roboSintegra.cssCor       = "success";
         roboSintegra.Data.Message = roboSintegra.Code + " - ISENTO";
     }
     else
     {
         roboSintegra.cssCor       = "danger";
         roboSintegra.Data.Message = roboSintegra.Code + " - " + roboSintegra.Data.Message;
     }
 }
Exemple #3
0
        public RoboSintegra CarregaSintegra(string estado, string cnpj, string path)
        {
            RoboSintegra robo = new RoboSintegra();

            try
            {
                if (!string.IsNullOrEmpty(estado) && !string.IsNullOrEmpty(cnpj))
                {
                    var    ativarConsultasFake = Convert.ToBoolean(ConfigurationManager.AppSettings["AtivarConsultasFake"]);
                    string textResult          = string.Empty;

                    if (ativarConsultasFake)
                    {
                        textResult = Sintegra_fake(path);
                    }
                    else
                    {
                        string token = ConfigurationManager.AppSettings["SintegraToken"];
                        string cont  = "7";

                        string url = String.Format(@"http://webservice.keyconsultas.net/sintegra_{0}/cnpj/?cnpj={1}&token={2}&cont={3}", estado, 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 <RoboSintegra>(textResult);
                }

                return(robo);
            }
            catch
            {
                robo.Code         = 0;
                robo.Data         = new DataSintegra();
                robo.Data.Message = "Não foi possível acessar o serviço de consulta dos Orgãos Públicos! Tente novamente.";

                return(robo);
            }
        }
        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));
            }
        }
Exemple #6
0
        private void MontaRobo(RoboSintegra roboSintegra, ROBO robo)
        {
            if (roboSintegra != null)
            {
                if (roboSintegra.Code == 1)
                {
                    #region Parse dos Dados do Robô

                    string asAsciiSintegra = string.Empty;
                    if (!string.IsNullOrEmpty(roboSintegra.HTML))
                    {
                        asAsciiSintegra = _metodosGerais.EncodeCodigoHtml(roboSintegra.HTML);
                    }

                    DateTime dataInclusao;

                    DateTime.TryParse(roboSintegra.Data.DataInclusao, out dataInclusao);

                    #endregion

                    robo.SINT_CODE_ROBO           = roboSintegra.Code;
                    robo.SINT_CERTIFICADO_HTML    = asAsciiSintegra.Replace("imagens/sintegra.gif", "http://www.fazenda.rj.gov.br/projetoCPS/imagens/sintegra.gif");
                    robo.SINT_CONSULTA_DTHR       = DateTime.Now;
                    robo.SINT_CONTADOR_TENTATIVA  = 0;
                    robo.SINT_IE_COD              = roboSintegra.Data.InscricaoEstadual;
                    robo.SINT_IE_MULTIPLA         = (roboSintegra.Data.MultiplasIE.HasValue && !roboSintegra.Data.MultiplasIE.Value) ? "Não" : "Sim";
                    robo.SINT_IE_SITU_CADASTRAL   = roboSintegra.Data.SituacaoCadastral;
                    robo.SINT_IE_SITU_CADSTRAL_DT = roboSintegra.Data.DataSituacaoCadastral;
                    robo.SINT_INCLUSAO_DT         = dataInclusao;
                    robo.SINT_TEL = roboSintegra.Data.Telefone;
                    robo.SINT_ATIVIDADE_PRINCIPAL = roboSintegra.Data.AtividadeEconomicaPrincipal;
                    robo.SINT_BAIRRO               = roboSintegra.Data.Bairro;
                    robo.SINT_CEP                  = roboSintegra.Data.CEP;
                    robo.SINT_CNPJ                 = roboSintegra.Data.CNPJ;
                    robo.SINT_COMPLEMENTO          = roboSintegra.Data.Complemento;
                    robo.SINT_ENQUADRAMENTO_FISCAL = roboSintegra.Data.EnquadramentoFiscal;
                    robo.SINT_LOGRADOURO           = roboSintegra.Data.Logradouro;
                    robo.SINT_MUNICIPIO            = roboSintegra.Data.Municipio;
                    robo.SINT_NUMERO               = roboSintegra.Data.Numero;
                    robo.SINT_RAZAO_SOCIAL         = roboSintegra.Data.RazaoSocial;
                    robo.SINT_UF  = roboSintegra.Data.UF;
                    robo.SINT_TEL = roboSintegra.Data.Telefone;
                }
                else
                {
                    int?contador = robo.SINT_CONTADOR_TENTATIVA;
                    if (!contador.HasValue)
                    {
                        contador = 0;
                    }

                    if (roboSintegra.Code == 2 || roboSintegra.Code == 3)
                    {
                        robo.SINT_CODE_ROBO          = roboSintegra.Code;
                        robo.SINT_IE_SITU_CADASTRAL  = roboSintegra.Data.Message;
                        robo.SINT_CONSULTA_DTHR      = DateTime.Now;
                        robo.SINT_CONTADOR_TENTATIVA = 0;
                    }
                    else
                    {
                        contador += 1;
                        robo.SINT_CONTADOR_TENTATIVA = contador;
                    }
                }
            }
        }
Exemple #7
0
 public void GravaRoboSintegra(RoboSintegra roboSintegra, ref ROBO robo)
 {
     MontaRobo(roboSintegra, robo);
 }