Ejemplo n.º 1
0
        public void Modificar(ProductoVendido pv)
        {
            AccesoDB conexion = null;

            try
            {
                conexion = new AccesoDB();
                conexion.SetearConsulta("UPDATE PRODUCTOS_X_VENTA SET IDPRODUCTO = @idproducto, PRECIOPU = @preciopu, CANTIDAD = @cantidad WHERE IDPXV = @id");
                conexion.Comando.Parameters.Clear();
                conexion.Comando.Parameters.AddWithValue("@idproducto", pv.Producto.IdProducto);
                conexion.Comando.Parameters.AddWithValue("@cantidad", pv.Cantidad);
                conexion.Comando.Parameters.AddWithValue("@id", pv.IdPxv);
                conexion.Comando.Parameters.AddWithValue("@preciopu", pv.PrecioU);

                conexion.AbrirConexion();
                conexion.EjecutarAccion();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (conexion.CheckearConexion() == true)
                {
                    conexion.CerrarConexion();
                }
            }
        }
Ejemplo n.º 2
0
 private void BtnEliminar_Click(object sender, EventArgs e)
 {
     if (dgvVenta.SelectedCells.Count > 0)
     {
         ProductoVendidoNegocio neg = new ProductoVendidoNegocio();
         ProductoVendido        l   = (ProductoVendido)dgvVenta.CurrentRow.DataBoundItem;
         try
         {
             using (var popup = new Confirmacion(@"eliminar """ + l.ToString() + @""""))
             {
                 var R = popup.ShowDialog();
                 if (R == DialogResult.OK)
                 {
                     bool conf = popup.R;
                     if (l != null && conf == true)
                     {
                         neg.EliminarFisico(l.IdPxv);
                         BindProductos.Remove(l);
                         LlenarTabla();
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             Mensaje m = new Mensaje(ex.ToString()); m.ShowDialog();
         }
     }
     else
     {
         Mensaje m = new Mensaje("Ningun item seleccionado.");
         m.ShowDialog();
     }
 }
Ejemplo n.º 3
0
        public long Agregar(ProductoVendido nuevo)
        {
            try
            {
                long insertedID;

                string query = "INSERT INTO PRODUCTOS_X_VENTA(IDVENTA,IDPRODUCTO,PRECIOPU,CANTIDAD,ACTIVO) VALUES (@idventa,@idproducto,@preciopu,@cantidad,1); SELECT SCOPE_IDENTITY();";

                using (var dbconn = new SqlConnection(@"data source=.\SQLEXPRESS; initial catalog= MENAIER_DB;  integrated security=sspi"))
                    using (var dbcm = new SqlCommand(query, dbconn))
                    {
                        dbcm.Parameters.Clear();
                        dbcm.Parameters.AddWithValue("@idventa", nuevo.IdVenta);
                        dbcm.Parameters.AddWithValue("@idproducto", nuevo.Producto.IdProducto);
                        dbcm.Parameters.AddWithValue("@cantidad", nuevo.Cantidad);
                        dbcm.Parameters.AddWithValue("@preciopu", nuevo.PrecioU);

                        dbconn.Open();
                        insertedID = Convert.ToInt64(dbcm.ExecuteScalar().ToString());
                    }
                return(insertedID);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 4
0
        //($"C:\\Ventas{Archivo}.txt")

        //Create=Crear,Agregar,Insertar
        public bool Crear(ProductoVendido ProductoVendido)
        {
            _ProductoVendido.Add(ProductoVendido);
            bool resultado = ActualizarArchivo();

            _ProductoVendido = LeerProductoVendido();
            return(resultado);
        }
Ejemplo n.º 5
0
        public List <ProductoVendido> Listar(int IdVenta, int activo)
        {
            ProductoVendido        aux;
            List <ProductoVendido> lstProductosVendidos = new List <ProductoVendido>();
            AccesoDB conexion = null;

            try
            {
                conexion = new AccesoDB();
                conexion.SetearConsulta("SELECT PXV.IDPXV, PXV.IDPRODUCTO, PXV.CANTIDAD, P.DESCRIPCION, M.DESCRIPCION, TP.DESCRIPCION, P.STOCKMIN, P.IDMARCA, P.IDTIPOPRODUCTO, PXV.PRECIOPU FROM PRODUCTOS_X_VENTA AS PXV " +
                                        "INNER JOIN PRODUCTOS AS P ON PXV.IDPRODUCTO = P.IDPRODUCTO " +
                                        "INNER JOIN MARCAS AS M ON P.IDMARCA = M.IDMARCA " +
                                        "INNER JOIN TIPOSPRODUCTO AS TP ON P.IDTIPOPRODUCTO = TP.IDTIPOPRODUCTO " +
                                        "WHERE PXV.IDVENTA = @idventa AND PXV.ACTIVO = @activo");
                conexion.Comando.Parameters.Clear();
                conexion.Comando.Parameters.AddWithValue("@idventa", IdVenta);
                conexion.Comando.Parameters.AddWithValue("@activo", activo);
                conexion.AbrirConexion();
                conexion.EjecutarConsulta();

                while (conexion.Lector.Read())
                {
                    aux = new ProductoVendido
                    {
                        IdPxv    = (long)conexion.Lector[0],
                        Producto = new Producto(),
                        Cantidad = (int)conexion.Lector[2]
                    };
                    aux.Producto.Marca                       = new Marca();
                    aux.Producto.TipoProducto                = new TipoProducto();
                    aux.Producto.IdProducto                  = (int)conexion.Lector[1];
                    aux.Producto.Descripcion                 = (string)conexion.Lector[3];
                    aux.Producto.Marca.Descripcion           = (string)conexion.Lector[4];
                    aux.Producto.Marca.IdMarca               = (int)conexion.Lector[7];
                    aux.Producto.StockMin                    = (int)conexion.Lector[6];
                    aux.Producto.TipoProducto.Descripcion    = (string)conexion.Lector[5];
                    aux.Producto.TipoProducto.IdTipoProducto = (int)conexion.Lector[8];
                    aux.PrecioU = (float)Convert.ToDouble(conexion.Lector[9]);
                    aux.PrecioT = (aux.PrecioU * aux.Cantidad);

                    lstProductosVendidos.Add(aux);
                }

                return(lstProductosVendidos);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (conexion.CheckearConexion() == true)
                {
                    conexion.CerrarConexion();
                }
            }
        }
Ejemplo n.º 6
0
        private void ActualizarTotal()
        {
            float total = 0;

            for (int i = 0; i < dgvVenta.RowCount; i++)
            {
                ProductoVendido pv = (ProductoVendido)dgvVenta.Rows[i].DataBoundItem;
                total += pv.PrecioT;
            }
            TxtTotal.Text = total.ToString();
        }
Ejemplo n.º 7
0
        private void btnAgregar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(cmbProducto.Text) || string.IsNullOrEmpty(txbCantidad.Text))
                {
                    MessageBox.Show("Faltan datos", "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }
                ProductoVendido _pv = new ProductoVendido();
                _pv.CantidaDeProductos = int.Parse(txbCantidad.Text);
                _pv.Nombre             = cmbProducto.Text;
                float _total = 0;
                foreach (var item in pAlmacen_repo.LeerProductoAlmacenado())
                {
                    if (item.Nombre == cmbProducto.Text)
                    {
                        float precio = item.PrecioVenta;
                        _pv.PrecioVenta = precio;
                    }
                }

                _pv.TotalAPagar = CalcularTotalPorProducto(_pv.PrecioVenta, _pv.CantidaDeProductos);

                if (pVendido_repo.Crear(_pv))
                {
                    ActualizarTabla();
                }
                else
                {
                    MessageBox.Show("Error al registrar venta del producto", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }

                //List<ProductoVendido> pv = pVendido_repo.LeerProductoVendido();
                foreach (var item in pVendido_repo.LeerProductoVendido())
                {
                    if (item.Nombre == cmbProducto.Text)
                    {
                        txbTotal.Text = Convert.ToString(TotalPorVenta(_pv.TotalAPagar));
                    }
                }
                _total      = float.Parse(txbTotal.Text);
                txbIva.Text = Convert.ToString(GenerarIVA(_total));
            }
            catch (Exception)
            {
                MessageBox.Show($"No se ha podido guardar a {cmbProducto.Text}", "Atención", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }
Ejemplo n.º 8
0
        private void BtnAgregar_Click(object sender, EventArgs e)
        {
            try
            {
                ProductoVendidoNegocio negPV = new ProductoVendidoNegocio();
                ProductoVendido        pv    = new ProductoVendido
                {
                    Producto = (Producto)BoxProducto.SelectedItem,
                    Cantidad = Convert.ToInt32(TxtCantidad.Text)
                };
                foreach (ProductoVendido PV in v.LstProductosVendidos)
                {
                    if (PV.Producto.IdProducto == pv.Producto.IdProducto)
                    {
                        pv.Cantidad += PV.Cantidad;
                        if (negPV.ControlarStock(pv))
                        {
                            v.LstProductosVendidos.Remove(PV);
                        }
                        break;
                    }
                }
                if (negPV.ControlarStock(pv))
                {
                    pv.PrecioU = (float)Math.Round(negPV.CalcularPrecio(pv.Producto.IdProducto), 3);
                    pv.PrecioT = (float)Math.Round(pv.PrecioU * pv.Cantidad, 3);
                    v.LstProductosVendidos.Add(pv);
                    BindProductos.ResetBindings();

                    BoxProducto.SelectedIndex = -1;
                    TxtCantidad.Text          = "";
                    ProductoVal[0]            = false;
                    ProductoVal[1]            = false;
                }
                else
                {
                    Mensaje m = new Mensaje("No hay stock suficiente.");
                    m.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                Mensaje m = new Mensaje(ex.ToString()); m.ShowDialog();
            }
        }
Ejemplo n.º 9
0
        //Delete=Eliminar
        public bool Eliminar(ProductoVendido original)
        {
            ProductoVendido temp = new ProductoVendido();

            foreach (var item in _ProductoVendido)
            {
                if ((item.Nombre == original.Nombre && item.TotalAPagar == original.TotalAPagar))
                {
                    temp = item;
                    break;
                }
            }
            _ProductoVendido.Remove(temp);
            bool resultado = ActualizarArchivo();

            _ProductoVendido = LeerProductoVendido();
            return(resultado);
        }
        //Read=Leer
        public List <ProductoVendido> LeerProductosVendidos()
        {
            string contenido = archivo.Leer();

            string[] lineas = contenido.Split('\n');
            List <ProductoVendido> resultado = new List <ProductoVendido>();

            for (int i = 0; i < lineas.Length - 1; i++)
            {
                if (lineas[i].Length > 3)
                {
                    ProductoVendido pv = new ProductoVendido();
                    pv.Nombre = lineas[i];
                    resultado.Add(pv);
                }
            }
            _ListTicket = resultado;
            return(resultado);
        }
Ejemplo n.º 11
0
        public bool ControlarStock(ProductoVendido pv)
        {
            bool     stocked    = false;
            int      stockTotal = 0;
            AccesoDB conexion   = null;

            try
            {
                conexion = new AccesoDB();
                conexion.SetearConsulta("SELECT L.IDLOTE, L.UNIDADESE FROM LOTES AS L " +
                                        "INNER JOIN COMPRAS AS C ON C.IDCOMPRA = L.IDCOMPRA " +
                                        "WHERE L.IDPRODUCTO = @idproducto AND L.ACTIVO = 1 " +
                                        "ORDER BY C.FECHACOMPRA DESC");
                conexion.Comando.Parameters.Clear();
                conexion.Comando.Parameters.AddWithValue("@idproducto", pv.Producto.IdProducto);

                conexion.AbrirConexion();
                conexion.EjecutarConsulta();

                while (conexion.Lector.Read())
                {
                    stockTotal += (int)conexion.Lector[1];
                }
                if (stockTotal >= pv.Cantidad)
                {
                    stocked = true;
                }
                return(stocked);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (conexion.CheckearConexion() == true)
                {
                    conexion.CerrarConexion();
                }
            }
        }
Ejemplo n.º 12
0
        //Update=Actualizar
        public bool Actualizar(ProductoVendido original, ProductoVendido modificado)
        {
            ProductoVendido temp = new ProductoVendido();

            foreach (var item in _ProductoVendido)
            {
                if (item.Nombre == original.Nombre)
                {
                    temp = item;
                    break;
                }
            }
            temp.CantidaDeProductos = modificado.CantidaDeProductos;
            temp.Nombre             = modificado.Nombre;
            temp.PrecioVenta        = modificado.PrecioVenta;
            temp.TotalAPagar        = modificado.TotalAPagar;
            bool resultado = ActualizarArchivo();

            _ProductoVendido = LeerProductoVendido();
            return(resultado);
        }
Ejemplo n.º 13
0
        //Read=Leer
        public List <ProductoVendido> LeerProductoVendido()
        {
            string contenido = _pVendido.Leer();
            List <ProductoVendido> resultado = new List <ProductoVendido>();

            string[] lineas = contenido.Split('\n');
            for (int i = 0; i < lineas.Length; i++)
            {
                if (lineas[i].Length > 3)
                {
                    ProductoVendido _pv   = new ProductoVendido();
                    string[]        datos = lineas[i].Split('|');
                    _pv.CantidaDeProductos = int.Parse(datos[0]);
                    _pv.Nombre             = datos[1];
                    _pv.PrecioVenta        = float.Parse(datos[2]);
                    _pv.TotalAPagar        = float.Parse(datos[3]);
                    resultado.Add(_pv);
                }
            }
            _ProductoVendido = resultado;
            return(resultado);
        }
Ejemplo n.º 14
0
        public void DescontarStock(ProductoVendido pv)
        {
            Lote        lote;
            int         stockTotal = 0, cantidad;
            LoteNegocio negL     = new LoteNegocio();
            List <Lote> lstLotes = new List <Lote>();
            AccesoDB    conexion = null;

            try
            {
                conexion = new AccesoDB();
                conexion.SetearConsulta("SELECT L.IDLOTE, L.UNIDADESE FROM LOTES AS L " +
                                        "INNER JOIN COMPRAS AS C ON C.IDCOMPRA = L.IDCOMPRA " +
                                        "WHERE L.IDPRODUCTO = @idproducto AND L.ACTIVO = 1 " +
                                        "ORDER BY C.FECHACOMPRA DESC");
                conexion.Comando.Parameters.Clear();
                conexion.Comando.Parameters.AddWithValue("@idproducto", pv.Producto.IdProducto);

                conexion.AbrirConexion();
                conexion.EjecutarConsulta();

                while (conexion.Lector.Read())
                {
                    lote = new Lote
                    {
                        IdLote    = (long)conexion.Lector[0],
                        UnidadesE = (int)conexion.Lector[1]
                    };
                    stockTotal += lote.UnidadesE;
                    lstLotes.Add(lote);
                }

                if (stockTotal >= pv.Cantidad)
                {
                    int cantV = pv.Cantidad, i = 0;
                    while (cantV > 0)
                    {
                        if (cantV <= lstLotes[i].UnidadesE)
                        {
                            cantidad = cantV;
                            lstLotes[i].UnidadesE -= cantV;
                            cantV = 0;
                        }
                        else
                        {
                            cantidad = lstLotes[i].UnidadesE;
                            cantV   -= lstLotes[i].UnidadesE;
                            lstLotes[i].UnidadesE = 0;
                        }
                        ActualizarStock(lstLotes[i]);
                        negL.ActualizarStock(pv.Producto.IdProducto);
                        RegistrarMovimiento(pv.IdPxv, lstLotes[i].IdLote, cantidad);
                        i++;
                    }
                }
                return;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (conexion.CheckearConexion() == true)
                {
                    conexion.CerrarConexion();
                }
            }
        }