Beispiel #1
0
        public ActionResult DeleteConfirmed(int id)

        {
            ReciboCuota reciboCuota = db.ReciboCuotas.Find(id);

            db.ReciboCuotas.Remove(reciboCuota);

            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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));
        }