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); } }
public static int InsertVentasGetIDVenta(ENTVenta v) { return(CADVenta.InsertVentasGetIDVenta(v)); }
public static int InsertVentasGetIDVenta(ENTVenta v) { return((int)adaptador.InsertVentasGetIDVenta(v.Fecha, v.NoFactura)); }