public ActionResult AprovacaoFrm(FichaCadastralWebForLinkVM model, int ContratanteID, int SolicitacaoID, int FluxoID, int PapelID, string btnAcao, int[] DocumentoID, string[] Documento, HttpPostedFileBase[] file, string[] DataValidade, bool[] ExigeValidade, int[] Banco, string[] Agencia, string[] Digito, string[] ContaCorrente, string[] ContaCorrenteDigito, int[] ContatoID, string[] NomeContato, string[] Email, string[] Telefone, string[] Celular, string NomeEmpresa, string Estilo, bool?SolicitaFichaCadastral, bool?SolicitaDocumentos, string motivoReprovao, string ccCliente, string ccGrupoEmpresa)
        {
            try
            {
                SOLICITACAO solicitacao = _solicitacaoService.BuscarPorIdIncluindoFluxo(SolicitacaoID);

                int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId");
                ViewBag.Bancos = _bancoService.ListarTodosPorNome();
                ViewBag.BloqueioMotivoQualidade = _tipoBloqueioRoboService.ListarTodosPorCodigoFuncaoBloqueio();
                ViewBag.TipoEndereco            = new SelectList(_enderecoService.ListarTodosTiposEnderecosPorNome(), "ID", "NM_TP_ENDERECO");
                ViewBag.UF = new SelectList(_enderecoService.ListarTodosPorNome(), "UF_SGL", "UF_NM");

                switch (btnAcao)
                {
                case "modificar":
                    var motivoReprovacao = string.IsNullOrEmpty(motivoReprovao) ? string.Empty : motivoReprovao;
                    _solicitacaoService.AlterarAprovacao(SolicitacaoID, ContratanteID, FluxoID, motivoReprovacao, usuarioId);
                    return(RedirectToAction("AprovacaoLst", "Aprovacao", new
                    {
                        MensagemSucesso = string.Format("Modificação da solicitação Nº {0} realizada com sucesso!", SolicitacaoID)
                    }));

                case "aprovar":
                    _tramite.AtualizarTramite(ContratanteID, SolicitacaoID, FluxoID, PapelID, 2, usuarioId);
                    return(RedirectToAction("AprovacaoLst", "Aprovacao", new
                    {
                        MensagemSucesso = string.Format("Aprovação da solicitação Nº {0} realizada com sucesso!", SolicitacaoID)
                    }));

                case "executado":
                    int?grupoId = (int?)Geral.PegaAuthTicket("Grupo");
                    _aprovacaoService.FinalizarSolicitacao(grupoId, solicitacao.Fluxo.FLUXO_TP_ID, SolicitacaoID);
                    _tramite.AtualizarTramite(ContratanteID, SolicitacaoID, FluxoID, PapelID, 2, usuarioId);
                    return(RedirectToAction("AprovacaoLst", "Aprovacao", new
                    {
                        MensagemSucesso = string.Format("Aprovação da solicitação {0} realizada com sucesso!", SolicitacaoID)
                    }));

                case "reprovar":
                    _tramite.AtualizarTramite(ContratanteID, SolicitacaoID, FluxoID, PapelID, 3, usuarioId);
                    return(RedirectToAction("AprovacaoLst", "Aprovacao", new
                    {
                        MensagemSucesso = string.Format("Reprovação da solicitação Nº {0} realizada com sucesso!", SolicitacaoID)
                    }));
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(model));
            }
        }
