//Insertar a tabla detalle de compras public void InsertarDetalleFactura(clsCompraDetalle compraDetalle) { OdbcConnection con = conexion.conexion(); OdbcCommand comando = con.CreateCommand(); OdbcTransaction transaccion; transaccion = con.BeginTransaction(); comando.Connection = con; comando.Transaction = transaccion; try { //Inserta en detalle de compra comando.CommandText = "INSERT INTO compra_detalle(fk_id_compra_encabezado, cod_linea_compra_detalle, fk_id_producto, cantidad_compra_detalle, precio_unitario_compra_detalle, subtotal_compra_detalle, estado_compra_detalle) VALUES (?,?,?,?,?,?,?);"; comando.Parameters.Add("fk_id_compra_encabezado", OdbcType.Int).Value = compraDetalle.IdCompra; comando.Parameters.Add("cod_linea_compra_detalle", OdbcType.Int).Value = compraDetalle.CodLinea; comando.Parameters.Add("fk_id_producto", OdbcType.Int).Value = compraDetalle.IdProducto; comando.Parameters.Add("cantidad_compra_detalle", OdbcType.Double).Value = compraDetalle.Cantidad1; comando.Parameters.Add("precio_unitario_compra_detalle", OdbcType.Double).Value = compraDetalle.PrecioUnitario; comando.Parameters.Add("subtotal_compra_detalle", OdbcType.Double).Value = compraDetalle.SubTotal; comando.Parameters.Add("estado_compra_detalle", OdbcType.Int).Value = compraDetalle.Estado1; comando.ExecuteNonQuery(); transaccion.Commit(); Console.WriteLine("Transaccion Exitosa"); } catch (Exception ex) { transaccion.Rollback(); Console.WriteLine(ex.Message); Console.WriteLine("Trasaccion Fallida"); MessageBox.Show("Error transaccion compras detalle", "", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
//Llena datos para compra detalle private clsCompraDetalle llenarCamposCompraDetalle(int Producto, int CodLinea, int Cantidad, double PrecioU, double SubTotal) { clsCompraDetalle auxMantenimiento = new clsCompraDetalle(); auxMantenimiento.IdCompra = int.Parse(txtCodigo.Text); auxMantenimiento.IdProducto = Producto; auxMantenimiento.CodLinea = CodLinea; auxMantenimiento.Cantidad1 = Cantidad; auxMantenimiento.PrecioUnitario = PrecioU; auxMantenimiento.SubTotal = SubTotal; auxMantenimiento.Estado1 = 1; return(auxMantenimiento); }
//Registrar compra private bool RegistrarCompra() { int CodLinea = 0, Producto, Cantidad; double PrecioU, SubtotalU; try { this.compraEncabezado = llenarCamposCompraEncabezado(SumarColumnas()); if (compraEncabezado == null) { MessageBox.Show("Campos Vacios", "ADVERTENCIA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(false); } else { controladorCompras.InsertarFactura(compraEncabezado); int iFilas = dgvCompras.Rows.Count; Console.WriteLine(iFilas); //Linea por linea del grid inserta a detalle compra while (CodLinea < (iFilas - 1)) { Producto = int.Parse(dgvCompras.Rows[CodLinea].Cells["cmbProducto"].Value.ToString()); Cantidad = int.Parse(dgvCompras.Rows[CodLinea].Cells["txtCantidad"].Value.ToString()); PrecioU = double.Parse(dgvCompras.Rows[CodLinea].Cells["txtPrecioUnitario"].Value.ToString()); SubtotalU = double.Parse(dgvCompras.Rows[CodLinea].Cells["txtSubtotal"].Value.ToString()); ++CodLinea; this.compraDetalle = llenarCamposCompraDetalle(Producto, CodLinea, Cantidad, PrecioU, SubtotalU); controladorCompras.InsertarDetalleFactura(compraDetalle); } MessageBox.Show("Datos de Compra Ingresados", "", MessageBoxButtons.OK, MessageBoxIcon.Information); Console.WriteLine("Compra Exitosa"); return(true); } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine("Compra Fallida"); MessageBox.Show("Error al Guardar Datos de Compras", "", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } }