public ActionResult ListaVentasCliente(int idCliente) { try { usuario oUsuario = (usuario)Session["Usuario"]; if (oUsuario == null) { Session.Clear(); return(RedirectToAction("Index", "Home")); } srvCliente sCliente = new srvCliente(); cliente oCliente = sCliente.ObtenerCliente(idCliente); if (oCliente == null || oCliente.idCliente == 0) { throw new Exception(); } ViewBag.oCliente = oCliente; List <venta> lstVentas = sCliente.ObtenerVentas(idCliente); return(View(lstVentas)); } catch (Exception) { return(RedirectToAction("Error", "Error", new { stError = "Se produjo un error al intentar obtener los datos del servidor." })); } }
public JsonResult GuardarPago(string entrega, int idMetodoPago, int idVenta, int idCliente, bool usoSaldo, bool guardarSaldo) { try { srvVenta sVenta = new srvVenta(); srvCliente sCliente = new srvCliente(); cliente oCliente = new cliente(); venta oVenta = sVenta.ObtenerVenta(idVenta); decimal EntregaMasSaldo = 0; // total de $ entregado (saldo + dinero entregado) decimal entregoSaldo = 0; // saldo entregado decimal entregoDinero = 0; // dinero entregado decimal saldoAgregadoDinero = 0; // saldo que sobra del dinero entregado decimal faltante = oVenta.costoTotal - Convert.ToDecimal(oVenta.entregado); entrega = entrega.Replace('.', ','); if (idCliente != 0) { oCliente = sCliente.ObtenerCliente(idCliente); if (usoSaldo) { //entrega todo el saldo cuando el saldo es menor al faltante de la venta EntregaMasSaldo = Convert.ToDecimal(oCliente.saldo); faltante = faltante - Convert.ToDecimal(oCliente.saldo); if (faltante < 0) { //pago todo con el saldo EntregaMasSaldo = oVenta.costoTotal - Convert.ToDecimal(oVenta.entregado); faltante = 0; } oCliente.saldo = oCliente.saldo - (oVenta.costoTotal - Convert.ToDecimal(oVenta.entregado)); if (oCliente.saldo < 0) { oCliente.saldo = 0; } entregoSaldo = EntregaMasSaldo; } } if (faltante > 0) { //pagó o no algo con el saldo pero aún queda por pagar //500 faltante // 400 entrega if (Convert.ToDecimal(entrega) > faltante) { EntregaMasSaldo = EntregaMasSaldo + faltante; } else { EntregaMasSaldo = EntregaMasSaldo + (Convert.ToDecimal(entrega)); } } if (oCliente.idCliente != 0) { // lo guardo aca porque falta ver si queda resto en la entrega // guardar siempre el saldo? o dejarlo así? if (guardarSaldo) { saldoAgregadoDinero = (Convert.ToDecimal(entrega) - faltante); oCliente.saldo = oCliente.saldo + (Convert.ToDecimal(entrega) - faltante); if (oCliente.saldo < 0) { saldoAgregadoDinero = 0; oCliente.saldo = 0; } } sCliente.GuardarModificarCliente(oCliente); } entregoDinero = EntregaMasSaldo - entregoSaldo; //EntregaMasSaldo //entregoSaldo //entregoDinero //saldoAgregadoDinero detallePago oDetalleP = new detallePago(); // guardo el detalle del saldo consumido (-) if (entregoSaldo > 0) { oDetalleP.fechaPago = DateTime.Now; oDetalleP.idMetodoPago = idMetodoPago; oDetalleP.idVenta = idVenta; oDetalleP.entrega = Math.Round(entregoSaldo * -1, 0); oDetalleP.tipoPago = "SALDO"; sVenta.GuardarDetallePago(oDetalleP); } // guardo el detalle del dinero entregado (-) if (entregoDinero > 0) { oDetalleP.fechaPago = DateTime.Now; oDetalleP.idMetodoPago = idMetodoPago; oDetalleP.idVenta = idVenta; oDetalleP.entrega = Math.Round(entregoDinero * -1, 0); oDetalleP.tipoPago = "DINERO"; sVenta.GuardarDetallePago(oDetalleP); } // guardo el detalle del saldo agregado (-) if (saldoAgregadoDinero > 0) { oDetalleP.fechaPago = DateTime.Now; oDetalleP.idMetodoPago = idMetodoPago; oDetalleP.idVenta = idVenta; oDetalleP.entrega = Math.Round(saldoAgregadoDinero, 0); oDetalleP.tipoPago = "SALDO"; sVenta.GuardarDetallePago(oDetalleP); } oVenta.entregado = Math.Round(Convert.ToDecimal(oVenta.entregado) + EntregaMasSaldo, 0); sVenta.ModificarVenta(oVenta); return(Json(true)); } catch (Exception) { return(Json(false)); } }