public FichaCadastralWebForLinkVM(bool exibeTudo)
 {
     AprovacaoProrrogacao  = new AprovacaoPrazoVM();
     ReprovacaoProrrogacao = new ReprovacaoPrazoVM();
     MensagemImportacao    = new MensagemImportacaoVM();
     TipoFuncionalidade    = new EnumTiposFuncionalidade();
     PreCadastroEnum       = new CasosPreCadastroEnum();
     ProrrogacaoPrazo      = new ProrrogacaoPrazoVM();
     DadosBloqueio         = new DadosBloqueioVM();
     Aprovacao             = new AprovacaoVM();
     SolicitacaoFornecedor = new SolicitacaoFornecedorVM();
     Solicitacao           = new SolicitacaoVM();
     Bloqueio              = new BloqueioVM();
     Desbloqueio           = new DesbloqueioVM();
     Expansao              = new ExpansaoVM();
     FornecedorRobo        = new FornecedorRoboVM();
     PrazoEntrega          = new PrazoEntregaVM();
     Questionarios         = new RetornoQuestionario <QuestionarioVM>();
     Categoria             = new CategoriaFichaVM();
     DadosBancarios        = new List <DadosBancariosVM>();
     DadosEnderecos        = new List <DadosEnderecosVM>();
     DadosContatos         = new List <DadosContatoVM>();
     BancoList             = new List <SelectListItem>();
     SolicitacaoDocumentos = new List <SolicitacaoDocumentosVM>();
     ServicosMateriais     = new List <ServicoMaterialVM>();
     FornecedoresUnspsc    = new List <FornecedorUnspscVM>();
     Documentos            = new List <DocumentosPJPFVM>();
     Contratantes          = new List <ContratantesVM>();
 }
        public ActionResult CancelarDocumentos(int fornecedorID, int contratanteID)
        {
            var pjpf = _fornecedorDocumentoService.BuscarPorPJPFId(fornecedorID);

            var documentos = pjpf.WFD_CONTRATANTE_PJPF.FirstOrDefault(c => c.CONTRATANTE_ID == contratanteID).WFD_PJPF_DOCUMENTOS.ToList();
            var solicitacaoFornecedorVM = new SolicitacaoFornecedorVM();

            solicitacaoFornecedorVM.Documentos = Mapper.Map <List <DocumentosDoFornecedor>, List <SolicitacaoDocumentosVM> >(documentos);

            return(PartialView("_FichaCadastral_Anexos", solicitacaoFornecedorVM));
        }
 public FichaCadastralWebForLinkVM(int idSolicitacao, AprovacaoVM aprovacao)
 {
     Aprovacao             = aprovacao;
     DadosBancarios        = new List <DadosBancariosVM>();
     DadosContatos         = new List <DadosContatoVM>();
     FornecedorRobo        = new FornecedorRoboVM();
     ProrrogacaoPrazo      = new ProrrogacaoPrazoVM();
     SolicitacaoFornecedor = new SolicitacaoFornecedorVM
     {
         Solicitacao          = true,
         SolicitacaoCriacaoID = idSolicitacao,
         Documentos           = new List <SolicitacaoDocumentosVM>(),
     };
     Solicitacao = new SolicitacaoVM
     {
         Fluxo = new FluxoVM()
     };
 }
 public FichaCadastralWebForLinkVM(int idSolicitacao)
 {
     DadosBancarios        = new List <DadosBancariosVM>();
     DadosContatos         = new List <DadosContatoVM>();
     DadosEnderecos        = new List <DadosEnderecosVM>();
     SolicitacaoFornecedor = new SolicitacaoFornecedorVM
     {
         Documentos           = new List <SolicitacaoDocumentosVM>(),
         SolicitacaoCriacaoID = idSolicitacao
     };
     Aprovacao   = new AprovacaoVM();
     Solicitacao = new SolicitacaoVM {
         Fluxo = new FluxoVM()
     };
     DadosBloqueio      = new DadosBloqueioVM();
     FornecedorRobo     = new FornecedorRoboVM();
     FornecedoresUnspsc = new List <FornecedorUnspscVM>();
 }
示例#5
0
        public ActionResult EnviarSolicitacao(string chaveUrl, string nomeContato, string emailContato, int contratanteId, string documentoPfPj)
        {
            int solicitacaoId           = 0;
            var solicitacaoFornecedorVM = new SolicitacaoFornecedorVM();

            try
            {
                if (!string.IsNullOrEmpty(chaveUrl))
                {
                    List <ParametroCriptografia> param = Cripto.DescriptografarUrl(chaveUrl, Key);
                    Int32.TryParse(param.First(p => p.Name == "SolicitacaoID").Value, out solicitacaoId);
                }
                if (solicitacaoId > 0)
                {
                    ViewBag.TipoDocumentos      = new SelectList(_tipoDocumentoService.ListarPorIdContratante(contratanteId), "ID", "DESCRICAO");
                    ViewBag.DescricaoDocumentos = new SelectList(new List <DescricaoDeDocumentos>(), "ID", "DESCRICAO");

                    solicitacaoFornecedorVM.SolicitacaoCriacaoID   = solicitacaoId;
                    solicitacaoFornecedorVM.ContratanteSelecionado = contratanteId;
                    solicitacaoFornecedorVM.Fornecedor             = new SolicitacaoFornecedoresVM
                    {
                        CNPJ = documentoPfPj
                    };

                    PopularSolicitacaoCadastroPJPF((int)Geral.PegaAuthTicket("ContratanteId"), solicitacaoFornecedorVM);

                    ViewBag.PassoAtual = 3;
                }

                return(View(solicitacaoFornecedorVM));
            }
            catch (Exception e)
            {
                Log.Error(e);
            }

            return(View());
        }
        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...";
            }
        }
