public JsonResult Delete(int id)
        {
            CuentaPres data = new CuentaPres();

            using (Data.FinanzasPersonales DB = new Data.FinanzasPersonales())
            {
                var fromDb = DB.t_cuenta_pres.Where(c => c.id_cuent == id).FirstOrDefault();
                if (fromDb == null)
                {
                    Response.StatusCode = 404;
                    return(Json(new ResponseResult()
                    {
                        Success = false, Data = "Not found"
                    }));
                }
                var pres = DB.t_presupuesto.Where(a => a.id_pres == fromDb.id_pres).FirstOrDefault();
                if (DB.t_Gastos.Any(a => (a.fecha >= pres.Desde && a.fecha <= pres.Hasta) && a.id_cat == fromDb.id_cat))
                {
                    return(Json(new ResponseResult()
                    {
                        Success = false, Data = "No se puede eliminar la cuenta, debido a que tiene registros vinculados"
                    }));
                }

                DB.t_cuenta_pres.Remove(fromDb);
                DB.SaveChanges();
            }
            return(Json(new ResponseResult()
            {
                Success = true, Data = "Éxito"
            }));
        }
Example #2
0
 public JsonResult Delete(int id)
 {
     using (Data.FinanzasPersonales DB = new Data.FinanzasPersonales())
     {
         //Validando no hay registros relacionados al presupuesto
         if (DB.t_cuenta_pres.Any(c => c.id_pres == id))
         {
             return(Json(new ResponseResult()
             {
                 Success = false, Data = "No se puede eliminar el presupuesto, debido a que tiene registros vinculados"
             }));
         }
         var fromDbCat = DB.t_presupuesto.Where(c => c.id_pres == id).FirstOrDefault();
         if (fromDbCat == null)
         {
             Response.StatusCode = 404;
             return(Json(new ResponseResult()
             {
                 Success = false, Data = "Not found"
             }));
         }
         else
         {
             DB.t_presupuesto.Remove(fromDbCat);
             DB.SaveChanges();
         }
     }
     return(Json(new ResponseResult()
     {
         Success = true, Data = "Éxito al eliminar"
     }));
 }
Example #3
0
        public JsonResult Edit(Categoria model)
        {
            if (ModelState.IsValid)
            {
                //Save
                using (Data.FinanzasPersonales DB = new Data.FinanzasPersonales())
                {
                    Data.t_Categoria_gasto data = DB.t_Categoria_gasto.Where(c => c.id_cat == model.id_cat).FirstOrDefault();

                    data.id_cat = model.id_cat;
                    data.Nombre = model.Nombre;

                    DB.SaveChanges();
                }
                return(Json(new ResponseResult()
                {
                    Success = true, Data = Validations.GetErrors(ModelState)
                }));
            }
            else
            {
                //Reject
                return(Json(new ResponseResult()
                {
                    Success = false, Data = Validations.GetErrors(ModelState)
                }));
            }
        }
