Example #1
0
        public async Task <IActionResult> Edit(IFormCollection form)
        {
            Prospecto prospecto = _context.Prospectos.SingleOrDefault(x => x.IdProspecto == int.Parse(form["IdProspecto"]));
            // Auditoría 2019-06-29
            AuditoriaProspectos auditor = new AuditoriaProspectos
            {
                FechaRegistro      = DateTime.Now,
                IdProspecto        = prospecto.IdProspecto,
                IPRegistro         = HttpContext.Connection.RemoteIpAddress.ToString(),
                TipoDeMovimiento   = "Edición del prospecto",
                UsuarioRegistrante = prospecto.ConfirmacionProspecto.UserId,
                DatosNuevos        = "N/A",
                DatosPrevios       = _utilities.GetDatosJson(prospecto)
            };

            prospecto.ConfirmacionProspecto.Agencia              = int.Parse(form["Agencia"]);
            prospecto.ConfirmacionProspecto.DescripcionAgencia   = form["AgenciaDescripcion"];
            prospecto.ConfirmacionProspecto.TipoMedio            = int.Parse(form["TipoMedio"]);
            prospecto.ConfirmacionProspecto.DescripcionTipoMedio = form["TipoMedioDescripcion"];
            prospecto.ConfirmacionProspecto.Medio                  = int.Parse(form["TipoMedioAgencia"]);
            prospecto.ConfirmacionProspecto.DescripcionMedio       = form["TipoMedioAgenciaDescripcion"];
            prospecto.ConfirmacionProspecto.TipoCliente            = int.Parse(form["TipoCliente"]);
            prospecto.ConfirmacionProspecto.DescripcionTipoCliente = form["TipoClienteDescripcion"];
            prospecto.ConfirmacionProspecto.UserId                 = _userManager.GetUserId(User);
            prospecto.ConfirmacionProspecto.Observaciones          = form["observaciones"];
            prospecto           = _utilities.UpdateProspecto(form, prospecto);
            auditor.DatosNuevos = _utilities.GetDatosJson(prospecto);
            _context.Add(auditor);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Details", "Prospectos", new { id = prospecto.IdProspecto }));
        }
Example #2
0
        public async Task <IActionResult> ConfirmarCorreo(string guuid, int id)
        {
            ConfirmacionProspecto confirmacionProspecto = await _context.ConfirmacionProspectos.SingleOrDefaultAsync(x => x.Id == id);

            if (confirmacionProspecto.Guuid == guuid)
            {
                confirmacionProspecto.IsConfirmed       = true;
                confirmacionProspecto.FechaConfirmacion = DateTime.Now;
                confirmacionProspecto.IdEstado          = (int)Constants.EstadosProspectos.Confirmado;
                await _context.SaveChangesAsync();

                ViewData["IsConfirmed"] = true;

                // Auditoría 2019-06-29
                AuditoriaProspectos auditor = new AuditoriaProspectos
                {
                    FechaRegistro      = DateTime.Now,
                    IdProspecto        = confirmacionProspecto.Prospecto.IdProspecto,
                    IPRegistro         = HttpContext.Connection.RemoteIpAddress.ToString(),
                    TipoDeMovimiento   = "Confirmación de correo por parte del cliente",
                    UsuarioRegistrante = "Acción iniciada por el cliente",
                    DatosNuevos        = "N/A",
                    DatosPrevios       = "N/A"
                };
                _context.Add(auditor);
                await _context.SaveChangesAsync();
            }
            else
            {
                ViewData["IsConfirmed"] = false;
            }
            return(View());
        }
Example #3
0
        public async Task <IActionResult> Generate(int id)
        {
            Prospecto prospecto = await _context.Prospectos.SingleOrDefaultAsync(x => x.IdProspecto == id);

            MemoryStream stream = new MemoryStream();
            string       srcPdf = "";

            if (prospecto.IdCompania.Equals(Constants.GuuidElectro))
            {
                srcPdf = _hostingEnvironment.WebRootPath + "/pdf/" + Constants.CotizacionElectro;
            }
            else
            {
                srcPdf = _hostingEnvironment.WebRootPath + "/pdf/" + Constants.CotizacionAuto;
            }

            PdfWriter   pdfWriter = new PdfWriter(stream);
            PdfDocument pdf       = new PdfDocument(new PdfReader(srcPdf), pdfWriter);

            pdfWriter.SetCloseStream(false);

            PdfAcroForm pdfForm = PdfAcroForm.GetAcroForm(pdf, true);
            IDictionary <String, PdfFormField> fields = pdfForm.GetFormFields();

            _utilities.FillPdf(fields, prospecto);

            pdfForm.FlattenFields();
            pdf.Close();
            stream.Flush();
            stream.Position = 0;
            // Auditoría 2019-06-29
            AuditoriaProspectos auditor = new AuditoriaProspectos
            {
                FechaRegistro      = DateTime.Now,
                IdProspecto        = prospecto.IdProspecto,
                IPRegistro         = HttpContext.Connection.RemoteIpAddress.ToString(),
                TipoDeMovimiento   = "Generación de cotización",
                UsuarioRegistrante = prospecto.ConfirmacionProspecto.UserId,
                DatosNuevos        = _utilities.GetDatosJson(prospecto),
                DatosPrevios       = "N/A"
            };

            _context.Add(auditor);
            await _context.SaveChangesAsync();

            return(File(stream, "application/pdf", prospecto.IdProspecto + "-" + DateTime.Now.ToString("yyyy-MM-dd-") + "Cotizacion.pdf"));
        }
