/// <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); } }
public ActionResult FornecedoresBloqueioFrm(FichaCadastralWebForLinkVM model, string rdLancamento, string rdCompras, string txtAreaMotivoBloqueio, int ContratanteID, int ContratanteFornecedorID, int?ID, int?bloqueioMotivoQualidade) { if (rdLancamento == null) { ModelState.AddModelError("FornecedoresBloqueioValidation", "Informe ao menos um bloqueio de lançamento!"); } if (ContratanteID == 0) { ModelState.AddModelError("FornecedoresBloqueioValidation", "Ocorreu um error ao tentar salvar o bloqueio. Por favor, tente mais tarde."); } if (ContratanteFornecedorID == 0) { ModelState.AddModelError("FornecedoresBloqueioValidation", "Ocorreu um error ao tentar salvar o bloqueio. Por favor, tente mais tarde."); } if (ID == 0 || ID == null) { ModelState.AddModelError("FornecedoresBloqueioValidation", "Ocorreu um error ao tentar salvar o bloqueio. Por favor, tente mais tarde."); } if (ModelState.IsValid) { int contratanteId = (int)Geral.PegaAuthTicket("ContratanteId"); int UsuarioId = (int)Geral.PegaAuthTicket("UsuarioId"); SOLICITACAO solicitacao = new SOLICITACAO(); try { int FluxoId = 8; if (contratanteId != 0) { solicitacao.CONTRATANTE_ID = contratanteId; } solicitacao.USUARIO_ID = UsuarioId; solicitacao.PJPF_ID = model.ID; SOLICITACAO_BLOQUEIO bloqueio = new SOLICITACAO_BLOQUEIO { SOLICITACAO_ID = solicitacao.ID, BLQ_LANCAMENTO_TODAS_EMP = rdLancamento == "1", BLQ_LANCAMENTO_EMP = rdLancamento == "2", BLQ_COMPRAS_TODAS_ORG_COMPRAS = !string.IsNullOrEmpty(rdCompras), BLQ_QUALIDADE_FUNCAO_BQL_ID = bloqueioMotivoQualidade, BLQ_MOTIVO_DSC = txtAreaMotivoBloqueio, }; _solicitacaoBP.CriarSolicitacaoBloqueio(solicitacao, bloqueio); _tramite.AtualizarTramite(model.ContratanteID, solicitacao.ID, FluxoId, 1, 2, UsuarioId); } catch (Exception ex) { if (solicitacao.ID != 0) { Db.WFD_SOLICITACAO.Remove(solicitacao); Db.SaveChanges(); Log.Error(ex); return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = "Ocorreu um error para realizar o bloqueio solicitado. Por favor, tente mais tarde." })); } } return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = string.Format("Solicitação {0} de Bloqueio realizado com Sucesso!", solicitacao.ID) })); } return(View()); }
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; }
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)); } }