public ActionResult CadastrarFornecedorIndividual(int id)
 {
     //84422763000110
     return(RedirectToAction("CadastrarUsuario", new
     {
         chaveurl = Cripto.Criptografar(string.Format("id=0&tipocadastro=2&cnpj={0}&idContratante={1}", "84422763000110", 6), Key)
     }));
 }
Beispiel #2
0
        public ActionResult ReenviarFicha(string TipoFuncionalidade, int idSolicitacao, string CNPJ, string EmailContato, FichaCadastralWebForLinkVM ficha)
        {
            try
            {
                CNPJ = CNPJ.Replace(".", "").Replace("-", "").Replace("/", "");

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

                SOLICITACAO solicitacao = _solicitacaoService.BuscarPorIdControleSolicitacoes(idSolicitacao);
                ficha.ContratanteID        = solicitacao.CONTRATANTE_ID;
                ficha.Solicitacao.Fluxo.ID = solicitacao.FLUXO_ID;


                var papelFornecedor = _papelService.BuscarPorContratanteETipoPapel(ficha.ContratanteID, (int)EnumTiposPapel.Fornecedor).ID;
                var tramites        = _solicitacaoTramite.BuscarTramitePorSolicitacaoIdPapelId(idSolicitacao, papelFornecedor);

                if (tramites == null)
                {
                    var papelSolicitante = _papelService.BuscarPorContratanteETipoPapel(ficha.ContratanteID, (int)EnumTiposPapel.Solicitante).ID;
                    _tramite.AtualizarTramite(ficha.ContratanteID, idSolicitacao, ficha.Solicitacao.Fluxo.ID, papelSolicitante, (int)EnumStatusTramite.Aprovado, usuarioId);
                }

                //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", idSolicitacao, CNPJ), Key)
                }, Request.Url.Scheme);

                //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 (!_usuarioBP.ValidarPorCnpj(CNPJ))
                {
                    url = Url.Action("CadastrarUsuarioFornecedor", "Home", new
                    {
                        chaveurl = Cripto.Criptografar(string.Format("Login={0}&SolicitacaoID={1}&Email={2}",
                                                                     CNPJ,
                                                                     idSolicitacao,
                                                                     EmailContato), Key)
                    }, Request.Url.Scheme);
                }

                #endregion

                string mensagemLink           = string.Concat(ficha.Mensagem, "<p><a href='", url, "'>Link</a>:", url, "</p>");
                bool   emailEnviadoComSucesso = _metodosGerais.EnviarEmail(EmailContato, ficha.Assunto, mensagemLink);
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }

            return(RedirectToAction("FornecedoresControleSolicitacoesLst", "ControleSolicitacao"));
        }
        public string UrlAction(int usuarioId)
        {
            string url = string.Empty;

            if (Request.Url != null)
            {
                Url.Action("CadastrarUsuario", "Home",
                           new { area = "", chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}", usuarioId, (int)EnumTipoCadastroNovoUsuario.Cadastrado), Key) },
                           Request.Url.Scheme);
            }
            return(url);
        }
Beispiel #4
0
        public ActionResult PreCadastroLst(PreCadastroListaVM modelo)
        {
            int contratanteId = (int)Geral.PegaAuthTicket("ContratanteId");
            int grupoId       = (int)Geral.PegaAuthTicket("Grupo");

            ViewBag.Empresa = new SelectList(_contratanteService.ListarTodosPorGrupo(grupoId), "ID", "RAZAO_SOCIAL");

            int pagina = modelo.Pagina ?? 1;

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

            List <FORNECEDOR_CATEGORIA> categorias = _fornecedorCategoriaService.BuscarCategorias(contratanteId).OrderBy(x => x.DESCRICAO).ToList();

            ViewBag.Categoria                = Mapper.Map <List <CategoriaVM> >(categorias, opt => opt.Items["Url"] = Url);
            ViewBag.CategoriaSelecionada     = modelo.CategoriaSelecionada;
            ViewBag.CategoriaSelecionadaNome = modelo.CategoriaSelecionadaNome;
            if (modelo.FiltroPesquisa == null)
            {
                modelo.FiltroPesquisa = new PreCadastroFiltrosPesquisaVM();
            }

            PreCadastroFiltrosDTO filtros = new PreCadastroFiltrosDTO()
            {
                ContratanteId = modelo.Empresa,
                GrupoId       = grupoId,
                RazaoSocial   = modelo.FiltroPesquisa.Nome,
                CPF           = !string.IsNullOrEmpty(modelo.FiltroPesquisa.CPF) ? modelo.FiltroPesquisa.CPF.Replace(".", "").Replace("-", "") : null,
                CNPJ          = !string.IsNullOrEmpty(modelo.FiltroPesquisa.CNPJ) ? modelo.FiltroPesquisa.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", "") : null,
                CategoriaId   = modelo.CategoriaSelecionada ?? 0
            };
            var retornoList = _preCadastroService.ListarTodos(filtros, pagina, 10);

            modelo.ListaGrid = retornoList.RegistrosPagina.Select(x => new PreCadastroGridPesquisaVM
            {
                Nome      = x.RAZAO_SOCIAL,
                Documento = _metodosGerais.FormatarCnpjCpf(x.CNPJ),
                Empresa   = x.WFD_CONTRATANTE.RAZAO_SOCIAL,
                UrlEditar = Url.Action("Editar", "PreCadastroFornecedor",
                                       new
                {
                    chaveurl = Cripto.Criptografar(string.Format("id={0}", x.ID), Key)
                }, Request.Url.Scheme),
                Status = x.WFD_T_STATUS_PRECADASTRO != null ? x.WFD_T_STATUS_PRECADASTRO.STATUS_NM : string.Empty
            }).ToList();

            ViewBag.Pagina         = pagina;
            ViewBag.TotalPaginas   = retornoList.TotalPaginas;
            ViewBag.TotalRegistros = retornoList.TotalRegistros;
            return(View(modelo));
        }
Beispiel #5
0
        public ActionResult Salvar(FichaCadastralWebForLinkVM model)
        {
            try
            {
                SOLICITACAO solicitacao = new SOLICITACAO();
                solicitacao.FLUXO_ID              = _fluxoService.BuscarPorTipoEContratante((int)EnumTiposFluxo.ModificacaoEndereco, model.ContratanteID).ID;
                solicitacao.SOLICITACAO_DT_CRIA   = DateTime.Now;
                solicitacao.SOLICITACAO_STATUS_ID = (int)EnumStatusTramite.EmAprovacao; // EM APROVACAO
                solicitacao.USUARIO_ID            = (int)Geral.PegaAuthTicket("UsuarioId");
                solicitacao.PJPF_ID = model.ID;

                if (model.ContratanteID != 0)
                {
                    solicitacao.CONTRATANTE_ID = model.ContratanteID;
                }

                var solicitacoesModEndereco = Mapper.Map <List <DadosEnderecosVM>, List <SOLICITACAO_MODIFICACAO_ENDERECO> >(model.DadosEnderecos.ToList());

                if (solicitacoesModEndereco.Any())
                {
                    _solicitacaoModificacaoEnderecoService.InserirSolicitacoes(solicitacoesModEndereco, solicitacao);
                }

                var papelAtual = _papelService.BuscarPorContratanteETipoPapel(solicitacao.CONTRATANTE_ID, (int)EnumTiposPapel.Solicitante).ID;

                int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId");
                _tramiteService.AtualizarTramite(solicitacao.CONTRATANTE_ID, solicitacao.ID, solicitacao.FLUXO_ID, papelAtual, (int)EnumStatusTramite.Aprovado, usuarioId);

                PersistirDadosEnderecoEmMemoria();

                string chaveUrl = "";

                if (model.ControllerOrigem == "Fornecedores")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("FornecedorID={0}&ContratanteID={1}&RetSucessoEnderecos=1", model.PJPFID, model.ContratanteID), Key);
                }

                return(RedirectToAction(model.ActionOrigem, model.ControllerOrigem, new { chaveurl = chaveUrl }));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                string chaveUrl = "";

                if (model.ControllerOrigem == "Fornecedores")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("FornecedorID={0}&ContratanteID={1}&RetSucessoEnderecos=-1", model.PJPFID, model.ContratanteID), Key);
                }

                return(RedirectToAction(model.ActionOrigem, model.ControllerOrigem, new { chaveurl = chaveUrl }));
            }
        }
        private ActionResult ExecutarPrimeiroAcesso(Usuario usuario)
        {
            string chave = Path.GetRandomFileName().Replace(".", "");

            usuario.TROCAR_SENHA = chave;
            _usuarioService.ExecutarPrimeiroAcesso(usuario);

            return(RedirectToAction("TrocaSenhaEsqueceu", "Home",
                                    new
            {
                chaveurl = Cripto.Criptografar(string.Format("id={0}&chave={1}", usuario.ID, chave), Key)
            }));
        }
        public ActionResult ValidarUsuarioSenhaPreCadastro(InclusaoLinkExternoVM model)
        {
            var modelCpfCnpj = model.isCNPJ
                ? model.CNPJ.Replace(".", "").Replace("-", "").Replace("/", "")
                : model.CPF.Replace(".", "").Replace("-", "");

            //Validando apenas Login
            if (!model.isValidarSenha)
            {
                ModelState.Remove("Senha");
            }

            if (model.isCNPJ)
            {
                ModelState.Remove("CPF");
            }
            else
            {
                ModelState.Remove("CNPJ");
            }

            if (ModelState.IsValid)
            {
                string  urlRetorno = Url.Action("Index", "PreCadastro", new { area = "Externo", chaveurl = model.Link });
                Usuario usuario    = usuarioBP.BuscarPorLogin(modelCpfCnpj);
                if (usuario != null)
                {
                    return(RedirectToAction("Acesso", "Home",
                                            new
                    {
                        area = "",
                        chaveurl = Cripto.Criptografar(string.Format("tipocadastro={0}&cnpj={1}&idContratante={2}&Login={1}&SolicitacaoID=0&TravaLogin=1",
                                                                     (int)EnumTipoCadastroNovoUsuario.PreCadastrado, modelCpfCnpj, model.IdContratante), Key),
                        ReturnUrl = urlRetorno
                    }));
                }
                else //RedirectToAction CRIAR USUÁRIO
                {
                    return(RedirectToAction("CadastrarUsuario", "Home",
                                            new
                    {
                        area = "",
                        chaveurl = Cripto.Criptografar(string.Format("id=0&tipocadastro={0}&cnpj={1}&idContratante={2}",
                                                                     (int)EnumTipoCadastroNovoUsuario.PreCadastrado, modelCpfCnpj, model.IdContratante), Key)
                    }));
                }
            }
            return(View(model));
        }
        public IActionResult Put(int id, [FromBody] Usuario usuario)
        {
            try
            {
                _usuarioRepository.Editar(id, usuario);

                // Criptografamos antes de salvar a senha
                usuario.Senha = Cripto.Criptografar(usuario.Senha, usuario.Email.Substring(0, 3));

                return(Ok(usuario));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Beispiel #9
0
        public ActionResult Listar(FornecedorBaseListaVM model)
        {
            int pagina        = model.Pagina ?? 1;
            int contratanteId = (int)Geral.PegaAuthTicket("ContratanteId");

            ImportacaoFornecedoresFiltrosDTO filtro = null;

            this.MapearFiltro(model, ref filtro);

            var retorno = _fornecedorBaseService.PesquisarFornecedores(filtro, pagina, ITENS_POR_PAGINA);

            model.FornecedoresBase = Mapper.Map <List <FornecedorBaseVM> >(retorno.RegistrosPagina);
            model.Filtro           = Mapper.Map <ImportacaoFornecedoresFiltrosDTO, FornecedorBaseFiltroVM>(filtro);
            model.Topo             = Mapper.Map <FornecedorBaseTopoVM>(_fornecedorBaseService.PesquisarFornecedoresBaseTopo(filtro.ContratanteId));
            model.Timeline         = Mapper.Map <TimelineVM>(_fornecedorBaseService.RetornarIndicesTimeLine(filtro.ContratanteId));
            model.Arquivos         = Mapper.Map <List <SelectListItem> >(_fornecedorBaseImportacaoService.ListarTodas(contratanteId));
            model.Arquivos.Insert(0, new SelectListItem {
                Text = "Todas", Value = null
            });
            model.FornecedoresBase.ForEach(x =>
            {
                if (Request.Url == null)
                {
                    return;
                }

                x.UrlEditar = Url.Action("Editar", "Importacao",
                                         new
                {
                    chaveurl = Cripto.Criptografar(string.Format("ID={0}", x.ID), Key)
                }, Request.Url.Scheme);
                x.UrlExcluir = Url.Action("Excluir", "Importacao",
                                          new
                {
                    chaveurl = Cripto.Criptografar(string.Format("ID={0}", x.ID), Key)
                }, Request.Url.Scheme);
            });

            ViewBag.Pagina         = pagina;
            ViewBag.TotalPaginas   = retorno.TotalPaginas;
            ViewBag.TotalRegistros = retorno.TotalRegistros;

            this.PersistirDadosEmMemoria();

            return(View(model));
        }
Beispiel #10
0
        public ActionResult UsuarioLst(UsuarioAdministracaoModel modelo)
        {
            int grupoId = (int)Geral.PegaAuthTicket("Grupo");
            int pagina  = modelo.Pagina ?? 1;

            ViewBag.Page           = "Usuário";
            ViewBag.Title          = "Lista de usuários";
            ViewBag.CONTRATANTE_ID = new SelectList(contratanteBP.ListarTodos(grupoId), "ID", "RAZAO_SOCIAL", modelo.ContratanteId);
            GerenciarContasFiltrosDTO filtros = new GerenciarContasFiltrosDTO()
            {
                CPF           = modelo.CPF,
                Login         = modelo.Login,
                Email         = modelo.Email,
                ContratanteId = modelo.ContratanteId,
                Ativo         = modelo.Ativo,
                Administrador = modelo.Administrador
            };
            var pesquisaUsuario = usuarioBP.PesquisarUsuarios(filtros, pagina, 10);
            List <UsuarioAdministracaoModel> usuarioList = Mapper.Map <List <UsuarioAdministracaoModel> >(pesquisaUsuario.RegistrosPagina);

            usuarioList.ForEach(x =>
            {
                if (Request.Url == null)
                {
                    return;
                }
                x.UrlEditar = Url.Action("UsuarioEditarFrm", "Usuario",
                                         new
                {
                    chaveurl = Cripto.Criptografar(string.Format("id={0}", x.Id), Key)
                }, Request.Url.Scheme);
                x.UrlDetalhar = Url.Action("UsuarioDetalharFrm", "Usuario",
                                           new
                {
                    chaveurl = Cripto.Criptografar(string.Format("id={0}", x.Id), Key)
                }, Request.Url.Scheme);
                x.UrlExcluir = Url.Action("Delete", "Usuario",
                                          new
                {
                    chaveurl = Cripto.Criptografar(string.Format("id={0}", x.Id), Key)
                }, Request.Url.Scheme);
            }
                                );
            return(View(usuarioList));
        }
        private ActionResult ExibirInputCnpj(InclusaoLinkExternoVM model, bool usuarioInvalido)
        {
            if (usuarioInvalido)
            {
                return(RedirectToAction("CadastrarUsuario", "Home",
                                        new
                {
                    area = "",
                    chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}&cnpj={2}&idContratante={3}",
                                                                 0, (int)EnumTipoCadastroNovoUsuario.PreCadastrado, model.CPF, model.IdContratante), Key)
                }));
            }

            ModelState.AddModelError("CNPJ", "CNPJ Inválido. Usuário não encontrado.");
            ModelState.Remove("isValidarSenha"); // Se for removido o modelo não aceitará receber novo valor
            model.isValidarSenha = false;
            return(PartialView("~/Areas/Externo/Views/PreCadastro/_PreCadastro_ValidarUsuario_Editavel.cshtml", model));
        }