Esempio n. 2
0
        public ActionResult CriarSolicitacao(FornecedoresVM model, int?CategoriaSelecionada, string CategoriaSelecionadaNome, int?SolicitacaoID, int Empresa, string Acao)
        {
            if (string.IsNullOrEmpty(Acao))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            int  contratanteId          = (int)Geral.PegaAuthTicket("ContratanteId");
            int  usuarioId              = (int)Geral.PegaAuthTicket("UsuarioId");
            bool solicitaDocumentos     = (bool)Geral.PegaAuthTicket("SolicitaDocumentos");
            bool solicitaFichaCadastral = (bool)Geral.PegaAuthTicket("SolicitaFichaCadastral");
            int? grupoId = (int?)Geral.PegaAuthTicket("Grupo");

            ViewBag.Categoria                = Mapper.Map <List <CategoriaVM> >(_fornecedorCategoriaService.BuscarCategorias(contratanteId).OrderBy(x => x.DESCRICAO).ToList(), opt => opt.Items["Url"] = Url);
            ViewBag.CategoriaSelecionada     = CategoriaSelecionada;
            ViewBag.CategoriaSelecionadaNome = CategoriaSelecionadaNome;
            if (CategoriaSelecionada != null)
            {
                model.Categoria = (int)CategoriaSelecionada;
            }

            if (grupoId != null)
            {
                ViewBag.Empresa = new SelectList(_contratanteService.ListarTodosPorUsuario(usuarioId), "ID", "RAZAO_SOCIAL", Empresa);
            }
            ViewBag.SolicitaDocumentos     = solicitaDocumentos;
            ViewBag.solicitaFichaCadastral = solicitaFichaCadastral;
            ViewBag.Compras = new SelectList(_organizacaoComprasService.ListarTodosPorIdContratante(contratanteId), "ID", "ORG_COMPRAS_DSC");
            ViewBag.Robo    = false;

            ValidarFormularioCriacaoSolicitacao(model, Acao);
            ModelState.Remove("Email");
            if (ModelState.IsValid)
            {
                SOLICITACAO solicitacao;
                var         papelAtual = _papelService.BuscarPorContratanteETipoPapel(contratanteId, (int)EnumTiposPapel.Solicitante).ID;

                //INCLUSÃO DO FORNECEDOR
                switch (Acao)
                {
                case "Incluir":
                    string cnpj = string.Empty;
                    if (model.TipoFornecedor != (int)EnumTiposFornecedor.EmpresaEstrangeira)
                    {
                        cnpj = model.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", "");
                    }

                    CadastrarSolicitacaoDTO modeloCadastro = new CadastrarSolicitacaoDTO()
                    {
                        TipoCadastro   = model.TipoCadastro,
                        TipoFornecedor = model.TipoFornecedor,
                        ContratanteId  = contratanteId,
                        UsuarioId      = usuarioId,
                        CategoriaId    = model.Categoria,
                        ComprasId      = model.Compras,
                        CNPJ           = cnpj,
                        ContatoNome    = model.NomeContato,
                        ContatoEmail   = model.Email,
                        Telefone       = model.Telefone,
                        Assunto        = System.Web.HttpContext.Current.Application["NomeSistema"].ToString(),
                        RazaoSocial    = model.RazaoSocial,
                        CPF            = cnpj,
                        DataNascimento = model.DataNascimento
                    };
                    solicitacao = _solicitacaoService.CadastrarSolicitacaoPreCadastro(model.ID, modeloCadastro);

                    ViewBag.SolicitacaoId = solicitacao.ID;

                    if (model.TipoFornecedor != (int)EnumTiposFornecedor.EmpresaEstrangeira)     // SE NACIONAL
                    {
                        _tramite.AtualizarTramite(contratanteId, solicitacao.ID, solicitacao.FLUXO_ID, papelAtual, (int)EnumStatusTramite.Aguardando, usuarioId);
                        ViewBag.Robo = true;

                        return(View(model));
                    }

                    return(RedirectToAction("FornecedoresDiretoFrm", "FornecedoresDireto", new { chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}", solicitacao.ID), Key) }));

                //break;

                case "Continuar":
                    solicitacao = _solicitacaoService.BuscarPorIdComSolicitacaoCadastroFornecedor((int)SolicitacaoID);
                    var robo = solicitacao.ROBO.FirstOrDefault();

                    if (robo != null)
                    {
                        if (robo.RF_CONSULTA_DTHR != null && robo.SINT_CONSULTA_DTHR != null && robo.SN_CONSULTA_DTHR != null)
                        {
                            solicitacao.ROBO_EXECUTADO = true;
                            _solicitacaoService.Alterar(solicitacao);
                        }
                    }

                    if (model.TipoCadastro == (int)EnumTiposPreenchimento.Fornecedor)
                    {
                        _tramite.AtualizarTramite(contratanteId, solicitacao.ID, solicitacao.FLUXO_ID, papelAtual, (int)EnumStatusTramite.Aprovado, usuarioId);
                        return(RedirectToAction("EnviarSolicitacao", "PreCadastroFornecedor", new
                        {
                            chaveUrl = Cripto.Criptografar(string.Format("SolicitacaoID={0}", solicitacao.ID), Key),
                            nomeContato = model.NomeContato,
                            emailContato = model.Email,
                            contratanteId = Empresa,
                            documentoPfPj = model.CNPJ
                        }));
                    }

                    return(RedirectToAction("FornecedoresDiretoFrm", "FornecedoresDireto", new { chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}", solicitacao.ID), Key) }));

                //break;
                case "Cancelar":
                    solicitacao = _solicitacaoService.BuscarPorIdIncluindoFluxo((int)SolicitacaoID);

                    _tramite.AtualizarTramite(contratanteId, solicitacao.ID, solicitacao.FLUXO_ID, papelAtual, 6, usuarioId);

                    return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = "Solicitação Cancelada!" }));
                    //break;
                }
            }
            if (model == null)
            {
                return(HttpNotFound());
            }

            return(View(model));
        }