示例#7
0
        public SolicitacaoFornecedorVM PopularSolicitacaoCadastroPJPF(int contratanteId, SolicitacaoFornecedorVM modelo)
        {
            var solicitacao = _solicitacaoService.BuscarPorIdComDocumentos((int)modelo.SolicitacaoCriacaoID);
            var solforn     = solicitacao.SolicitacaoCadastroFornecedor.FirstOrDefault();
            var configEmail = _configuracaoEmailContratanteService.BuscarPorContratanteETipo(contratanteId, 1);

            modelo.Fornecedor.ID             = solforn.ID;
            modelo.Fornecedor.NomeFornecedor = solforn.PJPF_TIPO == 1 ? solforn.RAZAO_SOCIAL : solforn.NOME;
            modelo.Fornecedor.CNPJ           = solforn.PJPF_TIPO == 1 ? solforn.CNPJ : solforn.CPF;
            modelo.Documentos = solicitacao.SolicitacaoDeDocumentos.Select(x => new SolicitacaoDocumentosVM
            {
                ID = x.DESCRICAO_DOCUMENTO_ID,
                ListaDocumentosID    = x.LISTA_DOCUMENTO_ID,
                DescricaoDocumentoId = x.DESCRICAO_DOCUMENTO_ID,
                GrupoDocumento       = x.DescricaoDeDocumentos.TipoDeDocumento.DESCRICAO,
                Documento            = x.DescricaoDeDocumentos.DESCRICAO,
                PorValidade          = x.LISTA_DOCUMENTO_ID != null ? x.ListaDeDocumentosDeFornecedor.EXIGE_VALIDADE : false
            }).ToList();
            modelo.Assunto    = configEmail.ASSUNTO;
            modelo.Mensagem   = configEmail.CORPO;
            modelo.PassoAtual = 3;

            return(modelo);
        }
示例#8
0
        public ActionResult EnviarSolicitacao(SolicitacaoFornecedorVM model, string Email)
        {
            var solicitacao = _solicitacaoService.BuscarPorIdComDocumentos((int)model.SolicitacaoCriacaoID);
            var cadForn     = solicitacao.SolicitacaoCadastroFornecedor.FirstOrDefault();

            ViewBag.PassoAtual = model.PassoAtual;

            if (!solicitacao.SolicitacaoDeDocumentos.Any())
            {
                ModelState.AddModelError("", "Não é possível enviar a solicitação sem a lista de Documentos");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    SOLICITACAO_MENSAGEM solicitacaoMensagem = new SOLICITACAO_MENSAGEM
                    {
                        SOLICITACAO_ID = (int)model.SolicitacaoCriacaoID,
                        ASSUNTO        = model.Assunto,
                        MENSAGEM       = model.Mensagem,
                        DT_ENVIO       = DateTime.Now,
                    };

                    foreach (var item in solicitacao.SolicitacaoDeDocumentos)
                    {
                        item.WFD_SOL_MENSAGEM = solicitacaoMensagem;
                    }
                    _solicitacaoMensagemService.InserirMensagem(solicitacaoMensagem, solicitacao.SolicitacaoDeDocumentos.ToList());
                }
                catch
                {
                    ModelState.AddModelError("", "Erro ao tentar salvar a Solicitação de Documentos. A solicitação não foi enviada!");
                    return(View(model));
                }
                //se não for primeiro acesso enviar para tela de acesso
                string url = Url.Action("Index", "Home", new
                {
                    chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}&Login={1}&TravaLogin=1", model.SolicitacaoCriacaoID, model.Fornecedor.CNPJ), Key)
                }, Request.Url.Scheme);

                bool emailEnviadoComSucesso = false;

                _solicitacaoContatoService.ListarPorSolicitacaoId((int)model.SolicitacaoCriacaoID)
                .ForEach(x =>
                {
                    //se for primeiro acesso enviar para criação de usuário
                    #region BuscarPorEmail
                    //validar se o e-mail já existe na tabela de Usuarios
                    if (!_usuarioService.ValidarPorCnpj(model.Fornecedor.CNPJ))
                    {
                        url = Url.Action("CadastrarUsuarioFornecedor", "Home", new
                        {
                            chaveurl = Cripto.Criptografar(string.Format("Login={0}&SolicitacaoID={1}&Email={2}",
                                                                         model.Fornecedor.CNPJ,
                                                                         model.SolicitacaoCriacaoID,
                                                                         x.EMAIL), Key)
                        }, Request.Url.Scheme);
                    }
                    #endregion
                    string mensagem        = string.Concat(model.Mensagem, "<p><a href='", url, "'>Link</a>:", url, "</p>");
                    emailEnviadoComSucesso = _metodosGerais.EnviarEmail(x.EMAIL, model.Assunto, mensagem);
                });
                if (!emailEnviadoComSucesso)
                {
                    return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = "As tentativas de envio de e-mail falharam, favor reenviar a solicitação através da tela de acompanhamento." }));
                }

                return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = string.Format("Solicitação Nº {0} enviada ao Fornecedor com sucesso!", model.SolicitacaoCriacaoID) }));
            }

            return(View(model));
        }