Beispiel #12
0
        public ActionResult DisponibilizarLink()
        {
            string chave = Db.WFD_CONFIG.FirstOrDefault(x => x.ID == 1).CHAVE_WEBSERVICE;
            List <LinkExternoPreCadastroVM> modelo = Db.Contratante.Select(x => new LinkExternoPreCadastroVM
            {
                IdContratante   = x.ID,
                NomeContratante = x.RAZAO_SOCIAL
            }).ToList();

            modelo.ForEach(x => {
                x.Chave = chave;
                x.Link  = Url.Action("Incluir", "FornecedorPreCadastro", new
                {
                    chaveurl = Cripto.Criptografar(string.Format("idContratante={0}&idChave{1}", x.IdContratante, chave), Key)
                }, Request.Url.Scheme);
            });
            return(View(modelo));
        }
        public IActionResult Post([FromBody] Usuario usuario)
        {
            try
            {
                // Criptografamos antes de salvar a senha
                usuario.Senha = Cripto.Criptografar(usuario.Senha, usuario.Email.Substring(0, 3));

                //Adiciona um novo usuário
                _usuarioRepository.Adicionar(usuario);

                //statusCode 200
                return(Ok(usuario));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public ActionResult SalvarDocumentos(FichaCadastralWebForLinkVM model)
        {
            try
            {
                if (model.AtualizacaoDocumento)
                {
                    AtualizarSolicitacaoDocumentos(model, (int)EnumTiposFluxo.ModificacaoDocumentos, model.ID);
                }
                else
                {
                    CriarSolicitacaoDocumento(model);
                }

                string chaveUrl = "";

                if (model.ControllerOrigem == "Documento")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("SolicitacaoID=0&FornecedorID={0}&ContratanteID={1}&RetSucessoDocs=1", model.PJPFID, model.ContratanteID), Key);
                }
                else if (model.ControllerOrigem == "Fornecedores")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("FornecedorID={0}&ContratanteID={1}&RetSucessoDocs=1", model.PJPFID, model.ContratanteID), Key);
                }

                return(RedirectToAction(model.ActionOrigem, model.ControllerOrigem, new { chaveurl = chaveUrl }));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                string chaveUrl = "";

                if (model.ControllerOrigem == "Documento")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("SolicitacaoID=0&FornecedorID={0}&ContratanteID={1}&RetSucessoDocs=-1", model.PJPFID, model.ContratanteID), Key);
                }
                else if (model.ControllerOrigem == "Fornecedores")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("FornecedorID={0}&ContratanteID={1}&RetSucessoDocs=-1", model.PJPFID, model.ContratanteID), Key);
                }

                return(RedirectToAction(model.ActionOrigem, model.ControllerOrigem, new { chaveurl = chaveUrl }));
            }
        }
