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)); }
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)); } }