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(); }
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(); }