public ActionResult CrearTransaccion(tbTransaccionCaja transaccion) { dbHeredadesEntities db = new dbHeredadesEntities(); int usuario = Sesion.ObtenerCodigo(); transaccion.codUsuario = Sesion.ObtenerCodigo(); transaccion.fecha = DateTime.Now; db.tbTransaccionCaja.Add(transaccion); if (transaccion.tipoTransaccion == 0) { CajaController.Sumar(transaccion.cantidad); } else { CajaController.Restar(transaccion.cantidad); } db.SaveChanges(); switch (transaccion.tipoTransaccion) { case 0: return(RedirectToAction("Ingresos")); case 1: return(RedirectToAction("Gastos")); case 2: return(RedirectToAction("Retiros")); default: return(RedirectToAction("Index")); } }
public ActionResult Pagar(FormCollection collection) { dbHeredadesEntities db = new dbHeredadesEntities(); // creo objeto representante del pago tbPagoProveedor pago = new tbPagoProveedor { codProveedor = int.Parse(collection["codProveedor"]), codUsuario = Sesion.ObtenerCodigo(), fecha = DateTime.Now, pago = decimal.Parse(collection["pago"]), descripcion = collection["descripcion"], estado = true }; // llamo al proveedor para restarle la deuda tbProveedor proveedor = db.tbProveedor.Find(pago.codProveedor); proveedor.deuda -= pago.pago; //agrego el pago a la tabla y guardo cambios db.tbPagoProveedor.Add(pago); if (collection["rdFuente"] == "caja") { //el pago se debe de efectuar desde caja, de lo contrario no se resta nada de caja tbTransaccionCaja transaccionCaja = new tbTransaccionCaja { tipoTransaccion = 1, codUsuario = Sesion.ObtenerCodigo(), cantidad = pago.pago, fecha = DateTime.Now, descripcion = "Pago a " + proveedor.proveedor }; CajaController.Restar(pago.pago); db.tbTransaccionCaja.Add(transaccionCaja); } db.SaveChanges(); return(RedirectToAction("Index")); }
public int Vender(List <ProductoVenta> lista, int?codDeudor) { try { dbHeredadesEntities db = new dbHeredadesEntities(); tbDeudor deudor = null; tbVenta venta = new tbVenta { fecha = DateTime.Now, codUsuario = Sesion.ObtenerCodigo(), estado = true }; if (codDeudor != null) { venta.codDeudor = codDeudor.Value; deudor = db.tbDeudor.Find(codDeudor); } //variable para calcular la deuda total al deudor o que entra a caja decimal total = 0; foreach (ProductoVenta item in lista) { tbProductoPresentacion prodPres = db.tbProductoPresentacion.Find(item.codProducto, item.codPresentacion); //Se crea el nuevo obejeto de venta con el precio escogido tbVentaProducto producto = new tbVentaProducto { codProducto = prodPres.codProducto, codPresentacion = prodPres.codPresentacion, cantidad = item.cantidad, precioVenta = (item.precioSeleccionado == 1) ? prodPres.precioVentaMinimo : ((item.precioSeleccionado == 2) ? prodPres.precioVentaMedio : prodPres.precioVentaMaximo), agregado = prodPres.agregado }; venta.tbVentaProducto.Add(producto); //se reduce la venta a la existencia prodPres.existencia -= item.cantidad; //se agrega al total if (deudor != null) { total += (producto.precioVenta + producto.agregado) * producto.cantidad; } else { total += producto.precioVenta * producto.cantidad; } } if (deudor != null) { //si hay un deudor, se le agrega a la deuda deudor.deuda += total; } else { //si no hay deudor, se agrega a la caja tbTransaccionCaja transaccionCaja = new tbTransaccionCaja { tipoTransaccion = 0, codUsuario = Sesion.ObtenerCodigo(), cantidad = total, fecha = DateTime.Now }; CajaController.Sumar(total); db.tbTransaccionCaja.Add(transaccionCaja); } db.tbVenta.Add(venta); db.SaveChanges(); return(1); } catch (Exception) { return(2); } }