First commit 20/03/1997

This commit is contained in:
2021-09-08 21:44:52 +02:00
commit 6823005994
300 changed files with 31820 additions and 0 deletions

637
TPV_DEF.H Normal file
View File

@ -0,0 +1,637 @@
#include <dos.h> // Estructuras varias
// Para generar una demostraci<63>n: activar la macro generadora.
// la demostraci<63>n excluir<69> suficiente c<>digo como para no
// poder generar el programa completo a travez de ASM.
//#define DEMOSTRACION
#define Pass_ReferArt 0
#define Pass_StockArt 1
#define Pass_VentaArt 2
#define Pass_InfoProv 3
#define Pass_CompProv 4
#define Pass_InfoEmpl 5
#define Pass_ClavEmpl 6
#define Pass_GrafEmpl 7
#define Pass_GenerCmp 8
#define Pass_GrafiCmp 9
#define Pass_ICajaGst 10
#define Pass_BalcDGst 11
#define Pass_BalcMGst 12
#define Pass_ClienGst 13
#define Pass_ProgrExt 14
#define Pass_MsgPrMsl 15
#define Pass_FA1 16
#define Pass_FA2 17
#define Pass_GBDxxMsl 18
#define Pass_PrExtMsl 19
#define Pass_CfgEnMsl 20
#define DIARIO 0
#define MENSUAL 1
#define NORMAL 0
#define INTENSO 1
#define ELIMINAR -1
#define INSERTAR 1
#define ATRAS -1
#define NUEVA_BUSQUEDA 0
#define ADELANTE 1
#define SEC_OPTAR 6
#define ENCUADRE 3
// Niveles de acceso al programa
#define TOTAL 0
#define USUARIO 1
#define NINGUNO 2
#define COMPRA 0
#define VENTA 1
struct hora
{
char min; // Minutos y hora
char hora;
};
struct VentaProductos
{
struct hora HoraIni[5];
struct hora HoraFin[5];
char CambioHorario;
char CambioPC;
char ProcentajeMesa;
};
struct CajaDia
{
char ImprimirTickets;
char CobroCompleto;
char PorcentajeMesa;
char SaltarInicio;
};
typedef struct
{
char Printer;
char PrintTo[80];
char Lineas;
char Normal[80], Condensado[80];
char PrincipioTickets[4][25+1];
char FinTickets[4][25+1];
} IMPRESORA;
typedef struct
{
char FillBgS, FillBgC, FillBgF;
char NumFg, NumBg, NumLn;
char DigFg, DigBg;
char TxtBgN, TxtBgI, TxtFgN, TxtFgI;
IMPRESORA Impresora;
struct VentaProductos VProductos;
struct CajaDia OpcionesCaja;
char TProtector;
double Protector;
char Prot_fnt[80];
char Vent_msg[80];
char HorasMedicion[6];
long UltimaEmpresa;
char Intentos;
} CONFIG;
#define TOTAL_COMPRAS_ANUAL 17*300
/**************************************************************************\
|* *|
|* Estructura de Clientes (2: Enlace de compras) *|
|* *|
\**************************************************************************/
typedef struct
{
long CodEnlace; // Codigo de enlace para las fichas
int MesDia; // 8 << Mes y Dia >> 8
// Codigo de enlace si es el primer dato
long CodigoR; // C<>digo real del producto
char Unidades; // Unidades vendidas << 99
// N<> de compras si es el primer dato
long Total; // Precio Total Venta
} INFO_CLIENTES2;
/**************************************************************************\
|* *|
|* Estructura de Clientes (1: Fichas) *|
|* *|
\**************************************************************************/
typedef struct
{
long CodEnlace; // Codigo de enlace para las fichas
long Codigo; // C<>digo de cliente
char Cif[10+1]; // Nif / Cif
char Nombre[27+1]; // Nombre del cliente
char DATOa01[27+1]; // Dato sin especificar 01
char Direccion[27+1]; // Direccion del cliente
char Localidad[15+1]; // Localidad
char Provincia[15+1]; // Provincia
long CodPostal; // Codigo Postal
char Telefono1[15+1]; // Tel<65>fono 1
char Fax[15+1]; // Tel<65>fono 2
char DATOa02[ 6+1]; // Dato sin especificar 01
char DATOa03[ 6+1]; // Dato sin especificar 01
char DATOa04[ 6+1]; // Dato sin especificar 01
char DATOa05[ 6+1]; // Dato sin especificar 01
char Notas[5][30+1]; // Notas sobre el cliente
} INFO_CLIENTES1;
/**************************************************************************\
|* *|
|* Estructura de Empresas *|
|* *|
\**************************************************************************/
typedef struct
{
long CodigoR; // Codigos asiignados a los proveedores
char Empresa[30+1]; // Nombre del proveedor
char GestorEmpresa[30+1]; // Actividad del proveedor
char Cif[10+1]; // Cif / Nif
char Telefono1[15+1]; // Tel<65>fono y fax del proveedor
char Fax[15+1]; //
char IP_tlf[15+1]; // Direccion IP / Telefono para conectar
char AccessCode[15+1]; // Codigo de acceso
char Direccion[37+1]; // Direccion
char Numero[3+1]; // Numero
char Poblacion[15+1]; // Poblacion
char Provincia[15+1]; // Provincia
long CodPost; // C<>digo Postal
char Estrellas; // Estrellas ( lo que imagina el cliente )
char Notas[4][37+1]; // Breves notas....
} INFO_EMPRESAS;
/**************************************************************************\
|* *|
|* Estructura de PROVEEDORES *|
|* *|
\**************************************************************************/
typedef struct
{
long CodigoR; // Codigos asiignados a los proveedores
char Proveedor[30+1]; // Nombre del proveedor
char ActividadProveedor[30+1]; // Actividad del proveedor
char Cif[10+1]; // Cif / Nif
char Telefono1[15+1]; // Tel<65>fono y fax del proveedor
char Fax[15+1]; //
char Direccion[30+1]; // Direccion
char Numero[3+1]; // Numero
char Poblacion[15+1]; // Poblacion
char Provincia[15+1]; // Provincia
long CodPost; // C<>digo Postal
char Estrellas; // Estrellas ( lo que imagina el cliente )
char Notas[4][37+1]; // Breves notas....
long Compras[12][31]; // Compras en el a<>o a ese proveedor
} INFO_PROVEEDORES;
/**************************************************************************\
|* *|
|* Estructura con la infomaci<63>n especifica de un producto. *|
|* *|
\**************************************************************************/
typedef struct
{
unsigned char Categoria; // Otros, Refresco, Tapas, Barriles...
unsigned long CodigoR; // Codigo real del producto
unsigned long CodigoB; // Codigo de barras asociado al producto
char Descripcion[30+1]; // Nombre del Producto
unsigned int CantUnitaria; // # de productos por unidad
long PrecioCosto; // Precio de costo
long PrecioVenta[5]; // P.V.P seg<65>n horas definidas por el usuario...
long Stock; // # de productos actualmente
// Codigos asociados a este producto ( COMBINADOS )
unsigned long CodigosAsociados[10];
char Combinado; // Se activa si hay codigos asociados,
// combirtiendose en un combinado...
} INFO_PRODUCTOS;
/**************************************************************************\
|* *|
|* Estructura con la infomaci<63>n generica de los productos. *|
|* *|
\**************************************************************************/
typedef struct
{
struct hora hora_ini[5]; // Horas de inicio y finalizacion para
struct hora hora_fin[5]; // ventas especiales...
char PorcentMesa; // Porcentaje de mas para la mesa
} INFO_VENTA_PRODUCTOS;
/**************************************************************************\
|* *|
|* Estructura para las compras *|
|* *|
\**************************************************************************/
typedef struct
{
unsigned long CodigoR; // Codigo REAL del producto
char Descripcion[30+1]; // Nombre del producto
unsigned int Cantidad; // # productos comprados
long CodigoProveedor;
long PrecioCosto; // Precio de costo || C<>lculo interno:
// Cantidad_por_Unidades * PrecioCosto
} COMPRAS;
/*********************************************\
|* *|
|* Infome Ventas ( Archivo mensual 3 de 3 ) *|
|* *|
\*********************************************/
/************************************************************************\
|* *|
|* Estructura para las ventas diarias. *|
|* *|
\************************************************************************/
typedef struct
{
unsigned long CodigoR; // Codigo REAL del producto
struct hora HoraV; // Hora en la que se realiz<69> la venta
char BarraMesa; // Vendido en Barra o en Mesa
unsigned int Cantidad; // # productos vendidos
unsigned long PrecioV; // Precio Venta del producto
unsigned long PrecioC; // Precio Costo del Producto
// C<>digo del vendedor
unsigned long CodigoVendedor;
} VENTAS;
/************************************************************************\
|* *|
|* Datos esenciales de una venta diaria ( < 256 bytes ) *|
|* *|
\************************************************************************/
typedef struct
{
hora AperturaCaja; // Hora de apertura
hora CierreCaja; // Hora de cierre de caja
char Dia, Mes; // Dia, mes y A<>o de la transacci<63>n
int Anyo;
int Tickets;
int Cambio;
int SalidasExito; // Salidas con exito
int IntentosSalir; // Intentos de salir al men<65> principal
} INFORMACION_VENTAS;
/**************************************************************************\
|* *|
|* Estructura para guardar las posiciones de los c<>digos *|
|* *|
\**************************************************************************/
typedef struct
{
unsigned long CodigoR;
unsigned long CodigoB;
unsigned int Posicion;
} BUSQUEDA_REF;
/*********************************************\
|* *|
|* Infome Ventas ( Archivo mensual 3 de 3 ) *|
|* *|
\*********************************************/
/************************************************************************\
|* *|
|* Datos unicos para cada dia, archivo mensual ( 1 de 3 ) *|
|* *|
\************************************************************************/
typedef struct
{
char Hora[6]; // Horas que desea controlar este dia
long TotalVendido[6]; // Totales vendido ( segun hora venta )
long CosteTotal; // Coste total de lo vendido
long TotalVentas; // Venta total de este dia ( Suma de TVendido )
int Tickets; // N<> de tickets
int Cambio; // Veces que se ha habierto la caja
int IntentosSalir; // Intentos de salir al men<65> principal
int SalidasExito; // Salidas con exito
hora AperturaCaja; // Hora inicial en que se abri<72> la caja
hora CierreCaja; // Hora en que se cerr<72> la caja
char Notas[7][50+1]; // Notas sobre la caja del dia
} INFORME1_VENTAS;
/************************************************************************\
|* *|
|* Datos sobre como se vendieron los productos ( Archivo Mensual 2 de 3 ) *|
|* *|
\************************************************************************/
typedef struct
{
long CodigoR; // Codigo Real del Producto
char Nombre[30+1]; // Nombre del Producto
// Cantidad de producto vendida segun horas,
// y dia de venta ( 1, 2, ..., 31 )
// Cantidad unitaria de producto
unsigned int CantUnitaria;
unsigned int Cantidad[31][6];
// Precio de venta ( el dia de venta )
unsigned long VentaTotal[31];
// Precio de costo ( el dia de venta )
unsigned long PrecioCosto[31];
} INFORME2_VENTAS;
/************************************************************************\
|* *|
|* Informe sobre cuanto vendi<64> cada empleado. ( Archivo Mensual 2 de 3 ) *|
|* *|
\************************************************************************/
typedef struct
{
unsigned long CodigoR; // Codigo Real del Vendedor
char Vendedor[30+1]; // Nombre del Vendedor
// Total que Vendi<64> por dia de cada mes
unsigned long TotalVendido[31][12];
} INFORME3_VENTAS;
/**************************************************************************\
|* *|
|* Estructura para guardar la info de los empleados *|
|* *|
\**************************************************************************/
typedef struct
{
long CodigoR;
char Nombre[15+1];
char Apellido1[15+1];
char Apellido2[15+1];
char Direccion[25+1];
char Num[4+1];
char Piso[4+1];
char Poblacion[15+1];
char Provincia[15+1];
long CodPostal;
char Telefono1[15+1];
char Telefono2[15+1];
char NIF[10+1];
struct date InicioContrato;
struct date FinContrato;
char Acceso[30];
char Password[15];
char TEMP[45];
char Observaciones[4][60];
} INFO_EMPLEADOS;
/**************************************************************************\
|* *|
|* Estructura para el informe de datos varios... *|
|* *|
\**************************************************************************/
typedef struct
{
// Empresas
int NumEmpr; // N<>mero de empresas
long EmprAct; // C<>digo de empresa actual
char NEmpresa[80]; // Nombre de la empresa
// Articulos
long NumProd; // N<>mero de productos
// Proveedores
int NumProv; // N<>mero de proveedores
// Empleados
int NumEmpl; // N<>mero de empleados
// Compras // N<>mero de compras en el mes
int NumComp[2]; // y compras en el dia actual.
// Datos de interes vario
long EspacioCon; // Espacio consumido por el prorg.
long EspacioLib; // Espacio libre en disco.
} DatosInformativos;
/**************************************************************************\
|* *|
|* Estructura para los mensajes que se muestran en pantalla *|
|* *|
\**************************************************************************/
typedef struct
{
char TEspera; // Segundos de espera para pasar al siguiente bloque
char Desplaz[6]; // Indicador si se desplaza o no.
char Mensaje1[6][20+1];// Mensaje que se va a mostrar
char Mensaje2[6][20+1];// Mensaje que se va a mostrar
char Mensaje3[6][20+1];// Mensaje que se va a mostrar
char CFg[6], CBg[6]; // Colores de 1er plano y fondo para cada linea
} MENSAJES;
/**************************************************************************\
|* *|
|* Estructura para el Cobro completo *|
|* *|
\**************************************************************************/
typedef struct
{
long EntregadoCaja;
long CodCliente;
char CifNif[10+1]; // Cif / Nif
char Nombre[27+1]; // Nombre y Apellidos
char Direccion[30+1]; // Direccion
char Localidad[15+1]; // Localidad
char Provincia[15+1]; // Provincia
long CodPostal; // C<>digo Postal
} S_CobroCompleto;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern struct date FechaGestionActual;
extern CONFIG Config;
extern char NEmpresa[80];
extern char led_on [18] [18];
extern char led_off [18] [18];
extern char flecha [18] [18];
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);
void formatea_long( 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);
int EditComentario( char *Comentario, int Lineas, int Columnas, int cc, int cf, int X0, int Y0, int X1, int Y1, int Inc );
int CalculaAjusteDias( char *Ajuste, char *DiasMes, char Mes, int Anyo );
void TextoDoble( int x, int y, char *texto );
void AnulaInterrupcion(void);
extern char IntVect;
extern char VisualMode;
void Error( int code, char *MensajeError );
extern int far RatonVentas(void);
// Pide la clave de usuario
char PideClaveUsuario( void );
char *PideClave( char *LineaVentana, char *Comprobante );
void MuestraGraficas( int PosX, int PosY, int xWidth, int yWidth, int NDatos, long *Datos, char Mensajes[][12] );
// M<>dulo para el inicio de caja
void VentasDiarias(void);
// M<>dulo para el Balance diario
void BalanceDiario_Mensual( char DiarioMensual );
// M<>dulo de referencias
void InfoProductos(void);
// Informacion sobre el stock
void InfoStock(void);
// M<>dulo de Compras
void ComprasDiarias( int NivelAcceso );
// Informacion de los proveedores
void InfoProveedores(void);
// Configuraci<63>n de los mensajes para el protector de pantalla
void ConfigurarMensajes(void);
// Informacion de los empleados
void InfoEmpleados(void);
// Informacion acceso de los empleados
void PassEmpleados(void);
// Informacion comrpas a proveedores
void InformeCompras( void );
// Informacion de las empresas disponibles
void InfoEmpresas( void );
// Sirve para escoger la empresa a tratar
void EscogeEmpresaActiva( void );
// Venta de productos por meses
void InfoVentaProductos( void );
// Graficas sobre compras en el mes
void GraficaCompras( void );
// Cambia las opciones de configuraci<63>n.
void ConfigurarEntorno( void );
// Gr<47>ficas de ventas por empleado
void GraficaVentaEmpleados( void );
// Ficha de Clientes
void FichaClientes( void );
// Compra de los Clientes
void CompraClientes( void );
// Datos de Clientes
void DatosClientes( void );