Пример #1
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));
        }
Пример #2
0
        public ActionResult EditarPost(EditarUsuarioForm model)
        {
            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                Usuario usuario = new Usuario();

                bool repetido = false;
                if (!model.IsNew)
                {
                    usuario = ctx.Usuario.Where(t => t.Id == model.Id).FirstOrDefault();
                    if (usuario == null)
                    {
                        throw new HttpException(404, "Usuario no existe.");
                    }

                    repetido = ctx.Usuario.Where(u => u.Id != usuario.Id && u.Usuario1 == model.Cuenta).Any();
                }
                else
                {
                    repetido = ctx.Usuario.Where(u => u.Usuario1 == model.Cuenta).Any();
                }

                if (repetido)
                {
                    ModelState.AddModelError("Cuenta", "Ya existe un usuario usando esta cuenta.");
                }

                if (ModelState.IsValid)
                {
                    usuario.Nombre            = model.Nombre;
                    usuario.Dominio           = "SOCOVESA";
                    usuario.Usuario1          = model.Cuenta;
                    usuario.GrupoId           = model.GrupoId;
                    usuario.FechaModificacion = DateTime.Now;

                    if (model.IsNew)
                    {
                        usuario.Eliminado     = false;
                        usuario.FechaCreacion = DateTime.Now;
                        ctx.Usuario.Add(usuario);
                    }

                    ctx.SaveChanges();

                    Dictionary <int?, UsuarioInmobiliaria> usuarioInmobiliarias = ctx.UsuarioInmobiliaria.Where(ui => ui.UsuarioId == usuario.Id).ToDictionary(ui => ui.InmobiliariaId, ui => ui);
                    foreach (InmobiliariaItem ui in model.Inmobiliarias)
                    {
                        if (usuarioInmobiliarias.ContainsKey(ui.InmobiliariaId))
                        {
                            UsuarioInmobiliaria _ui = usuarioInmobiliarias[ui.InmobiliariaId];
                            if (ui.Checked == null || ui.Checked == false)
                            {
                                ctx.UsuarioInmobiliaria.Remove(_ui);
                            }
                        }
                        else if (ui.Checked == true)
                        {
                            UsuarioInmobiliaria _ph = new UsuarioInmobiliaria();
                            _ph.UsuarioId      = usuario.Id;
                            _ph.InmobiliariaId = ui.InmobiliariaId;
                            ctx.UsuarioInmobiliaria.Add(_ph);
                        }
                    }

                    ctx.SaveChanges();

                    FlashMessagesHelper.Ok(TempData, "Usuario guardado correctamente.");
                    return(RedirectToAction("Index"));
                }

                List <Grupo> grupos = ctx.Grupo.ToList();
                ViewBag.Usuario = usuario;
                ViewBag.Grupos  = grupos;

                return(View(model));
            }
        }