示例#1
0
        public ActionResult Edit(Proposta proposta)
        {
            db.Entry(proposta).State = EntityState.Modified;
            PropostaDAO propostaDao = new PropostaDAO();

            propostaDao.Save(proposta);
            return(RedirectToAction("Index"));
        }
示例#2
0
        // GET: Apolice/Create
        public ActionResult Create(int?propostaId)
        {
            Apolice apolice = new Apolice();

            PropostaDAO propostaDao = new PropostaDAO();

            apolice.Proposta      = propostaDao.GetProposta(propostaId);
            apolice.Seguradoras   = db.Seguradora.ToList();
            apolice.ValorContrato = 0;
            return(View(apolice));
        }
示例#3
0
        public ActionResult SendForm(Apolice apolice)
        {
            //if (ModelState.IsValid)
            //{
            db.Comissao.Add(apolice.Comissao);
            db.SaveChanges();
            apolice.CodigoComissao = apolice.Comissao.Id;
            db.Apolice.Add(apolice);
            db.SaveChanges();

            PropostaDAO propostaDao = new PropostaDAO();
            Proposta    proposta    = propostaDao.GetProposta(apolice.CodigoProposta);

            //Mudando Status para fins de organização
            propostaDao.MudarStatus(proposta.Id, (int)StatusProposta.ATENDIDO);

            //criando valor da proposta do condutor
            ValorProposta valorProposta = new ValorProposta();

            valorProposta.Valor          = apolice.ValorContrato;
            valorProposta.CodigoCondutor = proposta.Segurado.Id;
            valorProposta.DataVencimento = new DateTime(2016, 05, 12);
            valorProposta.CodigoApolice  = apolice.Id;

            db.ValorProposta.Add(valorProposta);
            db.SaveChanges();
            //}

            Usuario usuario = (Usuario)Session["UsuarioLogado"];

            //PREPARANDO EMAIL
            apolice.Seguradora            = db.Seguradora.Find(apolice.CodigoSeguradora);
            apolice.formularioApoliceHtml = apolice.formularioApoliceHtml.Replace("#seguradoraEmail", apolice.Seguradora.NomeSeguradora.ToString());
            apolice.formularioApoliceHtml = apolice.formularioApoliceHtml.Replace("#valorContratoEmail", apolice.ValorContrato.ToString());
            apolice.formularioApoliceHtml = apolice.formularioApoliceHtml.Replace("#corretorEmail", "Seu Corretor - " + usuario.Nome);
            string url = Request.Url.AbsoluteUri.Replace(Request.Url.AbsolutePath, "");

            apolice.formularioApoliceHtml = apolice.formularioApoliceHtml.Replace("#EnderecoConfirmaEmail", url + "/Proposta/AceitarProposta?" +
                                                                                  "email=" + proposta.Segurado.Email +
                                                                                  "&codigoProposta=" + apolice.CodigoProposta +
                                                                                  "&codigoApolice=" + apolice.Id);


            UtilEmailMessage utilEmail = new UtilEmailMessage();

            utilEmail.EnviarEmail("[BUSCA SEGUROS] Sua Proposta de Cotação de Seguro", proposta.Segurado.Email, apolice.formularioApoliceHtml);

            return(View(apolice));
        }
示例#4
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PropostaDAO propostaDao = new PropostaDAO();
            Proposta    proposta    = propostaDao.GetProposta(id);

            if (proposta == null)
            {
                return(HttpNotFound());
            }
            return(View(proposta));
        }
示例#5
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            PropostaDAO propostaDao = new PropostaDAO();
            Proposta    proposta    = propostaDao.GetProposta(id);

            proposta.Coberturas = db.Cobertura.ToList();

            if (proposta == null)
            {
                return(HttpNotFound());
            }
            return(View(proposta));
        }
示例#6
0
        // GET: Apolice/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Apolice     apolice     = db.Apolice.Find(id);
            PropostaDAO propostaDao = new PropostaDAO();

            propostaDao.GetProposta(apolice.CodigoProposta);
            apolice.Proposta   = propostaDao.GetProposta(apolice.CodigoProposta);
            apolice.Comissao   = db.Comissao.Find(apolice.CodigoComissao);
            apolice.Seguradora = db.Seguradora.Find(apolice.CodigoSeguradora);
            if (apolice == null)
            {
                return(HttpNotFound());
            }
            return(View(apolice));
        }
