public int CrearPedido(int codProveedor, List <tbProductoTransaccion> lista, string descripcion) { try { dbHeredadesEntities db = new dbHeredadesEntities(); // creo el objeto transacción tbTransaccion nuevaEntrada = new tbTransaccion { codProveedor = codProveedor, codTipoTransaccion = 0, codUsuario = Sesion.ObtenerCodigo(), descripcion = descripcion, fecha = DateTime.Now, estado = true }; // se agregan todos los productos al pedido pero sin precio foreach (tbProductoTransaccion item in lista) { nuevaEntrada.tbProductoTransaccion.Add(item); } //agrego la transaccion y guardo cambios db.tbTransaccion.Add(nuevaEntrada); db.SaveChanges(); return(1); } catch (Exception) { return(2); } }
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 CrearSalida(List <tbProductoTransaccion> lista, string descripcion) { try { dbHeredadesEntities db = new dbHeredadesEntities(); // creo la nueva transacción tbTransaccion nuevaSalida = new tbTransaccion { codUsuario = Sesion.ObtenerCodigo(), codTipoTransaccion = 2, descripcion = descripcion, fecha = DateTime.Now, estado = true }; foreach (tbProductoTransaccion item in lista) { nuevaSalida.tbProductoTransaccion.Add(item); //quito la existencia del producto tbProductoPresentacion prod = db.tbProductoPresentacion.Find(item.codProducto, item.codPresentacion); prod.existencia -= item.cantidad; } db.tbTransaccion.Add(nuevaSalida); db.SaveChanges(); return(1); } catch (Exception ex) { return(2); } }
public ActionResult Pagar(int codDeudor, decimal pago) { dbHeredadesEntities db = new dbHeredadesEntities(); tbPagoDeudor debitar = new tbPagoDeudor { codDeudor = codDeudor, codUsuario = Sesion.ObtenerCodigo(), pago = pago, fecha = DateTime.Now }; db.tbPagoDeudor.Add(debitar); tbDeudor deudor = db.tbDeudor.Find(codDeudor); deudor.deuda -= pago; tbCaja caja = db.tbCaja.Find(1); caja.cantidad += pago; db.SaveChanges(); return(RedirectToAction("Pagos", new { id = codDeudor })); }
public int CrearEntrada(int codProveedor, List <tbProductoTransaccion> lista, string descripcion) { try { dbHeredadesEntities db = new dbHeredadesEntities(); // creo el objeto transacción tbTransaccion nuevaEntrada = new tbTransaccion { codProveedor = codProveedor, codTipoTransaccion = 1, codUsuario = Sesion.ObtenerCodigo(), descripcion = descripcion, fecha = DateTime.Now, estado = true }; decimal deuda = 0; foreach (tbProductoTransaccion item in lista) { // se asigna el precio de compra al item y se agrega a la tabla JOIN de productoTransacción item.precioCompra = db.tbProductoProveedor.Find(codProveedor, item.codProducto, item.codPresentacion).precioCompra; nuevaEntrada.tbProductoTransaccion.Add(item); // se agrega a la existencia del producto tbProductoPresentacion prod = db.tbProductoPresentacion.Find(item.codProducto, item.codPresentacion); prod.existencia += item.cantidad; // sumo a la deuda precioCompra * cantidadEntrada. deuda += item.cantidad * item.precioCompra.Value; } // calculo deuda total de entrada y la sumo a deuda total al proveedor. tbProveedor proveedor = db.tbProveedor.Find(codProveedor); proveedor.deuda += deuda; //agrego la transaccion y guardo cambios db.tbTransaccion.Add(nuevaEntrada); db.SaveChanges(); return(1); } catch (Exception) { return(2); } }
public ActionResult RecivirPedido(int id) { dbHeredadesEntities db = new dbHeredadesEntities(); // obtengo el pedido y lo convierto en una entrada tbTransaccion transaccion = db.tbTransaccion.Find(id); transaccion.codTipoTransaccion = 1; // cambio el usuario por el que recive el pedido transaccion.codUsuario = Sesion.ObtenerCodigo(); transaccion.fecha = DateTime.Now; foreach (tbProductoTransaccion item in transaccion.tbProductoTransaccion) { // a cada producto comprado le ingreso el precio de compra item.precioCompra = db.tbProductoProveedor.Find(transaccion.codProveedor, item.codProducto, item.codPresentacion).precioCompra; // agrego la entrada a la existencia tbProductoPresentacion producto = db.tbProductoPresentacion.Find(item.codProducto, item.codPresentacion); producto.existencia += item.cantidad; // agrego la deuda al proveedor tbProveedor proveedor = db.tbProveedor.Find(transaccion.codProveedor); proveedor.deuda += item.precioCompra.Value * item.cantidad; } db.SaveChanges(); return(RedirectToAction("Pedidos")); }
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); } }