Example #4
0
        public async Task <IActionResult> EmailCotizacion(int id)
        {
            MemoryStream stream    = new MemoryStream();
            Prospecto    prospecto = await _context.Prospectos.SingleOrDefaultAsync(x => x.IdProspecto == id);

            string srcPdf = "";

            if (prospecto.IdCompania.Equals(Constants.GuuidElectro))
            {
                srcPdf = _hostingEnvironment.WebRootPath + "/pdf/" + Constants.CotizacionElectro;
            }
            else
            {
                srcPdf = _hostingEnvironment.WebRootPath + "/pdf/" + Constants.CotizacionAuto;
            }


            PdfWriter   pdfWriter = new PdfWriter(stream);
            PdfDocument pdf       = new PdfDocument(new PdfReader(srcPdf), pdfWriter);

            pdfWriter.SetCloseStream(false);

            PdfAcroForm pdfForm = PdfAcroForm.GetAcroForm(pdf, true);
            IDictionary <String, PdfFormField> fields = pdfForm.GetFormFields();

            _utilities.FillPdf(fields, prospecto);

            pdfForm.FlattenFields();
            pdf.Close();
            stream.Flush();
            stream.Position = 0;
            EmailService emailService = new EmailService(_emailConfiguration);
            EmailMessage emailMessage = new EmailMessage();


            string src = "";

            if (prospecto.IdCompania.Equals(Constants.GuuidElectro))
            {
                emailMessage.FromAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = "Qurii", Address = "*****@*****.**"
                    }
                };
                emailMessage.ToAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = prospecto.PrimerNombre + " " + prospecto.SegundoNombre + " " + prospecto.PrimerApellido + " " + prospecto.SegundoApellido, Address = prospecto.Email
                    }
                };
                emailMessage.Subject = "[QURII] Cotización plan de ahorro programado";
                switch (prospecto.Marca_exclusiva_bien)
                {
                case "YAMAHA":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/Cotizacion/CotizacionMotoMas.html";
                    break;

                case "AUTECO - BAJAJ":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/Cotizacion/CotizacionBajaj.html";
                    break;

                case "AUTECO - KAWASAKI":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/Cotizacion/CotizacionKawasaki.html";
                    break;

                case "AUTECO - KTM":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/Cotizacion/CotizacionKtm.html";
                    break;

                default:
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/Cotizacion/CotizacionElectroplan.html";
                    break;
                }
            }
            else
            {
                emailMessage.FromAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = "Qurii", Address = "*****@*****.**"
                    }
                };
                emailMessage.ToAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = prospecto.PrimerNombre + " " + prospecto.SegundoNombre + " " + prospecto.PrimerApellido + " " + prospecto.SegundoApellido, Address = prospecto.Email
                    }
                };
                emailMessage.Subject = "[Qurii] Cotización plan de ahorro programado";
                switch (prospecto.Marca_exclusiva_bien)
                {
                case "KIA":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/Cotizacion/CotizacionKiaPlan.html";
                    break;

                case "HYUNDAI":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/Cotizacion/CotizacionAutokoreana.html";
                    break;

                case "VOLKSWAGEN":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/Cotizacion/CotizacionAutofinanciera.html";
                    break;

                default:
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/Cotizacion/CotizacionAutofinanciera.html";
                    break;
                }
            }

            emailMessage.Content = String.Format(_utilities.GetTemplate(src));
            try
            {
                emailService.Send(emailMessage, stream, Constants.CotizacionPDF);
                TempData["EmailResult"] = "Success";
            }
            catch (Exception ex)
            {
                TempData["EmailResult"] = "Ha ocurrido un error: " + ex.Message;
            }
            TempData.Keep("EmailResult");
            // Auditoría 2019-06-29
            AuditoriaProspectos auditor = new AuditoriaProspectos
            {
                FechaRegistro      = DateTime.Now,
                IdProspecto        = prospecto.IdProspecto,
                IPRegistro         = HttpContext.Connection.RemoteIpAddress.ToString(),
                TipoDeMovimiento   = "Email de cotización",
                UsuarioRegistrante = prospecto.ConfirmacionProspecto.UserId,
                DatosNuevos        = _utilities.GetDatosJson(prospecto),
                DatosPrevios       = "N/A"
            };

            _context.Add(auditor);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Details", "Prospectos", new { id = prospecto.IdProspecto }));
        }
