public ActionResult Delete(MayorizationViewModel vm) { try { var mayorization = Mapper.Map(vm, new Mayorization()); var listDetails = db.MayorizationDetails.Where(m => m.MayorizationId == mayorization.Id).ToList(); foreach(var md in listDetails) { var account = db.Accounts.Find(md.AccountId); account.Balance += (md.Balance * -1); if (account.MayorAccount != null) { //Si tiene cuenta mayor, hay que restaurar el total de la suma de los balances de las entradas (El balance de Mayorization Detail) account.MayorAccount.Balance += (md.Balance * -1); if (account.MayorAccount.MayorAccount != null) { account.MayorAccount.MayorAccount.Balance += (md.Balance * -1); } } db.Entry(account).State = EntityState.Modified; db.SaveChanges(); } db.Mayorizations.Attach(mayorization); db.Mayorizations.Remove(mayorization); db.SaveChanges(); return Json(new { Result = "OK", Message = "Elemento Eliminado." }); } catch (Exception ex) { return Json(new { Result = "Error", Message = ex.StackTrace }); } }
public ActionResult GetMayorizationDetails(MayorizationViewModel vm) { var details = db.MayorizationDetails.Where(d => d.MayorizationId == vm.Id).ToList(); var vmList = Mapper.Map(details, new List<MayorizationDetailViewModel>()); return Json(new { Result = "OK", Data = vmList }); }