Esempio n. 1
0
        public ActionResult Formulario(BoletaGarantiaForm model)
        {
            ModelState.Clear();
            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                if (model.EsNuevo())
                {
                    model.EstadoBoletaGarantiaId = 1;
                    model.EntregaSantiago        = true;
                    model.FechaVencimiento       = DateTime.Now.ToString("dd-MM-yyyy");
                }
                else
                {
                    BoletaGarantia boleta = ctx.BoletaGarantia.Where(b => b.Id == model.Id).FirstOrDefault();
                    if (boleta == null)
                    {
                        throw new HttpException(404, "Boleta no existe.");
                    }

                    model.EstadoBoletaGarantiaId = boleta.EstadoBoletaGarantiaId;
                    model.TipoGarantiaId         = boleta.TipoGarantiaId;
                    model.InmobiliariaId         = boleta.InmobiliariaId;
                    model.Beneficiario           = boleta.Beneficiario;
                    model.RutBeneficiario        = boleta.RutBeneficiario;
                    model.Monto               = string.Format(CultureInfo.InvariantCulture, "{0:G29}", boleta.Monto.Value);
                    model.TipoMonedaId        = boleta.TipoMonedaId;
                    model.Glosa               = boleta.Glosa;
                    model.FechaVencimiento    = boleta.FechaVencimiento.Value.ToString("dd-MM-yyyy");
                    model.Responsable         = boleta.Responsable;
                    model.CentroCosto         = boleta.CentroCosto;
                    model.Observaciones       = boleta.Observaciones;
                    model.EntregaSantiago     = (boleta.EntregaSantiago == 0) ? false : true;
                    model.LugarRetiro         = boleta.LugarRetiro;
                    model.NombrePersonaRetiro = boleta.NombrePersonaRetiro;
                    model.RutPersonaRetiro    = boleta.RutPersonaRetiro;

                    ViewBag.Boleta = boleta;
                }

                LoadForm();
                return(View(model));
            }
        }
Esempio n. 2
0
        public async Task <ActionResult> FormularioPost(BoletaGarantiaForm model)
        {
            if (ModelState.IsValid)
            {
                using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
                {
                    BoletaGarantia boleta = new BoletaGarantia();

                    if (!model.EsNuevo())
                    {
                        boleta = ctx.BoletaGarantia.Where(b => b.Id == model.Id).FirstOrDefault();
                        if (boleta == null)
                        {
                            throw new HttpException(404, "Boleta no existe.");
                        }

                        boleta.EstadoBoletaGarantiaId = model.EstadoBoletaGarantiaId;
                    }
                    else
                    {
                        boleta.UsuarioSolicitanteId   = AuthHelper.Usuario.Id;
                        boleta.FechaSolicitud         = DateTime.Now;
                        boleta.FechaCreacion          = DateTime.Now;
                        boleta.EstadoBoletaGarantiaId = 1;
                    }

                    boleta.InmobiliariaId      = model.InmobiliariaId;
                    boleta.TipoMonedaId        = model.TipoMonedaId;
                    boleta.TipoGarantiaId      = model.TipoGarantiaId;
                    boleta.RutSolicitante      = ctx.Inmobiliaria.Where(i => i.Id == model.InmobiliariaId).FirstOrDefault().Rut;
                    boleta.Beneficiario        = model.Beneficiario;
                    boleta.RutBeneficiario     = model.RutBeneficiario;
                    boleta.Monto               = decimal.Parse(model.Monto, CultureInfo.InvariantCulture);
                    boleta.Glosa               = model.Glosa;
                    boleta.FechaVencimiento    = DateTime.ParseExact(model.FechaVencimiento, "dd-MM-yyyy", CultureInfo.InvariantCulture);
                    boleta.Responsable         = model.Responsable;
                    boleta.CentroCosto         = model.CentroCosto;
                    boleta.Observaciones       = model.Observaciones;
                    boleta.EntregaSantiago     = Convert.ToByte((model.EntregaSantiago == true) ? 1 : 0);
                    boleta.LugarRetiro         = model.LugarRetiro;
                    boleta.NombrePersonaRetiro = model.NombrePersonaRetiro;
                    boleta.RutPersonaRetiro    = model.RutPersonaRetiro;
                    boleta.FechaModificacion   = DateTime.Now;
                    boleta.EmailNotificacion   = model.EmailNotificacion;

                    if (model.EsNuevo())
                    {
                        ctx.BoletaGarantia.Add(boleta);
                    }
                    ctx.SaveChanges();

                    if (model.Archivo.ContentLength > 0 && ConfigHelper.AppAttachmentMime.Contains(model.Archivo.ContentType.ToLower()))
                    {
                        string ext           = Path.GetExtension(model.Archivo.FileName);
                        string nombreArchivo = UtilsHelper.UniqName(ext);

                        model.Archivo.SaveAs(Path.Combine(ConfigHelper.AppAttachmentDir, nombreArchivo));

                        boleta.Archivo = nombreArchivo;
                        ctx.SaveChanges();
                    }

                    if (model.EsNuevo() && ConfigHelper.AppEmailEnabled)
                    {
                        BoletaGarantia boletaEmail = ctx.BoletaGarantia
                                                     .Include("EstadoBoletaGarantia")
                                                     .Include("TipoGarantia")
                                                     .Include("Inmobiliaria")
                                                     .Include("TipoMoneda")
                                                     .Include("Usuario")
                                                     .Where(b => b.Id == boleta.Id)
                                                     .FirstOrDefault();

                        ViewBag.Boleta = boletaEmail;

                        string body   = this.RenderRazorViewToString("~/Views/Emails/_Boleta.cshtml", null);
                        bool   result = await EmailHelper.Send(ConfigHelper.AppEmailFrom, ConfigHelper.AppEmailBoleta, "Notificación Nueva Solicitud", body);

                        if (!result)
                        {
                            FlashMessagesHelper.Bad(TempData, "No se pudo enviar el email de notificación.");
                        }

                        if (model.EmailNotificacion != null && model.EmailNotificacion.Trim().Length > 0)
                        {
                            result = await EmailHelper.Send(ConfigHelper.AppEmailFrom, model.EmailNotificacion, "Notificación Nueva Solicitud", body);

                            if (!result)
                            {
                                FlashMessagesHelper.Bad(TempData, "No se pudo enviar el email de notificación.");
                            }
                        }

                        if (ConfigHelper.AppEmailGerente != null && ConfigHelper.AppEmailGerente.Length > 0)
                        {
                            result = await EmailHelper.Send(ConfigHelper.AppEmailFrom, ConfigHelper.AppEmailGerente, "Notificación Nueva Solicitud", body);

                            if (!result)
                            {
                                FlashMessagesHelper.Bad(TempData, "No se pudo enviar el email de notificación.");
                            }
                        }

                        string email = UtilsHelper.getUserEmail("socovesa", AuthHelper.Usuario.Usuario1);
                        if (email != null)
                        {
                            result = await EmailHelper.Send(ConfigHelper.AppEmailFrom, email, "Notificación Nueva Solicitud", body);

                            if (!result)
                            {
                                FlashMessagesHelper.Bad(TempData, "No se pudo enviar el email de notificación.");
                            }
                        }
                    }

                    FlashMessagesHelper.Ok(TempData, "Solicitud guardada correctamente.");
                    return(RedirectToAction("Index"));
                }
            }

            LoadForm();
            FlashMessagesHelper.Bad(TempData, "Información no válida. Revise los campos para mas detalle.");

            return(View(model));
        }