private void GuardarButton_Click(object sender, EventArgs e) { // OBTENEMOS LOS DATOS PARA GUARDARLOS EN LA TABLA COMPRAS ENTCompra compra = new ENTCompra(); compra.Fecha = FechaDateTimePicker.Value; compra.IDProveedor = vidProveedor; compra.NoFactura = FacturaTextBox.Text; using (var scope = new TransactionScope()) { //INSERTA LA COMPRA Y RETORNA EL ID try { IDCompra = BLCompra.InsertComprasGetIDCompra(compra); } catch (SqlException ex) { if (ex.Message.Contains("IX_Compras")) { errorProvider1.SetError(FacturaTextBox, "Número de Factura ya Existe...!"); FacturaTextBox.Focus(); return; } errorProvider1.Clear(); } //RECORRE EL DATAGRID Y LO INSERTA EN LA TABLA COMPRADETALLE ENTCompraDetalle Registros = new ENTCompraDetalle(); foreach (DataGridViewRow filas in DetallesDataGridView.Rows) { Registros.Cantidad = float.Parse(filas.Cells["Cantidad"].Value.ToString()); Registros.CostoUnitario = decimal.Parse(filas.Cells["CostoUnitario"].Value.ToString()); Registros.Descripcion = filas.Cells["Descripcion"].Value.ToString(); Registros.IDProducto = int.Parse(filas.Cells["IDProducto"].Value.ToString()); Registros.IDCompra = IDCompra; misDetalles.Add(Registros); BLCompraDetalle.InsertCompraDetalle(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(); kardex.Fecha = FechaDateTimePicker.Value; kardex.Concepto = "CO-" + IDCompra; kardex.Entrada = Registros.Cantidad; kardex.Existencia = Existencia + Registros.Cantidad; kardex.CostoUnitario = Registros.CostoUnitario; kardex.Debe = Convert.ToDecimal(kardex.Entrada) * kardex.CostoUnitario; kardex.Saldo = Saldo + kardex.Debe; kardex.CostoPromedio = kardex.Saldo / (decimal)kardex.Existencia; 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.UpdatePrecioProductoByIDProducto(kardex.Existencia, UltimoCosto, kardex.IDProducto); } scope.Complete(); MessageBox.Show(string.Format("La compra: {0}, fue grabada de forma exitosa", IDCompra), "Confirmación", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
public static int InsertComprasGetIDCompra(ENTCompra c) { return(CADCompra.InsertComprasGetIDCompra(c)); }
public static int InsertComprasGetIDCompra(ENTCompra c) { return((int)adaptador.InsertComprasGetIDCompra(c.IDProveedor, c.Fecha, c.NoFactura)); }