示例#7
0
        public ViewResult AceitarProposta(string email, string codigoProposta, string codigoApolice)
        {
            ApoliceDAO apoliceDao    = new ApoliceDAO();
            int        status        = (int)Status.APROVADO;
            string     emailCorretor = apoliceDao.ObterEmailDoCorretorEValidarEmail(email, codigoProposta, codigoApolice);

            if (emailCorretor != null)
            {
                //Mudando Status da proposta para fins de organização
                PropostaDAO propostaDao = new PropostaDAO();
                propostaDao.MudarStatus(int.Parse(codigoProposta), (int)StatusProposta.COMAPOLICEACEITA);
                //Mudando Status da Apolice
                apoliceDao.MudarStatus(status, email, codigoProposta, codigoApolice);
                //Excluir apolices Rejeitadas
                apoliceDao.ExcluirApolicesRejeitadas(codigoProposta, codigoApolice);


                //Montando Email
                string           url          = Request.Url.Authority;
                UtilEmailMessage utilEmail    = new UtilEmailMessage();
                StringBuilder    corpoDoEmail = new StringBuilder();
                corpoDoEmail.Append("<div><h1>BUSCA SEGUROS</h1></div><br/>");
                corpoDoEmail.Append("<div><h2>Apolice Aceita - Codigo da Apolice: " + codigoApolice + "</h2></div>");
                corpoDoEmail.Append("<br/><br/>");
                corpoDoEmail.Append("<div>Parabéns Corretor, o seu cliente acaba de aceitar o contrato<br/>");
                corpoDoEmail.Append("confira agora mesmo a Apolice e entre em contato com o nosso Cliente</div>");
                corpoDoEmail.Append("<br/><br/>");
                corpoDoEmail.Append("<div><a href='http://" + url + "/Apolice/Details/" + codigoApolice + "'><h1>Abrir Apolice Aprovada</h1></a></div>");


                utilEmail.EnviarEmail("[BUSCA SEGUROS] Apolice " + codigoApolice + " Aceita pelo Cliente", emailCorretor, corpoDoEmail.ToString());
                //return View(emailCorretor);
                //TODO: Redirecionar para a view de sucesso
                return(View());
            }
            else
            {
                return(View());
            }
        }
示例#8
0
        public ActionResult Passo5(string btnVoltar, string btnAvancar)
        {
            if (btnVoltar != null)
            {
                return(RedirectToAction("Passo4"));
            }
            else if (btnAvancar != null && ModelState.IsValid)
            {
                try
                {
                    PropostaDAO propostaDAO = new PropostaDAO();
                    propostaDAO.Insert(_proposta);
                    return(RedirectToAction("Passo6"));
                }
                catch (DbEntityValidationException ex) {
                    // Retrieve the error messages as a list of strings.
                    var errorMessages = ex.EntityValidationErrors
                                        .SelectMany(x => x.ValidationErrors)
                                        .Select(x => x.ErrorMessage);

                    // Join the list to a single string.
                    var fullErrorMessage = string.Join("; ", errorMessages);

                    // Combine the original exception message with the new one.
                    var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                    // Throw a new DbEntityValidationException with the improved exception message.
                    throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
                }catch (Exception e)
                {
                    throw new Exception("stack" + e.StackTrace);
                }
            }
            var errors = ModelState.Values.SelectMany(v => v.Errors);

            return(View(_proposta));
        }
示例#9
0
        public ViewResult Index(Proposta propostaSearch, string sortOrder, string currentFilter, int?page)
        {
            string searchString = "";

            ViewBag.CurrentSort  = sortOrder;
            ViewBag.StatusParm   = String.IsNullOrEmpty(sortOrder) ? "status_desc" : "";
            ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "nome_desc" : "nome";
            ViewBag.CpfSortParm  = String.IsNullOrEmpty(sortOrder) ? "cpf_desc" : "cpf";


            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewBag.CurrentFilter = searchString;


            //old
            List <Proposta> propostas         = db.Proposta.ToList();
            List <Proposta> propostasCompleta = new List <Proposta>();
            PropostaDAO     propostaDAO       = new PropostaDAO();

            foreach (Proposta proposta in propostas)
            {
                propostasCompleta.Add(propostaDAO.GetProposta(proposta.Id));
            }


            //buscas
            if (StatusProposta.NENHUM != propostaSearch.Status)
            {
                propostasCompleta = propostasCompleta.Where(a => (int)a.Status == (int)propostaSearch.Status).ToList();
            }
            if (propostaSearch != null && propostaSearch.Segurado != null && propostaSearch.Segurado.Nome != null)
            {
                propostasCompleta = propostasCompleta.Where(a => a.Segurado.Nome.IndexOf(propostaSearch.Segurado.Nome, StringComparison.OrdinalIgnoreCase) >= 0).ToList();
            }

            switch (sortOrder)
            {
            case "status_desc":
                propostasCompleta = propostasCompleta.OrderByDescending(p => p.Status).ToList();
                break;

            case "nome_desc":
                propostasCompleta = propostasCompleta.OrderByDescending(p => p.Segurado.Nome).ToList();
                break;

            case "nome":
                propostasCompleta = propostasCompleta.OrderBy(p => p.Segurado.Nome).ToList();
                break;

            case "cpf":
                propostasCompleta = propostasCompleta.OrderBy(p => p.Segurado.CodigoCpf).ToList();
                break;

            case "cpf_desc":
                propostasCompleta = propostasCompleta.OrderByDescending(p => p.Segurado.CodigoCpf).ToList();
                break;

            default:      // Name ascending
                propostasCompleta = propostasCompleta.OrderBy(p => p.Segurado.Nome).ToList();
                break;
            }

            int pageSize   = 15;
            int pageNumber = (page ?? 1);
            PagedList <Proposta> propostaList = new PagedList <Proposta>(propostasCompleta, pageNumber, pageSize);

            return(View(propostaList));
        }
