private void btnTransaccion_Click(object sender, RoutedEventArgs e) { //Primero validmos que el DEBE es igual al HABER //Actualizamos los totales EstablecerTotales(); decimal dTDebe, dTHaber; int iIDOper; try { iIDOper = (int)txtOperaciones.SelectedValue; } catch (Exception ex) { ex.Data.Clear(); iIDOper = 11; //Transacciones Personalizada } if (tblDetalle.Rows.Count == 0) return; dTDebe = decimal.Parse(lblTotalDebe.Text.Substring(1)); dTHaber = decimal.Parse(lblTotalHaber.Text.Substring(1)); if (dTDebe != dTHaber) { MessageBox.Show("Lo sentimos, la transaccion no se puede realizar debido a que no se cumple el principio de partida doble en las cuentas. Por favor corrija y vuelva a intentarlo"); return; } //PRIMERO - Hacemos la insercion en la tabla TRANSACCIONES para luego especificar el detalle //de las transacciones TRANSACCIONESTableAdapter tranTA = new TRANSACCIONESTableAdapter(); tranTA.Insert(iIDOper, DateTime.Today, string.Format("OP{0}", iIDOper), dTDebe, txtDescripcion.Text); //SEGUNDO - Determinamos la transaccion efectuada el ID que fue asignado ContaGeneralDS contaDS = new ContaGeneralDS(); tranTA.Fill(contaDS.TRANSACCIONES); int iIDTrans = (int)contaDS.TRANSACCIONES[contaDS.TRANSACCIONES.Rows.Count-1]["ID_TRANSACCION"]; //TERCERO - Una vez guardado en la tabla de TRANSACCIONES nos toca guardar el detalle de las cuentas //afectas en la tranasccion en DETALLE_TRANSACCION DETALLE_TRANSACCIONESTableAdapter detTA = new DETALLE_TRANSACCIONESTableAdapter(); int partida = 1; foreach (DataRow dr in tblDetalle.Rows) { detTA.Insert(iIDTrans, partida, (int)dr["ID"], (decimal)dr["DEBE"], (decimal)dr["HABER"]); partida++; } MessageBox.Show("La transaccion se realizo con exito en el sistema", "Transaccion Exitosa", MessageBoxButton.OK, MessageBoxImage.Information); tblDetalle.Clear(); txtDescripcion.Text = ""; txtDebe.Text = "0"; txtHaber.Text = "0"; txtCuentas.Text = ""; txtMonto.Text = ""; EstablecerTotales(); txtOperaciones.Focus(); }
private void btnCompra_Click(object sender, RoutedEventArgs e) { DateTime dt; int iIDProv; try { dt = DateTime.Parse(txtFecha.Text); } catch (Exception ex) { ex.Data.Clear(); MessageBox.Show("Por favor, seleccione la fecha de la operacion"); txtFecha.Focus(); return; } try { iIDProv = (int)txtProveedor.SelectedValue; } catch (Exception ex) { ex.Data.Clear(); MessageBox.Show("Por favor, seleccione un proveedor para la compra"); txtProveedor.Focus(); return; } //Agregamos la transaccion a la tabla COMPRAS, que es la info general comTA.Insert(iIDProv, txtFecha.SelectedDate); int iIDCompra; //Recalculamos totales por cualquier cosa CalcularTotales(); //Una vez agregada tenemos que recuperar el ID_COMPRA InventariosDS iDSTMP = new InventariosDS(); comTA.Fill(iDSTMP.COMPRAS); iIDCompra = (int)iDSTMP.COMPRAS[iDSTMP.COMPRAS.Rows.Count-1]["ID_COMPRA"]; //Una vez recuperado empezamos agregar material por material a la tabla detalle de compras foreach (DataRow dr in tblDetalle.Rows) { comdetTA.Insert(iIDCompra, (int)dr["CODIGO"], (int)dr["CANTIDAD"], (decimal)dr["PRECIO"]); } //Una vez con la compra de materieles tenemos que realizar la transaccion de Inventario Mercaderia //Calculamos el IVA y a que cuenta vamos abonar decimal dMontoT = decimal.Parse(lblTotalC.Text.Substring(1)); decimal dIVA = Math.Round(dMontoT * 0.13m, 2); int iIDTransaccion; TRANSACCIONESTableAdapter transTA = new TRANSACCIONESTableAdapter(); ContaGeneralDS contaDS = new ContaGeneralDS(); DETALLE_TRANSACCIONESTableAdapter detTransTA = new DETALLE_TRANSACCIONESTableAdapter(); //Hacemos primero la insercion en la tabla transacciones transTA.Insert(12, DateTime.Today, string.Format("F{0}", iIDCompra), dMontoT, "Compra de Materiales"); transTA.FillByCodigo(contaDS.TRANSACCIONES, string.Format("F{0}", iIDCompra)); iIDTransaccion = (int)contaDS.TRANSACCIONES[0]["ID_TRANSACCION"]; //Ahora afectamos las cuentas de la opoeracions d compra de materiales detTransTA.Insert(iIDTransaccion, 1, 39, dIVA, 0); detTransTA.Insert(iIDTransaccion, 2, 80, dMontoT-dIVA, 0); if (optEfectivo.IsChecked == true) detTransTA.Insert(iIDTransaccion, 3, 1, 0, dMontoT); //EFECTIVO else detTransTA.Insert(iIDTransaccion, 3, 31, 0, dMontoT); //CxP MessageBox.Show("La transaccion de Compra de Mercaderia se realizo con exito", "Transaccion Exitosa", MessageBoxButton.OK, MessageBoxImage.Information); tblDetalle.Clear(); txtPrecioU.Text = "0"; txtTUnit.Text = "0"; txtFecha.Focus(); }