Beispiel #15
0
        public IActionResult Login([FromBody] Usuario login)
        {
            // Criptografamos antes de salvar a senha
            login.Senha = Cripto.Criptografar(login.Senha, login.Email.Substring(0, 3));

            // Definimos logo de cara como não autorizado
            IActionResult response = Unauthorized();

            // Autenticamos o usuário da API
            var user = AuthenticateUser(login);

            if (user != null)
            {
                var tokenString = GenerateJSONWebToken(user);
                response = Ok(new { token = tokenString });
            }

            return(response);
        }
        public ActionResult LinkLst()
        {
            string chave = wFDConfigBP.BuscarChave(1);
            List <LinkExternoVM> modelo = contratanteBP.ListarTodos()
                                          .Select(x => new LinkExternoVM
            {
                IdContratante   = x.ID,
                NomeContratante = x.RAZAO_SOCIAL
            }).ToList();

            modelo.ForEach(x =>
            {
                x.Chave = chave;
                x.Link  = Url.Action("Index", "PreCadastro", new
                {
                    chaveurl = Cripto.Criptografar(string.Format("idContratante={0}&idChave={1}", x.IdContratante, chave), Key)
                }, Request.Url.Scheme);
            });
            return(View(modelo));
        }
Beispiel #17
0
        // GET: Papel
        public ActionResult PapelLst(PapelAdministracaoModel modelo)
        {
            int contratanteId = (int)Geral.PegaAuthTicket("ContratanteId");
            int pagina        = modelo.Pagina ?? 1;
            PesquisaPapelFiltrosDTO filtros = new PesquisaPapelFiltrosDTO()
            {
                ContratanteUsuario = contratanteId,
                Nome          = modelo.Nome,
                Sigla         = modelo.Sigla,
                ContratanteId = modelo.ContratanteId
            };
            var novoCategoria = _papelService.PesquisarPapel(filtros, pagina, 10);
            List <PapelAdministracaoModel> papeisList =
                Mapper.Map <List <PapelAdministracaoModel> >(novoCategoria.RegistrosPagina, opt => opt.Items["Url"] = Url);

            papeisList.ForEach(x =>
            {
                if (Request.Url == null)
                {
                    return;
                }
                x.UrlEditar = Url.Action("PapelFrm", new
                {
                    chaveurl = Cripto.Criptografar(string.Format("idPapel={0}&Acao=Alterar", x.Id), Key)
                });
                x.UrlExcluir = Url.Action("PapelFrm", new
                {
                    chaveurl = Cripto.Criptografar(string.Format("idPapel={0}&Acao=Excluir", x.Id), Key)
                });
            });
            int grupoId = (int)Geral.PegaAuthTicket("Grupo");

            ViewBag.MensagemSucesso = modelo.MensagemSucesso ?? "";
            ViewBag.Pagina          = pagina;
            ViewBag.TotalPaginas    = novoCategoria.TotalPaginas;
            ViewBag.TotalRegistros  = novoCategoria.TotalRegistros;
            ViewBag.Page            = "Papel";
            ViewBag.Title           = "Lista de Papel";
            ViewBag.CONTRATANTE_ID  = new SelectList(_contratanteService.ListarTodos(grupoId), "ID", "RAZAO_SOCIAL", modelo.ContratanteId);
            return(View(papeisList));
        }
        public ActionResult CadastrarUsuario(UsuarioVM model)
        {
            try
            {
                ValidarPoliticaSenha(model);
                if (model.TipoCadastroNovoUsuario == EnumTipoCadastroNovoUsuario.PreCadastrado)
                {
                    ModelState.Remove("Nome");
                    ModelState.Remove("CPF");
                }

                if (ModelState.IsValid)
                {
                    var usuarioMapeado = Mapper.Map <Usuario>(model);
                    var senhaMapeada   = Mapper.Map <USUARIO_SENHAS>(usuarioMapeado);
                    if (model.TipoCadastroNovoUsuario == EnumTipoCadastroNovoUsuario.PreCadastrado)
                    {
                        usuarioMapeado.CPF_CNPJ       = model.CPF;
                        usuarioMapeado.CONTRATANTE_ID = null;
                        _usuarioService.IncluirNovoUsuarioPadraoPreCadastro(usuarioMapeado, senhaMapeada);
                        string chave = _configuracaoService.BuscarChave(1);
                        return(RedirectToAction("PopularValidarUsuarioSenha", "PreCadastro", new
                        {
                            area = "Externo",
                            chaveurl = Cripto.Criptografar(string.Format("idContratante={0}&cnpj={1}&senha={2}", model.IdContratante,
                                                                         model.Login, model.Senha), Key)
                        }));
                    }
                    _usuarioService.IncluirUsuarioPadraoSenha(usuarioMapeado, senhaMapeada, new int[0], new int[0]);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }
            return(View(model));
        }
Beispiel #19
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));
        }
        public ActionResult Acesso(AcessoVM model)
        {
            string chave = Path.GetRandomFileName().Replace(".", "");

            try
            {
                var usuarioLogado = _usuarioService.BuscarPorLogin(model.Login);

                //Valida Usuário Existe
                if (usuarioLogado == null)
                {
                    Log.Info("Usuário inválido!");
                    FinalizarAcesso();
                    ModelState.AddModelError("", "Usuário inválido!");
                }

                if (ModelState.IsValid)
                {
                    ProcessoLoginDTO processoLogin = _processoLoginService.ExecutarLogin(model.Login, model.Senha);
                    if (usuarioLogado.ATIVO)
                    {
                        if (Acessar(model.Login, model.Senha))
                        {
                            if (model.TipoCadastroNovoUsuario == EnumTipoCadastroNovoUsuario.PreCadastrado)
                            {
                                return(RedirectToAction("PopularValidarUsuarioSenha", "PreCadastro", new
                                {
                                    area = "Externo",
                                    chaveurl = Cripto.Criptografar(string.Format("idContratante={0}&cnpj={1}&senha={2}",
                                                                                 model.ContratanteId, model.Login, model.Senha), Key),
                                    returnUrl = model.ReturnUrl
                                }));
                            }
                            if (usuarioLogado.CONTRATANTE_ID == null) //Se for Fornecedor vá pra essa página
                            {
                                if (model.SolicitacaoId == null)
                                {
                                    var pjpf = _pjPfService.BuscarIdFornecedorPorCnpj(model.Login);

                                    if (pjpf == 0)
                                    {
                                        model.SolicitacaoId = _solicitacaoCadastroFornecedorService.BuscarIdSolicitacaoPorCnpj(model.Login);
                                    }
                                    else
                                    {
                                        model.FornecedorId = pjpf;
                                    }
                                }
                                return(RedirectToActionPermanent("FichaCadastral", "Documento", new
                                {
                                    chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}&FornecedorID={1}&ContratanteID=0", model.SolicitacaoId, model.FornecedorId), Key)
                                }));
                            }
                            if (usuarioLogado.PRIMEIRO_ACESSO == true)
                            {
                                usuarioLogado.TROCAR_SENHA = chave;
                                _usuarioService.AlterarUsuario(usuarioLogado);
                                return(RedirectToAction("TrocaSenhaEsqueceu", "Home",
                                                        new
                                {
                                    chaveurl = Cripto.Criptografar(string.Format("id={0}&chave={1}", usuarioLogado.ID, chave), Key)
                                }));
                            }
                            if (string.IsNullOrEmpty(model.ReturnUrl))
                            {
                                return(RedirectToAction("Index", "HomeAdmin"));
                            }
                            else
                            {
                                string[] url = model.ReturnUrl.Split(new char[] { '/' });
                                if (url.Length > 0)
                                {
                                    return(Redirect(model.ReturnUrl));
                                }
                                else
                                {
                                    return(RedirectToAction("Index", "HomeAdmin"));
                                }
                            }
                        }
                    }
                    else
                    {
                        Log.Error(processoLogin.Mensagem);
                        ModelState.AddModelError("", processoLogin.Mensagem);
                    }
                }
                Log.Info("Erro ao tentar logar!");
                FinalizarAcesso();
                ModelState.AddModelError("", "Erro ao tentar logar confirme login e senha de seu usuário");
                return(View(model));
            }
            catch (EntityException ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", "Ocorreu um erro de conexão.");
                FinalizarAcesso();
                return(View(model));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", ex.Message);
                FinalizarAcesso();
                return(View(model));
            }
        }
        private bool Acessar(string email, string senha, int contratanteId)
        {
            Usuario usuario = usuarioBP.BuscarPorLoginParaAcesso(email);

            if (usuario != null)
            {
                if (PasswordHash.ValidatePassword(senha, usuario.SENHA))
                {
                    Autenticado aut = Mapper.Map <Autenticado>(usuario);

                    string      caminhoFisico   = Server.MapPath("/ImagensUsuarios");
                    string      caminhoCompleto = string.Empty;
                    Contratante contratante     = contratanteBP.BuscarPorId(contratanteId);
                    string      arquivo         = "ImagemContratante" + contratanteId + (string.IsNullOrEmpty(contratante.EXTENSAO_IMAGEM)
                        ? ".png"
                        : contratante.EXTENSAO_IMAGEM);

                    caminhoCompleto = caminhoFisico + "\\" + arquivo;

                    aut.Imagem      = arquivo;
                    aut.NomeEmpresa = ((string.IsNullOrEmpty(contratante.NOME_FANTASIA))
                        ? contratante.RAZAO_SOCIAL
                        : contratante.NOME_FANTASIA);

                    if (contratante.WFD_GRUPO.Count > 0)
                    {
                        aut.Grupo = contratante.WFD_GRUPO.First().ID;
                    }

                    string       nomeUsuario = User.Identity.Name;
                    MemoryStream stream1     = new MemoryStream();

                    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Autenticado));
                    ser.WriteObject(stream1, aut);

                    stream1.Position = 0;
                    StreamReader  sr    = new StreamReader(stream1);
                    string        sSr   = sr.ReadToEnd();
                    string        dados = Cripto.Criptografar(sSr, Key);
                    List <Perfil> lstWacUsuarioPerfil = usuario.WAC_PERFIL.ToList();
                    string        roles = string.Empty;
                    foreach (var perfil in lstWacUsuarioPerfil)
                    {
                        foreach (var funcao in perfil.WAC_FUNCAO)
                        {
                            if (!roles.Contains(funcao.CODIGO))
                            {
                                roles += funcao.CODIGO + ",";
                            }
                        }
                    }

                    _metodosGerais.CriarAuthTicket(dados, roles);

                    if (usuario.TROCAR_SENHA != null)
                    {
                        usuario.TROCAR_SENHA = null;
                        usuarioBP.AlterarUsuario(usuario);
                    }

                    if (usuario.CONTRATANTE_ID != null)
                    {
                        if (usuario.Contratante.LOGO_FOTO != null && System.IO.Directory.Exists(caminhoFisico))
                        {
                            System.IO.File.WriteAllBytes(caminhoCompleto, usuario.Contratante.LOGO_FOTO.ToArray());
                        }
                    }

                    _metodosGerais.AuthenticateRequest();

                    return(true);
                }
            }

            return(false);
        }
        public ActionResult ValidarUsuarioSenha(InclusaoLinkExternoVM model)
        {
            try
            {
                ViewBag.NomeEmpresa = contratanteBP.BuscarPorId(model.IdContratante).RAZAO_SOCIAL;
                ViewBag.ExibirFicha = false;

                //Validando apenas Login
                if (!model.isValidarSenha)
                {
                    ModelState.Remove("Senha");
                }

                if (ModelState.IsValid)
                {
                    Usuario usuario = usuarioBP.BuscarPorLogin(model.CPF);
                    if (!model.isValidarSenha)
                    {
                        if (usuario != null)
                        {
                            return(RedirectToAction("Acesso", "Home",
                                                    new
                            {
                                area = "",
                                chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}&cnpj={2}&idContratante={3}&Login={2}&SolicitacaoID=0&TravaLogin=0",
                                                                             0, (int)EnumTipoCadastroNovoUsuario.PreCadastrado, model.CPF, model.IdContratante), Key)
                            }));
                        }
                        else //RedirectToAction CRIAR USUÁRIO
                        {
                            return(RedirectToAction("CadastrarUsuario", "Home",
                                                    new
                            {
                                area = "",
                                chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}&cnpj={2}&idContratante={3}",
                                                                             0, (int)EnumTipoCadastroNovoUsuario.PreCadastrado, model.CPF, model.IdContratante), Key)
                            }));
                        }
                    }
                    else
                    {
                        if (usuario == null)
                        {
                            return(RedirectToAction("CadastrarUsuario", "Home",
                                                    new
                            {
                                area = "",
                                chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}&cnpj={2}&idContratante={3}",
                                                                             0, (int)EnumTipoCadastroNovoUsuario.PreCadastrado, model.CPF, model.IdContratante), Key)
                            }));
                        }
                        ProcessoLoginDTO processoLogin = _processoLoginService.ExecutarLogin(model.CPF, model.Senha);
                        if (!processoLogin.Status)
                        {
                            return(RedirectToAction("CadastrarUsuario", "Home",
                                                    new
                            {
                                area = "",
                                chaveurl = Cripto.Criptografar(string.Format("id={0}&tipocadastro={1}&cnpj={2}&idContratante={3}",
                                                                             0, (int)EnumTipoCadastroNovoUsuario.PreCadastrado, model.CPF, model.IdContratante), Key)
                            }));
                        }
                        else
                        {
                            ModelState.Remove("FichaCadastral");

                            var filtroPesquisaFornecedor = PredicateBuilder.New <Fornecedor>();
                            filtroPesquisaFornecedor = filtroPesquisaFornecedor.And(x => x.CNPJ == model.CPF || x.CPF == model.CPF);

                            DadosExternoPreCadastro preCadastro = new DadosExternoPreCadastro(pjpfBaseBp.ListarPorDocumento(model.CPF), model.CPF, model.IdContratante);
                            preCadastro.PopularDados();

                            switch (preCadastro.PreCadastroEnum)
                            {
                            case CasosPreCadastroEnum.PreCadastradoOutroContratante:
                                model.FichaCadastral = new FichaCadastralWebForLinkVM(model.IdContratante, CasosPreCadastroEnum.PreCadastradoOutroContratante);
                                break;

                            case CasosPreCadastroEnum.PreCadastradoProprio:
                                model.FichaCadastral = PopularFichaCadastral(preCadastro.FornecedorBaseProprio, model.IdContratante, CasosPreCadastroEnum.PreCadastradoProprio, model.Link);
                                break;

                            //case CasosPreCadastroEnum.CadastradoOutroContratante:
                            //    model.FichaCadastral = PopularFichaCadastral(preCadastro.FornecedorList.FirstOrDefault(), true, model.IdContratante, CasosPreCadastroEnum.CadastradoOutroContratante);
                            //    break;
                            //case CasosPreCadastroEnum.CadastradoProprio:
                            //    model.FichaCadastral = PopularFichaCadastral(preCadastro.FornecedorProprio, false, model.IdContratante, CasosPreCadastroEnum.CadastradoProprio);
                            //    break;
                            default:
                                break;
                            }
                        }
                    }
                }
                ViewBag.ExibirFicha = true;
                return(PartialView("~/Areas/Externo/Views/PreCadastro/Index.cshtml", model));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                return(View());
            }
        }
        public ActionResult EsqueceuSenha(AcessoVM model)
        {
            ModelState.Remove("Email");
            ModelState.Remove("Senha");
            ViewBag.DisplayForm    = "";
            ViewBag.DisplaySucesso = "display: none;";

            if (ModelState.IsValid)
            {
                Usuario usuario = _usuarioService.BuscarPorLogin(model.Login);
                if (usuario != null)
                {
                    // ARMAZENA CHAVE DE TROCA
                    string chave = Path.GetRandomFileName().Replace(".", "");
                    usuario.TROCAR_SENHA = chave;
                    _usuarioService.AlterarUsuario(usuario);

                    // CRIPTOGRAFA A URL QUE SERA ENVIADA AO USUÁRIO

                    string url = Url.Action("TrocaSenhaEsqueceu", "Home", new { chaveurl = Cripto.Criptografar(string.Format("id={0}&chave={1}", usuario.ID, chave), Key) }, Request.Url.Scheme);

                    EmailWebForLink mensagemEmail = new EmailWebForLink(usuario.EMAIL);
                    mensagemEmail.EsquecerSenha(url);

                    _metodosGerais.EnviarEmail(mensagemEmail);

                    ViewBag.DisplayForm    = "display: none;";
                    ViewBag.DisplaySucesso = "";
                }
                else
                {
                    ModelState.AddModelError("Email", "E-mail não encontrado!");
                }
            }

            return(View(model));
        }
        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);
        }
