public ActionResult DeleteDetalle(OrdenesPagoDetailsDetalle opvm) { try { if (ModelState.IsValid) { //cacebera orden_pago_cab orden_pago_cab = db.orden_pago_cab.Find(opvm.idCab); //factura factura_proveedores fp = db.factura_proveedores.Find(opvm.FacturaProveedorId); //detalle orden_pago_det orden_pago_det = db.orden_pago_det.Find(opvm.idDet); //actualizacion del importe en la cabecera orden_pago_cab.importe_total = orden_pago_cab.importe_total - orden_pago_det.importe; db.Entry(orden_pago_cab).State = EntityState.Modified; db.SaveChanges(); //actualizo estado de la factura if (fp.estado == 0) //pagado { if (fp.importe_total == orden_pago_det.importe) { fp.estado = 2; } else if (fp.importe_total > orden_pago_det.importe) { fp.estado = 1; } } else if (fp.estado == 1) //pago parcial. { //tengo que buscar si existe la factura en algun detalle que no sea el actual para diferenciar si queda pago parcial o no. int cont = db.orden_pago_det.Where(x => x.factura_proveedores_id == opvm.FacturaProveedorId && x.id != opvm.idDet).Count(); if (cont == 0) { fp.estado = 2; } } db.Entry(fp).State = EntityState.Modified; db.SaveChanges(); //eliminacion fisica del detalle db.orden_pago_det.Remove(orden_pago_det); db.SaveChanges(); return(RedirectToAction("Details", new { id = opvm.idCab, page = 1 })); } } catch { ModelState.AddModelError("", "Se produjo un error, en caso de persistir, ponerse en contacto con el Administrador."); } return(View(opvm)); }
public ActionResult DeleteDetalle(long id) { OrdenesPagoDetailsDetalle opvm = _repo.GetOrdenPagoDetails(id); return(View(opvm)); }