public viewTransacciones()
        {
            this.InitializeComponent();
            iTA = new OPERACIONESTableAdapter();
            ccTA = new CATALOGO_CUENTASTableAdapter();

            ContaGeneralDS cDS = new ContaGeneralDS();
            iTA.Fill(cDS.OPERACIONES);
            ccTA.Fill(cDS.CATALOGO_CUENTAS);

            //Conectamos con las operaciones del Sistemas
            txtOperaciones.DataContext = cDS.OPERACIONES.DefaultView;
            txtOperaciones.DisplayMemberPath = "DESCRIPCION";
            txtOperaciones.SelectedValuePath = "ID_OPERACION";

            //Despues Conectamos con el Catalogo de Cuentas del Sistema
            txtCuentas.DataContext=cDS.CATALOGO_CUENTAS.DefaultView;
            txtCuentas.DisplayMemberPath="DESCRIPCION";
            txtCuentas.SelectedValuePath="ID_CUENTA";

            //Generamos la Tabla para el detalle de la Transacciones y la conectamos al Grid
            GenerarTabla();
            dgDetalleT.ItemsSource=tblDetalle.DefaultView;

            txtMonto.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroDecimalMath);
            txtDebe.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroDecimalMath);
            txtHaber.LostFocus += new RoutedEventHandler(HandlerMathJMP.NumeroDecimalMath);
        }
 public viewCatalogoCuentas()
 {
     this.InitializeComponent();
     ccTA = new CLASIFICACIONCUENTASTableAdapter();
     ContaGeneralDS cgDS = new ContaGeneralDS();
     ccTA.Fill(cgDS.CLASIFICACIONCUENTAS);
     dgCCuentas.ItemsSource = cgDS.CLASIFICACIONCUENTAS.DefaultView;
 }
        public viewBalanceComprobacion()
        {
            this.InitializeComponent();

            //Cargamos en el encabezado las Fechas del periodo corresponediente
            lblEmpresaNombre.Text = Kaikei.Properties.Settings.Default.EmpresaNombre;
            lblPeriodo.Text = string.Format("DEL {0} AL {1} DE {2} DEL {3}",
                                            Kaikei.Properties.Settings.Default.FechaIP.Day,
                                            Kaikei.Properties.Settings.Default.FechaFP.Day,
                                            Kaikei.Properties.Settings.Default.FechaFP.ToString("MMMM").ToUpper(),
                                            Kaikei.Properties.Settings.Default.FechaIP.Year);

            //Una vez establecido el encabezado procedemos a cargar los datos d la tabla, ejecutamos la
            //funcion para rellenar los datos en la tabla y hacemos un filtro x las fechas definidas en el periodo
            bcTA = new GET_BALANCECOMPROBACIONTableAdapter();
            funcTA = new FuncionesTableAdapter();

            ContaGeneralDS cgDS = new ContaGeneralDS();
            bcTA.Fill(cgDS.GET_BALANCECOMPROBACION, Kaikei.Properties.Settings.Default.FechaIP, Kaikei.Properties.Settings.Default.FechaFP);
            dgBalComprobacion.ItemsSource = cgDS.GET_BALANCECOMPROBACION.DefaultView;

            //Por ultimo, llamamos a las funciones de la Base de datos para cargar el total del DEBE y
            //el total del haber al final de la pantalla
            decimal? dMontoD = funcTA.GET_TOTALDEBE(Kaikei.Properties.Settings.Default.FechaIP, Kaikei.Properties.Settings.Default.FechaFP);
            decimal? dMontoH = funcTA.GET_TOTALHABER(Kaikei.Properties.Settings.Default.FechaIP, Kaikei.Properties.Settings.Default.FechaFP);

            if (!dMontoD.HasValue || !dMontoH.HasValue)
            {
                dMontoD = 0m;
                dMontoH = 0m;
            }

            txtMontoD.Text = string.Format("{0:C}", dMontoD);
            txtMontoH.Text = string.Format("{0:C}", dMontoH);

            //Establecemos un mensaje para determinar si se cumple partida doble y si esta bueno el balance
            //para poder habilitar el siguiente estado
            if (dMontoD == dMontoH) {
                lblResultado.Text="LA SUMA DEL DEBE CON LA SUMA DEL HABER SON IGUALES, POR TANTO SE CUMPLE EL PRINCIPIO DE PARTIDA DOBLE";
                Kaikei.Properties.Settings.Default.IsValidoBC=true;
            }
            else{
                lblResultado.Text="NO SE PUEDE CONTINUAR DEBIDO A QUE NO SE A CUMPLIDO EL PRINCIPIO DE PARTIDA DOBLE EN LA SUMA DEL DEBE CON EL HABER";
                Kaikei.Properties.Settings.Default.IsValidoBC=false;
            }

            Kaikei.Properties.Settings.Default.Save();
        }
        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 btnCargar_Click(object sender, RoutedEventArgs e)
        {
            //Obtenemos los datos de Operaciones ingresados por el usuario
            int iIDOper;
            Decimal dMonto;

            try
            {
                iIDOper = (int)txtOperaciones.SelectedValue;
            }
            catch (Exception ex)
            {
                ex.Data.Clear();
                return;
            }

            if (iIDOper == 11 || (iIDOper == 12))
            {
                txtCuentas.Focus();
                return;
            }

            //Validamos los datos ingresados
            if (!Decimal.TryParse(txtMonto.Text,out dMonto)) {
                MessageBox.Show("Por favor ingrese un monto numerico valido","Monto no valido",MessageBoxButton.OK,MessageBoxImage.Error);
                return;
            }

            if (dMonto <= 0)
            {
                MessageBox.Show("Por favor, ingrese un monton arriba de $0", "Monto no valido", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            ContaGeneralDS tmpDS = new ContaGeneralDS();
            int iDebe, iHaber,iIVA;
            string sCDebe, sCHaber;

            //Hacemos primero el filtro para obtener los valores del DEBE, HABER y si tiene tratamiento IVA
            iTA.FillByIDO(tmpDS.OPERACIONES,iIDOper);
            iDebe = (int)tmpDS.OPERACIONES.Rows[0]["COD_DEBE"];
            iHaber = (int)tmpDS.OPERACIONES.Rows[0]["COD_HABER"];
            iIVA = (int)tmpDS.OPERACIONES.Rows[0]["IVA"];

            //Ahora determinamos el nombre de las Cuentas del DEBE y HABER
            ccTA.FillByIDC(tmpDS.CATALOGO_CUENTAS, iDebe);
            sCDebe = (string)tmpDS.CATALOGO_CUENTAS[0]["DESCRIPCION"];
            ccTA.FillByIDC(tmpDS.CATALOGO_CUENTAS, iHaber);
            sCHaber = (string)tmpDS.CATALOGO_CUENTAS[0]["DESCRIPCION"];

            //Como ya tenemos todos los datos necesarios cargados, ya podemos agregar a la tabla detalle de
            //transacciones con los campos incluidos
            //Tambien verificamos si la cuenta posse IVA
            decimal dMontoIVA = Math.Round(dMonto*0.13m,2);
            dMonto = Math.Round(dMonto, 2);
            tblDetalle.Clear();
            switch (iIVA)
            {
                case 0: //SIN IVA
                    tblDetalle.Rows.Add(iDebe, sCDebe, dMonto, 0);
                    tblDetalle.Rows.Add(iHaber, sCHaber, 0, dMonto);
                    break;
                case 1: //IVA en el DEBE
                    tblDetalle.Rows.Add(39, "IVA Acreditable", dMontoIVA, 0);
                    tblDetalle.Rows.Add(iDebe, sCDebe, dMonto - dMontoIVA, 0);
                    tblDetalle.Rows.Add(iHaber, sCHaber, 0, dMonto);
                    break;
                case 2: //IVA en el HABER
                    tblDetalle.Rows.Add(iDebe, sCDebe, dMonto, 0);
                    tblDetalle.Rows.Add(38, "IVA por PAGAR", 0, dMontoIVA);
                    tblDetalle.Rows.Add(iHaber, sCHaber, 0, dMonto - dMontoIVA);
                    break;
            }
            tmpDS.Dispose();
            EstablecerTotales();
            txtDescripcion.Focus();
        }
示例#6
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();
        }