Example #5
0
        public async Task <IActionResult> EmailConfirmacion(int id)
        {
            Prospecto prospecto = await _context.Prospectos.SingleOrDefaultAsync(x => x.IdProspecto == id);

            EmailService        emailService        = new EmailService(_emailConfiguration);
            EmailMessage        emailMessage        = new EmailMessage();
            CanonicalUrlService canonicalUrlService = new CanonicalUrlService(_canonicalUrlConfiguration);



            string src = "";

            if (prospecto.IdCompania.Equals(Constants.GuuidElectro))
            {
                emailMessage.FromAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = "Qurii", Address = "*****@*****.**"
                    }
                };
                emailMessage.ToAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = prospecto.PrimerNombre + " " + prospecto.SegundoNombre + " " + prospecto.PrimerApellido + " " + prospecto.SegundoApellido, Address = prospecto.Email
                    }
                };
                emailMessage.Subject = "[Qurii] Verificación de correo electrónico";
                switch (prospecto.Marca_exclusiva_bien)
                {
                case "YAMAHA":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailMotoMas.html";
                    break;

                case "AUTECO - BAJAJ":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailBajaj.html";
                    break;

                case "AUTECO - KAWASAKI":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailKawasaki.html";
                    break;

                case "AUTECO - KTM":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailKtm.html";
                    break;

                default:
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailElectroplan.html";
                    break;
                }
            }
            else
            {
                emailMessage.FromAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = "Qurii", Address = "*****@*****.**"
                    }
                };
                emailMessage.ToAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = prospecto.PrimerNombre + " " + prospecto.SegundoNombre + " " + prospecto.PrimerApellido + " " + prospecto.SegundoApellido, Address = prospecto.Email
                    }
                };
                emailMessage.Subject = "[Qurii] Verificación de correo electrónico";
                switch (prospecto.Marca_exclusiva_bien)
                {
                case "KIA":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailKiaPlan.html";
                    break;

                case "HYUNDAI":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailAutokoreana.html";
                    break;

                case "VOLKSWAGEN":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailAutofinanciera.html";
                    break;

                default:
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailAutofinanciera.html";
                    break;
                }
            }

            emailMessage.Content = String.Format(
                _utilities.GetTemplate(src),
                canonicalUrlService.GetCanonicalUrl() + "Prospectos/confirmarcorreo/?guuid=" + prospecto.ConfirmacionProspecto.Guuid + "&id=" + prospecto.ConfirmacionProspecto.Id);


            try
            {
                emailService.Send(emailMessage);
                TempData["EmailResult"] = "Success";
            }
            catch (Exception ex)
            {
                TempData["EmailResult"] = "Ha ocurrido un error: " + ex.Message;
            }
            TempData.Keep("EmailREsult");
            // Auditoría 2019-06-29
            AuditoriaProspectos auditor = new AuditoriaProspectos
            {
                FechaRegistro      = DateTime.Now,
                IdProspecto        = prospecto.IdProspecto,
                IPRegistro         = HttpContext.Connection.RemoteIpAddress.ToString(),
                TipoDeMovimiento   = "Se le reenvia el email de confirmación al cliente",
                UsuarioRegistrante = prospecto.ConfirmacionProspecto.UserId,
                DatosNuevos        = "N/A",
                DatosPrevios       = "N/A"
            };

            _context.Add(auditor);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Details", "Prospectos", new { id = prospecto.IdProspecto }));
        }
