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