コード例 #1
0
        public JsonResult GetResumenCuentas(int id_pres)
        {
            List <CuentaPresResumen> data = new List <CuentaPresResumen>();

            using (Data.FinanzasPersonales DB = new Data.FinanzasPersonales())
            {
                Data.t_presupuesto presupuesto = DB.t_presupuesto.Where(p => p.id_pres == id_pres).FirstOrDefault();
                if (presupuesto == null)
                {
                    Response.StatusCode = 404;
                    return(Json(new ResponseResult {
                        Success = false, Data = "Not Found!"
                    }));
                }
                List <CuentaPres> cuentas = (from c in DB.t_cuenta_pres
                                             join ca in DB.t_Categoria_gasto on c.id_cat equals ca.id_cat
                                             where c.id_pres == id_pres
                                             select new CuentaPres()
                {
                    id_cuent = c.id_cuent,
                    id_pres = c.id_pres,
                    id_cat = c.id_cat,
                    Categoria = ca.Nombre,
                    Limite = c.Limite
                }).ToList();
                List <Data.t_Gastos> gastos = DB.t_Gastos.Where(g => g.fecha >= presupuesto.Desde && g.fecha <= presupuesto.Hasta).ToList();
                foreach (var cuenta in cuentas)
                {
                    decimal gastado = gastos.Where(g => g.id_cat == cuenta.id_cat)?.Sum(g => g.valor) ?? 0;
                    data.Add(new CuentaPresResumen()
                    {
                        id_cuent  = cuenta.id_cuent,
                        id_pres   = cuenta.id_pres,
                        id_cat    = cuenta.id_cat,
                        Categoria = cuenta.Categoria,
                        Limite    = cuenta.Limite,
                        Gastado   = gastado
                    });
                }
            }
            return(Json(new ResponseResult()
            {
                Success = true, Data = new { List = data, TotalLimites = data.Sum(d => d.Limite), TotalGastado = data.Sum(d => d.Gastado) }
            }));
        }
コード例 #2
0
        public JsonResult Edit(Presupuesto model)
        {
            if (ModelState.IsValid)
            {
                //Save
                using (Data.FinanzasPersonales DB = new Data.FinanzasPersonales())
                {
                    //Validando que la fecha desde sea mayor o igual a la fecha hasta
                    if (model.Desde > model.Hasta)
                    {
                        return(Json(new ResponseResult()
                        {
                            Success = false,
                            Data = new List <ValidationResult>()
                            {
                                new ValidationResult()
                                {
                                    Key = "id_pres",
                                    Errors = new ModelErrorCollection()
                                    {
                                        "La fecha 'Hasta' debe ser igual o mayor a la fecha 'Desde'"
                                    }
                                }
                            }
                        }));
                    }
                    //Validando que otro presupuesto no entre en conflicto de fechas con este
                    if (DB.t_presupuesto.Any(p =>
                                             (
                                                 (p.Desde <= model.Desde
                                                  &&
                                                  p.Hasta >= model.Desde)
                                                 ||
                                                 (p.Desde <= model.Hasta
                                                  &&
                                                  p.Hasta >= model.Hasta)
                                             )
                                             &&
                                             (p.id_pres != model.id_pres)
                                             )
                        )
                    {
                        return(Json(new ResponseResult()
                        {
                            Success = false,
                            Data = new List <ValidationResult>()
                            {
                                new ValidationResult()
                                {
                                    Key = "id_pres",
                                    Errors = new ModelErrorCollection()
                                    {
                                        "Hay conflictos entre las fechas digitadas y las que existen"
                                    }
                                }
                            }
                        }));
                    }
                    Data.t_presupuesto data = DB.t_presupuesto.Where(c => c.id_pres == model.id_pres).FirstOrDefault();

                    data.id_pres = model.id_pres;
                    data.Nombre  = model.Nombre;
                    data.Desde   = model.Desde;
                    data.Hasta   = model.Hasta;

                    DB.SaveChanges();
                }
                return(Json(new ResponseResult()
                {
                    Success = true, Data = Validations.GetErrors(ModelState)
                }));
            }
            else
            {
                //Reject
                return(Json(new ResponseResult()
                {
                    Success = false, Data = Validations.GetErrors(ModelState)
                }));
            }
        }