First commit 04/09/1996
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								ARTICULO.DBF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ARTICULO.DBF
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								GASTOSI.000
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								GASTOSI.000
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								GASTOSI.096
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								GASTOSI.096
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								GASTOSI.097
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								GASTOSI.097
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2
									
								
								PRNFILE.OUT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								PRNFILE.OUT
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					C<EFBFBD>digo     Proveedor                      Cant.Unt P.Costo  P.Venta  Combinado
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					#LosArcosChicos 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					*04/09/1996* 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					ToDo: wwtcf? 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								SOCIOS.096
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SOCIOS.096
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								SOCIOS.097
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SOCIOS.097
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										933
									
								
								TXT_LP.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										933
									
								
								TXT_LP.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,933 @@
 | 
				
			|||||||
 | 
					#include <alloc.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "d:\program\src_dos\libs\bdatos\bdatos.hh"
 | 
				
			||||||
 | 
					#include "zorr.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define NLINEAS_REF 18
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BDatos BCompras;            // Base de datos de Compraserencias
 | 
				
			||||||
 | 
					INFO_PRECIOS SCompras;     // Estructura de referencias
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int OrdenGestionInterna;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern CONFIG Config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RastreaFicheroGastosi(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Error( int code );
 | 
				
			||||||
 | 
					void MuestraDatosCompras( int RowStart );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ComparaRegistros( const void *A, const void *B );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EditItemCompras( char columna, int linea );
 | 
				
			||||||
 | 
					void ComprasNuevoRegistro( INFO_PRECIOS *MSCompras );
 | 
				
			||||||
 | 
					void MuestraCompras( char columna, int linea, char como );
 | 
				
			||||||
 | 
					void ObtenCoordenadasCompras( char columna, char linea, int *X0, int *Y0, int *X1, int *Y1 );
 | 
				
			||||||
 | 
					void OrdenarGastosi(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ObtenCoordenadasMatch( char Row, int *X0, int *Y0, int *X1, int *Y1 );
 | 
				
			||||||
 | 
					void MatchDrawCompras( char Row, INFO_PRECIOS MCompras,  char como );
 | 
				
			||||||
 | 
					void BuscaCompras( char TipoBusqueda, char *CurrRow, int *CurrCompras );
 | 
				
			||||||
 | 
					int  Match_Compras( INFO_PRECIOS A, INFO_PRECIOS B );
 | 
				
			||||||
 | 
					void EditMatchCompras( char Row, INFO_PRECIOS * MCompras );
 | 
				
			||||||
 | 
					int  ObtenMatchCompras( INFO_PRECIOS *MCompras );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImprimeCompraserencias( char como );
 | 
				
			||||||
 | 
					void ImprimeCabeceraCompras( char como, FILE *file_out );
 | 
				
			||||||
 | 
					void DibujaPantallaGastosInt( void );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					// <20>                     Parte principal del m<>dulo                       <20>
 | 
				
			||||||
 | 
					//  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  InfoProducto                                                            *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*              Controla la introduccion de datos y muestreo asi como todo  *|
 | 
				
			||||||
 | 
					|*              el interfaz de usuario...                                   *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Entradas: (ninguna)                                                     *|
 | 
				
			||||||
 | 
					|*  Salidas:  (ninguna)                                                     *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					void GastosInternos(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					struct Boton_Texto BT[6];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BT[0].x =  1; BT[0].y =  1; strcpy( BT[0].Texto, " &Men<65> Principal "); BT[0].ID_T1 =  0; BT[0].ID_T2 = 50;
 | 
				
			||||||
 | 
					BT[1].x = 20; BT[1].y =  1; strcpy( BT[1].Texto, " &Ins. Art."); BT[1].ID_T1 =  0; BT[1].ID_T2 = 23;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BT[2].x = 33; BT[2].y =  1; strcpy( BT[2].Texto, " &Borr. Art."); BT[2].ID_T1 =  0; BT[2].ID_T2 = 48;
 | 
				
			||||||
 | 
					BT[3].x = 47; BT[3].y =  1; strcpy( BT[3].Texto, " &Ordenar");    BT[3].ID_T1 =  0; BT[3].ID_T2 = 24;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BT[4].x = 58; BT[4].y =  1; strcpy( BT[4].Texto, " &Gast.Prov."); BT[4].ID_T1 =  0; BT[4].ID_T2 = 0;
 | 
				
			||||||
 | 
					BT[5].x = 72; BT[5].y =  1; strcpy( BT[5].Texto, " Im&pr. ");         BT[5].ID_T1 =  0; BT[5].ID_T2 = 25;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char buffer[100], ok = 0;
 | 
				
			||||||
 | 
					 int BPush, key;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char oldCol;
 | 
				
			||||||
 | 
					 char CurrRow;         // Linea sobre la que estamos
 | 
				
			||||||
 | 
					 char CurrCol;         // Columna sobre la que estamos
 | 
				
			||||||
 | 
					 long CurrCompras;         // Producto sobre el que estamos posicionados a golpes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 _setcursortype( _NOCURSOR );
 | 
				
			||||||
 | 
					 DibujaPantallaGastosInt();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 sprintf( buffer, "GastosI.%03d", AnoActual );
 | 
				
			||||||
 | 
					 if ( BCompras.AbrirReg( buffer, sizeof( INFO_PRECIOS ) ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x01);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Si no hay registros, creamos uno almenos.
 | 
				
			||||||
 | 
					 if ( BCompras.Registros() == 0 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					      ComprasNuevoRegistro( &SCompras );
 | 
				
			||||||
 | 
					      if ( BCompras.InsReg( (void *)&SCompras, BCompras.Registros(), ARRIBA ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x02);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 CurrCompras = 0; CurrRow = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					 MuestraDatosCompras( CurrRow + CurrCompras );
 | 
				
			||||||
 | 
					 if ( BCompras.LeeReg( (void *)&SCompras, 0      ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x03);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 CurrCol = 0; oldCol = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 do {
 | 
				
			||||||
 | 
					      if ( CurrCol != oldCol )
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					       oldCol = CurrCol;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      MuestraCompras( CurrCol, CurrRow, INTENSO );
 | 
				
			||||||
 | 
					      BPush = Funcion_Botones(STD_BY, 6, BT);
 | 
				
			||||||
 | 
					      MuestraCompras( CurrCol, CurrRow, NORMAL  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      switch ( BPush )
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					       case  0:				  // No se pulso ningun BOTON
 | 
				
			||||||
 | 
						       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       case -2:				  // Hay una tecla normal en BUFFER
 | 
				
			||||||
 | 
					               if ( ( key = getch() ) != 13 && key != 27 )
 | 
				
			||||||
 | 
					                                      ungetch( key );
 | 
				
			||||||
 | 
					               EditItemCompras( CurrCol, CurrRow );
 | 
				
			||||||
 | 
					               _setcursortype( _NOCURSOR );
 | 
				
			||||||
 | 
					               if ( BCompras.EscribeReg( (void *)&SCompras, (CurrRow + CurrCompras) ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x04);
 | 
				
			||||||
 | 
						       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
					               break;
 | 
				
			||||||
 | 
					       case -1:				  // Hay una tecla especial en BUFFER
 | 
				
			||||||
 | 
					               switch( getch() )
 | 
				
			||||||
 | 
					               {
 | 
				
			||||||
 | 
					                // Flecha Izquierda
 | 
				
			||||||
 | 
					                case  75:
 | 
				
			||||||
 | 
					                case  15:
 | 
				
			||||||
 | 
					                       CurrCol--; if ( CurrCol <  0 ) CurrCol = 5;
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					                // Flecha Derecha
 | 
				
			||||||
 | 
					                case  77:
 | 
				
			||||||
 | 
					                case   9:
 | 
				
			||||||
 | 
					                       CurrCol++; if ( CurrCol > 5 ) CurrCol =  0;
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					                // Flecha Arriba
 | 
				
			||||||
 | 
					                case  72:
 | 
				
			||||||
 | 
					                        if ( (CurrRow + CurrCompras) > 0 )
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                         if ( ( CurrRow ) <= 0 )
 | 
				
			||||||
 | 
					                         {
 | 
				
			||||||
 | 
					                          CurrRow = NLINEAS_REF - 1;          CurrCompras -= NLINEAS_REF;
 | 
				
			||||||
 | 
					                          if ( CurrCompras < 0 ) CurrCompras = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                          while( ( CurrRow + CurrCompras ) >= BCompras.Registros() && CurrRow > 0 ) CurrRow--;
 | 
				
			||||||
 | 
					                          while( ( CurrRow + CurrCompras ) >= BCompras.Registros() && CurrCompras > 0 ) CurrCompras++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                          // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					                          MuestraDatosCompras( CurrCompras );
 | 
				
			||||||
 | 
					                         } else {
 | 
				
			||||||
 | 
					                          CurrRow --; if ( CurrRow < 0 ) CurrRow = 0;
 | 
				
			||||||
 | 
					                         }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        if ( BCompras.LeeReg( (void *)&SCompras, (CurrCompras + CurrRow) ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x03);
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					                // Flecha Abajo
 | 
				
			||||||
 | 
					                case  80:
 | 
				
			||||||
 | 
					                        if ( ( CurrRow + CurrCompras ) < BCompras.Registros() - 1 )
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                         if ( ( CurrRow ) >= NLINEAS_REF - 1 )
 | 
				
			||||||
 | 
					                         {
 | 
				
			||||||
 | 
					                           CurrRow = 0;		CurrCompras += NLINEAS_REF;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                           while ( (CurrCompras + CurrRow) >= BCompras.Registros() ) CurrCompras--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                           // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					                           MuestraDatosCompras( CurrCompras );
 | 
				
			||||||
 | 
					                         } else
 | 
				
			||||||
 | 
					                         	CurrRow++;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        if ( BCompras.LeeReg( (void *)&SCompras, (CurrCompras + CurrRow) ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x03);
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					                // Inicio
 | 
				
			||||||
 | 
					                case  71:
 | 
				
			||||||
 | 
					                       CurrRow = 0;
 | 
				
			||||||
 | 
					                       if ( CurrCompras != 0 )
 | 
				
			||||||
 | 
					                       {
 | 
				
			||||||
 | 
					                        CurrCompras = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					                        MuestraDatosCompras( CurrCompras );
 | 
				
			||||||
 | 
					                       }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                       if ( BCompras.LeeReg( (void *)&SCompras, (CurrCompras + CurrRow) ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x03);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					                // Fin
 | 
				
			||||||
 | 
					                case  79:
 | 
				
			||||||
 | 
					                       CurrRow = 0;
 | 
				
			||||||
 | 
					                       if ( CurrCompras != BCompras.Registros() - NLINEAS_REF )
 | 
				
			||||||
 | 
					                       {
 | 
				
			||||||
 | 
					                        CurrCompras = BCompras.Registros() - NLINEAS_REF;
 | 
				
			||||||
 | 
					                        while( CurrCompras >= BCompras.Registros() ) CurrCompras--;
 | 
				
			||||||
 | 
					                        if ( CurrCompras < 0 ) {
 | 
				
			||||||
 | 
					                         CurrCompras = 0;
 | 
				
			||||||
 | 
					                         CurrRow = BCompras.Registros()-1;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					                        MuestraDatosCompras( CurrCompras );
 | 
				
			||||||
 | 
					                       }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                       if ( BCompras.LeeReg( (void *)&SCompras, (CurrCompras + CurrRow) ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x03);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                       break;
 | 
				
			||||||
 | 
					       // AvanceR<65>pido
 | 
				
			||||||
 | 
					       case  81:
 | 
				
			||||||
 | 
						       CurrRow = 0;		CurrCompras += NLINEAS_REF;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					               while ( (CurrCompras + CurrRow) >= BCompras.Registros() ) CurrCompras--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					               // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					               MuestraDatosCompras( CurrCompras );
 | 
				
			||||||
 | 
					               if ( BCompras.LeeReg( (void *)&SCompras, (CurrCompras + CurrRow) ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x03);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       // Retroceso R<>pido
 | 
				
			||||||
 | 
					       case  73:
 | 
				
			||||||
 | 
					               CurrRow = NLINEAS_REF - 1;          CurrCompras -= NLINEAS_REF;
 | 
				
			||||||
 | 
					               if ( CurrCompras < 0 ) CurrCompras = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					               while( ( CurrRow + CurrCompras ) >= BCompras.Registros() && CurrRow > 0 ) CurrRow--;
 | 
				
			||||||
 | 
					               while( ( CurrRow + CurrCompras ) >= BCompras.Registros() && CurrCompras > 0 ) CurrCompras++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					               // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					               MuestraDatosCompras( CurrCompras );
 | 
				
			||||||
 | 
					               if ( BCompras.LeeReg( (void *)&SCompras, (CurrCompras + CurrRow) ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x03);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					               }
 | 
				
			||||||
 | 
						       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       // Imprimir Lista de socios
 | 
				
			||||||
 | 
					       case  6:
 | 
				
			||||||
 | 
					//               MuestraImpresionesCompras();
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       // Menu Principal
 | 
				
			||||||
 | 
					       case  1:
 | 
				
			||||||
 | 
					               ok = 1;
 | 
				
			||||||
 | 
					               break;
 | 
				
			||||||
 | 
					       // Eliminar
 | 
				
			||||||
 | 
					       case  3:
 | 
				
			||||||
 | 
					       while( kbhit() ) getch();
 | 
				
			||||||
 | 
					               if ( Optar( 1, "ATENCION", "Eliminar<EFBFBD> un gasto interno", "confirme eliminacion",  NULL ) )
 | 
				
			||||||
 | 
					               {
 | 
				
			||||||
 | 
					                if ( BCompras.DelReg( CurrCompras + CurrRow ) == ERROR )
 | 
				
			||||||
 | 
					                                                              Error(0x05);
 | 
				
			||||||
 | 
					                if ( BCompras.Registros() == 0 )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                  ComprasNuevoRegistro( &SCompras );
 | 
				
			||||||
 | 
					                  if ( BCompras.InsReg( (void *)&SCompras, BCompras.Registros(), ARRIBA ) == ERROR )
 | 
				
			||||||
 | 
					                                                                               Error(0x02);
 | 
				
			||||||
 | 
					                  CurrRow = 0;
 | 
				
			||||||
 | 
					                } else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // Si he borrado el <20>ltimo registro subo una linea
 | 
				
			||||||
 | 
					                if ( (CurrCompras+CurrRow) >= ( BCompras.Registros() - 2 ) )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                         if ( (CurrRow + CurrCompras) > 0 )
 | 
				
			||||||
 | 
					                         {
 | 
				
			||||||
 | 
					                          if ( ( CurrRow ) <= 0 )
 | 
				
			||||||
 | 
					                          {
 | 
				
			||||||
 | 
					                           CurrRow = NLINEAS_REF - 1;          CurrCompras -= NLINEAS_REF;
 | 
				
			||||||
 | 
					                           if ( CurrCompras < 0 ) CurrCompras = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                           while( ( CurrRow + CurrCompras ) >= BCompras.Registros() && CurrRow > 0 ) CurrRow--;
 | 
				
			||||||
 | 
					                           while( ( CurrRow + CurrCompras ) >= BCompras.Registros() && CurrCompras > 0 ) CurrCompras++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                           // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					                           MuestraDatosCompras( CurrCompras );
 | 
				
			||||||
 | 
					                          } else {
 | 
				
			||||||
 | 
					                           CurrRow --; if ( CurrRow < 0 ) CurrRow = 0;
 | 
				
			||||||
 | 
					                          }
 | 
				
			||||||
 | 
					                         }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                         if ( BCompras.LeeReg( (void *)&SCompras, (CurrCompras + CurrRow) ) == ERROR )
 | 
				
			||||||
 | 
					                                                              Error(0x03);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					                MuestraDatosCompras( CurrCompras );
 | 
				
			||||||
 | 
					                if ( BCompras.LeeReg( (void *)&SCompras, (CurrCompras + CurrRow) ) == ERROR )
 | 
				
			||||||
 | 
					                                                              Error(0x03);
 | 
				
			||||||
 | 
					               }
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       // Insertar
 | 
				
			||||||
 | 
					       case  2:
 | 
				
			||||||
 | 
					               ComprasNuevoRegistro( &SCompras );
 | 
				
			||||||
 | 
					               if ( BCompras.InsReg( (void *)&SCompras, (CurrCompras + CurrRow), ARRIBA ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x02);
 | 
				
			||||||
 | 
					               if ( ( CurrRow + CurrCompras ) < BCompras.Registros() - 1 )
 | 
				
			||||||
 | 
					               {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if ( ( CurrRow ) >= NLINEAS_REF - 1 )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                   CurrRow = 0;		CurrCompras += NLINEAS_REF;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                   while ( (CurrCompras + CurrRow) >= BCompras.Registros() ) CurrCompras--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                 } else
 | 
				
			||||||
 | 
					                   CurrRow++;
 | 
				
			||||||
 | 
					                 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                 // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					                 MuestraDatosCompras( CurrCompras );
 | 
				
			||||||
 | 
					                 if ( BCompras.LeeReg( (void *)&SCompras, (CurrCompras + CurrRow) ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x03);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       // Ordenar
 | 
				
			||||||
 | 
					       case  4:
 | 
				
			||||||
 | 
					               OrdenarGastosi();
 | 
				
			||||||
 | 
					 CurrCompras = 0; CurrRow = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Mostramos datos hasta que se nos acabe la pantalla
 | 
				
			||||||
 | 
					 MuestraDatosCompras( CurrRow + CurrCompras );
 | 
				
			||||||
 | 
					 if ( BCompras.LeeReg( (void *)&SCompras, 0      ) == ERROR )
 | 
				
			||||||
 | 
					                                                             Error(0x03);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 CurrCol = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       // Gastos por proveedor
 | 
				
			||||||
 | 
					       case  5:
 | 
				
			||||||
 | 
					               RastreaFicheroGastosi();
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					       default:
 | 
				
			||||||
 | 
					               while( kbhit() ) getch();
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 } while( !ok );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 BCompras.CerrarReg();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  MuestraDatosCompras                                                         *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*              Dado un registro, se muestran sucesivamente este y todos    *|
 | 
				
			||||||
 | 
					|*              los que hay por debajo de <20>l, hasta que se agote la base    *|
 | 
				
			||||||
 | 
					|*              o no quepan mas en la pantalla.                             *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Entradas: Registro por el que comenzar                                  *|
 | 
				
			||||||
 | 
					|*  Salidas:  (ninguna)                                                     *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					void MuestraDatosCompras( int RowStart )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int linea, campo;
 | 
				
			||||||
 | 
					 char dev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Imprimo la NLINEAS_REF que caben en la pantalla
 | 
				
			||||||
 | 
					 dev = OK;
 | 
				
			||||||
 | 
					 for ( linea=0; linea < NLINEAS_REF && dev == OK; linea++ )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					   dev = BCompras.LeeReg( (void *)&SCompras, RowStart + linea );
 | 
				
			||||||
 | 
					   if ( dev == OK )
 | 
				
			||||||
 | 
					   // Por cada linea hay 6 campos, ehhh!!!
 | 
				
			||||||
 | 
					      for  ( campo=0; campo < 6; campo++ )
 | 
				
			||||||
 | 
					                                  MuestraCompras( campo, linea, NORMAL );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Ahora limpio los restantes huecos si los hay
 | 
				
			||||||
 | 
					 if ( dev != OK )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					   linea--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   textbackground( BLACK );
 | 
				
			||||||
 | 
					   textcolor( WHITE );
 | 
				
			||||||
 | 
					   for ( ; linea < NLINEAS_REF; linea++ )
 | 
				
			||||||
 | 
					     for  ( campo=0; campo < 6; campo++ )
 | 
				
			||||||
 | 
					     {
 | 
				
			||||||
 | 
					      gotoxy(  1, linea +  6 );
 | 
				
			||||||
 | 
					      cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  MuestraCompras                                                              *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*              Reescribe el campo dado, seg<65>n la fila, y la intensidad     *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Entradas:                                                               *|
 | 
				
			||||||
 | 
					|*            columna    campo ha mostar                                    *|
 | 
				
			||||||
 | 
					|*            linea      linea en la que nos encontramos                    *|
 | 
				
			||||||
 | 
					|*            como       intensidad del texto (NORMAL/INTENSO)              *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Salidas:  (ninguna)                                                     *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					void MuestraCompras( char columna, int linea, char como )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char buffer[80];
 | 
				
			||||||
 | 
					 char buffer1[80];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int X0, Y0, X1, Y1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ObtenCoordenadasCompras( columna, linea, &X0, &Y0, &X1, &Y1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 switch( columna )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  // Fecha
 | 
				
			||||||
 | 
					  case  0:
 | 
				
			||||||
 | 
					       sprintf ( buffer, " %02d-%02d-%02d ", (int)SCompras.Fecha.da_day, (int)SCompras.Fecha.da_mon, SCompras.Fecha.da_year  );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Articulo
 | 
				
			||||||
 | 
					  case  1:
 | 
				
			||||||
 | 
					       sprintf ( buffer, "%24s",  SCompras.Articulo  );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Cantidades
 | 
				
			||||||
 | 
					  case  2:
 | 
				
			||||||
 | 
					       sprintf ( buffer, "   %04d",  SCompras.Cantidades  );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Precio
 | 
				
			||||||
 | 
					  case  3:
 | 
				
			||||||
 | 
					       formatea_u_long( SCompras.Precio, buffer1 );
 | 
				
			||||||
 | 
					       sprintf ( buffer, "   %7s", buffer1 );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Total
 | 
				
			||||||
 | 
					  case  4:
 | 
				
			||||||
 | 
					       formatea_u_long( SCompras.Precio * SCompras.Cantidades, buffer1 );
 | 
				
			||||||
 | 
					       sprintf ( buffer, "%13s",  buffer1 );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // N<> Proveedor
 | 
				
			||||||
 | 
					  case  5:
 | 
				
			||||||
 | 
					       sprintf ( buffer, "      %03d",  SCompras.Proveedor );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 textbackground( ( como == NORMAL ) ? Config.TxtBgN : Config.TxtBgI );
 | 
				
			||||||
 | 
					 strnset( buffer1, 32, X1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 textcolor( ( como == NORMAL ) ? Config.TxtFgN : Config.TxtFgI );
 | 
				
			||||||
 | 
					 gotoxy( X0, Y0 );
 | 
				
			||||||
 | 
					 cprintf( "%s", buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  EditItemCompras                                                             *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*              Se encarga de editar y validar el campo.                    *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Entradas:                                                               *|
 | 
				
			||||||
 | 
					|*            columna    campo ha editar                                    *|
 | 
				
			||||||
 | 
					|*            linea      linea en la que nos encontramos                    *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Salidas:  (ninguna)                                                     *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					void EditItemCompras( char columna, int linea )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char buffer[80];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int X0, Y0, X1, Y1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ObtenCoordenadasCompras( columna, linea, &X0, &Y0, &X1, &Y1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 switch( columna )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  // Fecha
 | 
				
			||||||
 | 
					  case  0:
 | 
				
			||||||
 | 
					       sprintf ( buffer, "%02d%02d", (int)SCompras.Fecha.da_day, (int)SCompras.Fecha.da_mon );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG( buffer, 1,  4, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
				
			||||||
 | 
					        if ( ( (buffer[0]-'0')*10 + (buffer[1]-'0') ) <= 31 && ( (buffer[2]-'0')*10 + (buffer[3]-'0') ) <= 12 )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					         SCompras.Fecha.da_day  = (char)((buffer[0]-'0')*10 + (buffer[1]-'0'));
 | 
				
			||||||
 | 
					         SCompras.Fecha.da_mon  = (char)((buffer[2]-'0')*10 + (buffer[3]-'0'));
 | 
				
			||||||
 | 
					         SCompras.Fecha.da_year = AnoActual;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Articulo
 | 
				
			||||||
 | 
					  case  1:
 | 
				
			||||||
 | 
					       strcpy ( buffer, SCompras.Articulo   );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG( buffer, 0, 24, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
				
			||||||
 | 
					       strcpy ( SCompras.Articulo, buffer   );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Cantidad
 | 
				
			||||||
 | 
					  case  2:
 | 
				
			||||||
 | 
					       sprintf ( buffer, "%d", SCompras.Cantidades  );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG( buffer, 0, 4, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					        SCompras.Cantidades = atoi( buffer );
 | 
				
			||||||
 | 
					        MuestraCompras( 4, linea, NORMAL );
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  // Precio
 | 
				
			||||||
 | 
					  case  3:
 | 
				
			||||||
 | 
					       sprintf ( buffer, "%ld", SCompras.Precio  );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG( buffer, 0, 6, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					        SCompras.Precio = atol( buffer );
 | 
				
			||||||
 | 
					        MuestraCompras( 4, linea, NORMAL );
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  //Total
 | 
				
			||||||
 | 
					  case  4:
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					  // Proveedor
 | 
				
			||||||
 | 
					  case  5:
 | 
				
			||||||
 | 
					       sprintf ( buffer, "%d", SCompras.Proveedor  );
 | 
				
			||||||
 | 
					       if ( !( InputCadenaG( buffer, 0, 3, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) )
 | 
				
			||||||
 | 
					       SCompras.Proveedor = atoi( buffer );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  ObtenCoordenadasCompras                                                     *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*              Obtiene las coordenadas de acotacion para el campo pedido   *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Entradas:                                                               *|
 | 
				
			||||||
 | 
					|*            columna    campo del que obtener las coordenadas              *|
 | 
				
			||||||
 | 
					|*            linea      linea en la que nos encontramos                    *|
 | 
				
			||||||
 | 
					|*            X0 Y0 X1 Y1  Punteros para devolver las coordenadas           *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Salidas:  (ninguna)                                                     *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					void ObtenCoordenadasCompras( char columna, char linea, int *X0, int *Y0, int *X1, int *Y1 )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Calculamos la Y0, Y1 para la linea dada ( SOLO columna < 6 )
 | 
				
			||||||
 | 
					 *Y0 = 6 + linea;
 | 
				
			||||||
 | 
					 *Y1 = 6 + linea;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 switch( columna )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  case 0:
 | 
				
			||||||
 | 
					       *X0 =   2;       *X1 =  10;
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 1:
 | 
				
			||||||
 | 
					       *X0 =  13;       *X1 =  24;
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 2:
 | 
				
			||||||
 | 
					       *X0 =  38;       *X1 =   7;
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 3:
 | 
				
			||||||
 | 
					       *X0 =  46;       *X1 =  10;
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 4:
 | 
				
			||||||
 | 
					       *X0 =  57;       *X1 =  13;
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 5:
 | 
				
			||||||
 | 
					       *X0 =  71;       *X1 =   9;
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  ComprasNuevoRegistro                                                        *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*              Limpia el buffer, para un nuevo registro.                   *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Entradas: (ninguna)                                                     *|
 | 
				
			||||||
 | 
					|*  Salidas:  (ninguna)                                                     *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					void ComprasNuevoRegistro( INFO_PRECIOS *NSCompras )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 NSCompras -> Fecha.da_day  = 0;
 | 
				
			||||||
 | 
					 NSCompras -> Fecha.da_mon  = 0;
 | 
				
			||||||
 | 
					 NSCompras -> Fecha.da_year = AnoActual;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 NSCompras -> Articulo[0]   = '\0';
 | 
				
			||||||
 | 
					 NSCompras -> Cantidades = 0;
 | 
				
			||||||
 | 
					 NSCompras -> Precio = 0;
 | 
				
			||||||
 | 
					 NSCompras -> Proveedor = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					// <20>                     Parte secundaria del m<>dulo                      <20>
 | 
				
			||||||
 | 
					// <20>                                                                      <20>
 | 
				
			||||||
 | 
					// <20>                  Secci<63>n de Busqueda de refecencias                  <20>
 | 
				
			||||||
 | 
					//  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  MuestraImpresionesRed                                                      *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*              Muestra un cuadro con las distintas opciones de impresi<73>n   *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Entradas:(ninguna)                                                      *|
 | 
				
			||||||
 | 
					|*  Salidas: (ninguna)                                                      *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  ImprimeCompraserencias                                                      *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*              Imprime todas las referencias seg<65>n se le indique           *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Entradas:                                                               *|
 | 
				
			||||||
 | 
					|*           Como imprimir las referencias                                  *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Salidas: (ninguna)                                                      *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					void ImprimeCompraserencias( char como )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 long i, old_reg;
 | 
				
			||||||
 | 
					 FILE *file_out;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 old_reg = BCompras.RegActual();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( !Config.Printer )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					   if ( ( file_out = fopen( Config.PrintTo, "w" ) ) == NULL )
 | 
				
			||||||
 | 
					                                                            return;
 | 
				
			||||||
 | 
					 } else
 | 
				
			||||||
 | 
					      file_out = stdprn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ImprimeCabeceraCompras( como, file_out );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 for ( i=0; i<BCompras.Registros(); i++ )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  BCompras.LeeReg( (void *)&SCompras, i );
 | 
				
			||||||
 | 
					  switch( como )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					   // Listado R<>pido
 | 
				
			||||||
 | 
					   case 1:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        formatea_u_long( (unsigned long)SCompras.CantUnitaria, buffer );
 | 
				
			||||||
 | 
					        fprintf( file_out, "%9lu  %-30s  %-6s  ", SCompras.CodigoR, SCompras.Descripcion, buffer );
 | 
				
			||||||
 | 
					        formatea_u_long( (unsigned long)SCompras.PrecioCosto,    buffer );
 | 
				
			||||||
 | 
					        fprintf( file_out, "%-7s  ", buffer );
 | 
				
			||||||
 | 
					        formatea_u_long( (unsigned long)SCompras.PrecioVenta[0], buffer );
 | 
				
			||||||
 | 
					        fprintf( file_out, "%-7s  %-10s\n\r", buffer, SCompras.Combinado ? "Combinado" : "" );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   // Listado Completo
 | 
				
			||||||
 | 
					   case 2:
 | 
				
			||||||
 | 
					        formatea_u_long( (unsigned long)SCompras.CantUnitaria, buffer );
 | 
				
			||||||
 | 
					        fprintf( file_out, "%9lu  %-30s  %-6s  ", SCompras.CodigoR, SCompras.Descripcion, buffer );
 | 
				
			||||||
 | 
					        formatea_u_long( (unsigned long)SCompras.PrecioCosto,    buffer );
 | 
				
			||||||
 | 
					        fprintf( file_out, "%-7s  ", buffer );
 | 
				
			||||||
 | 
					        formatea_u_long( (unsigned long)SCompras.PrecioVenta[0], buffer );
 | 
				
			||||||
 | 
					        fprintf( file_out, "%-7s  %-10s\n\r", buffer, SCompras.Combinado ? "Combinado" : "" );
 | 
				
			||||||
 | 
					        if ( SCompras.Combinado )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					         for ( j=0; j<10; j++ )
 | 
				
			||||||
 | 
					          if ( SCompras.CodigosAsociados[j] != 0 )
 | 
				
			||||||
 | 
					                   fprintf( file_out, "                                                           %-7s     %9lu", j < 4 ? SCompras.PrecioVenta[j+1] : 0, SCompras.CodigosAsociados[j] );
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   // C<>digos de barra
 | 
				
			||||||
 | 
					   case 3:
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( !Config.Printer )
 | 
				
			||||||
 | 
					                      fclose( file_out );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 BCompras.LeeReg( (void *)&SCompras, old_reg );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImprimeCabeceraCompras( char como, FILE *file_out )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  switch( como )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   // Listado R<>pido
 | 
				
			||||||
 | 
					   case 1:
 | 
				
			||||||
 | 
					        fprintf( file_out, "C<EFBFBD>digo     Proveedor                      Cant.Unt P.Costo  P.Venta  Combinado\n\r" );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   // Listado Completo
 | 
				
			||||||
 | 
					   case 2:
 | 
				
			||||||
 | 
					        fprintf( file_out, "C<EFBFBD>digo     Proveedor                      Cant.Unt P.Costo  P.Venta  Cod. Combinado\n\r" );
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					   // C<>digos de barra
 | 
				
			||||||
 | 
					   case 3:
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Error( int code )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 printf( "\nSe produjo un codigo de error %d, subcodigo no disponible \n\r", code );
 | 
				
			||||||
 | 
					 switch( code )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  case 0:
 | 
				
			||||||
 | 
					       printf( "\n Error incocumentado " );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 1:
 | 
				
			||||||
 | 
					       printf( "\n Error abriendo " );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 2:
 | 
				
			||||||
 | 
					       printf( "\n Error insertando " );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 3:
 | 
				
			||||||
 | 
					       printf( "\n Error leyendo " );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 4:
 | 
				
			||||||
 | 
					       printf( "\n Error escribiendo " );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					  case 5:
 | 
				
			||||||
 | 
					       printf( "\n Error borrando " );
 | 
				
			||||||
 | 
					       break;
 | 
				
			||||||
 | 
					 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 exit(code);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DibujaPantallaGastosInt(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  textcolor( WHITE );
 | 
				
			||||||
 | 
					  textbackground( BLACK );
 | 
				
			||||||
 | 
					          // 145678 123456789-123456789-123 12345  345.789 123.123.123 123456789-123456789-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cprintf( "\r                                                                                ");
 | 
				
			||||||
 | 
					  cprintf( "                                                                                ");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>  Fecha   <20> Articulo               <20>  Und  <20>  Precio  <20>    Total    <20> N<> Pdor <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD>          <20>                        <20>       <20>          <20>             <20>         <20>");
 | 
				
			||||||
 | 
					  cprintf( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RastreaFicheroGastosi(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char buffer[80], ok = 0, dev;
 | 
				
			||||||
 | 
					 char buffer1[80];
 | 
				
			||||||
 | 
					 int Proveedor; long i;
 | 
				
			||||||
 | 
					 long old_pos;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 long Meses[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 | 
				
			||||||
 | 
					 char MesesF[12][80];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Pido el n<> de proveedor que deseo buscar
 | 
				
			||||||
 | 
					 Optar( ENCUADRE, "Rastreo de gastos", "Introduzca el n<> de", "proveedor, a rastrear.", "", "N<EFBFBD> Proveedor:             ", NULL );
 | 
				
			||||||
 | 
					 buffer[0] = '\0';
 | 
				
			||||||
 | 
					 if ( !( InputCadenaG( buffer, 1,  4, Config.TxtBgN, Config.TxtFgN, 46, 12, 4, 0) >> 8 ) )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  Proveedor = atoi( buffer );
 | 
				
			||||||
 | 
					  ok = 1;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 Optar( ENCUADRE, NULL );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( ok == 1 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  Optar( ENCUADRE, "Realizando rastreo...", "Esto puede tardar unos", "minutos, por favor, epere...", NULL );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  old_pos = BCompras.RegActual();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dev = OK;
 | 
				
			||||||
 | 
					  for ( i=0; i < BCompras.Registros(); i++ )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   BCompras.LeeReg( (void *)&SCompras, i );
 | 
				
			||||||
 | 
					   if ( SCompras.Proveedor == Proveedor )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    if ( SCompras.Fecha.da_mon > 0 && SCompras.Fecha.da_mon <= 12 )
 | 
				
			||||||
 | 
					      Meses[ SCompras.Fecha.da_mon - 1 ] += SCompras.Cantidades * SCompras.Precio;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for( i = 0; i <  6; i++ )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					       formatea_u_long( Meses[i], buffer );
 | 
				
			||||||
 | 
					       formatea_u_long( Meses[i+6], buffer1);
 | 
				
			||||||
 | 
					       switch( i )
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					        case  0: sprintf( MesesF[i], "Enero:  %10s Julio:      %10s", buffer, buffer1 ); break;
 | 
				
			||||||
 | 
					        case  1: sprintf( MesesF[i], "Febrero:%10s Agosto:     %10s", buffer, buffer1 ); break;
 | 
				
			||||||
 | 
					        case  2: sprintf( MesesF[i], "Marzo:  %10s Septiembre: %10s", buffer, buffer1 ); break;
 | 
				
			||||||
 | 
					        case  3: sprintf( MesesF[i], "Abril:  %10s Octubre:    %10s", buffer, buffer1 ); break;
 | 
				
			||||||
 | 
					        case  4: sprintf( MesesF[i], "Mayo:   %10s Noviembre:  %10s", buffer, buffer1 ); break;
 | 
				
			||||||
 | 
					        case  5: sprintf( MesesF[i], "Junio:  %10s Diciembre:  %10s", buffer, buffer1 ); break;
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Optar( ENCUADRE, NULL );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Optar( 0, "Rastreo concluido", MesesF[0], MesesF[1], MesesF[2], MesesF[3], MesesF[4], MesesF[5], NULL );
 | 
				
			||||||
 | 
					  while( kbhit() ) getch();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  BCompras.LeeReg( (void *)&SCompras, old_pos );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void OrdenarGastosi(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					BDatos BCompras;            // Base de datos de Compraserencias
 | 
				
			||||||
 | 
					INFO_PRECIOS SCompras;     // Estructura de referencias
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int OrdenGestionInterna;
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					struct Boton_Texto BT[4];
 | 
				
			||||||
 | 
					int devolver;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BT[0].x = 32; BT[0].y =  9; strcpy( BT[0].Texto, " &Fecha de compra   "); BT[0].ID_T1 =  0; BT[0].ID_T2 = 0;
 | 
				
			||||||
 | 
					BT[1].x = 32; BT[1].y = 11; strcpy( BT[1].Texto, " &Nombre de Articulo"); BT[1].ID_T1 =  0; BT[1].ID_T2 = 0;
 | 
				
			||||||
 | 
					BT[2].x = 32; BT[2].y = 13; strcpy( BT[2].Texto, " &Proveedor del Art "); BT[2].ID_T1 =  0; BT[2].ID_T2 = 0;
 | 
				
			||||||
 | 
					BT[3].x = 32; BT[3].y = 15; strcpy( BT[3].Texto, " &Cancelar operacion"); BT[3].ID_T1 =  0; BT[3].ID_T2 = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Optar( ENCUADRE, "Elija orden a seguir", NULL );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 while( ( devolver = Funcion_Botones(STD_BY, 4, BT) ) < 1 || devolver > 4 ) while ( kbhit() ) getch();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( devolver != 4 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  OrdenGestionInterna = devolver;
 | 
				
			||||||
 | 
					  BCompras.SortReg( ComparaRegistros );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Optar( ENCUADRE, NULL );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ComparaRegistros( const void *A, const void *B )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 // Tipos de ordenaciones posibles
 | 
				
			||||||
 | 
					 switch( OrdenGestionInterna )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  // Por Proveedor
 | 
				
			||||||
 | 
					  case 3:
 | 
				
			||||||
 | 
					   if ( ( ((INFO_PRECIOS *)A) -> Proveedor ) <  ( ((INFO_PRECIOS *)B) -> Proveedor ) ) return -1;
 | 
				
			||||||
 | 
					   if ( ( ((INFO_PRECIOS *)A) -> Proveedor ) == ( ((INFO_PRECIOS *)B) -> Proveedor ) ) return  0;
 | 
				
			||||||
 | 
					   if ( ( ((INFO_PRECIOS *)A) -> Proveedor ) >  ( ((INFO_PRECIOS *)B) -> Proveedor ) ) return  1;
 | 
				
			||||||
 | 
					   break;
 | 
				
			||||||
 | 
					  // Por Articulo
 | 
				
			||||||
 | 
					  case 2:
 | 
				
			||||||
 | 
					   return strcmpi( ( ((INFO_PRECIOS *)A) -> Articulo ), ( ((INFO_PRECIOS *)B) -> Articulo ) );
 | 
				
			||||||
 | 
					  case 1:
 | 
				
			||||||
 | 
					   if ( ( ((INFO_PRECIOS *)A) -> Fecha.da_year ) < ( ((INFO_PRECIOS *)B) -> Fecha.da_year ) ) return -1;
 | 
				
			||||||
 | 
					   if ( ( ((INFO_PRECIOS *)A) -> Fecha.da_year ) > ( ((INFO_PRECIOS *)B) -> Fecha.da_year ) ) return  1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if ( ( ((INFO_PRECIOS *)A) -> Fecha.da_mon  ) < ( ((INFO_PRECIOS *)B) -> Fecha.da_mon  ) ) return -1;
 | 
				
			||||||
 | 
					   if ( ( ((INFO_PRECIOS *)A) -> Fecha.da_mon  ) > ( ((INFO_PRECIOS *)B) -> Fecha.da_mon  ) ) return  1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if ( ( ((INFO_PRECIOS *)A) -> Fecha.da_day  ) < ( ((INFO_PRECIOS *)B) -> Fecha.da_day  ) ) return -1;
 | 
				
			||||||
 | 
					   if ( ( ((INFO_PRECIOS *)A) -> Fecha.da_day  ) > ( ((INFO_PRECIOS *)B) -> Fecha.da_day  ) ) return  1;
 | 
				
			||||||
 | 
					   return 0;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 return -1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1088
									
								
								TXT_LPR.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1088
									
								
								TXT_LPR.CPP
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1609
									
								
								TXT_SOC.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1609
									
								
								TXT_SOC.CPP
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										277
									
								
								TXT_UTL.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										277
									
								
								TXT_UTL.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,277 @@
 | 
				
			|||||||
 | 
					#include <dos.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include <ctype.h>
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <alloc.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <stdarg.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BLANCO EGA_WHITE
 | 
				
			||||||
 | 
					#define ENCUADRE       3
 | 
				
			||||||
 | 
					#define SEC_OPTAR      5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "zorr.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void BEEP(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /**************************************************************************\
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  InputCadenaG                                                            *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Descripci<63>n:                                                            *|
 | 
				
			||||||
 | 
					|*              Edita una cadena en formato gr<67>fico                         *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Entradas:                                                               *|
 | 
				
			||||||
 | 
					|*            Puntero a los datos editados                                  *|
 | 
				
			||||||
 | 
					|*            0 alfanumerico   1 numerico                                   *|
 | 
				
			||||||
 | 
					|*            longitud de la cadena (TEXTO/NUMERO)                          *|
 | 
				
			||||||
 | 
					|*            color del texto                                               *|
 | 
				
			||||||
 | 
					|*            color de fondo                                                *|
 | 
				
			||||||
 | 
					|*            Limites de acotacion                                          *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*  Salidas:  (ninguna)                                                     *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					|*                                                                          *|
 | 
				
			||||||
 | 
					 \**************************************************************************/
 | 
				
			||||||
 | 
					int InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  // A todas las y les sumaba antes +RoW*12 parametro que indica la linea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int  ls;                                      // longitud cadena
 | 
				
			||||||
 | 
					  char Status = 0;
 | 
				
			||||||
 | 
					  char *s1;                                     // puntero a cadena inicial
 | 
				
			||||||
 | 
					  int c, ok, i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s1 = s;                                       // inicio cadena
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                textbackground( cf );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                gotoxy( X0, Y0 );
 | 
				
			||||||
 | 
					                for ( i = 0; i < X1; i++ )
 | 
				
			||||||
 | 
					                                        putch( 32 );
 | 
				
			||||||
 | 
					                textcolor( cc );
 | 
				
			||||||
 | 
					                gotoxy( X0, Y0 );
 | 
				
			||||||
 | 
					                cprintf( "%s", s1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _setcursortype( _SOLIDCURSOR );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ls = strlen ( s );                            // Longitud de actual
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s += ls;                                      // se coloca en el final
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  do{
 | 
				
			||||||
 | 
						c = getch();                            // obtiene tecla
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ( c == 27 ) Status = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ok = ( c == 27 || c == 13 || c == 0);              // 13 = INTRO || Especiales
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if ( c == 8  && ls > 0 && !ok ) {       //  8 = Back Space
 | 
				
			||||||
 | 
							ls--;
 | 
				
			||||||
 | 
							s--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							*s = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                gotoxy( X0, Y0 );
 | 
				
			||||||
 | 
					                for ( i = 0; i < X1; i++ )
 | 
				
			||||||
 | 
					                                         putch( 32 );
 | 
				
			||||||
 | 
					                textcolor( cc );
 | 
				
			||||||
 | 
					                gotoxy( X0, Y0 );
 | 
				
			||||||
 | 
					                cprintf( "%s", s1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							if ( !numalp && c >= 32 && c <= 254  && ls < lmax) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								*s++ = c;
 | 
				
			||||||
 | 
								ls++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								*s = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                gotoxy( X0, Y0 );
 | 
				
			||||||
 | 
					                for ( i = 0; i < X1; i++ )
 | 
				
			||||||
 | 
					                                         putch( 32 );
 | 
				
			||||||
 | 
					                textcolor( cc );
 | 
				
			||||||
 | 
					                gotoxy( X0, Y0 );
 | 
				
			||||||
 | 
					                cprintf( "%s", s1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								if ( numalp && isdigit(c)  && ls < lmax) {
 | 
				
			||||||
 | 
									*s++ = c;
 | 
				
			||||||
 | 
									ls++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									*s = '\0';                              // Cero final
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                gotoxy( X0, Y0 );
 | 
				
			||||||
 | 
					                for ( i = 0; i < X1; i++ )
 | 
				
			||||||
 | 
					                                         putch( 32 );
 | 
				
			||||||
 | 
					                textcolor( cc );
 | 
				
			||||||
 | 
					                gotoxy( X0, Y0 );
 | 
				
			||||||
 | 
					                cprintf( "%s", s1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
 | 
				
			||||||
 | 
							else if( c == 27 ) {*s='\0'; ok = 1; }
 | 
				
			||||||
 | 
							/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
 | 
				
			||||||
 | 
							else BEEP();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }while(!ok);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _setcursortype( _NOCURSOR );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ok = 1;
 | 
				
			||||||
 | 
					  *s = ' ';
 | 
				
			||||||
 | 
					  while( ok && ls >= 0 ) {
 | 
				
			||||||
 | 
							if(*s==' ') { *s = '\0'; s--; ls--;
 | 
				
			||||||
 | 
							} else { s++; ok = 0; }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  *s = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while(kbhit()) getch();              // Vacia Buffer impidiendo falsas
 | 
				
			||||||
 | 
										//  pulsaciones...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return ( (Status<<8) + (ls&0x00FF) );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void BEEP(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sound(440);
 | 
				
			||||||
 | 
						delay(50);
 | 
				
			||||||
 | 
						nosound();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void formatea_u_long( unsigned long Numero, char *Inter_Chg)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char Buffer1[80];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int c;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 sprintf(Buffer1, "%lu", Numero);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Inter_Chg[0]='\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 strrev(Buffer1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 c = strlen( Buffer1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 while( c >= 3 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    c -= 3;
 | 
				
			||||||
 | 
					    strncat( Inter_Chg, Buffer1, 3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    strrev(Buffer1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Buffer1[c] = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    strrev(Buffer1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(strlen(Buffer1)!=0)
 | 
				
			||||||
 | 
								strcat( Inter_Chg, "." );
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 strcat( Inter_Chg, Buffer1);
 | 
				
			||||||
 | 
					 strrev(Inter_Chg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*// return Buffer2;*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Optar( int optar, ... )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					struct Boton_Texto BT[6];
 | 
				
			||||||
 | 
					int devolver = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BT[0].x = 22; BT[0].y = 15; strcpy( BT[0].Texto, " &Aceptar "); BT[0].ID_T1 = 00; BT[0].ID_T2 = 30;
 | 
				
			||||||
 | 
					BT[1].x = 51; BT[1].y = 15; strcpy( BT[1].Texto, " &Cancelar"); BT[1].ID_T1 = 00; BT[1].ID_T2 = 46;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 static char fondo[4096];
 | 
				
			||||||
 | 
					 static char Memoria = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int DEV = 0, ok = 0, linea = 0;
 | 
				
			||||||
 | 
					 int Center; char *buff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 va_list ap;
 | 
				
			||||||
 | 
					 va_start( ap, &optar );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if ( Memoria == 1 )
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  puttext(  21,  5, 63, 17, (void *)fondo );  Memoria = 0;
 | 
				
			||||||
 | 
					  if ( optar == ENCUADRE ) return DEV;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Memoria = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 gettext( 21,  5,  63, 17, (void *)fondo      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					textbackground( BLACK );
 | 
				
			||||||
 | 
					textcolor( CYAN );
 | 
				
			||||||
 | 
					gotoxy( 21,  5 );    cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ");
 | 
				
			||||||
 | 
					gotoxy( 21,  6 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21,  7 );    cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ");
 | 
				
			||||||
 | 
					gotoxy( 21,  8 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21,  9 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21, 10 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21, 11 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21, 12 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21, 13 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21, 14 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21, 15 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21, 16 );    cprintf("<EFBFBD>                                         <20>");
 | 
				
			||||||
 | 
					gotoxy( 21, 17 );    cprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   textcolor( RED );
 | 
				
			||||||
 | 
					   linea = 0;
 | 
				
			||||||
 | 
					   while ( (buff = va_arg(ap, char *)) != NULL )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					     Center = (42 - strlen( buff ) ) / 2;
 | 
				
			||||||
 | 
					     gotoxy( 21+Center+1, ( (linea == 0 ) ? 6 : 8 + linea ) );
 | 
				
			||||||
 | 
					     cprintf( "%s", buff );
 | 
				
			||||||
 | 
					     linea++;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   va_end(ap);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if ( optar != ENCUADRE )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    ok = 0;   	       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
					    if ( optar == 1 )
 | 
				
			||||||
 | 
					    do {
 | 
				
			||||||
 | 
					      switch( Funcion_Botones(STD_BY, 2, BT) )
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        case  0:				  // No se pulso ningun BOTON
 | 
				
			||||||
 | 
					        case -2:
 | 
				
			||||||
 | 
					        case -1:
 | 
				
			||||||
 | 
						       while( kbhit() ) getch();  // Limpiamos posibles teclas en BUFFER
 | 
				
			||||||
 | 
					               if ( optar == 0 ) ok = 1;
 | 
				
			||||||
 | 
						       break;
 | 
				
			||||||
 | 
					        case  1:
 | 
				
			||||||
 | 
					                DEV = 1; ok = 1;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					        case  2:
 | 
				
			||||||
 | 
					                DEV = 0; ok = 1;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }while( !ok );
 | 
				
			||||||
 | 
					    else { espera_pulsar(); espera_soltar(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   puttext(  21,  5, 63, 17, (void *)fondo );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Memoria = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 return DEV;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										124
									
								
								ZORR.H
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								ZORR.H
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,124 @@
 | 
				
			|||||||
 | 
					#include <dos.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define DIBUJA       1
 | 
				
			||||||
 | 
					#define DEPRIME      2
 | 
				
			||||||
 | 
					#define Dibuja_Todos 3
 | 
				
			||||||
 | 
					#define COMPRUEBA    4
 | 
				
			||||||
 | 
					#define STD_BY       5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define NORMAL           0
 | 
				
			||||||
 | 
					#define INTENSO          1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ATRAS           -1
 | 
				
			||||||
 | 
					#define NUEVA_BUSQUEDA   0
 | 
				
			||||||
 | 
					#define ADELANTE         1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SEC_OPTAR        5
 | 
				
			||||||
 | 
					#define ENCUADRE         3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Niveles de acceso al programa
 | 
				
			||||||
 | 
					#define TOTAL     0
 | 
				
			||||||
 | 
					#define USUARIO   1
 | 
				
			||||||
 | 
					#define NINGUNO   2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char FillBgS, FillBgC;
 | 
				
			||||||
 | 
					 char NumFg, NumBg, NumLn;
 | 
				
			||||||
 | 
					 char TxtBgN, TxtBgI, TxtFgN, TxtFgI;
 | 
				
			||||||
 | 
					 char Printer, PrintTo[80];
 | 
				
			||||||
 | 
					} CONFIG;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct hora
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char min;                      // Minutos y hora
 | 
				
			||||||
 | 
					 char hora;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct ComprasSocios
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  unsigned char dia;
 | 
				
			||||||
 | 
					  unsigned char mes;
 | 
				
			||||||
 | 
					  long Cantidad;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 long NSocio;
 | 
				
			||||||
 | 
					 char Nombre[15+1];
 | 
				
			||||||
 | 
					 char Apellido[20+1];
 | 
				
			||||||
 | 
					 char Direccion[25+1];
 | 
				
			||||||
 | 
					 int Num;
 | 
				
			||||||
 | 
					 char Piso[4+1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 int NCompras;
 | 
				
			||||||
 | 
					 struct ComprasSocios CSocios[240];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} INFO_SOCIOS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 struct date Fecha;
 | 
				
			||||||
 | 
					 char Articulo[25+1];
 | 
				
			||||||
 | 
					 int Proveedor;
 | 
				
			||||||
 | 
					 long Precio;
 | 
				
			||||||
 | 
					 int Cantidades;
 | 
				
			||||||
 | 
					} INFO_PRECIOS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char Articulo[45+1];
 | 
				
			||||||
 | 
					 long Precio;
 | 
				
			||||||
 | 
					 char Ubicacion[14+1];
 | 
				
			||||||
 | 
					 long PrecioArt;
 | 
				
			||||||
 | 
					} INFO_ARTICULOS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Optar( int optar, ... );
 | 
				
			||||||
 | 
					void ponicono(int x,int y,char matriz[18][18], char pos);
 | 
				
			||||||
 | 
					void formatea_u_long( unsigned long Numero, char *Inter_Chg);
 | 
				
			||||||
 | 
					int  InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1);
 | 
				
			||||||
 | 
					void Error( int code );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// M<>dulo de referencias
 | 
				
			||||||
 | 
					void InfoProductos(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// M<>dulo de Compras
 | 
				
			||||||
 | 
					void ComprasDiarias( int NivelAcceso );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Informacion de los proveedores
 | 
				
			||||||
 | 
					void InfoProveedores(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//<2F><>
 | 
				
			||||||
 | 
					void espera_soltar(void);
 | 
				
			||||||
 | 
					void espera_pulsar(void);
 | 
				
			||||||
 | 
					void activa_raton(void);
 | 
				
			||||||
 | 
					void desactiva_raton(void);
 | 
				
			||||||
 | 
					void inicializa_raton_texto(void);
 | 
				
			||||||
 | 
					struct Boton_Texto{
 | 
				
			||||||
 | 
					  char x; char y;
 | 
				
			||||||
 | 
					  char Texto[80];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int ID_T1;
 | 
				
			||||||
 | 
					  int ID_T2;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Funcion_Botones(int Funcion, int nBotones, struct Boton_Texto *Boton_Texto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int   boton_izq, boton_der;
 | 
				
			||||||
 | 
					extern int x_raton, y_raton, RATON;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//<2F><>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int AnoActual;
 | 
				
			||||||
							
								
								
									
										443
									
								
								ZORR.IMG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										443
									
								
								ZORR.IMG
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,443 @@
 | 
				
			|||||||
 | 
					         
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					** Codigo fuente para MAKE_BOTON
 | 
				
			||||||
 | 
					**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*****************************************************************************
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					*  ATENCION !!! 
 | 
				
			||||||
 | 
					*               ALTERAR ESTE FICHERO, CAUSARA EL MALFUNCIONAMIENTO DEL
 | 
				
			||||||
 | 
					*               PROGRAMA DE APOYO... ( ERRORES NO DOCUMENTADOS )
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					*****************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:   1
 | 
				
			||||||
 | 
					****                                        ****  Botones S:  10
 | 
				
			||||||
 | 
					**             M<>dulo de Ventas               **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					!1, 6
 | 
				
			||||||
 | 
					$ 605,   5, 635, 120,       7, 63, 56, 2, 2, 000, 000   * Impr. <20>ltimo ticket
 | 
				
			||||||
 | 
					$ 490,   5, 590,  30,       7, 63, 56, 2, 2, 000, 000   * Impr. Tickets
 | 
				
			||||||
 | 
					$ 490,  50, 590,  75,       7, 63, 56, 2, 2, 000, 000   * Cobro completo
 | 
				
			||||||
 | 
					$ 490,  95, 590, 120,       7, 63, 56, 2, 2, 000, 000   * Servicio en mesa
 | 
				
			||||||
 | 
					$ 420,   5, 450, 120,       7, 63, 56, 2, 2, 000, 000   * Gastos / Compras
 | 
				
			||||||
 | 
					$ 380,   5, 410, 120,       7, 63, 56, 2, 2, 000, 000   * Menu Principal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:   2
 | 
				
			||||||
 | 
					****                                        ****  Botones S:  20
 | 
				
			||||||
 | 
					**          M<>dulo de Referencias             **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					!2, 9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ 400,  40, 515,  65,       7, 63, 56, 2, 2, 000,  23
 | 
				
			||||||
 | 
					$ 520,  40, 635,  65,       7, 63, 56, 2, 2, 000,  50
 | 
				
			||||||
 | 
					$ 400,  70, 515,  95,       7, 63, 56, 2, 2, 000,  83
 | 
				
			||||||
 | 
					$ 520,  70, 635,  95,       7, 63, 56, 2, 2, 000,  82
 | 
				
			||||||
 | 
					$ 400, 100, 440, 125,       7, 63, 56, 2, 2, 000,  73
 | 
				
			||||||
 | 
					$ 445, 100, 475, 125,       7, 63, 56, 2, 2, 000,  71
 | 
				
			||||||
 | 
					$ 480, 100, 555, 125,       7, 63, 56, 2, 2, 000,  48
 | 
				
			||||||
 | 
					$ 560, 100, 590, 125,       7, 63, 56, 2, 2, 000,  79
 | 
				
			||||||
 | 
					$ 595, 100, 635, 125,       7, 63, 56, 2, 2, 000,  81
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>20
 | 
				
			||||||
 | 
					& 400,   5, 635,  30,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400,  7,                 2,  5,  0,  0,  Listado de Socios,
 | 
				
			||||||
 | 
					|  401,  8,                 2,  5,  0, 63,  Listado de Socios,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 400,  40, 515,  65,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400, 42,                 2,  5,  0,  0,  Imprimir Soc.,
 | 
				
			||||||
 | 
					|  401, 43,                 2,  5,  0, 63,  Imprimir Soc.,
 | 
				
			||||||
 | 
					 |  400, 43,                 2,  5,  0,  0,  _,
 | 
				
			||||||
 | 
					 |  401, 44,                 2,  5,  0, 63,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 520,  40, 635,  65,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  518, 42,                 2,  5,  0,  0,  Men<65> Principal,
 | 
				
			||||||
 | 
					|  519, 43,                 2,  5,  0, 63,  Men<65> Principal,
 | 
				
			||||||
 | 
					 |  518, 43,                 2,  5,  0,  0,  _,
 | 
				
			||||||
 | 
					 |  519, 44,                 2,  5,  0, 63,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 400,  70, 515,  95,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400, 72,                 2,  5,  0,  0,  Eliminar Soc.,
 | 
				
			||||||
 | 
					|  401, 73,                 2,  5,  0, 63,  Eliminar Soc.,
 | 
				
			||||||
 | 
					& 520,  70, 635,  95,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  518, 72,                 2,  5,  0,  0,  Insertar Soc.,
 | 
				
			||||||
 | 
					|  519, 73,                 2,  5,  0, 63,  Insertar Soc.,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 400, 100, 440, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400, 102,                 2,  5,  0,  0,  <<,
 | 
				
			||||||
 | 
					|  401, 103,                 2,  5,  0, 63,  <<,
 | 
				
			||||||
 | 
					& 445, 100, 475, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  445, 102,                 2,  5,  0,  0,  <-,
 | 
				
			||||||
 | 
					|  446, 103,                 2,  5,  0, 63,  <-,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 480, 100, 555, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  480, 102,                 2,  5,  0,  0,   Buscar,
 | 
				
			||||||
 | 
					|  481, 103,                 2,  5,  0, 63,   Buscar,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 560, 100, 590, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  560, 102,                 2,  5,  0,  0,  ->,
 | 
				
			||||||
 | 
					|  561, 103,                 2,  5,  0, 63,  ->,
 | 
				
			||||||
 | 
					& 595, 100, 635, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  595, 102,                 2,  5,  0,  0,   >>,
 | 
				
			||||||
 | 
					|  596, 103,                 2,  5,  0, 63,   >>,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&   5, 130, 635, 155,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  10, 132,                 2,  5,  0, 63,  N<> Socio  Nombre                           Direcci<63>n,
 | 
				
			||||||
 | 
					|  11, 133,                 2,  5,  0,  0,  N<> Socio  Nombre                           Direcci<63>n,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&   5, 160,  80,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					&  85, 160, 345,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 350, 160, 635,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Linea de fondo para ayudas
 | 
				
			||||||
 | 
					& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					& 505, 455, 635,  475,        63,  0,  0, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:   
 | 
				
			||||||
 | 
					****                                        ****  Botones S:  21
 | 
				
			||||||
 | 
					**    M<>dulo buscar asociado a Referencias    **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>21 
 | 
				
			||||||
 | 
					&  260, 200, 360, 220,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					&  365, 200, 465, 220,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					&  260, 225, 465, 245,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  235, 250, 315, 275,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					&  385, 250, 465, 275,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  330, 275, 365, 300,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|  175, 200,                 2,  6,  0,  0,  Cod.Art:,
 | 
				
			||||||
 | 
					|  176, 201,                 2,  6,  0, 63,  Cod.Art:,
 | 
				
			||||||
 | 
					|  175, 225,                 2,  6,  0,  0,  Nombre:,
 | 
				
			||||||
 | 
					|  176, 226,                 2,  6,  0, 63,  Nombre:,
 | 
				
			||||||
 | 
					|  175, 250,                 2,  6,  0,  0,  P.C.:          P.V.P.:,
 | 
				
			||||||
 | 
					|  176, 251,                 2,  6,  0, 63,  P.C.:          P.V.P.:,
 | 
				
			||||||
 | 
					|  175, 275,                 2,  6,  0,  0,  COMBINADOS -> [    ],
 | 
				
			||||||
 | 
					|  176, 276,                 2,  6,  0, 63,  COMBINADOS -> [    ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:   3
 | 
				
			||||||
 | 
					****                                        ****  Botones S:  22
 | 
				
			||||||
 | 
					**   M<>dulo imprimir asociado a Referencias   **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					!3, 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$  180, 200, 220, 305,       1, 56, 63, 2, 2, 000,  46
 | 
				
			||||||
 | 
					$  230, 200, 460, 230,       7, 56, 63, 2, 2, 000,  19
 | 
				
			||||||
 | 
					$  230, 235, 460, 270,       7, 56, 63, 2, 2, 000,  24
 | 
				
			||||||
 | 
					$  230, 275, 460, 305,       7, 56, 63, 2, 2, 000,  48
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>22 
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					|  175, 167,                 2,  6,  0,  0,    Impresion de Referencias,
 | 
				
			||||||
 | 
					|  175, 168,                 2,  6,  0, 63,    Impresion de Referencias,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  180, 200, 220, 305,       1, 56, 63, 2, 2
 | 
				
			||||||
 | 
					|  190, 200,                 2,  6,  1,  0, Cancelar ,
 | 
				
			||||||
 | 
					|  191, 201,                 2,  6,  1, 63, Cancelar ,
 | 
				
			||||||
 | 
					 |  191, 201,                 2,  6,  1,  0, _        ,
 | 
				
			||||||
 | 
					 |  192, 202,                 2,  6,  1, 63, _        ,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  230, 200, 460, 230,       7, 56, 63, 2, 2
 | 
				
			||||||
 | 
					|  230, 202,                 2,  6,  0,  0,   Listado r<>pido,
 | 
				
			||||||
 | 
					|  231, 203,                 2,  6,  0, 63,   Listado r<>pido,
 | 
				
			||||||
 | 
					 |  231, 203,                 2,  6,  0,  0,           _,
 | 
				
			||||||
 | 
					 |  232, 204,                 2,  6,  0, 63,           _,
 | 
				
			||||||
 | 
					&  230, 235, 460, 270,       7, 56, 63, 2, 2
 | 
				
			||||||
 | 
					|  230, 237,                 2,  6,  0,  0,   Listado completo,
 | 
				
			||||||
 | 
					|  231, 238,                 2,  6,  0, 63,   Listado completo,
 | 
				
			||||||
 | 
					 |  231, 238,                 2,  6,  0,  0,            _,
 | 
				
			||||||
 | 
					 |  232, 239,                 2,  6,  0, 63,            _,
 | 
				
			||||||
 | 
					&  230, 275, 460, 305,       7, 56, 63, 2, 2
 | 
				
			||||||
 | 
					|  230, 277,                 2,  6,  0,  0,   C<>digos de barra,
 | 
				
			||||||
 | 
					|  231, 278,                 2,  6,  0, 63,   C<>digos de barra,
 | 
				
			||||||
 | 
					 |  231, 278,                 2,  6,  0,  0,              _,
 | 
				
			||||||
 | 
					 |  232, 279,                 2,  6,  0, 63,              _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:   2
 | 
				
			||||||
 | 
					****                                        ****  Botones S:  30
 | 
				
			||||||
 | 
					**  M<>dulo para la Gestion de los Proveedores **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					<EFBFBD>30
 | 
				
			||||||
 | 
					& 400,   5, 635,  30,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400,  7,                 2,  5,  0,  0,  Gestion de Proveedores,
 | 
				
			||||||
 | 
					|  401,  8,                 2,  5,  0, 63,  Gestion de Proveedores,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 400,  40, 515,  65,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400, 42,                 2,  5,  0,  0,  Imprimir Prov.,
 | 
				
			||||||
 | 
					|  401, 43,                 2,  5,  0, 63,  Imprimir Prov.,
 | 
				
			||||||
 | 
					 |  400, 43,                 2,  5,  0,  0,  _,
 | 
				
			||||||
 | 
					 |  401, 44,                 2,  5,  0, 63,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 520,  40, 635,  65,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  518, 42,                 2,  5,  0,  0,  Men<65> Principal,
 | 
				
			||||||
 | 
					|  519, 43,                 2,  5,  0, 63,  Men<65> Principal,
 | 
				
			||||||
 | 
					 |  518, 43,                 2,  5,  0,  0,  _,
 | 
				
			||||||
 | 
					 |  519, 44,                 2,  5,  0, 63,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 400,  70, 515,  95,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400, 72,                 2,  5,  0,  0,  Eliminar Prov.,
 | 
				
			||||||
 | 
					|  401, 73,                 2,  5,  0, 63,  Eliminar Prov.,
 | 
				
			||||||
 | 
					& 520,  70, 635,  95,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  518, 72,                 2,  5,  0,  0,  Insertar Prov.,
 | 
				
			||||||
 | 
					|  519, 73,                 2,  5,  0, 63,  Insertar Prov.,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 400, 100, 440, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400, 102,                 2,  5,  0,  0,  <<,
 | 
				
			||||||
 | 
					|  401, 103,                 2,  5,  0, 63,  <<,
 | 
				
			||||||
 | 
					& 445, 100, 475, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  445, 102,                 2,  5,  0,  0,  <-,
 | 
				
			||||||
 | 
					|  446, 103,                 2,  5,  0, 63,  <-,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 480, 100, 555, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  480, 102,                 2,  5,  0,  0,   Buscar,
 | 
				
			||||||
 | 
					|  481, 103,                 2,  5,  0, 63,   Buscar,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 560, 100, 590, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  560, 102,                 2,  5,  0,  0,  ->,
 | 
				
			||||||
 | 
					|  561, 103,                 2,  5,  0, 63,  ->,
 | 
				
			||||||
 | 
					& 595, 100, 635, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  595, 102,                 2,  5,  0,  0,   >>,
 | 
				
			||||||
 | 
					|  596, 103,                 2,  5,  0, 63,   >>,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|   5,  40,                 2,  5,  0,  0,  Direccion                              Num,
 | 
				
			||||||
 | 
					|   6,  41,                 2,  5,  0, 63,  Direccion                              Num,
 | 
				
			||||||
 | 
					&  88,  35, 308,  60,      63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 355,  35, 390,  60,      63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|   5,  65,                 2,  5,  0,  0,  Poblacion                 Provincia,
 | 
				
			||||||
 | 
					|   6,  66,                 2,  5,  0, 63,  Poblaci<63>n                 Provincia,
 | 
				
			||||||
 | 
					&  88,  65, 210,  90,      63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 290,  66, 390,  91,      63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|   5,  95,                 2,  5,  0,  0,  Cd.Postal               Estr.,
 | 
				
			||||||
 | 
					|   6,  96,                 2,  5,  0, 63,  Cd.Postal               Estr.,
 | 
				
			||||||
 | 
					&  88,  95, 188, 120,      63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 245,  95, 270, 120,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					& 275,  95, 300, 120,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					& 305,  95, 330, 120,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					& 335,  95, 360, 120,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					& 365,  95, 390, 120,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&   5, 130, 635, 155,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|   5, 135,                 2,  5,  0,  0,  C<>digo      Proveedor                         Tel<65>fono 1       N<> de Fax,
 | 
				
			||||||
 | 
					|   6, 136,                 2,  5,  0, 63,  C<>digo      Proveedor                         Tel<65>fono 1       N<> de Fax,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&   5, 160, 100,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 105, 160, 360,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 365, 160, 497,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 503, 160, 635,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Linea de fondo para ayudas
 | 
				
			||||||
 | 
					& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					& 505, 455, 635,  475,        63,  0,  0, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:
 | 
				
			||||||
 | 
					****                                        ****  Botones S:  31
 | 
				
			||||||
 | 
					**    M<>dulo buscar asociado a Proveedores    **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>31
 | 
				
			||||||
 | 
					&  265, 200, 365, 220,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					&  265, 225, 465, 245,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					&  265, 250, 465, 275,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					&  265, 280, 465, 305,      63,  0, 56, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|  175, 200,                 2,  6,  0,  0, Cod.Art:,
 | 
				
			||||||
 | 
					 |  176, 201,                 2,  6,  0, 63, Cod.Art:,
 | 
				
			||||||
 | 
					|  175, 225,                 2,  6,  0,  0, Proveed.,
 | 
				
			||||||
 | 
					 |  176, 226,                 2,  6,  0, 63, Proveed.,
 | 
				
			||||||
 | 
					|  175, 250,                 2,  6,  0,  0, Direccion,
 | 
				
			||||||
 | 
					 |  176, 251,                 2,  6,  0, 63, Direccion,
 | 
				
			||||||
 | 
					|  175, 275,                 2,  6,  0,  0, Poblacion,
 | 
				
			||||||
 | 
					 |  176, 276,                 2,  6,  0, 63, Poblacion,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:   2
 | 
				
			||||||
 | 
					****                                        ****  Botones S:  40
 | 
				
			||||||
 | 
					**         M<>dulo de Compras Diarias          **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					<EFBFBD>40
 | 
				
			||||||
 | 
					& 400,   5, 635,  30,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400,  7,                 2,  5,  0,  0,  Gastos Diarios:,
 | 
				
			||||||
 | 
					|  401,  8,                 2,  5,  0, 63,  Gastos Diarios:,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 400,  40, 515,  65,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400, 42,                 2,  5,  0,  0,  Imprimir Comp.,
 | 
				
			||||||
 | 
					|  401, 43,                 2,  5,  0, 63,  Imprimir Comp.,
 | 
				
			||||||
 | 
					 |  400, 43,                 2,  5,  0,  0,  _,
 | 
				
			||||||
 | 
					 |  401, 44,                 2,  5,  0, 63,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 520,  40, 635,  65,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  518, 42,                 2,  5,  0,  0,  Men<65> Principal,
 | 
				
			||||||
 | 
					|  519, 43,                 2,  5,  0, 63,  Men<65> Principal,
 | 
				
			||||||
 | 
					 |  518, 43,                 2,  5,  0,  0,  _,
 | 
				
			||||||
 | 
					 |  519, 44,                 2,  5,  0, 63,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 400,  70, 515,  95,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400, 72,                 2,  5,  0,  0,  Eliminar Gasto,
 | 
				
			||||||
 | 
					|  401, 73,                 2,  5,  0, 63,  Eliminar Gasto,
 | 
				
			||||||
 | 
					& 520,  70, 635,  95,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  518, 72,                 2,  5,  0,  0,  Insertar Gasto,
 | 
				
			||||||
 | 
					|  519, 73,                 2,  5,  0, 63,  Insertar Gasto,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 400, 100, 440, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  400, 102,                 2,  5,  0,  0,  <<,
 | 
				
			||||||
 | 
					|  401, 103,                 2,  5,  0, 63,  <<,
 | 
				
			||||||
 | 
					& 445, 100, 475, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  445, 102,                 2,  5,  0,  0,  <-,
 | 
				
			||||||
 | 
					|  446, 103,                 2,  5,  0, 63,  <-,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 480, 100, 555, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  480, 102,                 2,  5,  0,  0,   Buscar,
 | 
				
			||||||
 | 
					|  481, 103,                 2,  5,  0, 63,   Buscar,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					& 560, 100, 590, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  560, 102,                 2,  5,  0,  0,  ->,
 | 
				
			||||||
 | 
					|  561, 103,                 2,  5,  0, 63,  ->,
 | 
				
			||||||
 | 
					& 595, 100, 635, 125,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  595, 102,                 2,  5,  0,  0,   >>,
 | 
				
			||||||
 | 
					|  596, 103,                 2,  5,  0, 63,   >>,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&   5, 130, 635, 155,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|   5, 135,                 2,  5,  0,  0,  C<>digo      Descripcion                       Unds.  Proveedor        P. Costo,
 | 
				
			||||||
 | 
					|   6, 136,                 2,  5,  0, 63,  C<>digo      Descripcion                       Unds.  Proveedor        P. Costo,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&   5, 160, 100,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 105, 160, 360,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 365, 160, 415,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 420, 160, 545,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					& 550, 160, 635,  450,          63,  7, 56, 2, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Linea de fondo para ayudas
 | 
				
			||||||
 | 
					& 5, 455, 500,  475,           0, 63, 56, 0, 2
 | 
				
			||||||
 | 
					& 505, 455, 635,  475,        63,  0,  0, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:   4
 | 
				
			||||||
 | 
					****                                        ****  Botones S:  45
 | 
				
			||||||
 | 
					**      Calendario para Compras Diarias       **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!4, 44 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Domingos
 | 
				
			||||||
 | 
					$ 350,   5, 380,  25,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 350,  25, 380,  45,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 350,  45, 380,  65,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 350,  65, 380,  85,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 350,  85, 380, 105,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 350, 105, 380, 125,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Sabado
 | 
				
			||||||
 | 
					$ 320,   5, 350,  25,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 320,  25, 350,  45,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 320,  45, 350,  65,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 320,  65, 350,  85,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 320,  85, 350, 105,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 320, 105, 350, 125,       4, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Viernes
 | 
				
			||||||
 | 
					$ 290,   5, 320,  25,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 290,  25, 320,  45,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 290,  45, 320,  65,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 290,  65, 320,  85,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 290,  85, 320, 105,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 290, 105, 320, 125,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					                                           
 | 
				
			||||||
 | 
					* Jueves
 | 
				
			||||||
 | 
					$ 260,   5, 290,  25,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 260,  25, 290,  45,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 260,  45, 290,  65,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 260,  65, 290,  85,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 260,  85, 290, 105,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 260, 105, 290, 125,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Miercoles
 | 
				
			||||||
 | 
					$ 230,   5, 260,  25,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 230,  25, 260,  45,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 230,  45, 260,  65,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 230,  65, 260,  85,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 230,  85, 260, 105,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 230, 105, 260, 125,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					                                           
 | 
				
			||||||
 | 
					* Martes
 | 
				
			||||||
 | 
					$ 200,   5, 230,  25,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 200,  25, 230,  45,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 200,  45, 230,  65,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 200,  65, 230,  85,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 200,  85, 230, 105,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 200, 105, 230, 125,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					                                           
 | 
				
			||||||
 | 
					* Lunes
 | 
				
			||||||
 | 
					$ 170,   5, 200,  25,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 170,  25, 200,  45,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 170,  45, 200,  65,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 170,  65, 200,  85,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 170,  85, 200, 105,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					$ 170, 105, 200, 125,       9, 63, 56, 2, 2, 000, 000
 | 
				
			||||||
 | 
					                                           
 | 
				
			||||||
 | 
					* Mes Anterior
 | 
				
			||||||
 | 
					$ 145,   5, 165,  62,       7, 56, 63, 1, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Mes Siguiente
 | 
				
			||||||
 | 
					$ 145,  68, 165, 125,       7, 56, 63, 1, 2, 000, 000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>45
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Nombre del Mes
 | 
				
			||||||
 | 
					& 120,   5, 140, 125,       7, 56, 63, 1, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************************************************  Botones D:   5
 | 
				
			||||||
 | 
					****                                        ****  Botones S: 100
 | 
				
			||||||
 | 
					**          Parte Utilizada por Optar         **
 | 
				
			||||||
 | 
					****                                        ****
 | 
				
			||||||
 | 
					************************************************
 | 
				
			||||||
 | 
					!5, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$  170, 320, 270, 350,       7, 63, 56, 2, 2, 000,  30
 | 
				
			||||||
 | 
					$  370, 320, 470, 350,       7, 63, 56, 2, 2, 000,  46
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<EFBFBD>100
 | 
				
			||||||
 | 
					&  170, 165, 470, 315,       7, 63, 56, 0, 2
 | 
				
			||||||
 | 
					&  172, 167, 468, 190,       1, 56, 63, 0, 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  170, 320, 270, 350,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  175, 325,                 2,  6,  0, 63,  Aceptar,
 | 
				
			||||||
 | 
					|  176, 326,                 2,  6,  0,  0,  Aceptar,
 | 
				
			||||||
 | 
					|  175, 327,                 2,  6,  0, 63,  _,
 | 
				
			||||||
 | 
					|  176, 328,                 2,  6,  0,  0,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&  370, 320, 470, 350,       7, 63, 56, 2, 2
 | 
				
			||||||
 | 
					|  373, 325,                 2,  6,  0, 63,  Cancelar,
 | 
				
			||||||
 | 
					|  374, 326,                 2,  6,  0,  0,  Cancelar,
 | 
				
			||||||
 | 
					|  373, 327,                 2,  6,  0, 63,  _,
 | 
				
			||||||
 | 
					|  374, 328,                 2,  6,  0,  0,  _,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										400
									
								
								ZOR_MM.CPP
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										400
									
								
								ZOR_MM.CPP
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,400 @@
 | 
				
			|||||||
 | 
					#include <io.h>
 | 
				
			||||||
 | 
					#include <dos.h>
 | 
				
			||||||
 | 
					#include <conio.h>
 | 
				
			||||||
 | 
					#include<bios.h>
 | 
				
			||||||
 | 
					#include<dos.h>
 | 
				
			||||||
 | 
					#include<stdlib.h>
 | 
				
			||||||
 | 
					#include<conio.h>
 | 
				
			||||||
 | 
					#include<string.h>
 | 
				
			||||||
 | 
					#include<ctype.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "d:\program\src_dos\libs\bdatos\bdatos.hh"
 | 
				
			||||||
 | 
					#include "zorr.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG Config = {
 | 
				
			||||||
 | 
							  1, BLUE,
 | 
				
			||||||
 | 
							  RED, WHITE, BLACK,
 | 
				
			||||||
 | 
							  BLACK, RED, WHITE, BLACK,
 | 
				
			||||||
 | 
							  0, { "PrnFile.out" }
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define OFF     0
 | 
				
			||||||
 | 
					#define ON      1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					    #define __CPPARGS ...
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    #define __CPPARGS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define GESTION_DE_SOCIOS        1
 | 
				
			||||||
 | 
					#define LISTA_DE_PRECIOS         2
 | 
				
			||||||
 | 
					#define GASTOS_INTERNOS          3
 | 
				
			||||||
 | 
					#define SALIR                    4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int  MenuPrincipal(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ListaPrecios(void);
 | 
				
			||||||
 | 
					void GestionSocios(void);
 | 
				
			||||||
 | 
					extern void GastosInternos(void);
 | 
				
			||||||
 | 
					void PideAnoActual(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DibujaPantallaGastosInt(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int   boton_izq; int   boton_der;
 | 
				
			||||||
 | 
					int x_raton, y_raton, RATON = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//<2F><>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int AnoActual;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 int ok;
 | 
				
			||||||
 | 
					 struct date d;
 | 
				
			||||||
 | 
					 getdate( &d );
 | 
				
			||||||
 | 
					 AnoActual =  d.da_year - ( d.da_year / 100 ) * 100;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 inicializa_raton_texto();
 | 
				
			||||||
 | 
					 if( RATON ) desactiva_raton();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 PideAnoActual();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 ok = 0;
 | 
				
			||||||
 | 
					 do {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  switch( MenuPrincipal() )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   case  GESTION_DE_SOCIOS:
 | 
				
			||||||
 | 
					                 GestionSocios();
 | 
				
			||||||
 | 
					           break;
 | 
				
			||||||
 | 
					   case  LISTA_DE_PRECIOS:
 | 
				
			||||||
 | 
					                 ListaPrecios();
 | 
				
			||||||
 | 
					           break;
 | 
				
			||||||
 | 
					   case  GASTOS_INTERNOS:
 | 
				
			||||||
 | 
					                 GastosInternos();
 | 
				
			||||||
 | 
					           break;
 | 
				
			||||||
 | 
					   case SALIR:
 | 
				
			||||||
 | 
							ok = 1;
 | 
				
			||||||
 | 
						   break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 } while ( !ok ) ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int MenuPrincipal(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					struct Boton_Texto BT[4];
 | 
				
			||||||
 | 
					int devolver = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BT[0].x = 29; BT[0].y =  9; strcpy( BT[0].Texto, "  &Gestion de Socios  "); BT[0].ID_T1 = 71; BT[0].ID_T2 = 0;
 | 
				
			||||||
 | 
					BT[1].x = 29; BT[1].y = 12; strcpy( BT[1].Texto, "  &Listado de Precios "); BT[1].ID_T1 = 76; BT[1].ID_T2 = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BT[2].x = 29; BT[2].y = 15; strcpy( BT[2].Texto, "  Ga&stos internos    "); BT[2].ID_T1 = 83; BT[2].ID_T2 = 0;
 | 
				
			||||||
 | 
					BT[3].x = 29; BT[3].y = 18; strcpy( BT[3].Texto, "  S&ALIR al DOS       "); BT[3].ID_T1 = 65; BT[3].ID_T2 = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _setcursortype(_NOCURSOR);
 | 
				
			||||||
 | 
					  textcolor( WHITE );
 | 
				
			||||||
 | 
					  textbackground( BLACK );
 | 
				
			||||||
 | 
					  clrscr();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cprintf("                                                                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("           <20>   <20><><EFBFBD> <20><><EFBFBD>     <20><><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD>     <20><> <20> <20> <20> <20><> <20><><EFBFBD> <20><><EFBFBD>     \n\r");
 | 
				
			||||||
 | 
					  cprintf("           <20>   <20> <20> <20><><EFBFBD>     <20><><EFBFBD> <20><><EFBFBD> <20>  <20> <20> <20><><EFBFBD>     <20>  <20><><EFBFBD> <20> <20>  <20> <20> <20><><EFBFBD>     \n\r");
 | 
				
			||||||
 | 
					  cprintf("           <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>     <20> <20> <20><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD>     <20><> <20> <20> <20> <20><> <20><><EFBFBD> <20><><EFBFBD>     \n\r");
 | 
				
			||||||
 | 
					  cprintf("                                                                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                                                                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20>                         <20>                      \n\r");
 | 
				
			||||||
 | 
					  cprintf("                          <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>                      \n\r");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while( ( devolver = Funcion_Botones(STD_BY, 4, BT) ) < 1 || devolver > 4 ) while ( kbhit() ) getch();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _setcursortype(_NORMALCURSOR);
 | 
				
			||||||
 | 
					  return devolver;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int Funcion_Botones(int Funcion, int nBotones, struct Boton_Texto *Boton_Texto)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 char i;
 | 
				
			||||||
 | 
					 int DEVOLVER = -1;
 | 
				
			||||||
 | 
					 int longitud, key, key2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 switch( Funcion ) {
 | 
				
			||||||
 | 
					  case DIBUJA:
 | 
				
			||||||
 | 
							 highvideo();
 | 
				
			||||||
 | 
							 textcolor(BLACK);
 | 
				
			||||||
 | 
							 textbackground(11);
 | 
				
			||||||
 | 
							 gotoxy(Boton_Texto[nBotones].x, Boton_Texto[nBotones].y);
 | 
				
			||||||
 | 
						      DEVOLVER = 0;
 | 
				
			||||||
 | 
						      longitud = strlen( Boton_Texto[nBotones].Texto );
 | 
				
			||||||
 | 
						      while( DEVOLVER <= longitud  ) {
 | 
				
			||||||
 | 
						       if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) {
 | 
				
			||||||
 | 
							DEVOLVER ++;
 | 
				
			||||||
 | 
						      textcolor(RED);
 | 
				
			||||||
 | 
							cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
				
			||||||
 | 
						      textcolor(BLACK);
 | 
				
			||||||
 | 
						       } else cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
				
			||||||
 | 
						       DEVOLVER ++;
 | 
				
			||||||
 | 
						      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 //		      cprintf("%s", Texto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						      textbackground(7);   			  // <20>SALIR<49><52>
 | 
				
			||||||
 | 
									cprintf("<EFBFBD>");		  //  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
						      gotoxy(Boton_Texto[nBotones].x+1, Boton_Texto[nBotones].y+1);
 | 
				
			||||||
 | 
						      for(i = 0; i < longitud; i ++ )             // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
									cprintf("<EFBFBD>");             //  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
						      break;
 | 
				
			||||||
 | 
					  case DEPRIME:
 | 
				
			||||||
 | 
							 highvideo();
 | 
				
			||||||
 | 
							 textcolor(BLACK);
 | 
				
			||||||
 | 
							 textbackground(11);
 | 
				
			||||||
 | 
						      gotoxy(Boton_Texto[nBotones].x, Boton_Texto[nBotones].y);
 | 
				
			||||||
 | 
						      DEVOLVER = 0;
 | 
				
			||||||
 | 
						      longitud = strlen( Boton_Texto[nBotones].Texto );
 | 
				
			||||||
 | 
					              ////////////////
 | 
				
			||||||
 | 
						      textbackground(BLACK);
 | 
				
			||||||
 | 
						      while( DEVOLVER <= (longitud+1)  ) {
 | 
				
			||||||
 | 
						       if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) {
 | 
				
			||||||
 | 
							DEVOLVER ++;
 | 
				
			||||||
 | 
						       }
 | 
				
			||||||
 | 
						       cprintf(" ");
 | 
				
			||||||
 | 
						       DEVOLVER ++;
 | 
				
			||||||
 | 
						      }
 | 
				
			||||||
 | 
						      textbackground(11);
 | 
				
			||||||
 | 
						      gotoxy(Boton_Texto[nBotones].x+1, Boton_Texto[nBotones].y+1);
 | 
				
			||||||
 | 
						      DEVOLVER = 0;
 | 
				
			||||||
 | 
						      while( DEVOLVER <= longitud  ) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						       if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) {
 | 
				
			||||||
 | 
							DEVOLVER ++;
 | 
				
			||||||
 | 
						      textcolor(RED);
 | 
				
			||||||
 | 
							cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
				
			||||||
 | 
						      textcolor(BLACK);
 | 
				
			||||||
 | 
						       } else cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]);
 | 
				
			||||||
 | 
						       DEVOLVER ++;
 | 
				
			||||||
 | 
						      }
 | 
				
			||||||
 | 
					//	      cprintf("%s", Texto);                       //
 | 
				
			||||||
 | 
												  //  <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
						      break;
 | 
				
			||||||
 | 
					  case Dibuja_Todos:
 | 
				
			||||||
 | 
						      for( i=0; i < nBotones; i++)
 | 
				
			||||||
 | 
							Funcion_Botones( DIBUJA, i, Boton_Texto);
 | 
				
			||||||
 | 
						      break;
 | 
				
			||||||
 | 
					  case COMPRUEBA:
 | 
				
			||||||
 | 
						      if( bioskey(1)!=0 ) {
 | 
				
			||||||
 | 
							      key = toupper( getch() ); DEVOLVER = -2;
 | 
				
			||||||
 | 
					                      if ( key == 0 ) { key2 = toupper( getch() ); DEVOLVER = -1; }
 | 
				
			||||||
 | 
							      for( i=0; i < nBotones && DEVOLVER <= -1; i++){
 | 
				
			||||||
 | 
								if( key == Boton_Texto[i].ID_T1 ) {
 | 
				
			||||||
 | 
								     if( key == 0 ) {
 | 
				
			||||||
 | 
								       if( key2 == Boton_Texto[i].ID_T2 ){
 | 
				
			||||||
 | 
													 DEVOLVER = (i + 1);
 | 
				
			||||||
 | 
													 Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto);
 | 
				
			||||||
 | 
													 delay(150);
 | 
				
			||||||
 | 
													 //sleep(1);
 | 
				
			||||||
 | 
													 Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto);
 | 
				
			||||||
 | 
								       }
 | 
				
			||||||
 | 
								     } else
 | 
				
			||||||
 | 
										{ DEVOLVER =  (i + 1);
 | 
				
			||||||
 | 
										 Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto);
 | 
				
			||||||
 | 
										 delay(150);
 | 
				
			||||||
 | 
										 //sleep(1);
 | 
				
			||||||
 | 
										 Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      if( DEVOLVER == -2 )
 | 
				
			||||||
 | 
										{ ungetch(key); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      if( DEVOLVER == -1 )
 | 
				
			||||||
 | 
										{ ungetch(key2); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						      } else if( RATON ) {
 | 
				
			||||||
 | 
					                DEVOLVER = 0;
 | 
				
			||||||
 | 
							      for( i=0; i < nBotones && DEVOLVER == 0; i++) {
 | 
				
			||||||
 | 
								longitud = strlen( Boton_Texto[i].Texto );
 | 
				
			||||||
 | 
								if ( (x_raton+1) >= Boton_Texto[i].x && (x_raton+1) <= ( Boton_Texto[i].x + longitud -1) &&
 | 
				
			||||||
 | 
								     y_raton == (Boton_Texto[i].y-1) ) { DEVOLVER = (i + 1);
 | 
				
			||||||
 | 
												     Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto);
 | 
				
			||||||
 | 
												     if( RATON ) activa_raton();
 | 
				
			||||||
 | 
												     espera_soltar();
 | 
				
			||||||
 | 
												     if( RATON ) desactiva_raton();
 | 
				
			||||||
 | 
					//			     				     delay(150);
 | 
				
			||||||
 | 
												     Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      }
 | 
				
			||||||
 | 
						      }
 | 
				
			||||||
 | 
						      break;
 | 
				
			||||||
 | 
					  case STD_BY:
 | 
				
			||||||
 | 
						      Funcion_Botones(Dibuja_Todos, nBotones, Boton_Texto);
 | 
				
			||||||
 | 
						      do{
 | 
				
			||||||
 | 
							if( RATON ) activa_raton();
 | 
				
			||||||
 | 
							if( RATON ) espera_pulsar(); else while( bioskey(1)==0 );
 | 
				
			||||||
 | 
							if( RATON ) desactiva_raton();
 | 
				
			||||||
 | 
							DEVOLVER = Funcion_Botones(COMPRUEBA, nBotones, Boton_Texto);
 | 
				
			||||||
 | 
						      }while(DEVOLVER==0 && bioskey(1)==0 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 return DEVOLVER;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void inicializa_raton_texto(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						union REGS ent, sal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ent.x.ax =   0;
 | 
				
			||||||
 | 
					        int86(0x33, &ent, &sal);          /* averigua si hay rat<61>n conectado */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if(sal.x.ax==0) { RATON = 0; return; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ent.x.ax =  15;
 | 
				
			||||||
 | 
						ent.x.cx =   8;
 | 
				
			||||||
 | 
						ent.x.dx =  16;
 | 
				
			||||||
 | 
					        int86(0x33, &ent, &sal);               /* fija la raz<61>n mickey/pixel */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ent.x.ax =   7;
 | 
				
			||||||
 | 
					        ent.x.cx =   0;
 | 
				
			||||||
 | 
					        ent.x.dx = 639;
 | 
				
			||||||
 | 
					        int86(0x33, &ent, &sal);  /* fija la posici<63>n m<>x. y m<>n. horizontal */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ent.x.ax =   8;
 | 
				
			||||||
 | 
						ent.x.cx =   0;
 | 
				
			||||||
 | 
						ent.x.dx = 199;
 | 
				
			||||||
 | 
						int86(0x33, &ent, &sal);    /* fija la posici<63>n m<>x. y m<>n. vertical */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ent.x.ax =   4;
 | 
				
			||||||
 | 
						ent.x.cx = 320;
 | 
				
			||||||
 | 
						ent.x.dx = 100;
 | 
				
			||||||
 | 
						int86(0x33, &ent, &sal);               /* fija la posici<63>n del rat<61>n */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ent.x.ax =   1;
 | 
				
			||||||
 | 
						int86(0x33, &ent, &sal);             /* muestra el puntero del rat<61>n */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					void activa_raton(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						union REGS ent, sal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ent.x.ax = 1;
 | 
				
			||||||
 | 
						int86(0x33, &ent, &sal);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void desactiva_raton(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					        union REGS ent, sal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ent.x.ax = 2;
 | 
				
			||||||
 | 
						int86(0x33, &ent, &sal);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void espera_pulsar(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						union REGS ent, sal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						do{
 | 
				
			||||||
 | 
						  if(bioskey(1)!=0) break;
 | 
				
			||||||
 | 
						  ent.x.ax = 3;
 | 
				
			||||||
 | 
						  int86(0x33, &ent, &sal);       /* lee posici<63>n y estados del bot<6F>n */
 | 
				
			||||||
 | 
						}while((sal.x.bx & 3)==0);
 | 
				
			||||||
 | 
						boton_izq=sal.x.bx & 1;
 | 
				
			||||||
 | 
						boton_der=(sal.x.bx >> 1) & 1;
 | 
				
			||||||
 | 
						x_raton= (sal.x.cx >> 1) / 4; // / 8
 | 
				
			||||||
 | 
						y_raton= (sal.x.dx)/8; //  /8
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void espera_soltar(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						union REGS ent, sal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						do{
 | 
				
			||||||
 | 
						  ent.x.ax = 3;
 | 
				
			||||||
 | 
						  int86(0x33, &ent, &sal);       /* lee posici<63>n y estados del bot<6F>n */
 | 
				
			||||||
 | 
						}while((sal.x.bx & 3)!=0);
 | 
				
			||||||
 | 
						boton_izq=sal.x.bx & 1;
 | 
				
			||||||
 | 
						boton_der=(sal.x.bx >> 1) & 1;
 | 
				
			||||||
 | 
						x_raton=sal.x.cx >> 1;
 | 
				
			||||||
 | 
						y_raton=sal.x.dx;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void PideAnoActual(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 char buffer[80];
 | 
				
			||||||
 | 
					 BDatos SociosO, SociosD;
 | 
				
			||||||
 | 
					 INFO_SOCIOS Socios;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 struct ComprasSocios Vacia;
 | 
				
			||||||
 | 
					 int r; long i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Optar( ENCUADRE, "Transacci<EFBFBD>n en curso", "<EFBFBD>-<2D>", "A<EFBFBD>o:                      ", NULL );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 sprintf( buffer, "%d", AnoActual );
 | 
				
			||||||
 | 
					 while ( ( InputCadenaG( buffer, 1,  2, Config.TxtBgN, Config.TxtFgN, 40, 10,  2, 11) >> 8 ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 AnoActual = atoi( buffer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Optar( ENCUADRE, NULL );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 // Comprobamos que existe una base de datos para esa fecha
 | 
				
			||||||
 | 
					 sprintf( buffer, "socios.%03d", AnoActual );
 | 
				
			||||||
 | 
					 if ( access(buffer, 0) != 0)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					  sprintf( buffer, "socios.%03d", AnoActual - 1 );
 | 
				
			||||||
 | 
					  // Si el a<>o anterior existe, lo copiamos
 | 
				
			||||||
 | 
					  if ( access(buffer, 0) == 0)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					   if ( Optar( 1, "Nuevo a<>o en curso", "El a<>o de la transaccion", "no existe, desea inicializarlo", "Esto puede llevar unos minutos", NULL ) )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					   if ( SociosO.AbrirReg( buffer, sizeof( INFO_SOCIOS ) ) == ERROR )
 | 
				
			||||||
 | 
					                                                                   Error(0x01);
 | 
				
			||||||
 | 
					   sprintf( buffer, "socios.%03d", AnoActual );
 | 
				
			||||||
 | 
					   if ( SociosD.AbrirReg( buffer, sizeof( INFO_SOCIOS ) ) == ERROR )
 | 
				
			||||||
 | 
					                                                                   Error(0x01);
 | 
				
			||||||
 | 
					   i = 0;
 | 
				
			||||||
 | 
					   for ( ; SociosO.LeeReg( (void *)&Socios, i ) == OK; i++ )
 | 
				
			||||||
 | 
					   {
 | 
				
			||||||
 | 
					    for (  r=0; r < 240; r++ )
 | 
				
			||||||
 | 
					        Socios.CSocios[r].dia = Socios.CSocios[r].mes = Socios.CSocios[r].Cantidad = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SociosD.InsReg( (void *)&Socios, SociosD.Registros(), ARRIBA );
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					   Optar( 0, "ATENCION", "No existen datos para ese", "a<EFBFBD>o, se crear<61> una nueva base", "de datos, (a partir de cero)", NULL );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user