private static FORNECEDORBASE BuscarFonecedorBaseParaRobo(WebForLinkContexto db, int id) { return(db.WFD_PJPF_BASE .Include("ROBO") .Include("WFD_SOLICITACAO.SolicitacaoCadastroFornecedor") .FirstOrDefault(x => x.ID == id)); }
/// <summary> /// Bloqueio automatico dos usuarios que ja estao com documentos com prazos atrasados /// </summary> /// <param name="db">Contexto</param> /// <param name="fornecedor">Id do Fornecedor</param> private static void InserirSolicitacaoBloqueioAtrasoDocumento(WebForLinkContexto db, int contratante, int fornecedor) { try { var FluxoId = db.WFL_FLUXO.FirstOrDefault(x => x.CONTRATANTE_ID == contratante && x.FLUXO_TP_ID == 110).ID; SOLICITACAO solicitacao = new SOLICITACAO() { CONTRATANTE_ID = contratante, FLUXO_ID = FluxoId, SOLICITACAO_DT_CRIA = DateTime.Now, SOLICITACAO_STATUS_ID = 5, PJPF_ID = fornecedor, }; SOLICITACAO_BLOQUEIO bloqueio = new SOLICITACAO_BLOQUEIO() { BLQ_COMPRAS_TODAS_ORG_COMPRAS = false, BLQ_LANCAMENTO_EMP = true, BLQ_QUALIDADE_FUNCAO_BQL_ID = 2, WFD_SOLICITACAO = solicitacao, BLQ_MOTIVO_DSC = "Bloqueio gerado automaticamente." }; db.Entry(solicitacao).State = EntityState.Added; db.Entry(bloqueio).State = EntityState.Added; db.SaveChanges(); } catch (Exception ex) { throw new WebForLinkException("Erro ao tentar inserir a solicitação de bloqueio. ", ex); } }
private static SOLICITACAO BuscarsolicitacaoParaRobo(WebForLinkContexto db, int id) { return(db.WFD_SOLICITACAO .Include("ROBO") .Include("SolicitacaoCadastroFornecedor") .FirstOrDefault(x => x.ID == id)); }
/// <summary> /// R.9.1.4 ENVIA EMAIL DE BLOQUEIO DOCUMENTO VENCIDO - Caso a data de vencimento esteja vencida e o documento seja obrigatório, /// o sistema envia um email informando que o Fornecedor/Cliente foi bloqueado até que atualize o documento desejado. /// </summary> /// <param name="db">Contexto</param> private static void BloquearFornecedorDocumentoVencido(WebForLinkContexto db) { //Filtros var predicate = PredicateBuilder.New <DocumentosDoFornecedor>(); predicate = predicate.And(a => a.DATA_VENCIMENTO < DateTime.Now); predicate = predicativos(predicate); //Inserir IDs em Lista de Documentos Atrasados var lista = db.WFD_PJPF_DOCUMENTOS .Include("WFD_CONTRATANTE_PJPF") .AsExpandable() .Where(predicate) .Select(x => new { fornecedorId = x.PJPF_ID, contratanteId = (int)x.WFD_CONTRATANTE_PJPF.CONTRATANTE_ID }) .ToList(); lista.Distinct().ToList().ForEach(x => { InserirSolicitacaoBloqueioAtrasoDocumento(db, x.contratanteId, x.fornecedorId); }); }
/// <summary> /// R.9.1.1/R.9.1.2 ENVIA E-MAIL 5/10 DIAS ANTES DO VENCIMENTO - Caso a data de vencimento esteja a 5/10 dias do vencimento, /// o sistema envia um email de alerta para que o Fornecedor/Cliente efetue o upload de uma versão com validade atualizada /// </summary> private static void EnviarEmailDocumentosAVencer(WebForLinkContexto db, int dias) { //Filtros var predicate = PredicateBuilder.New <DocumentosDoFornecedor>(); //predicate = predicate.And(a => a.DATA_VENCIMENTO.Value.Subtract(DateTime.Now).Days == dias); predicate = predicativos(predicate); //Inserir IDs em Lista de Documentos Atrasados db.WFD_PJPF_DOCUMENTOS .AsExpandable() .Where(predicate) .ToList() .ForEach(x => { var tempo = x.DATA_VENCIMENTO.GetValueOrDefault(); if ((tempo.Subtract(DateTime.Now).Days + dias) == 0) { var emailFornecedor = db.WFD_PJPF.FirstOrDefault(y => y.ID == x.PJPF_ID).EMAIL; var assuntoMail = string.Format("Faltam {0} Dias para seu documento expirar", dias); var corpoMail = string.Format("Seus documentos expiraram em: {0}. Efetue o upload de uma versão com validade atualizada", x.DATA_VENCIMENTO.GetValueOrDefault().ToShortDateString()); //--Enviar E-mail de fato _metodosGerais.EnviarEmail(ConfigurationManager.AppSettings.Get("EmailRobo"), assuntoMail, corpoMail); } }); }
private static int[] BuscarParaExecucaoRobo() { WebForLinkContexto dbbase = new WebForLinkContexto(); try { //dbbase.Database.Log = s => _metodosGerais.LogQueries(s); int qtd = dbbase.WFD_CONFIG.FirstOrDefault().QTD_ACESSO_ROBO_SIMULTANEO; //int? tentativas = dbbase.WFD_CONTRATANTE_CONFIG.FirstOrDefault(x => x.CONTRATANTE_ID == ContratanteId).TOTAL_TENTATIVA_ROBO; return(dbbase.WFD_PJPF_BASE .Include("ROBO") .Where(x => x.CONTRATANTE_ID != ContratanteId && x.EXECUTA_ROBO == true && x.DT_SOLICITACAO_ROBO > DataSolicitacao && x.ROBO_EXECUTADO == false && x.ROBO_TENTATIVAS_EXCEDIDAS == false) .OrderBy(y => new { y.DT_SOLICITACAO_ROBO, y.ID }) .Select(z => z.ID) .Take(qtd).ToArray()); } catch (Exception ex) { throw ex; } }
public void AtualizaTramite(WebForLinkContexto Db, int contratanteId, int solicitacaoId, int fluxoId, int papelAtualId, int statusId, int?usuarioId) { int?grupoDestino = 0; SOLICITACAO_TRAMITE tramite; List <SOLICITACAO_TRAMITE> tramiteAtual = RetornarSolicitacaoTramiteAtual(solicitacaoId); grupoDestino = tramiteAtual.Count > 0 ? tramiteAtual.Single(t => t.PAPEL_ID == papelAtualId).GRUPO_DESTINO : ListarProximoPapeisFluxo(contratanteId, fluxoId, papelAtualId, 1).FirstOrDefault().GRUPO_DESTINO; switch (statusId) { case 1: tramite = InserirTramiteInicial(solicitacaoId, papelAtualId, statusId, usuarioId, grupoDestino); break; case 2: tramite = InserirTramiteSequencia(solicitacaoId, papelAtualId, statusId, usuarioId, grupoDestino, tramiteAtual); List <FLUXO_SEQUENCIA> proximoPapeis = ListarProximoPapeisFluxo(contratanteId, fluxoId, papelAtualId, grupoDestino); // verifica se o tramite atual está todo aprovado, lembrando que pode ter mais de um tramite simultaneamente // senão a solicitação não pode ir para o proximo passo. if (!tramiteAtual.Any(t => t.SOLICITACAO_STATUS_ID == 1)) { foreach (FLUXO_SEQUENCIA item in proximoPapeis) { // Se não houver proximo passo o sistem finaliza a solicitacao if (item.PAPEL_ID_FIM != null) { tramite = InserirTramiteConclusao(solicitacaoId, item); } else { AlterarSolicitacaoParaFinalizado(solicitacaoId, 4); // Concluido } } } //EmailSolicitacao emailSolicitacao = new EmailSolicitacao(); //emailSolicitacao.EnviarEmailSolicitacao(Contratante, solicitacaoId, Fluxo, proximoPapeis); break; case 3: case 6: tramite = tramiteAtual.Single(t => t.PAPEL_ID == papelAtualId); tramite.SOLICITACAO_STATUS_ID = statusId; // Reprovado tramite.USUARIO_ID = usuarioId; tramite.TRMITE_DT_FIM = DateTime.Now; AlterarSolicitacaoParaFinalizado(solicitacaoId, statusId); // Reprovado //EmailSolicitacao emailReprovacao = new EmailSolicitacao(); //emailReprovacao.EnviarEmailReprovacao(solicitacao.ID); break; } }
public void InicializarRobo() { WebForLinkContexto db = new WebForLinkContexto(); _solicitacaoBP.BuscarSolicitacaoAguardandoRetornoCarga() .ToList() .ForEach(x => { LerArquivos(db, x); }); }
private void AtualizarSolicitacao(WebForLinkContexto Db, int Id, int Fluxo, int ContratanteId, int usuarioId, string emailUsuario, bool mandaEmail) { int?grupoId = (int?)Geral.PegaAuthTicket("Grupo"); _aprovacaoBp.FinalizarSolicitacao(grupoId, Fluxo, Id); //Aprovacao.FinalizaSolicitacao(Fluxo, Id); _tramite.AtualizarTramite(ContratanteId, Id, Fluxo, (int)EnumPapeisWorkflow.RetornoCarga, 2, null); if (mandaEmail) { EnviarEmailFornecedorUsuario(emailUsuario, usuarioId); } }
private static void GravaLog(WebForLinkContexto db, int?Code, string Mensagem, string orgao, int contratanteId, int?pjpfId, int?solicitacaoId) { ROBO_LOG entityLog = new ROBO_LOG() { COD_RETORNO = Code, DATA = DateTime.Now, MENSAGEM = Mensagem, ROBO = orgao, CONTRATANTE_ID = contratanteId, PJPF_ID = pjpfId, SOLICITACAO_ID = solicitacaoId }; db.Entry(entityLog).State = System.Data.Entity.EntityState.Added; }
private static void GravaLog(WebForLinkContexto db, int?codigoRetorno, string mensagem, string orgao, int contratanteId, int pjpfBaseId) { ROBO_LOG pjpfRoboLog = new ROBO_LOG() { COD_RETORNO = codigoRetorno, DATA = DateTime.Now, MENSAGEM = mensagem, ROBO = orgao, CONTRATANTE_ID = contratanteId, PJPF_BASE_ID = pjpfBaseId //SOLICITACAO_ID = solicitacao.ID }; db.Entry(pjpfRoboLog).State = System.Data.Entity.EntityState.Added; }
public PartialViewResult Listar(DestinatarioVM filtro) { try { using (WebForLinkContexto contexto = new WebForLinkContexto()) { lista = ListaGrid.ModelToViewModel(contexto.WFD_PJPF_DOCUMENTOS.Where(x => x.ATIVO), Url); } return(PartialView("_boxGrid", new Grid <ListaGrid>(lista, filtro.page, filtro.registros))); } catch (Exception ex) { Log.Error(ex); return(PartialView("_GridVazio")); } }
public QuestionarioDinamicoController(WebForLinkContexto db) : base(_repositorios) { _db = db; try { if (_repositorios == null) { _repositorios = new UnitOfWork(new WebForLinkContexto()); } } catch (Exception ex) { Log.Error(ex); } }
private static void GeraBloqueioAutomatico(WebForLinkContexto db, FORNECEDORBASE pjpf, SOLICITACAO solicitacao, SOLICITACAO_BLOQUEIO bloq) { solicitacao.CONTRATANTE_ID = pjpf.CONTRATANTE_ID; solicitacao.FLUXO_ID = db.WFL_FLUXO.FirstOrDefault(x => x.CONTRATANTE_ID == pjpf.CONTRATANTE_ID && x.FLUXO_TP_ID == 110).ID; solicitacao.PJPF_BASE_ID = pjpf.ID; solicitacao.SOLICITACAO_DT_CRIA = DateTime.Now; solicitacao.SOLICITACAO_STATUS_ID = 5; bloq.BLQ_COMPRAS_TODAS_ORG_COMPRAS = false; bloq.BLQ_LANCAMENTO_EMP = true; bloq.BLQ_QUALIDADE_FUNCAO_BQL_ID = 2; bloq.WFD_SOLICITACAO = solicitacao; bloq.BLQ_MOTIVO_DSC = "Bloqueio gerado automaticamente."; db.Entry(solicitacao).State = EntityState.Added; db.Entry(bloq).State = EntityState.Added; }
public ActionResult Editar(string chaveurl) { EncryptDecryptQueryString Cripto = new EncryptDecryptQueryString(); var id = Cripto.Descriptografar(chaveurl, Key); var descripto = new Criptografia(EnumCripto.LinkDescriptografar, chaveurl, "r10X310y"); var retorno = 0; var parametroCriptografia = descripto.Resultados.FirstOrDefault(x => x.Key == "id"); if (parametroCriptografia.Value != null) { int.TryParse(parametroCriptografia.Value, out retorno); } CadastroDocumentoFornecedorIndividualVM modelo = new CadastroDocumentoFornecedorIndividualVM(); using (WebForLinkContexto contexto = new WebForLinkContexto()) { modelo = CadastroDocumentoFornecedorIndividualVM.ModelToViewModel(contexto.WFD_PJPF_DOCUMENTOS.FirstOrDefault(x => x.ID == retorno)); } return(View(modelo)); }
private static void atualizaPJPFBase(WebForLinkContexto db, FORNECEDORBASE pjpf) { pjpf.BAIRRO = pjpf.ROBO.RF_BAIRRO; pjpf.CEP = pjpf.ROBO.RF_CEP; pjpf.CIDADE = pjpf.ROBO.RF_MUNICIPIO; pjpf.COMPLEMENTO = pjpf.ROBO.RF_COMPLEMENTO; pjpf.ENDERECO = pjpf.ROBO.RF_LOGRADOURO; pjpf.INSCR_ESTADUAL = pjpf.ROBO.SINT_IE_COD; pjpf.NOME = pjpf.ROBO.RF_NOME; pjpf.NOME_FANTASIA = pjpf.ROBO.RF_NOME_FANTASIA; pjpf.NUMERO = pjpf.ROBO.RF_NUMERO; pjpf.RAZAO_SOCIAL = pjpf.ROBO.RECEITA_FEDERAL_RAZAO_SOCIAL; pjpf.UF = pjpf.ROBO.RF_UF; if (pjpf.WFD_SOLICITACAO.Any()) { var solicitacao = pjpf.WFD_SOLICITACAO.FirstOrDefault(); if (solicitacao != null) { var solForn = solicitacao.SolicitacaoCadastroFornecedor.FirstOrDefault(); if (solForn != null) { solForn.BAIRRO = pjpf.ROBO.RF_BAIRRO; solForn.CEP = pjpf.ROBO.RF_CEP; solForn.CIDADE = pjpf.ROBO.RF_MUNICIPIO; solForn.COMPLEMENTO = pjpf.ROBO.RF_COMPLEMENTO; solForn.ENDERECO = pjpf.ROBO.RF_LOGRADOURO; solForn.NOME = pjpf.ROBO.RF_NOME; solForn.NOME_FANTASIA = pjpf.ROBO.RF_NOME_FANTASIA; solForn.NUMERO = pjpf.ROBO.RF_NUMERO; solForn.RAZAO_SOCIAL = pjpf.ROBO.RECEITA_FEDERAL_RAZAO_SOCIAL; solForn.ROBO_ID = pjpf.ROBO.ID; solForn.UF = pjpf.ROBO.RF_UF; solForn.INSCR_ESTADUAL = pjpf.ROBO.SINT_IE_COD; db.Entry(solForn).State = EntityState.Modified; } } } }
private static int[] BuscarParaExecucaoRobo() { WebForLinkContexto dbbase = new WebForLinkContexto(); int qtd = dbbase.WFD_CONFIG.FirstOrDefault().QTD_ACESSO_ROBO_SIMULTANEO; int[] tpFluxoids = { 10, 20, 30, 40 }; return(dbbase.WFD_SOLICITACAO .Where(x => x.CONTRATANTE_ID != ContratanteId && x.SOLICITACAO_STATUS_ID == (int)EnumStatusTramite.EmAprovacao && // EM APROVACAO x.SOLICITACAO_DT_CRIA > DataSolicitacao && tpFluxoids.Contains(x.Fluxo.FLUXO_TP_ID) && x.ROBO_EXECUTADO == false && x.ROBO_TENTATIVAS_EXCEDIDAS == false ) .OrderBy(y => new { y.SOLICITACAO_DT_CRIA, y.ID }) .Select(z => z.ID) .Take(qtd) .ToArray()); }
private void LerArquivos(WebForLinkContexto db, int ContratanteId) { try { var diretorioCarga = AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings.Get("DiretorioRetornoSap"); if (!Directory.Exists(diretorioCarga)) { Directory.CreateDirectory(diretorioCarga); } var arquivoRetorno = _contratanteConfig.BuscarPorID(ContratanteId).FORNECEDOR_RETORNO; var nome = string.Format("{0}\\{1}", diretorioCarga, arquivoRetorno); //List<string> solicitacoes = new List<string>(); foreach (var arquivoCriacaoFornecedores in Directory.EnumerateFiles(diretorioCarga, arquivoRetorno)) { AtualizarCodigoERP(db, deserializarArquivo(arquivoCriacaoFornecedores).Mensagens); //solicitacoes.Add(arquivoCriacaoFornecedores); } } catch (Exception ex) { throw new WebForLinkException("Erro ao tentar nomear o arquivo", ex); } }
/// <summary> /// Será atualizado o código de ERP se o mesmo não vier nulo apenas nos retorno de Cad.Fornecedor Nacional e Nacional Direto /// </summary> /// <param name="db">contexto do Banco de Dados</param> /// <param name="lstRetorno">Retorno do arquivo</param> private void AtualizarCodigoERP(WebForLinkContexto db, List <MensagensCarga> lstRetorno) { try { lstRetorno.ForEach( x => { var solicitacao = db.WFD_SOLICITACAO .Include(y => y.Usuario) .Include(y => y.Fluxo) .FirstOrDefault(ws => ws.ID == x.SolicitacaoId); bool mandaEmail = false; switch (solicitacao.Fluxo.FLUXO_TP_ID) { case (int)EnumTiposFluxo.CadastroFornecedorNacional: case (int)EnumTiposFluxo.CadastroFornecedorNacionalDireto: if (x.CodigoERP > 0) { SolicitacaoCadastroFornecedor solCadastro = db.WFD_SOL_CAD_PJPF .FirstOrDefault(y => y.SOLICITACAO_ID == x.SolicitacaoId); solCadastro.COD_PJPF_ERP = x.CodigoERP.ToString(); db.Entry(solCadastro).State = EntityState.Modified; db.SaveChanges(); } mandaEmail = true; break; } AtualizarSolicitacao(db, solicitacao.ID, solicitacao.Fluxo.FLUXO_TP_ID, solicitacao.CONTRATANTE_ID, solicitacao.Usuario.ID, solicitacao.Usuario.EMAIL, mandaEmail); } ); } catch (Exception) { } }
public UnitOfWork(IWebForLinkContexto contexto) { _contexto = contexto; }
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)); } }