public ActionResult DeleteConfirmed(int id) { ReciboCuota reciboCuota = db.ReciboCuotas.Find(id); db.ReciboCuotas.Remove(reciboCuota); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult DetailsAdendas(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ReciboCuota reciboCuota = db.ReciboCuotas.Find(id); if (reciboCuota == null) { return(HttpNotFound()); } return(PartialView(reciboCuota)); }
public ActionResult Create([Bind(Include = "Id,Fecha,NumRecibo,Pago,PagoNeto,DetalleCuotaId")] ReciboCuota reciboCuota) { if (ModelState.IsValid) { db.ReciboCuotas.Add(reciboCuota); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.DetalleCuotaId = new SelectList(db.DetalleCuotas, "Id", "Cuotas", reciboCuota.CuotaId); return(View(reciboCuota)); }
public ActionResult EditAdendas(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ReciboCuota reciboCuota = db.ReciboCuotas.Find(id); if (reciboCuota == null) { return(HttpNotFound()); } ViewBag.DetalleCuotaId = new SelectList(db.DetalleCuotas, "Id", "Cuotas", reciboCuota.CuotaId); return(View(reciboCuota)); }
public ActionResult CreateRecibo(string fecha, string numrecibo, string pago, string pagoneto, int?cuota) { int d = -3; using (var transac = db.Database.BeginTransaction()) { try { double pagnet = double.Parse(pagoneto); List <DetalleCuota> det = db.DetalleCuotas.Where(t => t.CuotaId == (int)cuota).ToList(); double faltante = det.Sum(x => x.Saldo); if (faltante >= pagnet) { ReciboCuota r = new ReciboCuota(); r.Fecha = DateTime.Parse(fecha); r.NumRecibo = numrecibo; r.Pago = double.Parse(pago); r.PagoNeto = double.Parse(pagoneto); r.CuotaId = (int)cuota; db.ReciboCuotas.Add(r); db.SaveChanges(); bool band = false; double pendiente = 0; for (int i = 0; i < det.Count && !band; i++) { if (det[i].Saldo != 0) { if (pagnet <= det[i].Saldo) { det[i].Saldo -= pagnet; det[i].Saldo = Math.Round(det[i].Saldo, 2); band = true; } else { pendiente = pagnet - det[i].Saldo; det[i].Saldo -= det[i].Saldo; pagnet = pendiente; } if (det[i].Saldo != 0) { det[i].Estado = "Abonado"; } else { det[i].Estado = "Pagado"; } //finally db.Entry(det[i]).State = EntityState.Modified; d = db.SaveChanges(); } } transac.Commit(); } else { d = -5; } } catch (Exception) { transac.Rollback(); } } return(Json(new { d }, JsonRequestBehavior.AllowGet)); }
public ActionResult EditAdendas([Bind(Include = "Id,Fecha,NumRecibo,Pago,PagoNeto,CuotaId")] ReciboCuota reciboCuota) { if (ModelState.IsValid) { using (var transact = db.Database.BeginTransaction()) { try { List <ReciboCuota> abonos = db.ReciboCuotas.Where(t => t.CuotaId == reciboCuota.CuotaId).ToList(); ReciboCuota actual = abonos.FirstOrDefault(w => w.Id == reciboCuota.Id); List <DetalleCuotasAdenda> cuotas = db.DetalleCuotasAdenda.Where(x => x.CuotaId == actual.CuotaId).ToList(); double pagnet = actual.PagoNeto, pendiente = 0; //Recorrer todos los detalles existentes y reestablecerlos foreach (var item in cuotas) { item.Saldo = item.Monto; item.Estado = "Pendiente"; } //Recorremos los abonos for (int j = 0; j < abonos.Count; j++) { bool band = false; //Recorremos las cuotas for (int i = 0; i < cuotas.Count && !band; i++) { //Si encontramos el detalle actual, el que estamos editando. if (actual.Id == abonos[j].Id) { abonos[j].PagoNeto = reciboCuota.PagoNeto; } if (cuotas[i].Saldo != 0) { if (abonos[j].PagoNeto <= cuotas[i].Saldo) { cuotas[i].Saldo -= abonos[j].PagoNeto; cuotas[i].Saldo = Math.Round(cuotas[i].Saldo, 2); band = true; } else { pendiente = pagnet - cuotas[i].Saldo; cuotas[i].Saldo -= cuotas[i].Saldo; pagnet = pendiente; } if (cuotas[i].Saldo != 0) { cuotas[i].Estado = "Abonado"; } else { cuotas[i].Estado = "Pagado"; } //finally db.Entry(cuotas[i]).State = EntityState.Modified; db.SaveChanges(); } } } db.Entry(actual).State = EntityState.Detached; db.Entry(reciboCuota).State = EntityState.Modified; db.SaveChanges(); transact.Commit(); } catch (Exception) { transact.Rollback(); } } return(RedirectToAction("IndexAdendas")); } ViewBag.DetalleCuotaId = new SelectList(db.DetalleCuotas, "Id", "Cuotas", reciboCuota.CuotaId); return(View(reciboCuota)); }