Esempio n. 1
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"));
        }
Esempio n. 2
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));
        }
Esempio n. 3
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));
        }