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 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>();
 }
        public ActionResult AprovacaoLst(int?Pagina, string MensagemSucesso)
        {
            int pagina = Pagina ?? 1;

            ViewBag.Pagina          = pagina;
            ViewBag.MensagemSucesso = MensagemSucesso ?? "";

            int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId");

            int[] papeis = _papelService.EmpilharPorUsuarioId(usuarioId);

            string chave = Path.GetRandomFileName().Replace(".", "");

            var lstWfdSolicitacao = _solicitacaoService.BuscarPesquisa(
                x => x.WFD_SOLICITACAO_TRAMITE.Any(y => papeis.Contains(y.PAPEL_ID) && y.SOLICITACAO_STATUS_ID == 1),
                TamanhoPagina,
                pagina,
                x => x.ID);

            List <AprovacaoVM> lstAprovacaoVM = new List <AprovacaoVM>();

            try
            {
                if (lstWfdSolicitacao.RegistrosPagina.Any())
                {
                    foreach (SOLICITACAO item in lstWfdSolicitacao.RegistrosPagina)
                    {
                        foreach (var tramite in item.WFD_SOLICITACAO_TRAMITE.Where(x => papeis.Contains(x.PAPEL_ID) && x.SOLICITACAO_STATUS_ID == 1))
                        {
                            AprovacaoVM aprovacaoVM = new AprovacaoVM
                            {
                                Solicitacao          = new SOLICITACAO(),
                                Solicitacao_Tramites = new List <SOLICITACAO_TRAMITE>(),
                                Fornecedor           = new SolicitacaoCadastroFornecedor(),
                                FluxoId             = item.FLUXO_ID,
                                Contratante_ID      = item.CONTRATANTE_ID,
                                NomeContratante     = item.Contratante.RAZAO_SOCIAL,
                                Solicitacao_Dt_Cria = item.SOLICITACAO_DT_CRIA,
                                Login               = item.Usuario != null ? item.Usuario.NOME : null,
                                IdSolicitacao       = item.ID,
                                NomeSolicitacao     = item.Fluxo.FLUXO_NM,
                                Solicitacao_Tramite = tramite
                            };

                            if (item.CadastroFornecedor(item))
                            {
                                if (item.SolicitacaoCadastroFornecedor != null)
                                {
                                    aprovacaoVM.NomeFornecedor = item.SolicitacaoCadastroFornecedor.First().PJPF_TIPO != 3
                                        ? item.SolicitacaoCadastroFornecedor.First().RAZAO_SOCIAL
                                        : item.SolicitacaoCadastroFornecedor.First().NOME;
                                }
                                else
                                {
                                    aprovacaoVM.NomeFornecedor = item.FORNECEDORBASE.PJPF_TIPO != 3
                                        ? item.FORNECEDORBASE.RAZAO_SOCIAL
                                        : item.FORNECEDORBASE.NOME;
                                }
                            }
                            else
                            if (item.Fornecedor != null)
                            {
                                aprovacaoVM.NomeFornecedor = item.Fornecedor.TIPO_PJPF_ID == 3
                                    ? item.Fornecedor.NOME
                                    : item.Fornecedor.RAZAO_SOCIAL;
                            }
                            else
                            {
                                aprovacaoVM.NomeFornecedor = item.FORNECEDORBASE.PJPF_TIPO != 3
                                    ? item.FORNECEDORBASE.RAZAO_SOCIAL
                                    : item.FORNECEDORBASE.NOME;
                            }

                            aprovacaoVM.UrlAprovacao = Url.Action("AprovacaoFrm", "Aprovacao", new { chaveurl = Cripto.Criptografar(string.Format("idSolicitacao={0}&idSolicitacaoTipo={1}&idPapel={2}", aprovacaoVM.IdSolicitacao.ToString(), aprovacaoVM.FluxoId.ToString(), tramite.PAPEL_ID, chave), Key) }, Request.Url.Scheme);

                            lstAprovacaoVM.Add(aprovacaoVM);
                        }
                    }
                    ViewBag.TotalPaginas   = lstWfdSolicitacao.TotalPaginas;
                    ViewBag.TotalRegistros = lstWfdSolicitacao.TotalRegistros;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", "Erro ao buscar as solicitações");
                return(View());
            }

            return(View(lstAprovacaoVM));
        }
        public void ListarGridAcompanhamento(List <AprovacaoVM> lstAprovacaoVM, SOLICITACAO item)
        {
            var cnpjAprovacao  = string.Empty;
            var etapaAprovacao = string.Empty;



            string etapa;

            SOLICITACAO_TRAMITE tramite = item.WFD_SOLICITACAO_TRAMITE
                                          .LastOrDefault(x => x.SOLICITACAO_ID == item.ID);

            if (tramite != null)
            {
                etapa = item.SOLICITACAO_STATUS_ID != (int)EnumStatusTramite.Concluido
                    ? tramite.Papel.PAPEL_NM
                    : item.WFD_SOLICITACAO_STATUS.NOME;
            }
            else
            {
                etapa = item.WFD_SOLICITACAO_STATUS.NOME;
            }

            var aprovacaoVM = new AprovacaoVM(item.ID, item.FLUXO_ID, item.Fluxo.FLUXO_NM);

            aprovacaoVM.Fornecedor =

                !item.SolicitacaoCadastroFornecedor.Any()
                ? null
                : item.SolicitacaoCadastroFornecedor.First();

            if (aprovacaoVM.Fornecedor != null)
            {
                aprovacaoVM.GrupoContas = item.SolicitacaoCadastroFornecedor.FirstOrDefault().WFD_PJPF_CATEGORIA.DESCRICAO;
            }
            else if (item.SolicitacaoCadastroFornecedor.FirstOrDefault() != null)
            {
                aprovacaoVM.GrupoContas = item.Fornecedor.WFD_CONTRATANTE_PJPF.FirstOrDefault(x => x.CONTRATANTE_ID == item.CONTRATANTE_ID).WFD_PJPF_CATEGORIA.DESCRICAO;
            }
            else if (item.Fornecedor != null)
            {
                aprovacaoVM.GrupoContas = item.Fornecedor.WFD_CONTRATANTE_PJPF.FirstOrDefault(x => x.CONTRATANTE_ID == item.CONTRATANTE_ID).WFD_PJPF_CATEGORIA.DESCRICAO;
            }
            else
            {
                aprovacaoVM.GrupoContas = item.FORNECEDORBASE.WFD_PJPF_CATEGORIA.DESCRICAO;
            }

            aprovacaoVM.Contratante         = item.Contratante;
            aprovacaoVM.Solicitacao_Dt_Cria = item.SOLICITACAO_DT_CRIA;
            aprovacaoVM.Login = (item.Usuario != null) ? item.Usuario.NOME : null;
            aprovacaoVM.Etapa = etapa;

            if (item.Fornecedor != null)
            {
                if (item.Fornecedor.TIPO_PJPF_ID == 1 || item.Fornecedor.TIPO_PJPF_ID == 2)
                {
                    aprovacaoVM.NomeFornecedor = item.Fornecedor.RAZAO_SOCIAL;
                }
                else
                {
                    aprovacaoVM.NomeFornecedor = item.Fornecedor.NOME;
                }
            }
            else
            if (item.SolicitacaoCadastroFornecedor.FirstOrDefault() != null)
            {
                if (item.SolicitacaoCadastroFornecedor.First().PJPF_TIPO != 3)
                {
                    aprovacaoVM.NomeFornecedor = item.SolicitacaoCadastroFornecedor.FirstOrDefault().RAZAO_SOCIAL;
                }
                else
                {
                    aprovacaoVM.NomeFornecedor = item.SolicitacaoCadastroFornecedor.FirstOrDefault().NOME;
                }
            }
            else
            {
                aprovacaoVM.NomeFornecedor = item.FORNECEDORBASE.RAZAO_SOCIAL != null
                    ? item.FORNECEDORBASE.RAZAO_SOCIAL
                    : item.FORNECEDORBASE.NOME;
            }

            // 1  = Cadastro Fornecedor Nacional
            // 2  = Cadastro Fornecedor Estrangeiro
            // 10 = Cadastro de Fonecedor Pessoa Física
            // 11 = Cadastro Fornecedor Nacional Direto
            // 12 = Cadastro Fornecedor Pessoa Fisica Direto

            var fluxos = new List <int> {
                10, 20, 30, 40, 50
            };

            if (fluxos.Contains(item.Fluxo.FLUXO_TP_ID))
            {
                if (item.SolicitacaoCadastroFornecedor.Any())
                {
                    string sCnpj  = item.SolicitacaoCadastroFornecedor.First().CNPJ;
                    string sCpf   = item.SolicitacaoCadastroFornecedor.First().CPF;
                    int    tpForn = item.SolicitacaoCadastroFornecedor.First().PJPF_TIPO;
                    if (tpForn == 1 || tpForn == 2)
                    {
                        if (tpForn != 3)
                        {
                            aprovacaoVM.CNPJ_CPF = Convert.ToUInt64(sCnpj).ToString(@"00\.000\.000\/0000\-00");
                        }
                        else
                        {
                            aprovacaoVM.CNPJ_CPF = Convert.ToUInt64(sCpf).ToString(@"000\.000\.000\-00");
                        }
                    }
                    else
                    {
                        aprovacaoVM.CNPJ_CPF = Convert.ToUInt64(sCpf).ToString(@"000\.000\.000\-00");
                    }
                }
                else
                {
                    if (item.Fornecedor != null)
                    {
                        string sCnpj = item.Fornecedor.CNPJ;
                        if (!string.IsNullOrEmpty(sCnpj))
                        {
                            aprovacaoVM.CNPJ_CPF = Convert.ToUInt64(sCnpj).ToString(@"00\.000\.000\/0000\-00");
                        }
                    }
                }
            }
            else
            {
                string sCnpj  = item.Fornecedor != null ? item.Fornecedor.CNPJ : item.FORNECEDORBASE.CNPJ;
                string sCpf   = item.Fornecedor != null ? item.Fornecedor.CPF : item.FORNECEDORBASE.CPF;
                int?   tpForn = item.Fornecedor != null ? item.Fornecedor.TIPO_PJPF_ID : item.FORNECEDORBASE.PJPF_TIPO;
                if (tpForn == 1 || tpForn == 2)
                {
                    if (tpForn != 3)
                    {
                        aprovacaoVM.CNPJ_CPF = Convert.ToUInt64(sCnpj).ToString(@"00\.000\.000\/0000\-00");
                    }
                    else
                    {
                        aprovacaoVM.CNPJ_CPF = Convert.ToUInt64(sCpf).ToString(@"000\.000\.000\-00");
                    }
                }
                else
                {
                    aprovacaoVM.CNPJ_CPF = Convert.ToUInt64(sCpf).ToString(@"000\.000\.000\-00");
                }
            }
            if (tramite != null)
            {
                aprovacaoVM.UrlAprovacao = Url.Action("FornecedoresControleSolicitacoesFrm", "ControleSolicitacao",
                                                      new
                {
                    chaveurl = Cripto.Criptografar(string.Format("idS={0}&idST={1}&idP={2}",
                                                                 aprovacaoVM.IdSolicitacao,
                                                                 aprovacaoVM.FluxoId,
                                                                 tramite.PAPEL_ID), Key)
                }, Request.Url.Scheme);
            }

            lstAprovacaoVM.Add(aprovacaoVM);
        }