Пример #1
0
        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);
            }
        }
Пример #2
0
 public static int InsertComprasGetIDCompra(ENTCompra c)
 {
     return(CADCompra.InsertComprasGetIDCompra(c));
 }
Пример #3
0
 public static int InsertComprasGetIDCompra(ENTCompra c)
 {
     return((int)adaptador.InsertComprasGetIDCompra(c.IDProveedor, c.Fecha, c.NoFactura));
 }