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();
        }
示例#2
0
        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();
        }