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