예제 #1
0
 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);
     }
 }
예제 #2
0
        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"));
            }
        }
예제 #3
0
 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);
     }
 }
예제 #4
0
        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 }));
        }
예제 #5
0
 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);
     }
 }
예제 #6
0
        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"));
        }
예제 #7
0
        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"));
        }
예제 #8
0
        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);
            }
        }