Beispiel #1
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                try
                {
                    string name = AuthHelper.Identity;

                    if (name.Trim().Length == 0)
                    {
                        throw new Exception("Debe estar autenticado.");
                    }

                    string[] parts   = name.Split('\\');
                    string   dominio = parts[0];
                    string   user    = parts[1];

                    Usuario usuario = ctx.Usuario.FirstOrDefault(u => u.Dominio == dominio && u.Usuario1 == user && u.Eliminado == false);
                    if (usuario == null || usuario.GrupoId == null)
                    {
                        throw new Exception("Usuario no registrado.");
                    }

                    ((IObjectContextAdapter)ctx).ObjectContext.Refresh(System.Data.Entity.Core.Objects.RefreshMode.StoreWins, usuario);

                    AuthHelper.Usuario = usuario;
                    base.OnActionExecuting(filterContext);
                }
                catch (Exception ex)
                {
                    throw new HttpException(503, ex.Message);
                }
            }
        }
Beispiel #2
0
        public ActionResult Index()
        {
            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                int[] ids = new int[] { 51, 52 };
                List <SP_GetUsuarios_Result> usuarios = ctx.SP_GetUsuarios().Where(u => !ids.Contains(u.Id)).ToList();
                ViewBag.Usuarios = usuarios;

                ViewBag.UsuariosJson = JsonConvert.SerializeObject(usuarios);
                return(View());
            }
        }
Beispiel #3
0
        public ActionResult Eliminar(int id)
        {
            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                Usuario usuario = ctx.Usuario.Where(t => t.Id == id).FirstOrDefault();
                if (usuario == null || usuario.Id == 1)
                {
                    throw new HttpException(404, "Usuario no existe.");
                }

                usuario.Eliminado         = true;
                usuario.FechaModificacion = DateTime.Now;
                ctx.SaveChanges();

                FlashMessagesHelper.Info(TempData, "Usuario eliminado correctamente.");
                return(RedirectToAction("Index"));
            }
        }
        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));
            }
        }
        public async Task <ActionResult> Email()
        {
            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                BoletaGarantia boletaEmail = ctx.BoletaGarantia
                                             .Include("EstadoBoletaGarantia")
                                             .Include("TipoGarantia")
                                             .Include("Inmobiliaria")
                                             .Include("TipoMoneda")
                                             .Include("Usuario")
                                             .First();

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

                return(Content(result ? "Ok!" : "Bad!"));
            }
        }
        private void LoadForm()
        {
            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                var inmobiliarias = ctx.Inmobiliaria
                                    .Join(ctx.UsuarioInmobiliaria, i => i.Id, ui => ui.InmobiliariaId, (i, ui) => new { Inmobiliaria = i, UsuarioInmobiliaria = ui })
                                    .Where(z => z.UsuarioInmobiliaria.UsuarioId == AuthHelper.Usuario.Id)
                                    .Select(z => new
                {
                    Id     = z.Inmobiliaria.Id,
                    Nombre = z.Inmobiliaria.Nombre,
                    Rut    = z.Inmobiliaria.Rut
                }).OrderBy(z => z.Nombre).ToList();

                ViewBag.EstadosBoletaGarantia = ctx.EstadoBoletaGarantia.ToList();
                ViewBag.TiposGarantia         = ctx.TipoGarantia.ToList();
                ViewBag.Inmobiliarias         = inmobiliarias;
                ViewBag.TiposMoneda           = ctx.TipoMoneda.ToList();
                ViewBag.InmobiliariasJson     = JsonConvert.SerializeObject(inmobiliarias);
            }
        }
Beispiel #7
0
        public ActionResult Editar(EditarUsuarioForm model)
        {
            ModelState.Clear();

            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                Usuario usuario = null;

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

                    model.Nombre  = usuario.Nombre;
                    model.Cuenta  = usuario.Usuario1;
                    model.GrupoId = usuario.GrupoId;
                }

                //int[] ids = new int[] { 1, 2, 8, 9 };
                //List<Grupo> grupos = ctx.Grupo.Where(g => ids.Contains(g.Id)).ToList();
                List <Grupo>            grupos        = ctx.Grupo.ToList();
                List <InmobiliariaItem> inmobiliarias = ctx.SP_UsuarioInmobiliarias(usuario == null ? 0 : usuario.Id).Select(ui => new InmobiliariaItem
                {
                    UsuarioInmobiliariaId = ui.UsuarioInmobiliariaId,
                    InmobiliariaId        = ui.Id,
                    Nombre  = ui.Nombre,
                    Checked = ui.Checked,
                }).ToList();
                model.Inmobiliarias = inmobiliarias;

                ViewBag.Usuario = usuario;
                ViewBag.Grupos  = grupos;

                return(View(model));
            }
        }
        public ActionResult VerBoletaGarantia(int boletaGarantiaId)
        {
            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                BoletaGarantia boleta = ctx.BoletaGarantia
                                        .Include("EstadoBoletaGarantia")
                                        .Include("TipoGarantia")
                                        .Include("Inmobiliaria")
                                        .Include("TipoMoneda")
                                        .Include("Usuario")
                                        .Where(b => b.Id == boletaGarantiaId)
                                        .FirstOrDefault();

                if (boleta == null)
                {
                    throw new HttpException(404, "No existe el elemento en base de datos.");
                }

                ViewBag.Boleta = boleta;

                return(View());
            }
        }
        public ActionResult Index()
        {
            using (FormularioBoletaGarantiaEntities ctx = new FormularioBoletaGarantiaEntities())
            {
                List <int?> inmobiliarias = ctx.UsuarioInmobiliaria.Where(ui => ui.UsuarioId == AuthHelper.Usuario.Id).Select(ui => ui.InmobiliariaId).ToList();

                bool esAdmin = AuthHelper.Is(Grupo.AdminSistema);

                List <BoletaGarantia> boletas = ctx.BoletaGarantia
                                                .Include("EstadoBoletaGarantia")
                                                .Include("TipoGarantia")
                                                .Include("Inmobiliaria")
                                                .Include("TipoMoneda")
                                                .Include("Usuario")
                                                //.Where(b => inmobiliarias.Contains(b.InmobiliariaId))
                                                .Where(b => esAdmin || b.UsuarioSolicitanteId == AuthHelper.Usuario.Id)
                                                .OrderByDescending(b => b.FechaSolicitud.Value)
                                                .ToList();

                ViewBag.Boletas = boletas;

                return(View());
            }
        }
        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));
        }
Beispiel #11
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));
            }
        }