Beispiel #25
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));
        }
Beispiel #26
0
        public ActionResult FornecedoresDiretoFrm(FichaCadastralWebForLinkVM model, string ServicosSelecionados,
                                                  string MateriaisSelecionados)
        {
            model.FornecedoresUnspsc = new List <FornecedorUnspscVM>();
            var unspscVM = new FornecedorUnspscVM();

            var materiaisEServicos = _unspscBP.BuscarListaPorID(ServicosSelecionados.Split(new Char[] { '|' }), MateriaisSelecionados.Split(new Char[] { '|' }));

            model.FornecedoresUnspsc = unspscVM.PreencheModelUnspsc(model.PJPFID, model.SolicitacaoID, materiaisEServicos);

            var preenchimentoValido = (FinalizarFichaCadastral(model));

            var cnpj = model.CNPJ_CPF.Replace(".", "").Replace("-", "").Replace("/", "");

            //se não for primeiro acesso enviar para tela de acesso
            if (Request.Url != null)
            {
                var url = Url.Action("Index", "Home", new
                {
                    chaveurl =
                        Cripto.Criptografar(
                            string.Format("SolicitacaoID={0}&Login={1}&TravaLogin=1", model.SolicitacaoID, cnpj), Key)
                }, Request.Url.Scheme);

                //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(cnpj))
                {
                    var contato = model.DadosContatos.FirstOrDefault();
                    if (contato != null)
                    {
                        url = Url.Action("CadastrarUsuarioFornecedor", "Home", new
                        {
                            chaveurl = Cripto.Criptografar(string.Format("Login={0}&SolicitacaoID={1}&Email={2}",
                                                                         cnpj,
                                                                         model.SolicitacaoID,
                                                                         contato.EmailContato), Key)
                        }, Request.Url.Scheme);
                    }
                }
            }

            #endregion BuscarPorEmail

            PersistirDadosEmMemoria();
            PersistirDadosEnderecoEmMemoria();

            if (preenchimentoValido)
            {
                return(RedirectToAction("FornecedoresLst", "Fornecedores", new
                {
                    MensagemSucesso =
                        string.Format("Solicitação Nº {0} de Criação de Fornecedor realizado com Sucesso!",
                                      model.Solicitacao.ID)
                }));
            }

            return(View(model));
        }
        public ActionResult Salvar(FichaCadastralWebForLinkVM model)
        {
            try
            {
                SOLICITACAO solicitacao = new SOLICITACAO();
                solicitacao.FLUXO_ID              = _fluxoService.BuscarPorTipoEContratante((int)EnumTiposFluxo.ModificacaoDadosBancarios, model.ContratanteID).ID;
                solicitacao.SOLICITACAO_DT_CRIA   = DateTime.Now;
                solicitacao.SOLICITACAO_STATUS_ID = (int)EnumStatusTramite.EmAprovacao; // EM APROVACAO
                solicitacao.USUARIO_ID            = (int)Geral.PegaAuthTicket("UsuarioId");
                solicitacao.PJPF_ID = model.ID;

                if (model.ContratanteID != 0)
                {
                    solicitacao.CONTRATANTE_ID = model.ContratanteID;
                }

                foreach (var item in model.DadosBancarios)
                {
                    item.SolicitacaoID = solicitacao.ID;
                    item.ContratanteID = solicitacao.CONTRATANTE_ID;
                    item.BancoPJPFID   = item.BancoPJPFID;

                    if (!string.IsNullOrEmpty(item.ArquivoSubido))
                    {
                        var arquivoId = _fornecedorArquivoService.GravarArquivoSolicitacao(solicitacao.CONTRATANTE_ID, item.ArquivoSubido, item.TipoArquivoSubido);
                        item.ArquivoID = arquivoId;
                    }
                }

                var solicitacoesModBanco = Mapper.Map <List <DadosBancariosVM>, List <SolicitacaoModificacaoDadosBancario> >(model.DadosBancarios.ToList());
                _solicitacaoBancoService.InserirSolicitacoes(solicitacoesModBanco, solicitacao);

                int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId");
                iTramiteService.AtualizarTramite(solicitacao.CONTRATANTE_ID, solicitacao.ID, solicitacao.FLUXO_ID, (int)EnumPapeisWorkflow.Solicitante, (int)EnumStatusTramite.Aprovado, usuarioId);

                var dadosBancariosFinalizados = _fornecedorBancoService.BuscarPorContratantePJPFId(model.ContratanteFornecedorID);

                PersistirDadosBancoEmMemoria();

                string chaveUrl = "";

                if (model.ControllerOrigem == "Documento")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("SolicitacaoID=0&FornecedorID={0}&ContratanteID={1}&RetSucessoBancos=1", model.PJPFID, model.ContratanteID), Key);
                }
                else if (model.ControllerOrigem == "Fornecedores")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("FornecedorID={0}&ContratanteID={1}&RetSucessoBancos=1", model.PJPFID, model.ContratanteID), Key);
                }

                return(RedirectToAction(model.ActionOrigem, model.ControllerOrigem, new { chaveurl = chaveUrl }));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                string chaveUrl = "";

                if (model.ControllerOrigem == "Documento")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("SolicitacaoID=0&FornecedorID={0}&ContratanteID={1}&RetSucessoBancos=-1", model.PJPFID, model.ContratanteID), Key);
                }
                else if (model.ControllerOrigem == "Fornecedores")
                {
                    chaveUrl = Cripto.Criptografar(String.Format("FornecedorID={0}&ContratanteID={1}&RetSucessoBancos=-1", model.PJPFID, model.ContratanteID), Key);
                }

                return(RedirectToAction(model.ActionOrigem, model.ControllerOrigem, new { chaveurl = chaveUrl }));
            }
        }
        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));
        }
