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 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); } }