Beispiel #1
0
        private void GuardarButton_Click(object sender, EventArgs e)
        {
            // OBTENEMOS LOS DATOS PARA GUARDARLOS EN LA TABLA COMPRAS
            ENTVenta venta = new ENTVenta
            {
                Fecha     = FechaDateTimePicker.Value,
                NoFactura = FacturaTextBox.Text
            };

            using (TransactionScope scope = new TransactionScope())
            {
                //INSERTA LA COMPRA Y RETORNA EL ID
                try
                {
                    IDVenta = BLVenta.InsertVentasGetIDVenta(venta);
                }
                catch (SqlException ex)
                {
                    if (ex.Message.Contains("IX_Ventas"))
                    {
                        errorProvider1.SetError(FacturaTextBox, "Número de Factura ya Existe...!");
                        FacturaTextBox.Focus();
                        return;
                    }
                    errorProvider1.Clear();
                }

                //RECORRE EL DATAGRID Y LO INSERTA EN LA TABLA COMPRADETALLE
                ENTVentaDetalle Registros = new ENTVentaDetalle();

                foreach (DataGridViewRow filas in DetallesDataGridView.Rows)
                {
                    Registros.Cantidad    = float.Parse(filas.Cells["Cantidad"].Value.ToString());
                    Registros.Precio      = decimal.Parse(filas.Cells["Precio"].Value.ToString());
                    Registros.Descripcion = filas.Cells["Descripcion"].Value.ToString();
                    Registros.IDProducto  = int.Parse(filas.Cells["IDProducto"].Value.ToString());
                    Registros.IDVenta     = IDVenta;

                    misDetalles.Add(Registros);

                    BLVentaDetalle.InsertVentaDetalle(Registros);

                    //GUARDAR EN KARDEX
                    ENTKardex miKardex      = BLKardex.SelectKardexByIDProducto(Registros.IDProducto);
                    float     Existencia    = miKardex.Existencia;
                    decimal   Saldo         = miKardex.Saldo;
                    decimal   CostoPromedio = miKardex.CostoPromedio;

                    //GRABAR EN KARDEX
                    ENTKardex kardex = new ENTKardex
                    {
                        Fecha      = FechaDateTimePicker.Value,
                        Concepto   = "VE-" + IDVenta,
                        Salida     = Registros.Cantidad,
                        Existencia = Existencia - Registros.Cantidad
                    };
                    //kardex.CostoUnitario = Registros.CostoUnitario; //POR AQUI
                    kardex.Haber = Convert.ToDecimal(kardex.Salida) * CostoPromedio;
                    kardex.Saldo = Saldo - kardex.Haber;
                    try
                    {
                        kardex.CostoPromedio = kardex.Saldo / (decimal)kardex.Existencia;
                    }
                    catch (DivideByZeroException ex)
                    {
                        kardex.CostoPromedio = 0;
                    }

                    kardex.IDProducto = Registros.IDProducto;

                    BLKardex.InsertKardex(kardex);

                    ////Obtiene un último costo para agregarlo al precio del producto
                    //decimal UltimoCosto = BLKardex.GetUltimoCosto(Registros.IDProducto);

                    // ACTUALIZAR LA TABLA PRODUCTOS
                    BLProducto.UpdateCantidadVenta(kardex.Existencia, kardex.IDProducto);
                }

                scope.Complete();

                MessageBox.Show(string.Format("La venta: {0}, fue grabada de forma exitosa", IDVenta),
                                "Confirmación", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Beispiel #2
0
        private bool ValidarCampos()
        {
            if (FacturaTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(FacturaTextBox, "Ingrese el Número de la Factura");
                FacturaTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (CantidadTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(CantidadTextBox, "Ingrese la cantidad");
                CantidadTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (!float.TryParse(CantidadTextBox.Text, out float cantidad))
            {
                errorProvider1.SetError(CantidadTextBox, "Debe ingresar un valor numérico entero");
                CantidadTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();
            float Existencias = float.Parse(ExistenciasTextBox.Text);

            if (Existencias < cantidad)
            {
                errorProvider1.SetError(ExistenciasTextBox, "No hay productos suficientes para esta venta");
                ExistenciasTextBox.Focus();
                return(false);
            }

            if (cantidad <= 0)
            {
                errorProvider1.SetError(CantidadTextBox, "Debe ingresar un valor mayor a cero");
                CantidadTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (ProductoComboBox.SelectedIndex == -1)
            {
                errorProvider1.SetError(AbrirProductosButton, "Seleccione un producto");
                ProductoComboBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (DescripcionTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(DescripcionTextBox, "Ingrese la descripción del producto");
                DescripcionTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (PrecioTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(PrecioTextBox, "Ingrese el Costo del Producto");
                PrecioTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (!decimal.TryParse(PrecioTextBox.Text, out decimal precio))
            {
                errorProvider1.SetError(PrecioTextBox, "Debe ingresar un valor numérico entero");
                PrecioTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (precio <= 0)
            {
                errorProvider1.SetError(PrecioTextBox, "Debe ingresar un valor mayor a cero");
                PrecioTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            return(true);
        }
Beispiel #3
0
        private bool ValidarCampos()
        {
            if (ProveedorComboBox.SelectedIndex == -1)
            {
                errorProvider1.SetError(ProveedorComboBox, "Seleccione un Proveedor");
                ProveedorComboBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (FacturaTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(FacturaTextBox, "Ingrese el Número de la Factura");
                FacturaTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (CantidadTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(CantidadTextBox, "Ingrese la cantidad");
                CantidadTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (!float.TryParse(CantidadTextBox.Text, out float cantidad))
            {
                errorProvider1.SetError(CantidadTextBox, "Debe ingresar un valor numérico entero");
                CantidadTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (cantidad <= 0)
            {
                errorProvider1.SetError(CantidadTextBox, "Debe ingresar un valor mayor a cero");
                CantidadTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (ProductoComboBox.SelectedIndex == -1)
            {
                errorProvider1.SetError(AbrirProductosButton, "Seleccione un producto");
                ProductoComboBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (DescripcionTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(DescripcionTextBox, "Ingrese la descripción del producto");
                DescripcionTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (CostoUnitarioTextBox.Text == string.Empty)
            {
                errorProvider1.SetError(CostoUnitarioTextBox, "Ingrese el Costo del Producto");
                CostoUnitarioTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (!decimal.TryParse(CostoUnitarioTextBox.Text, out decimal costo))
            {
                errorProvider1.SetError(CostoUnitarioTextBox, "Debe ingresar un valor numérico entero");
                CostoUnitarioTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            if (costo <= 0)
            {
                errorProvider1.SetError(CostoUnitarioTextBox, "Debe ingresar un valor mayor a cero");
                CostoUnitarioTextBox.Focus();
                return(false);
            }
            errorProvider1.Clear();

            return(true);
        }