public ActionResult DeleteConfirmed(int id) { Intereses intereses = db.Intereses.Find(id); db.Intereses.Remove(intereses); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,Nombre")] Intereses intereses) { if (ModelState.IsValid) { db.Entry(intereses).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(intereses)); }
public ActionResult Create([Bind(Include = "Id,Nombre")] Intereses intereses) { if (ModelState.IsValid) { db.Intereses.Add(intereses); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(intereses)); }
// GET: Intereses/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Intereses intereses = db.Intereses.Find(id); if (intereses == null) { return(HttpNotFound()); } return(View(intereses)); }
public frmEmpeñoInteres(int id) { InitializeComponent(); intereses = _context.Intereses.Find(id); }
public async Task PagaInteres(double pagoIntereses, bool print = true) { empeño = await _context.Empenos.FindAsync(empeñoId); if (pagoIntereses > 0) { var pago = new Pago { EmpenoId = empeño.EmpenoId, Consecutivo = GetConsecutivo(), Comentario = txtComentario.Text, EmpleadoId = Program.EmpleadoId, Fecha = DateTime.Now, Monto = pagoIntereses, TipoPago = TipoPago.Interes, }; _context.Pago.Add(pago); await _context.SaveChangesAsync(); await funciones.SaveBitacora(new ValorBitacora { Valor = JsonConvert.SerializeObject(pago), Modulo = "Pagos", Accion = "Crear" }); List <Intereses> intereses = new List <Intereses>(); var sobrante = pago.Monto; var listInteres = await _context.Intereses.Where(i => i.EmpenoId == pago.EmpenoId && i.Pagado < i.Monto).ToListAsync(); foreach (var item in listInteres) { if ((item.Monto - item.Pagado) > sobrante && sobrante > 0) { item.Pagado += sobrante; if (item.Pagado >= Math.Truncate(item.Monto)) { empeño.FechaVencimiento = empeño.FechaVencimiento.AddMonths(1); item.Monto = item.Pagado; item.FechaPago = DateTime.Now; } item.PagoId = pago.PagoId; _context.Entry(item).State = EntityState.Modified; await _context.SaveChangesAsync(); Intereses valorTemp = new Intereses { EmpenoId = item.EmpenoId, FechaCreacion = item.FechaCreacion, FechaVencimiento = item.FechaVencimiento, FechaPago = item.FechaPago, InteresesId = item.InteresesId, Monto = item.Monto, Pagado = sobrante, PagoId = item.PagoId }; intereses.Add(valorTemp); break; } else if (sobrante > 0) { double paga = (item.Monto - item.Pagado); item.Pagado += paga; if (item.Pagado >= Math.Truncate(item.Monto)) { empeño.FechaVencimiento = empeño.FechaVencimiento.AddMonths(1); item.Monto = item.Pagado; item.FechaPago = DateTime.Now; } item.PagoId = pago.PagoId; sobrante -= paga; _context.Entry(item).State = EntityState.Modified; await _context.SaveChangesAsync(); Intereses valorTemp = new Intereses { EmpenoId = item.EmpenoId, FechaCreacion = item.FechaCreacion, FechaVencimiento = item.FechaVencimiento, FechaPago = item.FechaPago, InteresesId = item.InteresesId, Monto = item.Monto, MontoBodega = item.MontoBodega, MontoInteres = item.MontoInteres, Pagado = paga, PagoId = item.PagoId }; intereses.Add(valorTemp); } } await funciones.SaveBitacora(new ValorBitacora { Valor = JsonConvert.SerializeObject(intereses), Modulo = "Intereses", Accion = "Crear" }); var id = empeño.EmpenoId; await funciones.ReviewEmpeño(id); empeño = null; using (DataContext contextTemp = new DataContext()) { empeño = await contextTemp.Empenos.FindAsync(id); if (print) { await PrintInteres(empeño, intereses, pago); } } } }
public async Task ReviewEmpeño(int id) { try { using (DataContext _context = new DataContext()) { var empeño = await _context.Empenos.FindAsync(id); if (empeño != null) { if (empeño.Estado == Estado.Vigente || empeño.Estado == Estado.Vencido || empeño.Estado == Estado.Pendiente) { var fechaCalculo = empeño.Fecha; if (empeño.Intereses.Any()) { fechaCalculo = empeño.Intereses.OrderByDescending(i => i.FechaVencimiento).FirstOrDefault().FechaVencimiento; } int cantidadMeses = ((int)(DateTime.Today - fechaCalculo).TotalDays / 30); double sobrante = (DateTime.Today - fechaCalculo).TotalDays % 30; cantidadMeses += sobrante > 1 ? 1 : 0; if (cantidadMeses > 0 && !empeño.Intereses.Any()) { var intereses = new Intereses { EmpenoId = empeño.EmpenoId, InteresId = empeño.InteresId, FechaCreacion = DateTime.Now, Monto = Math.Truncate((double)empeño.MontoPendiente * ((double)empeño.Interes.Porcentaje / (double)100)) + Math.Truncate((double)empeño.MontoPendiente * ((double)empeño.Interes.Bodega / (double)100)), MontoInteres = empeño.Monto * ((double)empeño.Interes.Porcentaje / (double)100), MontoBodega = empeño.Monto * ((double)empeño.Interes.Bodega / (double)100), FechaVencimiento = fechaCalculo.AddMonths(1) }; using (DataContext tempFirst = new DataContext()) { tempFirst.Intereses.Add(intereses); await tempFirst.SaveChangesAsync(); await ReviewEmpeño(id); return; } } var numeroIntereses = cantidadMeses; for (int i = 0; i < numeroIntereses; i++) { var intereses = new Intereses { EmpenoId = empeño.EmpenoId, InteresId = empeño.InteresId, FechaCreacion = DateTime.Now, Monto = Math.Truncate((double)empeño.MontoPendiente * ((double)empeño.Interes.Porcentaje / (double)100)) + Math.Truncate((double)empeño.MontoPendiente * ((double)empeño.Interes.Bodega / (double)100)), MontoInteres = empeño.Monto * ((double)empeño.Interes.Porcentaje / (double)100), MontoBodega = empeño.Monto * ((double)empeño.Interes.Bodega / (double)100), }; if (_context.Intereses.Where(x => x.EmpenoId == empeño.EmpenoId).Count() > 0) { intereses.FechaVencimiento = _context.Intereses .Where(x => x.EmpenoId == empeño.EmpenoId) .OrderByDescending(x => x.InteresesId) .FirstOrDefault() .FechaVencimiento.AddMonths(1); } else { intereses.FechaVencimiento = empeño.FechaVencimiento.AddMonths(1); } using (DataContext temp = new DataContext()) { var interesesFind = await temp.Intereses.Where(x => x.EmpenoId == empeño.EmpenoId && x.FechaVencimiento == intereses.FechaVencimiento).ToListAsync(); if (interesesFind.Count() == 0) { _context.Intereses.Add(intereses); await _context.SaveChangesAsync(); } } } //Ultima Mejora var count = await _context.Intereses.Where(i => i.EmpenoId == empeño.EmpenoId).ToListAsync(); if (count.Count() > 0) { var ultimoInteres = await _context.Intereses.Where(p => p.EmpenoId == empeño.EmpenoId) .OrderByDescending(o => o.InteresesId) .FirstOrDefaultAsync(); if (ultimoInteres != null) { if (ultimoInteres.FechaVencimiento < DateTime.Today && ultimoInteres.Monto > ultimoInteres.Pagado) { empeño.Estado = Estado.Pendiente; } else { empeño.Estado = Estado.Vigente; } _context.Entry(empeño).State = EntityState.Modified; await _context.SaveChangesAsync(); } } if (empeño.FechaVencimiento < DateTime.Today) { if (empeño.Retirado || empeño.FechaRetiro != null) { empeño.Estado = Estado.Cancelado; } else if (empeño.RetiradoAdministrador || empeño.FechaRetiroAdministrador != null) { empeño.Estado = Estado.Retirado; } else if (empeño.MontoPendiente == 0) { empeño.Estado = Estado.Cancelado; } else { empeño.Estado = Estado.Vencido; } _context.Entry(empeño).State = EntityState.Modified; await _context.SaveChangesAsync(); } } } await SaveBitacora(new ValorBitacora { Valor = "Revisión Automatica de Empeños", Modulo = "Revisar Empeños", Accion = "Automatico" }); } } catch (Exception) { } }