示例#10
0
        // GET: Apolice
        public ViewResult Index(Apolice apoliceSearch, string sortOrder, string currentFilter, int?page)
        {
            string searchString = "";

            //List<Apolice> apolices = db.Apolice.ToList();
            //foreach (Apolice apolice in apolices)
            //{
            //    PropostaDAO propostaDao = new PropostaDAO();
            //    propostaDao.GetProposta(apolice.CodigoProposta);
            //    apolice.Proposta = propostaDao.GetProposta(apolice.CodigoProposta);
            //    apolice.Comissao = db.Comissao.Find(apolice.CodigoComissao);
            //    apolice.Seguradora = db.Seguradora.Find(apolice.CodigoSeguradora);
            //}
            //return View(apolices);
            //TODO
            ViewBag.CurrentSort          = sortOrder;
            ViewBag.StatusSortParm       = String.IsNullOrEmpty(sortOrder) ? "status_desc" : "";
            ViewBag.NomeSeguradoSortParm = String.IsNullOrEmpty(sortOrder) ? "nomeSegurado_desc" : "nomeSegurado";
            ViewBag.SeguradoraSortParm   = String.IsNullOrEmpty(sortOrder) ? "seguradora_desc" : "seguradora";
            ViewBag.VeiculoSortParm      = String.IsNullOrEmpty(sortOrder) ? "veiculo_desc" : "veiculo";
            ViewBag.ValorPremioLiquidoVeiculoSortParm = String.IsNullOrEmpty(sortOrder) ? "valorPremioLiquido_desc" : "valorPremioLiquido";

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewBag.CurrentFilter = searchString;


            //TODO: Fazer uma consulta só
            List <Apolice> apolices = db.Apolice.ToList();

            foreach (Apolice apolice in apolices)
            {
                PropostaDAO propostaDao = new PropostaDAO();
                apolice.Proposta   = propostaDao.GetProposta(apolice.CodigoProposta);
                apolice.Comissao   = db.Comissao.Find(apolice.CodigoComissao);
                apolice.Seguradora = db.Seguradora.Find(apolice.CodigoSeguradora);
            }

            //buscas
            if (Status.NENHUM != apoliceSearch.Status)
            {
                apolices = apolices.Where(a => (int)a.Status == (int)apoliceSearch.Status).ToList();
            }
            if (apoliceSearch.Proposta != null && apoliceSearch.Proposta.Segurado != null && apoliceSearch.Proposta.Segurado.Nome != null)
            {
                apolices = apolices.Where(a => a.Proposta.Segurado.Nome.IndexOf(apoliceSearch.Proposta.Segurado.Nome, StringComparison.OrdinalIgnoreCase) >= 0).ToList();
            }



            //ordenação
            switch (sortOrder)
            {
            case "status_desc":
                apolices = apolices.OrderByDescending(a => (int)a.Status).ToList();
                break;

            case "nomeSegurado":
                apolices = apolices.OrderBy(a => a.Proposta.Segurado.Nome).ToList();
                break;

            case "nomeSegurado_desc":
                apolices = apolices.OrderByDescending(a => a.Proposta.Segurado.Nome).ToList();
                break;

            case "seguradora":
                apolices = apolices.OrderBy(a => a.Seguradora.NomeSeguradora).ToList();
                break;

            case "seguradora_desc":
                apolices = apolices.OrderByDescending(a => a.Seguradora.NomeSeguradora).ToList();
                break;

            case "veiculo":
                apolices = apolices.OrderBy(a => a.Proposta.NomeVeiculo).ToList();
                break;

            case "veiculo_desc":
                apolices = apolices.OrderByDescending(a => a.Proposta.NomeVeiculo).ToList();
                break;

            case "valorPremioLiquido":
                apolices = apolices.OrderBy(a => a.Proposta.NomeVeiculo).ToList();
                break;

            case "valorPremioLiquido_desc":
                apolices = apolices.OrderByDescending(a => a.Comissao.ValorComissaoLiquida).ToList();
                break;

            default:      // Status ascending
                apolices = apolices.OrderBy(a => (int)a.Status).ToList();
                break;
            }
            int pageSize   = 10;
            int pageNumber = (page ?? 1);
            PagedList <Apolice> apoliceList = new PagedList <Apolice>(apolices, pageNumber, pageSize);

            return(View(apoliceList));
        }
