Exemple #1
0
        public void InserirTramiteSequencia(int contratanteId, int fluxoId, int solicitacaoId, int papelAtualId, int statusId, int usuarioId, int grupoDestino, List <SOLICITACAO_TRAMITE> tramiteAtual, List <FLUXO_SEQUENCIA> proximoPapeis)
        {
            try
            {
                SOLICITACAO_TRAMITE tramite = InserirTramiteSequencia(solicitacaoId, papelAtualId, statusId, usuarioId, grupoDestino, tramiteAtual);

                proximoPapeis = ListarProximoPapeisFluxo(contratanteId, fluxoId, papelAtualId, grupoDestino);

                // verifica se o tramite atual está todo aprovado, lembrando que pode ter mais de um tramite simultaneamente
                // senão a solicitação não pode ir para o proximo passo.
                if (!tramiteAtual.Any(t => t.SOLICITACAO_STATUS_ID == 1))
                {
                    foreach (FLUXO_SEQUENCIA item in proximoPapeis)
                    {
                        // Se não houver proximo passo o sistem finaliza a solicitacao
                        if (item.PAPEL_ID_FIM != null)
                        {
                            tramite = InserirTramiteConclusao(solicitacaoId, item);
                        }
                        else
                        {
                            AlterarSolicitacaoParaFinalizado(solicitacaoId, 4);// Concluido
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ServiceWebForLinkException("Erro ao tentar inserir trâmite de sequência.", ex);
            }
        }
Exemple #2
0
        private SOLICITACAO_TRAMITE InserirTramiteSequencia(int solicitacaoId, int papelAtual, int status, int?usuario, int?grupoDestino, List <SOLICITACAO_TRAMITE> tramiteAtual)
        {
            SOLICITACAO_TRAMITE tramite;

            if (tramiteAtual.Count > 0)
            {
                tramite = tramiteAtual.Single(t => t.PAPEL_ID == papelAtual);
                tramite.SOLICITACAO_STATUS_ID = status; // Aprova
                tramite.TRMITE_DT_FIM         = DateTime.Now;
                tramite.USUARIO_ID            = usuario;
            }
            else
            {
                tramite = new SOLICITACAO_TRAMITE
                {
                    SOLICITACAO_ID        = solicitacaoId,
                    PAPEL_ID              = papelAtual,
                    SOLICITACAO_STATUS_ID = status,
                    USUARIO_ID            = usuario,
                    TRAMITE_DT_INI        = DateTime.Now,
                    TRMITE_DT_FIM         = DateTime.Now,
                    GRUPO_DESTINO         = grupoDestino
                };
                _solicitacaoTramiteRepository.Inserir(tramite);
            }

            return(tramite);
        }
Exemple #3
0
 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;
 }
Exemple #4
0
        private SOLICITACAO_TRAMITE InserirTramiteConclusao(int solicitacaoId, FLUXO_SEQUENCIA item)
        {
            SOLICITACAO_TRAMITE tramite = new SOLICITACAO_TRAMITE();

            tramite.SOLICITACAO_ID        = solicitacaoId;
            tramite.PAPEL_ID              = (int)item.PAPEL_ID_FIM;
            tramite.SOLICITACAO_STATUS_ID = 1;
            tramite.TRAMITE_DT_INI        = DateTime.Now;
            tramite.GRUPO_DESTINO         = item.GRUPO_DESTINO;
            _solicitacaoTramiteRepository.Inserir(tramite);
            return(tramite);
        }
Exemple #5
0
        public SOLICITACAO_TRAMITE InserirTramiteInicial(int solicitacaoId, int PapelAtual, int Status, int?Usuario, int?grupoDestino)
        {
            SOLICITACAO_TRAMITE tramite = new SOLICITACAO_TRAMITE
            {
                SOLICITACAO_ID        = solicitacaoId,
                PAPEL_ID              = PapelAtual,
                SOLICITACAO_STATUS_ID = Status,
                USUARIO_ID            = Usuario,
                TRAMITE_DT_INI        = DateTime.Now,
                GRUPO_DESTINO         = grupoDestino
            };

            _solicitacaoTramiteRepository.Inserir(tramite);
            return(tramite);
        }
        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);
        }