public ActionResult Edit(Int32 id) { AlquileresMVC.Models.Cliente cliente = db.ClienteSet.First(c => c.ID == id); Int32 _iIDCliente = cliente.ID; List <AlquileresMVC.Models.Alquiler> listAlquiler = db.AlquilerSet.Where(a => a.IDCliente == _iIDCliente && a.Estatus == 1).ToList(); Double _dMontoEstimado = 0; _dMontoEstimado = (from e in listAlquiler select e.PrecioEstimado).Sum().Value; AlquileresMVC.Models.Cantidad_Alquileres_Por_Pagar_VW clienteAlq = dbVW.Cantidad_Alquileres_Por_Pagar_VW_Set.First(c => c.IDCliente == _iIDCliente); AlquileresMVC.Models.Descuento descuento = db.DescuentoSet.First(d => d.Codigo == "DEC1"); Double _dPorcentajeDescuento = 0; _dPorcentajeDescuento = descuento.PorcentajeDescuento ?? 0; Double _dDescuento = _dPorcentajeDescuento * _dMontoEstimado; Double _dMontoTotal = _dMontoEstimado - _dDescuento; PagoCabecera pagoCabeceraToUpdate = db.PagoCabeceraSet.ToList().LastOrDefault(); Int32 _iID = pagoCabeceraToUpdate.ID; _iID = _iID + 1; DateTime _dFecha = DateTime.Now; if (clienteAlq.NumAlquiler >= 3 && clienteAlq.NumAlquiler <= 5) { pagoCabeceraToUpdate.MontoExento = _dMontoEstimado; pagoCabeceraToUpdate.Descuento = _dDescuento; pagoCabeceraToUpdate.MontoTotal = _dMontoTotal; } else { pagoCabeceraToUpdate.MontoExento = _dMontoEstimado; pagoCabeceraToUpdate.Descuento = 0; pagoCabeceraToUpdate.MontoTotal = _dMontoEstimado; } pagoCabeceraToUpdate.IDCliente = _iIDCliente; pagoCabeceraToUpdate.Fecha = _dFecha; pagoCabeceraToUpdate.ClienteLoad(); return(View(pagoCabeceraToUpdate)); }
public ActionResult Edit(Int32 id, FormCollection form) { AlquileresMVC.Models.Cliente cliente = db.ClienteSet.First(c => c.ID == id); Int32 _iIDCliente = cliente.ID; List <AlquileresMVC.Models.Alquiler> listAlquiler = db.AlquilerSet.Where(a => a.IDCliente == _iIDCliente && a.Estatus == 1).ToList(); Double _dMontoEstimado = 0; _dMontoEstimado = (from e in listAlquiler select e.PrecioEstimado).Sum().Value; AlquileresMVC.Models.Cantidad_Alquileres_Por_Pagar_VW clienteAlq = dbVW.Cantidad_Alquileres_Por_Pagar_VW_Set.First(c => c.IDCliente == _iIDCliente); AlquileresMVC.Models.Descuento descuento = db.DescuentoSet.First(d => d.Codigo == "DEC1"); Double _dPorcentajeDescuento = 0; _dPorcentajeDescuento = descuento.PorcentajeDescuento ?? 0; Double _dDescuento = _dPorcentajeDescuento * _dMontoEstimado; Double _dMontoTotal = _dMontoEstimado - _dDescuento; PagoCabecera pagoCabeceraToUpdate = db.PagoCabeceraSet.ToList().LastOrDefault(); Int32 _iID = pagoCabeceraToUpdate.ID; _iID = _iID + 1; DateTime _dFecha = DateTime.Now; if (clienteAlq.NumAlquiler >= 3 && clienteAlq.NumAlquiler <= 5) { pagoCabeceraToUpdate.MontoExento = _dMontoEstimado; pagoCabeceraToUpdate.Descuento = _dDescuento; pagoCabeceraToUpdate.MontoTotal = _dMontoTotal; } else { pagoCabeceraToUpdate.MontoExento = _dMontoEstimado; pagoCabeceraToUpdate.Descuento = 0; pagoCabeceraToUpdate.MontoTotal = _dMontoEstimado; } pagoCabeceraToUpdate.IDCliente = _iIDCliente; pagoCabeceraToUpdate.Fecha = _dFecha; pagoCabeceraToUpdate.ClienteLoad(); Int32 iEstatus = 1; pagoCabeceraToUpdate.Estatus = iEstatus; TryUpdateModel(pagoCabeceraToUpdate, "PagoCabecera"); // Si el modelo es valido, guardo en la BD if (ModelState.IsValid) { db.Connection.Open(); DbTransaction dbTransaction = db.Connection.BeginTransaction(); try { // Guardar y confirmar. db.AddToPagoCabeceraSet(pagoCabeceraToUpdate); db.SaveChanges(); dbTransaction.Commit(); /// Si la transaccion es exitosa nos redirigimos a la pagina de detalles como /// cofirmación de que la operacion resulto exitosa return(RedirectToAction("List")); } catch (Exception ex) { dbTransaction.Rollback(); HandleException excepcion = new HandleException(); String msjLog = "Error en " + ObtenerMetodoEnEjecucion(false).ToString() + ".\n" + excepcion.RegistrarExcepcion(ex, ObtenerMetodoEnEjecucion(false).ToString()); excepcion.EscribirLogExcepcion(msjLog); String clientMessage = excepcion.HandleExceptionEx(ex); excepcion = null; ModelState.AddModelError("ID", clientMessage); } } // Refresca el formulario con los datos guardados return(View(pagoCabeceraToUpdate)); }