示例#11
0
        public ActionResult Edit(Apolice apolice)
        {
            apolice = _apolice;
            //if (ModelState.IsValid)
            //{
            db.Comissao.Add(apolice.Comissao);
            db.SaveChanges();
            apolice.CodigoComissao = apolice.Comissao.Id;



            //modificando a antiga para Flag de modificada
            ApoliceDAO apoliceDao = new ApoliceDAO();

            apoliceDao.MudarStatus(apolice.Id, apolice.CodigoProposta, (int)Status.ENDOSSADO);
            apoliceDao.MudarParaModificado(apolice.Id);


            PropostaDAO propostaDao = new PropostaDAO();

            //Mudar Proposta Antiga para Proposta Endossada
            propostaDao.MudarStatus(apolice.CodigoProposta, (int)StatusProposta.ENDOSSADA);

            //Inserindo nova proposta do Endosso
            apolice.Proposta.Id    = propostaDao.InsertForEndosso(apolice.Proposta);
            apolice.CodigoProposta = apolice.Proposta.Id;

            //Criacao de endosso
            Endosso endosso = new Endosso();

            //salvando codigo antigo da apolice
            endosso.CodApoliceAntigo = apolice.Id;
            endosso.DataEndosso      = DateTime.Now;

            //Mudança de Status da Apolice ao Criar um Endosso
            apolice.Status = Status.ENVIADO;

            //criando nova Apolice
            db.Apolice.Add(apolice);
            db.SaveChanges();

            //adicionando pagamento
            //criando valor da proposta do condutor
            ValorProposta valorProposta = new ValorProposta();

            valorProposta.Valor          = apolice.ValorContrato;
            valorProposta.CodigoCondutor = apolice.Proposta.codigoSegurado;
            valorProposta.DataVencimento = new DateTime(2016, 05, 12);
            valorProposta.CodigoApolice  = apolice.Id;
            db.ValorProposta.Add(valorProposta);
            db.SaveChanges();

            //adicionando Id da apolice Nova
            endosso.CodApolice = apolice.Id;

            //Salvando Endosso e Apolice nova
            db.Endosso.Add(endosso);
            db.SaveChanges();


            //Enviando Email de endosso para o Cliente
            Usuario usuario = (Usuario)Session["UsuarioLogado"];

            //PREPARANDO EMAIL
            apolice.Seguradora            = db.Seguradora.Find(apolice.CodigoSeguradora);
            apolice.formularioApoliceHtml = apolice.formularioApoliceHtml.Replace("#seguradoraEmail", apolice.Seguradora.NomeSeguradora.ToString());
            apolice.formularioApoliceHtml = apolice.formularioApoliceHtml.Replace("#valorContratoEmail", apolice.ValorContrato.ToString());
            apolice.formularioApoliceHtml = apolice.formularioApoliceHtml.Replace("#corretorEmail", "Seu Corretor - " + usuario.Nome);
            string url = Request.Url.AbsoluteUri.Replace(Request.Url.AbsolutePath, "");

            apolice.formularioApoliceHtml = apolice.formularioApoliceHtml.Replace("#EnderecoConfirmaEmail", url + "/Proposta/AceitarProposta?" +
                                                                                  "email=" + apolice.Proposta.Segurado.Email +
                                                                                  "&codigoProposta=" + apolice.CodigoProposta +
                                                                                  "&codigoApolice=" + apolice.Id);
            UtilEmailMessage utilEmail = new UtilEmailMessage();

            utilEmail.EnviarEmail("[BUSCA SEGUROS] Endosso de Sua Proposta de Cotação de Seguro", apolice.Proposta.Segurado.Email, apolice.formularioApoliceHtml);



            return(RedirectToAction("SendEndosso"));
            //}
            //return View(apolice);
        }