Example #6
0
        public async Task <IActionResult> Create(IFormCollection form)
        {
            int.TryParse(s: form["NumeroDocumento"], result: out int documentoIdentidad);

            /*if (documentoIdentidad == 0 || _context.Prospectos.Count(x => x.NumeroDocumento == documentoIdentidad) > 0 || _context.Prospectos.Count(x => x.Email == form["email"].ToString().ToUpper()) > 0)
             * {
             *  return RedirectToAction("Create", new { e = (int)Constants.ErrorList.CedulaCorreoDuplicado});
             * }  */

            Prospecto prospecto = _utilities.FillProspecto(form);

            _context.Prospectos.Add(prospecto);
            await _context.SaveChangesAsync();

            ConfirmacionProspecto confirmacionProspecto = new ConfirmacionProspecto()
            {
                IdProspecto            = prospecto.IdProspecto,
                Guuid                  = Guid.NewGuid().ToString(),
                IsConfirmed            = false,
                Agencia                = int.Parse(form["Agencia"]),
                DescripcionAgencia     = form["AgenciaDescripcion"],
                TipoMedio              = int.Parse(form["TipoMedio"]),
                DescripcionTipoMedio   = form["TipoMedioDescripcion"],
                Medio                  = int.Parse(form["TipoMedioAgencia"]),
                DescripcionMedio       = form["TipoMedioAgenciaDescripcion"],
                TipoCliente            = int.Parse(form["TipoCliente"]),
                DescripcionTipoCliente = form["TipoClienteDescripcion"],
                UserId                 = _userManager.GetUserId(User),
                IdEstado               = (int)Constants.EstadosProspectos.PorConfirmarCorreo,
                FechaCreacion          = DateTime.Now,
                Observaciones          = form["observaciones"],
                Asesor                 = int.Parse(form["asesores"])
            };

            _context.ConfirmacionProspectos.Add(confirmacionProspecto);
            await _context.SaveChangesAsync();

            try
            {
            }
            catch (Exception ex)
            {
                string value = ex.Message;
            }

            EmailService        emailService = new EmailService(_emailConfiguration);
            EmailMessage        emailMessage = new EmailMessage();
            CanonicalUrlService urlService   = new CanonicalUrlService(_canonicalUrlConfiguration);



            string src = "";

            if (prospecto.IdCompania.Equals(Constants.GuuidElectro))
            {
                emailMessage.FromAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = "Qurii", Address = "*****@*****.**"
                    }
                };
                emailMessage.ToAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = prospecto.PrimerNombre + " " + prospecto.SegundoNombre + " " + prospecto.PrimerApellido + " " + prospecto.SegundoApellido, Address = prospecto.Email
                    }
                };
                emailMessage.Subject = "[Qurii] Verificación de correo electrónico";
                switch (prospecto.Marca_exclusiva_bien)
                {
                case "YAMAHA":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailMotoMas.html";
                    break;

                case "AUTECO - BAJAJ":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailBajaj.html";
                    break;

                case "AUTECO - KAWASAKI":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailKawasaki.html";
                    break;

                case "AUTECO - KTM":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailKtm.html";
                    break;

                default:
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailElectroplan.html";
                    break;
                }
            }
            else
            {
                emailMessage.FromAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = "Qurii", Address = "*****@*****.**"
                    }
                };
                emailMessage.ToAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = prospecto.PrimerNombre + " " + prospecto.SegundoNombre + " " + prospecto.PrimerApellido + " " + prospecto.SegundoApellido, Address = prospecto.Email
                    }
                };
                emailMessage.Subject = "[Qurii] Verificación de correo electrónico";
                switch (prospecto.Marca_exclusiva_bien)
                {
                case "KIA":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailKiaPlan.html";
                    break;

                case "HYUNDAI":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailAutokoreana.html";
                    break;

                case "VOLKSWAGEN":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailAutofinanciera.html";
                    break;

                default:
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailAutofinanciera.html";
                    break;
                }
            }

            emailMessage.Content = String.Format(
                _utilities.GetTemplate(src),
                urlService.GetCanonicalUrl() + "Prospectos/confirmarcorreo/?guuid=" + confirmacionProspecto.Guuid + "&id=" + confirmacionProspecto.Id);

            try
            {
                emailService.Send(emailMessage);
                TempData["EmailResult"] = "Success";
            }
            catch (Exception ex)
            {
                TempData["EmailResult"] = "Ha ocurrido un error: " + ex.Message;
            }
            TempData.Keep("EmailREsult");

            // Auditoría 2019-06-29
            AuditoriaProspectos auditor = new AuditoriaProspectos
            {
                FechaRegistro      = DateTime.Now,
                IdProspecto        = prospecto.IdProspecto,
                IPRegistro         = HttpContext.Connection.RemoteIpAddress.ToString(),
                TipoDeMovimiento   = "Creación de prospecto",
                UsuarioRegistrante = prospecto.ConfirmacionProspecto.UserId,
                DatosNuevos        = _utilities.GetDatosJson(prospecto),
                DatosPrevios       = "N/A"
            };

            _context.Add(auditor);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Details", "Prospectos", new { id = prospecto.IdProspecto }));
        }