private void CompletarSolicitacaoCadastroPJPF(ref SolicitacaoCadastroFornecedor cadPJPF, FichaCadastralWebForLinkVM ficha) { if (ficha.TipoFornecedor != 1) { cadPJPF.NOME = ficha.RazaoSocial; cadPJPF.NOME_FANTASIA = ficha.NomeFantasia; //cadPJPF.CNAE = ficha.CNAE; //Transformar em Enum if (ficha.TipoFornecedor == 3) { cadPJPF.CPF = ficha.CNPJ_CPF.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", ""); cadPJPF.INSCR_ESTADUAL = ficha.InscricaoEstadual; } cadPJPF.TP_LOGRADOURO = ficha.TipoLogradouro; cadPJPF.ENDERECO = ficha.Endereco; cadPJPF.NUMERO = ficha.Numero; cadPJPF.COMPLEMENTO = ficha.Complemento; cadPJPF.CEP = ficha.Cep; cadPJPF.BAIRRO = ficha.Bairro; cadPJPF.CIDADE = ficha.Cidade; cadPJPF.UF = ficha.Estado; cadPJPF.PAIS = ficha.Pais; } //Transformar em Enum if (ficha.TipoFornecedor != 2) { cadPJPF.INSCR_MUNICIPAL = ficha.InscricaoMunicipal; } cadPJPF.OBSERVACAO = ficha.Observacao; }
public static void PopularAcompanhamentoNovoFornecedor(this ControleSolicitacaoController controller, FichaCadastralWebForLinkVM modelo, SOLICITACAO solicitacao) { SolicitacaoCadastroFornecedor solicitacaoCadastroFornecedorNacional = solicitacao.SolicitacaoCadastroFornecedor.FirstOrDefault(); modelo.DadosEnderecos = Mapper.Map <List <SOLICITACAO_MODIFICACAO_ENDERECO>, List <DadosEnderecosVM> >(solicitacao.WFD_SOL_MOD_ENDERECO.ToList()); modelo.DadosBancarios = Mapper.Map <List <SolicitacaoModificacaoDadosBancario>, List <DadosBancariosVM> >(solicitacao.SolicitacaoModificacaoDadosBancario.ToList()); modelo.DadosContatos = Mapper.Map <List <SolicitacaoModificacaoDadosContato>, List <DadosContatoVM> >(solicitacao.SolicitacaoModificacaoDadosContato.ToList()); modelo.SolicitacaoFornecedor.Solicitacao = true; //Mapear os Documentos modelo.SolicitacaoFornecedor.Documentos = Mapper.Map <List <SolicitacaoDeDocumentos>, List <SolicitacaoDocumentosVM> >(solicitacao.SolicitacaoDeDocumentos.Where(x => x.ARQUIVO_ID != null).ToList()); // Popula a view model FichaCadastralVM if (solicitacaoCadastroFornecedorNacional != null) { modelo.CategoriaId = solicitacaoCadastroFornecedorNacional.CATEGORIA_ID; modelo.Solicitacao.Fluxo.ID = solicitacao.FLUXO_ID; modelo.Solicitacao.Fluxo.Nome = solicitacao.Fluxo.FLUXO_NM; if (solicitacaoCadastroFornecedorNacional != null) { modelo.CategoriaNome = solicitacaoCadastroFornecedorNacional.WFD_PJPF_CATEGORIA.DESCRICAO; } else { modelo.CategoriaNome = solicitacao.Fornecedor.WFD_CONTRATANTE_PJPF.First(x => x.CONTRATANTE_ID == solicitacao.CONTRATANTE_ID).WFD_PJPF_CATEGORIA.DESCRICAO; } modelo.RazaoSocial = solicitacaoCadastroFornecedorNacional.PJPF_TIPO != 3 ? solicitacaoCadastroFornecedorNacional.RAZAO_SOCIAL : solicitacaoCadastroFornecedorNacional.NOME; modelo.NomeFantasia = solicitacaoCadastroFornecedorNacional.NOME_FANTASIA; //modelo.CNAE = solicitacaoCadastroFornecedorNacional.CNAE; modelo.CNPJ_CPF = solicitacaoCadastroFornecedorNacional.PJPF_TIPO == 3 ? Convert.ToUInt64(solicitacaoCadastroFornecedorNacional.CPF).ToString(@"000\.000\.000\-00") : Convert.ToUInt64(solicitacaoCadastroFornecedorNacional.CNPJ).ToString(@"00\.000\.000\/0000\-00"); modelo.InscricaoEstadual = solicitacaoCadastroFornecedorNacional.INSCR_ESTADUAL; modelo.InscricaoMunicipal = solicitacaoCadastroFornecedorNacional.INSCR_MUNICIPAL; modelo.TipoFornecedor = solicitacaoCadastroFornecedorNacional.PJPF_TIPO; modelo.Observacao = solicitacaoCadastroFornecedorNacional.OBSERVACAO; modelo.TipoLogradouro = solicitacaoCadastroFornecedorNacional.TP_LOGRADOURO; modelo.Endereco = solicitacaoCadastroFornecedorNacional.ENDERECO; modelo.Numero = solicitacaoCadastroFornecedorNacional.NUMERO; modelo.Complemento = solicitacaoCadastroFornecedorNacional.COMPLEMENTO; modelo.Cep = solicitacaoCadastroFornecedorNacional.CEP; modelo.Bairro = solicitacaoCadastroFornecedorNacional.BAIRRO; modelo.Cidade = solicitacaoCadastroFornecedorNacional.CIDADE; modelo.Estado = solicitacaoCadastroFornecedorNacional.UF; modelo.Pais = solicitacaoCadastroFornecedorNacional.PAIS; } // this.FornecedorRobo(modelo, solicitacao); if (solicitacaoCadastroFornecedorNacional.WFD_PJPF_ROBO != null) { modelo.FornecedorRobo.SimplesNacionalSituacao = solicitacaoCadastroFornecedorNacional.WFD_PJPF_ROBO.SIMPLES_NACIONAL_SITUACAO == null ? "" : solicitacaoCadastroFornecedorNacional.WFD_PJPF_ROBO.SIMPLES_NACIONAL_SITUACAO; } }
public AprovacaoVM(int idSolicitacao, int fluxoId, string fluxoNome) { Solicitacao = new SOLICITACAO(); Fornecedor = new SolicitacaoCadastroFornecedor(); Solicitacao_Tramite = new SOLICITACAO_TRAMITE(); FornecedorFinalizado = new Fornecedor(); IdSolicitacao = idSolicitacao; FluxoId = fluxoId; NomeSolicitacao = fluxoNome; }
public static void PopularAcompanhamentoNovoFornecedorEstrangeiro(this ControleSolicitacaoController controller, FichaCadastralWebForLinkVM modelo, SOLICITACAO solicitacao) { SolicitacaoCadastroFornecedor solicitacaoCadastroFornecedorEstrangeiro = solicitacao.SolicitacaoCadastroFornecedor.First(); modelo.DadosEnderecos = Mapper.Map <List <SOLICITACAO_MODIFICACAO_ENDERECO>, List <DadosEnderecosVM> >(solicitacao.WFD_SOL_MOD_ENDERECO.ToList()); modelo.DadosBancarios = Mapper.Map <List <SolicitacaoModificacaoDadosBancario>, List <DadosBancariosVM> >(solicitacao.SolicitacaoModificacaoDadosBancario.ToList()); modelo.DadosContatos = Mapper.Map <List <SolicitacaoModificacaoDadosContato>, List <DadosContatoVM> >(solicitacao.SolicitacaoModificacaoDadosContato.ToList()); modelo.SolicitacaoFornecedor.Solicitacao = true; modelo.SolicitacaoFornecedor.Documentos = solicitacao.WFD_PJPF_SOLICITACAO_DOCUMENTOS.Select(c => new SolicitacaoDocumentosVM { ID = c.ID, Documento = c.WFD_PJPF_LISTA_DOCUMENTOS.DescricaoDeDocumentos.TipoDeDocumento.DESCRICAO + " - " + c.WFD_PJPF_LISTA_DOCUMENTOS.DescricaoDeDocumentos.DESCRICAO, PorValidade = c.WFD_PJPF_LISTA_DOCUMENTOS.EXIGE_VALIDADE, DataValidade = c.DATA_VENCIMENTO, NomeArquivo = c.NOME_ARQUIVO, ArquivoID = c.PJPF_ARQUIVO_ID, SolicitacaoID = c.SOLICITACAO_ID }).ToList(); // Popula a view model FichaCadastralVM modelo.CategoriaId = solicitacaoCadastroFornecedorEstrangeiro.CATEGORIA_ID; if (solicitacaoCadastroFornecedorEstrangeiro != null) { modelo.CategoriaNome = solicitacaoCadastroFornecedorEstrangeiro.WFD_PJPF_CATEGORIA.DESCRICAO; } else { modelo.CategoriaNome = solicitacao.Fornecedor.WFD_CONTRATANTE_PJPF.First(x => x.CONTRATANTE_ID == solicitacao.CONTRATANTE_ID).WFD_PJPF_CATEGORIA.DESCRICAO; } modelo.Solicitacao.Fluxo.ID = solicitacao.FLUXO_ID; modelo.RazaoSocial = solicitacaoCadastroFornecedorEstrangeiro.RAZAO_SOCIAL; modelo.NomeFantasia = solicitacaoCadastroFornecedorEstrangeiro.NOME_FANTASIA; //modelo.CNAE = solicitacaoCadastroFornecedorEstrangeiro.CNAE; modelo.CNPJ_CPF = solicitacaoCadastroFornecedorEstrangeiro.CNPJ; modelo.InscricaoEstadual = solicitacaoCadastroFornecedorEstrangeiro.INSCR_ESTADUAL; modelo.InscricaoMunicipal = solicitacaoCadastroFornecedorEstrangeiro.INSCR_MUNICIPAL; modelo.TipoFornecedor = solicitacaoCadastroFornecedorEstrangeiro.PJPF_TIPO; modelo.Observacao = solicitacaoCadastroFornecedorEstrangeiro.OBSERVACAO; modelo.TipoFornecedor = solicitacaoCadastroFornecedorEstrangeiro.PJPF_TIPO; modelo.Observacao = solicitacaoCadastroFornecedorEstrangeiro.OBSERVACAO; modelo.TipoLogradouro = solicitacaoCadastroFornecedorEstrangeiro.TP_LOGRADOURO; modelo.Endereco = solicitacaoCadastroFornecedorEstrangeiro.ENDERECO; modelo.Numero = solicitacaoCadastroFornecedorEstrangeiro.NUMERO; modelo.Complemento = solicitacaoCadastroFornecedorEstrangeiro.COMPLEMENTO; modelo.Cep = solicitacaoCadastroFornecedorEstrangeiro.CEP; modelo.Bairro = solicitacaoCadastroFornecedorEstrangeiro.BAIRRO; modelo.Cidade = solicitacaoCadastroFornecedorEstrangeiro.CIDADE; modelo.Estado = solicitacaoCadastroFornecedorEstrangeiro.UF; modelo.Pais = solicitacaoCadastroFornecedorEstrangeiro.PAIS; modelo.Solicitacao.Fluxo.ID = solicitacao.FLUXO_ID; modelo.Solicitacao.Fluxo.Nome = solicitacao.Fluxo.FLUXO_NM; }
public static void PopularEndereco(FichaCadastralWebForLinkVM ficha, SolicitacaoCadastroFornecedor solicitacaoCadastroFornecedor) { //ficha.Bairro = solicitacaoCadastroFornecedor.BAIRRO; //ficha.Cep = solicitacaoCadastroFornecedor.CEP; //ficha.Cidade = solicitacaoCadastroFornecedor.CIDADE; //ficha.Complemento = solicitacaoCadastroFornecedor.COMPLEMENTO; //ficha.Endereco = solicitacaoCadastroFornecedor.ENDERECO; //ficha.Numero = solicitacaoCadastroFornecedor.NUMERO; //ficha.Pais = solicitacaoCadastroFornecedor.PAIS; //ficha.Estado = solicitacaoCadastroFornecedor.UF; //ficha.TipoLogradouro = solicitacaoCadastroFornecedor.TP_LOGRADOURO; Mapper.Map <FichaCadastralWebForLinkVM>(solicitacaoCadastroFornecedor); }
public static void PopularAcompanhamentoAmpliacao(this ControleSolicitacaoController controller, FichaCadastralWebForLinkVM modelo, SOLICITACAO solicitacao) { SolicitacaoCadastroFornecedor solicitacaoExpansaoFornecedor = solicitacao.SolicitacaoCadastroFornecedor.First(); Fornecedor fornecedor = PJpFbp.BuscarPorIdComRelacionamentos((int)solicitacao.PJPF_ID); List <DocumentosDoFornecedor> documentosFornecedor = fornecedor.DocumentosDoFornecedor.ToList(); modelo.DadosEnderecos = Mapper.Map <List <SOLICITACAO_MODIFICACAO_ENDERECO>, List <DadosEnderecosVM> >(solicitacao.WFD_SOL_MOD_ENDERECO.ToList()); modelo.DadosBancarios = Mapper.Map <List <SolicitacaoModificacaoDadosBancario>, List <DadosBancariosVM> >(solicitacao.SolicitacaoModificacaoDadosBancario.ToList()); modelo.DadosContatos = Mapper.Map <List <SolicitacaoModificacaoDadosContato>, List <DadosContatoVM> >(solicitacao.SolicitacaoModificacaoDadosContato.ToList()); modelo.SolicitacaoFornecedor = new SolicitacaoFornecedorVM { Solicitacao = false, Documentos = documentosFornecedor.Select(d => new SolicitacaoDocumentosVM { ID = d.ID, Documento = d.DescricaoDeDocumentos.TipoDeDocumento.DESCRICAO + " - " + d.DescricaoDeDocumentos.DESCRICAO, DataValidade = d.DATA_VENCIMENTO, NomeArquivo = d.NOME_ARQUIVO, ArquivoID = d.ARQUIVO_ID, SolicitacaoID = d.SOLICITACAO_ID }).ToList() }; // Popula a view model FichaCadastralVM modelo.CategoriaId = solicitacao.Fornecedor.WFD_CONTRATANTE_PJPF.First(x => x.CONTRATANTE_ID == solicitacao.CONTRATANTE_ID).CATEGORIA_ID ?? 0; modelo.CategoriaNome = solicitacao.Fornecedor.WFD_CONTRATANTE_PJPF.First(x => x.CONTRATANTE_ID == solicitacao.CONTRATANTE_ID).WFD_PJPF_CATEGORIA.DESCRICAO; modelo.ID = fornecedor.ID; modelo.ContratanteID = solicitacao.CONTRATANTE_ID; Mapeamento.PopularDadosReceita(modelo, fornecedor); Mapeamento.PopularEndereco(modelo, fornecedor); modelo.Observacao = solicitacaoExpansaoFornecedor.OBSERVACAO; modelo.Solicitacao = new SolicitacaoVM { Fluxo = new FluxoVM { ID = 3 } }; controller.FornecedorRobo(modelo, RetornaFornecedor(solicitacao)); }
public static void PopularDadosReceita(FichaCadastralWebForLinkVM ficha, SolicitacaoCadastroFornecedor fornNacional) { //ficha.RazaoSocial = fornNacional.RAZAO_SOCIAL; //ficha.NomeFantasia = fornNacional.NOME_FANTASIA; //ficha.Nome = fornNacional.NOME; //ficha.CNAE = fornNacional.CNAE; //ficha.InscricaoEstadual = fornNacional.INSCR_ESTADUAL; //ficha.InscricaoMunicipal = fornNacional.INSCR_MUNICIPAL; //ficha.TipoFornecedor = fornNacional.PJPF_TIPO; //ficha.Observacao = fornNacional.OBSERVACAO; //ficha.CategoriaId = fornNacional.CATEGORIA_ID; Mapper.Map <FichaCadastralWebForLinkVM>(fornNacional); if (ficha.TipoFornecedor != 2) { ficha.CNPJ_CPF = fornNacional.PJPF_TIPO == 3 ? Convert.ToUInt64(fornNacional.CPF).ToString(@"000\.000\.000\-00") : Convert.ToUInt64(fornNacional.CNPJ).ToString(@"00\.000\.000\/0000\-00"); } }
public static void AmpliacaoFornecedor(this AprovacaoController controller, FichaCadastralWebForLinkVM ficha, SOLICITACAO solicitacao) { SolicitacaoCadastroFornecedor fornExpansao = solicitacao.SolicitacaoCadastroFornecedor.First(); Fornecedor fornecedor = controller.Db.WFD_PJPF .Include("BancoDoFornecedor") .Include("WFD_PJPF_CONTATOS") .Include("DocumentosDeFornecedor.DescricaoDeDocumentos.TipoDeDocumento") .FirstOrDefault(c => c.ID == solicitacao.PJPF_ID); List <DocumentosDoFornecedor> documentos = fornecedor.DocumentosDoFornecedor.ToList(); ficha.DadosBancarios = controller.ListarSolicitacaoModificacaoBancario(solicitacao, false); ficha.DadosContatos = controller.ListarSolicitacaoDadosContato(solicitacao, false); ficha.SolicitacaoFornecedor.Solicitacao = true; ficha.SolicitacaoFornecedor.Documentos = Mapper.Map <List <SolicitacaoDeDocumentos>, List <SolicitacaoDocumentosVM> >(solicitacao.SolicitacaoDeDocumentos.Where(x => x.ARQUIVO_ID != null).ToList()); // Popula a view model FichaCadastralVM ficha.ID = fornecedor.ID; ficha.ContratanteID = solicitacao.CONTRATANTE_ID; ficha.CNPJ_CPF = fornecedor.TIPO_PJPF_ID == 3 ? Convert.ToUInt64(fornecedor.CPF).ToString(@"000\.000\.000\-00") : Convert.ToUInt64(fornecedor.CNPJ).ToString(@"00\.000\.000\/0000\-00"); ficha.Observacao = fornExpansao.OBSERVACAO; ficha.CategoriaId = fornExpansao.CATEGORIA_ID; Mapeamento.PopularDadosReceita(ficha, fornecedor); Mapeamento.PopularEndereco(ficha, fornecedor); ficha.Solicitacao = new SolicitacaoVM { Fluxo = new FluxoVM { ID = solicitacao.FLUXO_ID } }; }
public static void CadastroFornecedor(this AprovacaoController controller, FichaCadastralWebForLinkVM ficha, SOLICITACAO solicitacao) { SolicitacaoCadastroFornecedor fornNacional = solicitacao.SolicitacaoCadastroFornecedor.First(); ficha.ID = fornNacional.ID; ficha.SolicitacaoFornecedor.Solicitacao = true; ficha.ContratanteID = solicitacao.CONTRATANTE_ID; ficha.Solicitacao.Fluxo.ID = solicitacao.FLUXO_ID; Mapeamento.PopularDadosReceita(ficha, fornNacional); Mapeamento.PopularEndereco(ficha, fornNacional); ficha.DadosBancarios = controller.ListarSolicitacaoModificacaoBancario(solicitacao, false); ficha.DadosEnderecos = Mapper.Map <List <DadosEnderecosVM> >(solicitacao.WFD_SOL_MOD_ENDERECO.ToList()); ficha.DadosContatos = controller.ListarSolicitacaoDadosContato(solicitacao, true); if (ficha.TipoFornecedor != 2) { ficha.SolicitacaoFornecedor.Documentos = Mapper.Map <List <SolicitacaoDeDocumentos>, List <SolicitacaoDocumentosVM> >(solicitacao.SolicitacaoDeDocumentos.Where(x => x.ARQUIVO_ID != null).ToList()); } }
private CONTRATANTE CriarContratante(string documento, SolicitacaoCadastroFornecedor solicitacaoCadastroFornecedor) { CONTRATANTE contratanteAncora = new CONTRATANTE() { TIPO_CADASTRO_ID = (int)EnumTiposFornecedor.EmpresaNacional, TIPO_CONTRATANTE_ID = (int)EnumTipoContratante.FornecedorIndividual, DATA_CADASTRO = DateTime.Now, DATA_NASCIMENTO = solicitacaoCadastroFornecedor.DT_NASCIMENTO, NOME_FANTASIA = solicitacaoCadastroFornecedor.NOME_FANTASIA, RAZAO_SOCIAL = solicitacaoCadastroFornecedor.RAZAO_SOCIAL, CNPJ = documento, ATIVO = true, ATIVO_DT = DateTime.Now, ESTILO = "Azul" }; var papel = _papelRepository.BuscarPorContratanteIdETipoPapelId(1, 50); contratanteAncora.WFL_PAPEL.Add(new WFL_PAPEL { PAPEL_NM = papel.PAPEL_NM, PAPEL_SGL = papel.PAPEL_SGL, PAPEL_TP_ID = papel.PAPEL_TP_ID }); contratanteAncora.WAC_PERFIL.Add(new Domain.Models.Perfil { PERFIL_DSC = "Administrador do Sistema", PERFIL_NM = "Administrador" }); contratanteAncora.WAC_PERFIL.Add(new Domain.Models.Perfil { PERFIL_DSC = "Usuário do Sistema", PERFIL_NM = "Usuário" }); return(contratanteAncora); }
/// <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 JsonResult ReceitaFederalCPF(string cpf, int contratante, string dataNascimento, int tipoFornecedor, int solicitacaoId) { string path = Server.MapPath("~/"); RoboReceitaCPF RoboCPF = new RoboReceitaCPF(); RoboCPF = RoboCPF.CarregaRoboCPF(cpf, dataNascimento, path); int UsuarioId = (int)Geral.PegaAuthTicket("UsuarioId"); try { //WFD_SOLICITACAO solicitacao = Db.WFD_SOLICITACAO.Include("WFD_SOL_CAD_PJPF").Include("WFD_PJPF_ROBO").FirstOrDefault(s => s.ID == solicitacaoId); SOLICITACAO solicitacao = _solicitacaoService.BuscarPorId(solicitacaoId); SolicitacaoCadastroFornecedor solForn = solicitacao.SolicitacaoCadastroFornecedor.First(); ROBO robo = solicitacao.ROBO.FirstOrDefault(); RoboCPF.GravaRoboCpf(RoboCPF, ref robo); //_solicitacaoService.Alterar(solicitacao); //_repositorios.roboBP.Inserir(robo); //Db.Entry(robo).State = EntityState.Modified; if (RoboCPF.Code < 100) { if (RoboCPF.Code == 1) { solForn.PJPF_TIPO = tipoFornecedor; solForn.NOME = RoboCPF.Data.Nome; solForn.CPF = cpf.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", ""); solForn.WFD_SOLICITACAO = solicitacao; //Db.Entry(solForn).State = EntityState.Modified; //_repositorios.solicitacaoCadastroPJPFBP.Alterar(solForn); } } ROBO_LOG entityLog = new ROBO_LOG() { COD_RETORNO = RoboCPF.Code, DATA = DateTime.Now, MENSAGEM = RoboCPF.Data.Message, ROBO = EnumRobo.ReceitaFederalPF.ToString(), //WFD_SOLICITACAO = solicitacao, CONTRATANTE_ID = contratante }; solicitacao.WFD_PJPF_ROBO_LOG.Add(entityLog); _solicitacaoService.Alterar(solicitacao); //_solicitacaoService.Dispose(); RoboCPF.SolicitacaoID = solicitacao.ID; } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } ViewBag.MensagemErro = "Erro ao tentar Incluir o Novo Fornecedor!"; throw; } catch (Exception ex) { ViewBag.MensagemErro = "Erro ao tentar Incluir o Novo Fornecedor!"; //dbContextTransaction.Rollback(); Log.Error(string.Format("Error ao executar o método ReceitaFederalCPF: {0}", ex)); } return(Json(RoboCPF)); }
public ActionResult Index(int solicitacaoID) { try { //TODO: Nelson Neto - RETIRAR OS COMENTÁRIOS //int idSolicitacao = 124; int solicitacaoTipoID = 1; int papelID = 1; var contratanteID = (int)Geral.PegaAuthTicket("ContratanteId"); ViewBag.Fluxo = solicitacaoTipoID; ViewBag.Bancos = _bancoBP.ListarTodosPorNome(); #region Ficha Cadastral FichaCadastralWebForLinkVM modelo = new FichaCadastralWebForLinkVM { DadosBancarios = new List <DadosBancariosVM>(), DadosContatos = new List <DadosContatoVM>(), SolicitacaoFornecedor = new SolicitacaoFornecedorVM { Documentos = new List <SolicitacaoDocumentosVM>() }, Aprovacao = new AprovacaoVM(), Solicitacao = new SolicitacaoVM { Fluxo = new FluxoVM() }, DadosBloqueio = new DadosBloqueioVM(), FornecedorRobo = new FornecedorRoboVM(), FornecedoresUnspsc = new List <FornecedorUnspscVM>() }; #region BPs SOLICITACAO solicitacao = _solicitacaoService.BuscarPorSolicitacaoId(solicitacaoID); if (solicitacao == null) { throw new Exception(string.Format("Solicitação com id {0} inexistente.", solicitacaoID)); } SolicitacaoCadastroFornecedor cadastroPJPF = solicitacao.SolicitacaoCadastroFornecedor.FirstOrDefault(); List <SolicitacaoModificacaoDadosBancario> cadastroBanco = solicitacao.SolicitacaoModificacaoDadosBancario.ToList(); List <SolicitacaoModificacaoDadosContato> cadastroContatos = solicitacao.SolicitacaoModificacaoDadosContato.ToList(); #endregion FichaCadastralWebForLinkVM fichaCadastralVM = new FichaCadastralWebForLinkVM() { ID = solicitacao.ID, ContratanteID = solicitacao.CONTRATANTE_ID, ContratanteFornecedorID = 0, NomeEmpresa = cadastroPJPF != null ? cadastroPJPF.RAZAO_SOCIAL : string.Empty, RazaoSocial = cadastroPJPF.RAZAO_SOCIAL, NomeFantasia = cadastroPJPF.NOME_FANTASIA, //CNAE = cadastroPJPF.CNAE, CNPJ_CPF = cadastroPJPF.CNPJ ?? cadastroPJPF.CPF, InscricaoEstadual = cadastroPJPF.INSCR_ESTADUAL, InscricaoMunicipal = cadastroPJPF.INSCR_MUNICIPAL, TipoLogradouro = cadastroPJPF.TP_LOGRADOURO, Endereco = cadastroPJPF.ENDERECO, Numero = cadastroPJPF.NUMERO, Complemento = cadastroPJPF.COMPLEMENTO, Cep = cadastroPJPF.CEP, Bairro = cadastroPJPF.BAIRRO, Cidade = cadastroPJPF.CIDADE, Estado = cadastroPJPF.UF, Pais = cadastroPJPF.PAIS, Observacao = cadastroPJPF.OBSERVACAO, TipoFornecedor = cadastroPJPF.PJPF_TIPO, DadosBancarios = cadastroBanco.Select(x => new DadosBancariosVM() { Agencia = x.AGENCIA, Digito = x.AG_DV, Banco = x.BANCO_ID, ContaCorrente = x.CONTA, ContaCorrenteDigito = x.CONTA_DV, NomeBanco = x.T_BANCO.BANCO_NM, }).ToList(), DadosContatos = cadastroContatos.Select(x => new DadosContatoVM() { Celular = x.CELULAR, ContatoID = x.CONTATO_PJPF_ID ?? 0, EmailContato = x.EMAIL, NomeContato = x.NOME, Telefone = x.TELEFONE }).ToList() }; #endregion List <QUESTIONARIO> questionarioList = _cadastroUnicoBP.BuscarPorIdContratante(contratanteID); foreach (QUESTIONARIO questionario in questionarioList) { List <QUESTIONARIO_ABA> abasQuestionario = questionario .QIC_QUEST_ABA .OrderBy(x => x.ORDEM) .ToList(); List <AbaVM> questionarioAbas = new List <AbaVM>(); foreach (QUESTIONARIO_ABA aba in abasQuestionario) { List <QUESTIONARIO_PERGUNTA> perguntasAba = aba .QIC_QUEST_ABA_PERG .OrderBy(x => x.ORDEM) .ToList(); List <PerguntaVM> abaPerguntas = new List <PerguntaVM>(); foreach (QUESTIONARIO_PERGUNTA pergunta in perguntasAba) { QUESTIONARIO_PAPEL papelPergunta = pergunta .QIC_QUEST_ABA_PERG_PAPEL .FirstOrDefault(x => x.PAPEL_ID == papelID); WFD_INFORM_COMPL resposta = pergunta .WFD_INFORM_COMPL .FirstOrDefault(x => x.PERG_ID == pergunta.ID); if (papelPergunta.LEITURA) { PerguntaVM perguntaVM = Mapper.Map <PerguntaVM>(pergunta); Mapper.Map <PerguntaVM>(papelPergunta); if (pergunta.TP_DADO == "DOMINIO" && pergunta.DOMINIO == true) { perguntaVM.DominioList = Mapper.Map <List <QUESTIONARIO_RESPOSTA>, List <SelectListItem> >(pergunta .QIC_QUEST_ABA_PERG_RESP .OrderBy(x => x.ORDEM).ToList()); perguntaVM.DominioList.Insert(0, new SelectListItem() { Value = "0", Text = "--Selecione", Selected = true }); perguntaVM.DominioListId = !string.IsNullOrEmpty(perguntaVM.Resposta) ? int.Parse(perguntaVM.Resposta) : 0; } if (pergunta.PERG_PAI != null) { int pergPai = pergunta.PERG_PAI ?? 0; WFD_INFORM_COMPL informaCompl = _informacaoComplementarBP.BuscarPorPerguntaId(pergPai); //TODO: Validar LEITURA ///Validar se pode ser desbloqueado por resposta do pai /// pelo papel /// pela resposta anterior perguntaVM.Leitura = informaCompl != null; perguntaVM.PaiRespondido = informaCompl != null ? informaCompl.PERG_ID : 0; } //perguntaVM.Leitura = papelPergunta. abaPerguntas.Add(perguntaVM); } } //Mapear Lista de aba com Modelo de aba AbaVM abaModelo = Mapper.Map <QUESTIONARIO_ABA, AbaVM>(aba); abaModelo.PerguntaList = abaPerguntas; questionarioAbas.Add(abaModelo); } //Mapear Lista de Questionários com Modelo de Questionários QuestionarioVM questionarioModelo = Mapper.Map <QUESTIONARIO, QuestionarioVM>(questionario); questionarioModelo.AbaList = questionarioAbas; fichaCadastralVM.Questionarios.QuestionarioDinamicoList.Add(questionarioModelo); } return(View(fichaCadastralVM)); } catch (Exception ex) { Log.Error(ex); ViewBag.Message = ex.Message; return(View(new FichaCadastralWebForLinkVM())); } }
public void IncluirFornecedorIndividual(string documento) { SolicitacaoCadastroFornecedor solicitacaoCadastroFornecedor = _solicitacaoCadastroRepository.Buscar(x => x.CNPJ == documento || x.CPF == documento); SOLICITACAO solicitacao = solicitacaoCadastroFornecedor.WFD_SOLICITACAO; ROBO roboFornecedor = solicitacaoCadastroFornecedor.WFD_PJPF_ROBO; Domain.Models.Fornecedor fornecedor = new Domain.Models.Fornecedor { CONTRATANTE_ID = solicitacao.CONTRATANTE_ID, TIPO_PJPF_ID = solicitacaoCadastroFornecedor.PJPF_TIPO, RAZAO_SOCIAL = solicitacaoCadastroFornecedor.RAZAO_SOCIAL, NOME_FANTASIA = solicitacaoCadastroFornecedor.NOME_FANTASIA, NOME = solicitacaoCadastroFornecedor.NOME, CNPJ = solicitacaoCadastroFornecedor.CNPJ, CPF = solicitacaoCadastroFornecedor.CPF, CNAE = solicitacaoCadastroFornecedor.CNAE, INSCR_ESTADUAL = solicitacaoCadastroFornecedor.INSCR_ESTADUAL, INSCR_MUNICIPAL = solicitacaoCadastroFornecedor.INSCR_MUNICIPAL, ENDERECO = solicitacaoCadastroFornecedor.ENDERECO, NUMERO = solicitacaoCadastroFornecedor.NUMERO, COMPLEMENTO = solicitacaoCadastroFornecedor.COMPLEMENTO, BAIRRO = solicitacaoCadastroFornecedor.BAIRRO, CIDADE = solicitacaoCadastroFornecedor.CIDADE, UF = solicitacaoCadastroFornecedor.UF, CEP = solicitacaoCadastroFornecedor.CEP, PAIS = solicitacaoCadastroFornecedor.PAIS, ATIVO = true, }; if (roboFornecedor != null && solicitacaoCadastroFornecedor.PJPF_TIPO != 2) { fornecedor.ROBO_ID = roboFornecedor.ID; } #region Unspsc foreach (var item in solicitacao.WFD_SOL_UNSPSC) { fornecedor.FornecedorServicoMaterialList.Add(new FORNECEDOR_UNSPSC { SOLICITACAO_ID = solicitacao.ID, UNSPSC_ID = item.UNSPSC_ID, DT_INCLUSAO = DateTime.Now, WFD_PJPF = fornecedor }); } #endregion WFD_CONTRATANTE_PJPF contratanteFornecedor = new WFD_CONTRATANTE_PJPF { CATEGORIA_ID = solicitacaoCadastroFornecedor.CATEGORIA_ID, CONTRATANTE_ID = solicitacao.CONTRATANTE_ID, PJPF_ID = fornecedor.ID, PJPF_COD_ERP = solicitacaoCadastroFornecedor.COD_PJPF_ERP, PJPF_STATUS_ID = 1, PJPF_STATUS_ID_SOL = solicitacao.ID, TP_PJPF = 2 }; #region Bancos foreach (var item in solicitacao.WFD_SOL_MOD_BANCO) { contratanteFornecedor.WFD_PJPF_BANCO.Add(new FORNECEDOR_BANCO { CONTRATANTE_PJPF_ID = contratanteFornecedor.ID, BANCO_ID = item.BANCO_ID, AGENCIA = item.AGENCIA, AG_DV = item.AG_DV, CONTA = item.CONTA, CONTA_DV = item.CONTA_DV, ATIVO = true, DATA_UPLOAD = item.DATA_UPLOAD, NOME_ARQUIVO = item.NOME_ARQUIVO, ARQUIVO_ID = item.ARQUIVO_ID }); } #endregion #region Endereços foreach (var solicitacaoModificacaoEndereco in solicitacao.WFD_SOL_MOD_ENDERECO) { contratanteFornecedor.WFD_PJPF_ENDERECO.Add(new FORNECEDOR_ENDERECO { BAIRRO = solicitacaoModificacaoEndereco.BAIRRO, CEP = solicitacaoModificacaoEndereco.CEP, CIDADE = solicitacaoModificacaoEndereco.CIDADE, COMPLEMENTO = solicitacaoModificacaoEndereco.COMPLEMENTO, ENDERECO = solicitacaoModificacaoEndereco.ENDERECO, NUMERO = solicitacaoModificacaoEndereco.NUMERO, PAIS = solicitacaoModificacaoEndereco.PAIS, T_UF = solicitacaoModificacaoEndereco.T_UF, TP_ENDERECO_ID = solicitacaoModificacaoEndereco.TP_ENDERECO_ID, UF = solicitacaoModificacaoEndereco.UF, CONTRATANTE_PJPF_ID = contratanteFornecedor.ID }); } #endregion #region Contatos foreach (var item in solicitacao.WFD_SOL_MOD_CONTATO) { contratanteFornecedor.WFD_PJPF_CONTATOS.Add(new FORNECEDOR_CONTATOS { CONTRAT_ORG_COMPRAS_ID = solicitacao.WFD_CONTRATANTE.WFD_CONTRATANTE_ORG_COMPRAS.First().ID, CONTRATANTE_PJPF_ID = contratanteFornecedor.ID, NOME = item.NOME, EMAIL = item.EMAIL, CELULAR = item.CELULAR, TELEFONE = item.TELEFONE }); } #endregion #region Documentos if (solicitacaoCadastroFornecedor.PJPF_TIPO != 2) { foreach (SOLICITACAO_DOCUMENTOS item in solicitacao.WFD_SOL_DOCUMENTOS) { if (item.ARQUIVO_ID != null) { contratanteFornecedor.WFD_PJPF_DOCUMENTOS.Add(new FORNECEDOR_DOCUMENTOS { CONTRATANTE_PJPF_ID = contratanteFornecedor.ID, ARQUIVO_ID = item.ARQUIVO_ID, DATA_VENCIMENTO = item.DATA_VENCIMENTO, DESCRICAO_DOCUMENTO_ID = item.DESCRICAO_DOCUMENTO_ID, LISTA_DOCUMENTO_ID = item.LISTA_DOCUMENTO_ID, OBRIGATORIO = item.OBRIGATORIO, EXIGE_VALIDADE = item.EXIGE_VALIDADE, PERIODICIDADE_ID = item.PERIODICIDADE_ID, SOLICITACAO_ID = solicitacao.ID, PJPF_ID = fornecedor.ID }); } } } #endregion #region Informações Complementares foreach (var item in solicitacao.WFD_INFORM_COMPL) { contratanteFornecedor.WFD_PJPF_INFORM_COMPL.Add(new FORNECEDOR_INFORM_COMPL { PERG_ID = item.PERG_ID, RESPOSTA = item.RESPOSTA, CONTRATANTE_PJPF_ID = contratanteFornecedor.ID }); } #endregion CONTRATANTE contratanteAncora = CriarContratante(documento, solicitacaoCadastroFornecedor); fornecedor.WFD_CONTRATANTE_PJPF.Add(contratanteFornecedor); contratanteAncora.WFD_CONTRATANTE_PJPF.Add(contratanteFornecedor); _fornecedorRepository.Inserir(fornecedor); _contratanteRepository.Inserir(contratanteAncora); _unitOfWork.Finalizar(); CriacaoUsuarioPadrao(documento, solicitacao.WFD_SOL_MOD_CONTATO.FirstOrDefault().EMAIL); }
public void PreencherFichaCadastral(SOLICITACAO solicitacao, FichaCadastralWebForLinkVM ficha, int TpPapel) { Contratante contratante = solicitacao.Contratante; SolicitacaoCadastroFornecedor solicitacaoCadastroPJPF = solicitacao.SolicitacaoCadastroFornecedor.First(); SolicitacaoFornecedorVM solicitacaoFornecedorVM = new SolicitacaoFornecedorVM(); ficha.TipoFornecedor = solicitacaoCadastroPJPF.PJPF_TIPO; ficha.ContratanteID = contratante.ID; ficha.CategoriaId = solicitacaoCadastroPJPF.CATEGORIA_ID; ficha.ContratanteFornecedorID = solicitacao.CONTRATANTE_ID; ficha.SolicitacaoID = solicitacao.ID; ficha.Categoria = new CategoriaFichaVM { Id = solicitacaoCadastroPJPF.CATEGORIA_ID, Nome = solicitacaoCadastroPJPF.WFD_PJPF_CATEGORIA.CODIGO, }; ficha.Solicitacao = new SolicitacaoVM { ID = solicitacao.ID, Fluxo = new FluxoVM { ID = solicitacao.FLUXO_ID } }; switch ((EnumTiposFornecedor)solicitacaoCadastroPJPF.PJPF_TIPO) { case EnumTiposFornecedor.EmpresaNacional: ficha.CNPJ_CPF = Convert.ToUInt64(solicitacaoCadastroPJPF.CNPJ).ToString(@"00\.000\.000\/0000\-00"); ficha.RazaoSocial = solicitacaoCadastroPJPF.RAZAO_SOCIAL; break; case EnumTiposFornecedor.EmpresaEstrangeira: ficha.RazaoSocial = solicitacaoCadastroPJPF.RAZAO_SOCIAL; break; case EnumTiposFornecedor.PessoaFisica: ficha.CNPJ_CPF = Convert.ToUInt64(solicitacaoCadastroPJPF.CPF).ToString(@"000\.000\.000\-00"); ficha.RazaoSocial = solicitacaoCadastroPJPF.NOME; break; } ficha.NomeFantasia = solicitacaoCadastroPJPF.NOME_FANTASIA; //ficha.CNAE = solicitacaoCadastroPJPF.CNAE; ficha.InscricaoEstadual = solicitacaoCadastroPJPF.INSCR_ESTADUAL; ficha.InscricaoMunicipal = solicitacaoCadastroPJPF.INSCR_MUNICIPAL; ficha.TipoLogradouro = solicitacaoCadastroPJPF.TP_LOGRADOURO; ficha.Endereco = solicitacaoCadastroPJPF.ENDERECO; ficha.Numero = solicitacaoCadastroPJPF.NUMERO; ficha.Complemento = solicitacaoCadastroPJPF.COMPLEMENTO; ficha.Cep = solicitacaoCadastroPJPF.CEP; ficha.Bairro = solicitacaoCadastroPJPF.BAIRRO; ficha.Cidade = solicitacaoCadastroPJPF.CIDADE; ficha.Estado = solicitacaoCadastroPJPF.UF; ficha.Pais = solicitacaoCadastroPJPF.PAIS; ficha.Observacao = solicitacaoCadastroPJPF.OBSERVACAO; //Mapear Dados Bancários var solicitacoesModBanco = solicitacao.SolicitacaoModificacaoDadosBancario.ToList(); ficha.DadosBancarios = solicitacoesModBanco.Any() ? Mapper.Map <List <SolicitacaoModificacaoDadosBancario>, List <DadosBancariosVM> >(solicitacoesModBanco) : new List <DadosBancariosVM>(); //Mapear Dados de Endereço var solicitacoesModEndereco = solicitacao.WFD_SOL_MOD_ENDERECO.ToList(); if (solicitacaoCadastroPJPF.PJPF_TIPO == 1) { ficha.DadosEnderecos = solicitacoesModEndereco.Any() ? Mapper.Map <List <SOLICITACAO_MODIFICACAO_ENDERECO>, List <DadosEnderecosVM> >(solicitacoesModEndereco) : new List <DadosEnderecosVM>(); } else { ficha.DadosEnderecos = solicitacoesModEndereco.Any() ? Mapper.Map <List <SOLICITACAO_MODIFICACAO_ENDERECO>, List <DadosEnderecosVM> >(solicitacoesModEndereco) : new List <DadosEnderecosVM> { new DadosEnderecosVM { } }; } //Mapear Dados Contatos var solicitacoesModContato = solicitacao.SolicitacaoModificacaoDadosContato.ToList(); ficha.DadosContatos = solicitacoesModContato.Any() ? Mapper.Map <List <SolicitacaoModificacaoDadosContato>, List <DadosContatoVM> >(solicitacoesModContato) : new List <DadosContatoVM> { new DadosContatoVM() }; if (solicitacao.WFD_SOL_MENSAGEM.Any()) { solicitacaoFornecedorVM.Assunto = solicitacao.WFD_SOL_MENSAGEM.First().ASSUNTO; solicitacaoFornecedorVM.Mensagem = solicitacao.WFD_SOL_MENSAGEM.First().MENSAGEM; } solicitacaoFornecedorVM.Fornecedores = new List <SolicitacaoFornecedoresVM>(); solicitacaoFornecedorVM.SolicitacaoCriacaoID = solicitacao.ID; solicitacaoFornecedorVM.Fornecedores = solicitacao.SolicitacaoCadastroFornecedor.Select(x => new SolicitacaoFornecedoresVM { NomeFornecedor = x.RAZAO_SOCIAL, CNPJ = x.CNPJ }).ToList(); ficha.SolicitacaoFornecedor = solicitacaoFornecedorVM; //Mapear os Documentos solicitacaoFornecedorVM.Documentos = Mapper.Map <List <SolicitacaoDeDocumentos>, List <SolicitacaoDocumentosVM> >(solicitacao.SolicitacaoDeDocumentos.ToList()); //Mapear UNSPSC ficha.FornecedoresUnspsc = Mapper.Map <List <SOLICITACAO_UNSPSC>, List <FornecedorUnspscVM> >(solicitacao.WFD_SOL_UNSPSC.ToList()); var papel = _papelService.BuscarPorContratanteETipoPapel(contratante.ID, TpPapel).ID; //Mapear Questionários ficha.Questionarios = new RetornoQuestionario <QuestionarioVM> { QuestionarioDinamicoList = Mapper.Map <List <QuestionarioDinamico>, List <QuestionarioVM> >( _cadastroUnicoBP.BuscarQuestionarioDinamico(new QuestionarioDinamicoFiltrosDTO() { //PapelId = papelAtual, UF = "RJ", ContratanteId = contratante.ID, PapelId = papel, CategoriaId = solicitacaoCadastroPJPF.CATEGORIA_ID, Alteracao = true, SolicitacaoId = solicitacao.ID }) ) }; ficha.ProrrogacaoPrazo = new ProrrogacaoPrazoVM(); if (solicitacao.WFD_SOLICITACAO_PRORROGACAO.Count > 0) { //Busca a ultima solicitacao de prorrogação, ou seja a ativa. ficha.ProrrogacaoPrazo = Mapper.Map <SOLICITACAO_PRORROGACAO, ProrrogacaoPrazoVM>(solicitacao.WFD_SOLICITACAO_PRORROGACAO.OrderBy(o => o.ID).LastOrDefault()); } ficha.ProrrogacaoPrazo.PrazoPreenchimento = _contratanteConfiguracaoService.BuscarPrazo(solicitacao); if (ficha.ProrrogacaoPrazo.Aprovado != null) { if ((bool)ficha.ProrrogacaoPrazo.Aprovado) { ficha.ProrrogacaoPrazo.Status = "Aprovado"; } else { ficha.ProrrogacaoPrazo.Status = "Reprovado"; } } else { ficha.ProrrogacaoPrazo.Status = "Aguardando Aprovação..."; } }
public bool FinalizarFichaCadastral(FichaCadastralWebForLinkVM model) { var preenchimentoValido = false; #region Validar Dados do Questionario Dinâmico List <WFD_INFORM_COMPL> informacoesComplementar = new List <WFD_INFORM_COMPL>(); if (model.Questionarios != null) { if (model.Questionarios.QuestionarioDinamicoList != null) { foreach (var questionario in model.Questionarios.QuestionarioDinamicoList) { foreach (var aba in questionario.AbaList) { foreach (var pergunta in aba.PerguntaList) { #region Validar se os campos obrigatórios estão preenchidos //if (pergunta.Obrigatorio) //{ // if (string.IsNullOrEmpty(pergunta.Resposta)) // { // ModelState.AddModelError("QuestionarioDinamicoValidation", string.Format("Campo {0} obrigatório!", pergunta.Titulo)); // } //} #endregion //if (ModelState.IsValid) //{ WFD_INFORM_COMPL infoCompleRespondida = new WFD_INFORM_COMPL() { SOLICITACAO_ID = model.Solicitacao.ID, PERG_ID = pergunta.Id, RESPOSTA = pergunta.Resposta }; switch (pergunta.TipoDado) { case "RadioButton": { if (pergunta.DominioListId != 0) { infoCompleRespondida.RESPOSTA = pergunta.DominioListId.ToString(); } } break; case "Checkbox": { string respostaIdentada = string.Empty; foreach (string resposta in pergunta.RespostaCheckbox) { if (!resposta.Equals("false")) { respostaIdentada = string.Concat(respostaIdentada, "^", resposta); } } if (!string.IsNullOrEmpty(respostaIdentada)) { infoCompleRespondida.RESPOSTA = respostaIdentada.Remove(0, 1); } } break; } informacoesComplementar.Add(infoCompleRespondida); //} } } } } } #endregion FORNECEDOR_CATEGORIA categoria = _fornecedorCategoriaService.BuscarPorId((int)model.CategoriaId); if (model.TipoFornecedor != 1) { if (model.DadosEnderecos == null || !model.DadosEnderecos.Any()) { ModelState.AddModelError("DadosEnderecoValidation", "Informar ao menos um Endereço!"); } else if (model.DadosEnderecos.Any(x => x.TipoEnderecoId == 0 || String.IsNullOrEmpty(x.Endereco) || String.IsNullOrEmpty(x.Numero) || String.IsNullOrEmpty(x.CEP))) { ModelState.AddModelError("DadosEnderecoValidation", "Dados incompletos no Endereço!"); } } if (!categoria.ISENTO_DADOSBANCARIOS && !model.ApenasSalvar) { if (!model.DadosBancarios.Any()) { ModelState.AddModelError("DadosBancariosValidation", "Informar ao menos um Dado Bancário!"); model.DadosBancarios.Add(new DadosBancariosVM()); } } else { //REMOVE AS CRITICAS DOS DADOS BANCARIOS CASO A CATEGORIA SEJA ISENTA while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("Banco")).Value != null) { ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("Banco"))); } while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("Agencia")).Value != null) { ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("Agencia"))); } while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("ContaCorrente")).Value != null) { ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("ContaCorrente"))); } while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("ContaCorrenteDigito")).Value != null) { ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("ContaCorrenteDigito"))); } } if (!categoria.ISENTO_CONTATOS && !model.ApenasSalvar) { if (model.DadosContatos == null || !model.DadosContatos.Any()) { ModelState.AddModelError("DadosContatosValidation", "Informar os Dados do Contato!"); model.DadosContatos = new List <DadosContatoVM>(); model.DadosContatos.Add(new DadosContatoVM()); } } else { //REMOVE AS CRITICAS DOS DADOS DE CONTATOS CASO A CATEGORIA SEJA ISENTA while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosContatos") && ms.Key.Contains("EmailContato")).Value != null) { ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosContatos") && ms.Key.Contains("EmailContato"))); } } if (!categoria.ISENTO_DOCUMENTOS && !model.ApenasSalvar && model.TipoFornecedor != 2) { List <SolicitacaoDocumentosVM> docsObrigatorios = model.SolicitacaoFornecedor.Documentos.Where(x => x.Obrigatorio == true && x.ArquivoSubido == null).ToList(); if (docsObrigatorios.Any()) { ModelState.AddModelError("AnexosValidation", "Favor subir os arquivos dos documentos Exigíveis!"); } } ModelState.Remove("SolicitacaoFornecedor.Assunto"); ModelState.Remove("SolicitacaoFornecedor.DescricaoSolicitacao"); ModelState.Remove("SolicitacaoFornecedor.Mensagem"); ModelState.Remove("SolicitacaoFornecedor.DadosEnderecos.T_UF.UF_NM"); int tipoPapel = model.TipoPreenchimento.Equals((int)EnumTiposPreenchimento.Fornecedor) ? (int)EnumTiposPapel.Fornecedor : (int)EnumTiposPapel.Solicitante; int papelAtual = _papelService.BuscarPorContratanteETipoPapel(model.ContratanteID, tipoPapel).ID; foreach (var modeloErrado in ModelState.Values) { if (modeloErrado.Errors.Count != 0) { } } if (ModelState.IsValid) { try { SolicitacaoCadastroFornecedor solicitacaoCadastroFornecedor = _solicitacaoCadastroFornecedorService.BuscarPorSolicitacaoId(model.Solicitacao.ID); CompletarSolicitacaoCadastroPJPF(ref solicitacaoCadastroFornecedor, model); _solicitacaoCadastroFornecedorService.AtualizarSolicitacao(solicitacaoCadastroFornecedor); ManterDadosBancarios(model.DadosBancarios.Where(w => w.Banco != null && w.Agencia != null && w.ContaCorrente != null).ToList(), model.Solicitacao.ID, model.ContratanteID); ManterDadosContatos(model.DadosContatos.Where(w => w.EmailContato != null).ToList(), solicitacaoCadastroFornecedor.SOLICITACAO_ID); ManterDadosEnderecos(model.DadosEnderecos.Where(x => x.TipoEnderecoId > 0).ToList(), solicitacaoCadastroFornecedor.SOLICITACAO_ID); ManterUnspsc(model.FornecedoresUnspsc.ToList(), model.Solicitacao.ID); if (model.TipoFornecedor != (int)EnumTiposFornecedor.EmpresaEstrangeira) { ManterDocumentos(model.SolicitacaoFornecedor.Documentos, model.Solicitacao.ID, model.ContratanteID); } _informacaoComplementarService.InsertAll(informacoesComplementar); model.ProrrogacaoPrazo = new ProrrogacaoPrazoVM(); if (solicitacaoCadastroFornecedor.WFD_SOLICITACAO.WFD_SOLICITACAO_PRORROGACAO.Any()) { //Busca a ultima solicitacao de prorrogação, ou seja a ativa. model.ProrrogacaoPrazo = ProrrogacaoPrazoVM.ToViewModel(solicitacaoCadastroFornecedor.WFD_SOLICITACAO.WFD_SOLICITACAO_PRORROGACAO.OrderBy(o => o.ID).LastOrDefault()); } model.ProrrogacaoPrazo.PrazoPreenchimento = _contratanteConfiguracaoService.BuscarPrazo(solicitacaoCadastroFornecedor.WFD_SOLICITACAO); if (model.ProrrogacaoPrazo.Aprovado != null) { if ((bool)model.ProrrogacaoPrazo.Aprovado) { model.ProrrogacaoPrazo.Status = "Aprovado"; } else { model.ProrrogacaoPrazo.Status = "Reprovado"; } } else { model.ProrrogacaoPrazo.Status = "Aguardando Aprovação..."; } if (!model.ApenasSalvar) { _tramite.AtualizarTramite(model.ContratanteID, model.Solicitacao.ID, model.Solicitacao.Fluxo.ID, papelAtual, (int)EnumStatusTramite.Aprovado, null); ViewBag.MensagemSucesso = "Dados Enviados com Sucesso!"; ViewBag.StatusTramite = (int)EnumStatusTramite.Aprovado; } else { ViewBag.MensagemSucesso = "Dados Salvos com Sucesso!"; ViewBag.StatusTramite = (int)EnumStatusTramite.Aguardando; } preenchimentoValido = true; } catch (Exception e) { ViewBag.MensagemErro = "Erro ao tentar Salvar a ficha cadastral!"; ViewBag.StatusTramite = (int)EnumStatusTramite.Aguardando; Log.Error(e); } } else { ViewBag.MensagemErro = "Não foi possível enviar a Ficha Cadastral! Existem dados incompletos abaixo."; ViewBag.StatusTramite = (int)EnumStatusTramite.Aguardando; } model.Questionarios = new RetornoQuestionario <QuestionarioVM> { QuestionarioDinamicoList = Mapper.Map <List <QuestionarioDinamico>, List <QuestionarioVM> >( _cadastroUnicoBP.BuscarQuestionarioDinamico(new QuestionarioDinamicoFiltrosDTO() { //PapelId = papelAtual, UF = "RJ", ContratanteId = model.ContratanteID, PapelId = papelAtual, CategoriaId = categoria.ID, Alteracao = true, SolicitacaoId = model.Solicitacao.ID }) ) }; PersistirDadosEnderecoEmMemoria(); return(preenchimentoValido); }
public JsonResult ReceitaFederalCNPJ(string cnpj, int contratante, int tipoFornecedor, int solicitacaoId) { string path = Server.MapPath("~/"); RoboReceitaCNPJ roboCNPJ = new RoboReceitaCNPJ(); roboCNPJ = roboCNPJ.CarregaRoboCNPJ(cnpj, path); try { SOLICITACAO solicitacao = _solicitacaoService.BuscarPorId(solicitacaoId); SolicitacaoCadastroFornecedor solForn = solicitacao.SolicitacaoCadastroFornecedor.First(); ROBO robo = solicitacao.ROBO.FirstOrDefault(); roboCNPJ.GravaRoboReceita(roboCNPJ, ref robo); //_solicitacaoService.Alterar(solicitacao); //Db.Entry(robo).State = EntityState.Modified; //_repositorios.roboBP.Alterar(robo); if (roboCNPJ.Code < 100) { if (roboCNPJ.Code == 1) { solForn.PJPF_TIPO = tipoFornecedor; solForn.RAZAO_SOCIAL = roboCNPJ.Data.RazaoSocial; solForn.NOME_FANTASIA = roboCNPJ.Data.NomeFantasia; if (roboCNPJ.Data.AtividadeEconomicaPrincipal.Length > 10 && !roboCNPJ.Data.AtividadeEconomicaPrincipal.Contains("*")) { solForn.CNAE = roboCNPJ.Data.AtividadeEconomicaPrincipal.Substring(0, 10).Replace(".", "").Replace("-", ""); } solForn.CNPJ = cnpj.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", "");; solForn.ENDERECO = roboCNPJ.Data.Logradouro; solForn.NUMERO = roboCNPJ.Data.Numero; solForn.COMPLEMENTO = roboCNPJ.Data.Complemento; solForn.CEP = roboCNPJ.Data.CEP; solForn.BAIRRO = roboCNPJ.Data.Bairro; solForn.CIDADE = roboCNPJ.Data.Municipio; solForn.UF = roboCNPJ.Data.UF; //Db.Entry(solForn).State = EntityState.Modified; //_repositorios.solicitacaoCadastroPJPFBP.Alterar(solForn); } } ROBO_LOG entityLog = new ROBO_LOG() { COD_RETORNO = roboCNPJ.Code, DATA = DateTime.Now, MENSAGEM = roboCNPJ.Data.Message, ROBO = EnumRobo.ReceitaFederal.ToString(), CONTRATANTE_ID = contratante }; solicitacao.WFD_PJPF_ROBO_LOG.Add(entityLog); _solicitacaoService.Alterar(solicitacao); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } ViewBag.MensagemErro = "Erro ao tentar Incluir o Novo Fornecedor!"; throw; } catch (Exception ex) { ViewBag.MensagemErro = "Erro ao tentar Incluir o Novo Fornecedor!"; Log.Error(string.Format("Error ao executar o método ReceitaFederalCNPJ: {0}", ex)); } return(Json(roboCNPJ)); }
public ActionResult FornecedoresExpandirFrm(FichaCadastralWebForLinkVM model, int Empresa, int Organizacao, int FluxoID, int[] DocumentoID, string[] NomeDocumento, int?[] ArquivoID, int[] BancoOrdem, int[] BancoID, int[] Banco, string[] Agencia, string[] Digito, string[] ContaCorrente, string[] ContaCorrenteDigito, int?UsarContato, int[] ContatoID, string[] NomeContato, string[] Email, string[] Telefone, string[] Celular) { int?usuarioId = (int?)Geral.PegaAuthTicket("UsuarioId"); List <int> contratantesForn = Db.WFD_CONTRATANTE_PJPF.Where(c => c.PJPF_ID == model.ID).Select(cc => cc.CONTRATANTE_ID).ToList(); List <Contratante> contratantes = Db.Contratante.Where(c => c.WFD_USUARIO1.Any(u => u.ID == usuarioId) && !contratantesForn.Contains(c.ID)).ToList(); int contID = contratantes.FirstOrDefault(c => c.ID == Empresa).ID; ViewBag.Empresa = new SelectList(contratantes, "ID", "RAZAO_SOCIAL", Empresa); ViewBag.Organizacao = new SelectList(_organizacaoComprasBP.ListarTodosPorIdContratante(contID), "ID", "ORG_COMPRAS_DSC"); ViewBag.Bancos = _bancoBP.ListarTodosPorNome(); ViewBag.EscolherContato = true; ViewBag.UsarContato = UsarContato; model.Expansao = new ExpansaoVM(); model.Solicitacao = new SolicitacaoVM { Fluxo = new FluxoVM { ID = FluxoID } }; if (UsarContato == null) { ModelState.AddModelError("ContatosValidation", "Informe contato que deseja utilizar!"); } //VERIFICA DADOS DE CONTATOS model.DadosContatos = new List <DadosContatoVM>(); for (int i = 0; i < ContatoID.Length; i++) { model.DadosContatos.Add(new DadosContatoVM { ContatoID = ContatoID[i], NomeContato = (i < NomeContato.Length) ? NomeContato[i] : "", EmailContato = (i < Email.Length) ? Email[i] : "", Telefone = (i < Telefone.Length) ? Telefone[i] : "", Celular = (i < Celular.Length) ? Celular[i] : "", }); if (ContatoID[i] == UsarContato) { if (string.IsNullOrEmpty(Email[i])) { ModelState.AddModelError("ContatosValidation", "Informe o email!"); } } } // VERIFICA DADOS BANCARIOS bool dadosBancariosCompleto = true; model.DadosBancarios = new List <DadosBancariosVM>(); for (int i = 0; i < Banco.Length; i++) { bool temDadosBancario = false; if ((Banco[i] != 0)) { temDadosBancario = true; } if ((!string.IsNullOrEmpty(Agencia[i]))) { temDadosBancario = true; } if ((!string.IsNullOrEmpty(Digito[i]))) { temDadosBancario = true; } if ((!string.IsNullOrEmpty(ContaCorrente[i]))) { temDadosBancario = true; } if ((!string.IsNullOrEmpty(ContaCorrenteDigito[i]))) { temDadosBancario = true; } model.DadosBancarios.Add(new DadosBancariosVM { BancoSolicitacaoID = BancoID[i], Banco = (i < Banco.Length) ? Banco[i] : 0, Agencia = (i < Agencia.Length) ? Agencia[i] : "", Digito = (i < Digito.Length) ? Digito[i] : "", ContaCorrente = (i < ContaCorrente.Length) ? ContaCorrente[i] : "", ContaCorrenteDigito = (i < ContaCorrenteDigito.Length) ? ContaCorrenteDigito[i] : "" }); if (temDadosBancario) { if ((Banco[i] == 0)) { dadosBancariosCompleto = false; } if ((string.IsNullOrEmpty(Agencia[i]))) { dadosBancariosCompleto = false; } if (Agencia[i].Length < 4) { dadosBancariosCompleto = false; } if ((string.IsNullOrEmpty(ContaCorrente[i]))) { dadosBancariosCompleto = false; } } } if (!dadosBancariosCompleto) { ModelState.AddModelError("DadosBancariosValidation", "Dado Bancário Incompleto!"); } if (model.DadosBancarios.Count == 0) { ModelState.AddModelError("DadosBancariosValidation", "Informe ao menos um Dado Bancário!"); } //VERIFICA ANEXOS model.SolicitacaoFornecedor = new SolicitacaoFornecedorVM() { Solicitacao = false, Documentos = new List <SolicitacaoDocumentosVM>() }; if (DocumentoID != null) { for (int i = 0; i < DocumentoID.Length; i++) { SolicitacaoDocumentosVM solicitacaoDocumentosvm = new SolicitacaoDocumentosVM() { ID = DocumentoID[i], Documento = NomeDocumento[i], ArquivoID = ArquivoID[i] }; model.SolicitacaoFornecedor.Documentos.Add(solicitacaoDocumentosvm); } } ModelState.Remove("SolicitacaoFornecedor.Assunto"); ModelState.Remove("SolicitacaoFornecedor.DescricaoSolicitacao"); if (ModelState.IsValid) { try { WFD_CONTRATANTE_PJPF fornecedor = Db.WFD_CONTRATANTE_PJPF.Include("Fornecedor") .Include("WFD_PJPF_CATEGORIA") .FirstOrDefault(f => f.PJPF_ID == model.ID && f.CONTRATANTE_ID == model.ContratanteFornecedorID); string codigoCategoria = fornecedor.WFD_PJPF_CATEGORIA.CODIGO; FORNECEDOR_CATEGORIA categoria = Db.WFD_PJPF_CATEGORIA.FirstOrDefault(c => c.CONTRATANTE_ID == Empresa && c.CODIGO == codigoCategoria); SOLICITACAO solicitacao = new SOLICITACAO(); PopularSolicitacaoEmAprovacao(Empresa, model.ID, usuarioId, FluxoID, solicitacao); Db.Entry(solicitacao).State = EntityState.Added; Db.SaveChanges(); SolicitacaoCadastroFornecedor solforn = new SolicitacaoCadastroFornecedor { SOLICITACAO_ID = solicitacao.ID, EhExpansao = true, EXPANSAO_PARA_CONTR_ID = Empresa, CATEGORIA_ID = categoria.ID, ORG_COMPRAS_ID = Organizacao }; for (int i = 0; i < BancoID.Length; i++) { solforn.WFD_SOLICITACAO.SolicitacaoModificacaoDadosBancario.Add( new SolicitacaoModificacaoDadosBancario() { BANCO_PJPF_ID = BancoID[i] != 0 ? (int?)BancoID[i] : null, BANCO_ID = (Banco[i] != 0) ? Banco[i] : 0, AGENCIA = (string.IsNullOrEmpty(Agencia[i]) || String.IsNullOrWhiteSpace(Agencia[i])) ? null : Agencia[i], AG_DV = (string.IsNullOrEmpty(Digito[i]) || String.IsNullOrWhiteSpace(Digito[i])) ? null : Digito[i], CONTA = (string.IsNullOrEmpty(ContaCorrente[i]) || String.IsNullOrWhiteSpace(ContaCorrente[i])) ? null : ContaCorrente[i], CONTA_DV = (string.IsNullOrEmpty(ContaCorrenteDigito[i]) || String.IsNullOrWhiteSpace(ContaCorrenteDigito[i])) ? null : ContaCorrenteDigito[i] }); } for (int i = 0; i < ContatoID.Length; i++) { if (ContatoID[i] == UsarContato) { solforn.WFD_SOLICITACAO.SolicitacaoModificacaoDadosContato.Add(new SolicitacaoModificacaoDadosContato { EMAIL = Email[i], NOME = NomeContato[i], TELEFONE = Mascara.RemoverMascaraTelefone(Telefone[i]), CELULAR = Celular[i] }); } } solforn.OBSERVACAO = model.Observacao; Db.Entry(solforn).State = EntityState.Added; Db.SaveChanges(); _tramite.AtualizarTramite(Empresa, solicitacao.ID, FluxoID, 1, 2, null); return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = string.Format("Solicitação {0} de Expansão realizado com Sucesso!", solicitacao.ID) })); } catch (Exception ex) { Log.Error(ex); } } return(View(model)); }