Beispiel #29
0
        public ActionResult CriarPreCadastro(FichaCadastralWebForLinkVM modelo, string ServicosSelecionados, string MateriaisSelecionados, int acaoTxt)
        {
            int validacao = 0;

            modelo.FornecedoresUnspsc = new List <FornecedorUnspscVM>();
            modelo.DocumentoEditavel  = true;
            try
            {
                if (!string.IsNullOrEmpty(modelo.CNPJ_CPF))
                {
                    modelo.CNPJ_CPF = modelo.CNPJ_CPF.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", "");
                }

                switch (acaoTxt)
                {
                //Cadastro sem Solicitacao
                case 1:
                    validacao = IncluirPjpfBaseAlterarFichaModel(modelo, ServicosSelecionados, MateriaisSelecionados, validacao, acaoTxt);
                    if (validacao != 0)
                    {
                        return(Json(new
                        {
                            url = Url.Action("PreCadastroLst", "PreCadastroFornecedor", new PreCadastroListaVM(null, "Pré-cadastro incluído com sucesso"))
                        }));
                    }
                    break;

                //Cadastro com Solicitacao
                case 2:
                    validacao = IncluirPjpfBaseAlterarFichaModel(modelo, ServicosSelecionados, MateriaisSelecionados, validacao, acaoTxt);
                    if (validacao != 0)
                    {
                        return(Json(new
                        {
                            url = Url.Action("CriarSolicitacao", "PreCadastroFornecedor", new { chaveurl = Cripto.Criptografar(string.Format("id={0}", validacao), Key) })
                        }));
                    }
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }
            modelo.DadosBancarios     = new List <DadosBancariosVM>();
            modelo.DadosContatos      = new List <DadosContatoVM>();
            modelo.DadosEnderecos     = new List <DadosEnderecosVM>();
            modelo.FornecedoresUnspsc = new List <FornecedorUnspscVM>();
            modelo.IsPjpfBaseProprio  = false;
            modelo.IsPjpfProprio      = false;
            modelo.DocumentoEditavel  = true;
            return(PartialView("~/Views/PreCadastroFornecedor/_PreCadastro_FichaCadastral.cshtml", modelo));
        }
        public ActionResult Index(AcessoVM model)
        {
            try
            {
                if (model.chaveUrl != null)
                {
                    List <ParametroCriptografia> param = Cripto.DescriptografarUrl(model.chaveUrl, Key);
                    int idSolicitacao;
                    int travaLogin = 0;
                    Int32.TryParse(param.First(p => p.Name == "SolicitacaoID").Value, out idSolicitacao);
                    Int32.TryParse(param.First(p => p.Name == "TravaLogin").Value, out travaLogin);
                    string login = param.First(p => p.Name == "Login").Value;

                    model.SolicitacaoId = idSolicitacao;
                    model.TravaLogin    = travaLogin;
                    model.Login         = login;
                }
                Usuario usuarioLogado = _usuarioService.BuscarPorLogin(model.Login);
                //Valida Usuário Existe
                if (usuarioLogado == null)
                {
                    Log.Info("Usuário inválido!");
                    FinalizarAcesso();
                    ModelState.AddModelError("", "Usuário inválido!");
                }

                if (ModelState.IsValid)
                {
                    ViewBag.ExibeModalAcesso = true;
                    ValidarBloqueioTempo(usuarioLogado);

                    if (Acessar(model.Login, model.Senha))
                    {
                        _usuarioService.ZerarTentativasLogin(usuarioLogado);
                        if (usuarioLogado.CONTRATANTE_ID == null) //Se for Fornecedor vá pra essa página
                        {
                            if (model.SolicitacaoId == null)
                            {
                                int pjpf = _pjPfService.BuscarIdFornecedorPorCnpj(model.Login);

                                if (pjpf == 0)
                                {
                                    model.SolicitacaoId = _solicitacaoCadastroFornecedorService.BuscarIdSolicitacaoPorCnpj(model.Login);
                                }
                                else
                                {
                                    model.FornecedorId = pjpf;
                                }
                            }
                            return(Redirect(Url.Action("FichaCadastral", "Documento", new
                            {
                                chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}&FornecedorID={1}&ContratanteID=0", model.SolicitacaoId, model.FornecedorId), Key)
                            }, Request.Url.Scheme)));
                        }
                        if (usuarioLogado != null && usuarioLogado.PRIMEIRO_ACESSO == true)
                        {
                            return(ExecutarPrimeiroAcesso(usuarioLogado));
                        }

                        if (Convert.ToBoolean(ConfigurationManager.AppSettings["GravaLogAcesso"]))
                        {
                            _acessoLogService.GravarLogAcesso(usuarioLogado.ID, PegaIPAcesso(), PegaNavegadorAcesso());
                        }

                        if (string.IsNullOrEmpty(model.ReturnUrl))
                        {
                            return(RedirectToAction("Index", "HomeAdmin"));
                        }
                        else
                        {
                            string[] url = model.ReturnUrl.Split(new char[] { '/' });
                            if (url.Length == 2)
                            {
                                return(RedirectToAction(url[2], url[1]));
                            }
                            else
                            {
                                return(RedirectToAction("Index", "HomeAdmin"));
                            }
                        }
                    }
                    ViewBag.ExibeModalAcesso = false;

                    var ativo = usuarioLogado != null && (usuarioLogado.ATIVO != false);
                    if (ativo)
                    {
                        _usuarioService.ContabilizarErroLogin(usuarioLogado);
                        ModelState.AddModelError("", "Login ou Senha Inválido!");
                        ViewBag.ExibeModalAcesso = true;
                    }
                    else
                    {
                        ModelState.AddModelError("", "Usuário bloqueado!");
                        ViewBag.ExibeModalAcesso = true;
                    }
                }
                else
                {
                    ViewBag.ExibeModalAcesso = true;
                }

                return(View(model));
            }
            catch (EntityException ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", "Ocorreu um erro de conexão.");
                FinalizarAcesso();
                ViewBag.ExibeModalAcesso = true;
                return(View(model));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", ex.Message);
                FinalizarAcesso();
                ViewBag.ExibeModalAcesso = true;
                return(View(model));
            }
        }