Example #4
0
 public JsonResult Create(CategoriaCreate model)
 {
     if (ModelState.IsValid)
     {
         //Save
         using (Data.FinanzasPersonales DB = new Data.FinanzasPersonales())
         {
             DB.t_Categoria_gasto.Add(new Data.t_Categoria_gasto()
             {
                 Nombre = model.Nombre
             });
             DB.SaveChanges();
         }
         return(Json(new ResponseResult()
         {
             Success = true, Data = Validations.GetErrors(ModelState)
         }));
     }
     else
     {
         //Reject
         return(Json(new ResponseResult()
         {
             Success = false, Data = Validations.GetErrors(ModelState)
         }));
     }
 }
        public JsonResult Edit(CuentaPres model)
        {
            if (ModelState.IsValid)
            {
                //Save
                using (Data.FinanzasPersonales DB = new Data.FinanzasPersonales())
                {
                    //Validando que solo exista una cuenta presupuestaria para esta categoria
                    if (DB.t_cuenta_pres.Any(a => (a.id_cat == model.id_cat && a.id_pres == model.id_pres) && a.id_cuent != model.id_cuent))
                    {
                        return(Json(new ResponseResult()
                        {
                            Success = false,
                            Data = new List <ValidationResult>()
                            {
                                new ValidationResult()
                                {
                                    Key = "id_cat",
                                    Errors = new ModelErrorCollection()
                                    {
                                        "Ya existe esta categoria de gasto en este presupuesto"
                                    }
                                }
                            }
                        }));
                    }
                    Data.t_cuenta_pres data = DB.t_cuenta_pres.Where(c => c.id_cuent == model.id_cuent).FirstOrDefault();

                    data.id_pres = model.id_pres;
                    data.id_cat  = model.id_cat;
                    data.Limite  = model.Limite;

                    DB.SaveChanges();
                }
                return(Json(new ResponseResult()
                {
                    Success = true, Data = Validations.GetErrors(ModelState)
                }));
            }
            else
            {
                //Reject
                return(Json(new ResponseResult()
                {
                    Success = false, Data = Validations.GetErrors(ModelState)
                }));
            }
        }
        public JsonResult Delete(int id)
        {
            GastoCreateModel gasto = new GastoCreateModel();

            using (Data.FinanzasPersonales DB = new Data.FinanzasPersonales())
            {
                var fromDbGasto = DB.t_Gastos.Where(g => g.id_gasto == id).FirstOrDefault();
                if (fromDbGasto == null)
                {
                    Response.StatusCode = 404;
                    return(Json(new ResponseResult()
                    {
                        Success = false, Data = "Not found"
                    }));
                }
                else
                {
                    DB.t_Gastos.Remove(fromDbGasto);
                    DB.SaveChanges();
                }
            }
            return(Json(gasto));
        }
        public JsonResult Create(GastoCreateModel model)
        {
            if (ModelState.IsValid)
            {
                using (Data.FinanzasPersonales DB = new Data.FinanzasPersonales())
                {
                    var presInfo = (from p in DB.t_presupuesto
                                    join c in DB.t_cuenta_pres on p.id_pres equals c.id_pres
                                    where (p.Desde <= model.fecha && p.Hasta >= model.fecha) && c.id_cat == model.categoria
                                    select new
                    {
                        Desde = p.Desde,
                        Hasta = p.Hasta,
                        id_pres = p.id_pres,
                        id_cuent = c.id_cuent,
                        id_cat = c.id_cat,
                        Limite = c.Limite
                    }).FirstOrDefault();
                    if (presInfo is null)
                    {
                        return(Json(new ResponseResult()
                        {
                            Success = false,
                            Data = new List <ValidationResult>()
                            {
                                new ValidationResult()
                                {
                                    Key = "id_gasto", Errors = new ModelErrorCollection()
                                    {
                                        "No existe una cuenta presupuestaria con esta categoría de gasto que abarque esta fecha"
                                    }
                                }
                            }
                        }
                                    ));
                    }

                    var     gastosCat  = DB.t_Gastos.Where(g => (g.fecha >= presInfo.Desde && g.fecha <= presInfo.Hasta) && g.id_cat == model.categoria).ToList();
                    decimal gastado    = (gastosCat.Count == 0 ? 0 : gastosCat.Sum(g => g.valor));
                    decimal disponible = presInfo.Limite - gastado;
                    if (model.valor > disponible)
                    {
                        return(Json(new ResponseResult()
                        {
                            Success = false,
                            Data = new List <ValidationResult>()
                            {
                                new ValidationResult()
                                {
                                    Key = "id_gasto", Errors = new ModelErrorCollection()
                                    {
                                        "El valor de este gasto excede el disponible de la cuenta presupuestaria"
                                    }
                                }
                            }
                        }
                                    ));
                    }
                    DB.t_Gastos.Add(new Data.t_Gastos()
                    {
                        id_cat        = model.categoria,
                        fecha         = model.fecha,
                        justificacion = model.justificacion,
                        valor         = model.valor
                    });
                    DB.SaveChanges();
                }
                return(Json(new ResponseResult()
                {
                    Success = true, Data = Validations.GetErrors(ModelState)
                }));
            }
            else
            {
                //Reject
                return(Json(new ResponseResult()
                {
                    Success = false, Data = Validations.GetErrors(ModelState)
                }));
            }
        }
Example #8
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)
                }));
            }
        }