2151 lines
65 KiB
C++
2151 lines
65 KiB
C++
#include<graphics.h>
|
||
#include<conio.h>
|
||
#include<stdio.h>
|
||
#include<dos.h>
|
||
#include<string.h>
|
||
#include<ctype.h>
|
||
#include<alloc.h>
|
||
#include<stdlib.h>
|
||
#include <math.h>
|
||
|
||
#include "..\libs\make_bot\make_bot.h"
|
||
#include "sv_graph.h"
|
||
|
||
#include "sv_util.h"
|
||
#include "sv_ref_x.h"
|
||
|
||
#define Texto_Normal setcolor(63);
|
||
#define Letra_Boton setcolor(1);
|
||
#define Texto_Negrita setcolor(0);
|
||
|
||
#define FINAL 1
|
||
#define SOLO_ESTA 0
|
||
#define TODAS 1
|
||
#define DESDE_CONTRATO_ACTUAL 2
|
||
#define Para_Cliente 1
|
||
#define Para_Empresa 0
|
||
|
||
|
||
#define NO_ENCONTRADO 0
|
||
#define ENCONTRADO 1
|
||
|
||
extern int x_raton, y_raton, raton;
|
||
extern int boton_izq, boton_der;
|
||
|
||
extern void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py);
|
||
extern void textxy(int x, int y, char *text);
|
||
extern int Espera_Tecla_o_Raton(void);
|
||
extern void desactiva_raton(void);
|
||
extern void activa_raton(void);
|
||
extern void Anclar_Raton(void);
|
||
extern void BEEP(void);
|
||
|
||
extern int InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, struct boton Campo);
|
||
extern int InputCadenaG_l(char *s, int numalp, int lmax, int cc, int cf, struct boton Campo, int Row);
|
||
extern int InputCadenaG_T4(char *s, int numalp, int lmax, int cc, int cf, struct boton Campo, int Row);
|
||
|
||
|
||
|
||
extern void Actualizar_Ventas(int Referencia, int Unidades, int Codigo);
|
||
extern void Abre_Ficha_Ventas(void);
|
||
|
||
extern void Abre_Ficha_Clientes(void);
|
||
extern void Abre_Ficha_Stock(void);
|
||
extern void GetLineClientes(void);
|
||
|
||
int Viable_Apertura(void);
|
||
void Acota_Contenido(void);
|
||
void AddRecordClientes_C(void);
|
||
void Imprimir_Clientes_C(void);
|
||
void Edit_Item_Clientes_C(void);
|
||
void Menu_de_Clientes_Comp(void);
|
||
void Mueve_Abajo_Clientes2(void);
|
||
void Mueve_Ariba_Clientes2(void);
|
||
void Mueve_Abajo_Clientes1(void);
|
||
void Mueve_Arriba_Clientes1(void);
|
||
void DeleteRecordClientes_C(void);
|
||
void PutLineClientes_Compras2(void);
|
||
void GetLineClientes_Compras2(void);
|
||
void CompruebaLineasClientes_C(void);
|
||
void PrintWholeScreenClientes2(void);
|
||
void PrintWholeScreenClientes1(void);
|
||
void Imprime_Factura_C(int Para_quien);
|
||
void EditCursorClientes_C(int ShowHide);
|
||
int Obten_Direccion_Compras(int which);
|
||
void Displayado_de_Datos(int Para_quien);
|
||
void Actualiza_Direccion_Compras(int which);
|
||
void Current_Struct_to_Zero_Clientes_C(void);
|
||
void PrintLineClientes_C(int Rapida_Completa);
|
||
void Imprime_Todas_Facturas(int Para_quien, int Current_Date);
|
||
|
||
void Barra_buscar_CC(struct boton *Tmp);
|
||
void Buscar_Cliente_Seccion_Compras(void);
|
||
int Sigue_Buscando_CB(struct Clientes Clientes1_Buscar);
|
||
void Edit_Item_Clientes_CB(int Columna, struct boton *Tmp, struct Clientes *Clientes1_Buscar);
|
||
void EditCursorClientes_CB(int Columna, int ShowHide, struct boton *Tmp, struct Clientes Clientes1_Buscar);
|
||
|
||
extern void PrintWholeScreenClientes(void);
|
||
extern void PrintLineClientes(int Rapida_Completa);
|
||
|
||
extern int Comprueba_Impresora(void);
|
||
extern void Abre_Ficha_Vendedores(void);
|
||
extern void Coloca_Nombres_a_botones(void);
|
||
extern void Carga_Todos_los_Vendedores(void);
|
||
extern void Abre_Ficha_Clientes_Compras(void);
|
||
extern void Prepara_Porcentaje_Circular(void);
|
||
extern void Obten_Nombre_Vendedor( int Nvend );
|
||
extern void Abre_Ficha_Clientes_Ncontrato(void);
|
||
|
||
void Barra_buscar_CC(struct boton *Tmp);
|
||
void Buscar_Cliente_Seccion_Compras(void);
|
||
|
||
|
||
struct Clientes_inx_NContrato {
|
||
unsigned long Inicio;
|
||
unsigned int Records;
|
||
unsigned char Libre;
|
||
};
|
||
|
||
struct Clientes_inx {
|
||
char Ncontrato_ocupado_SN[10000];
|
||
unsigned int Fin;
|
||
};
|
||
|
||
struct Clientes {
|
||
int Address;
|
||
|
||
char Nombre[15+1]; char Apellido1[15+1]; char Apellido2[15+1];
|
||
char DNI[15+1]; unsigned long Telefono1;
|
||
char Calle1[30+1]; char Num1[5+1];
|
||
|
||
char Local[30+1]; unsigned long Telefono2;
|
||
char Calle2[30+1]; char Num2[5+1];
|
||
char Poblacion[18+1]; char Provincia[16+1]; unsigned long CP;
|
||
|
||
unsigned char GC; unsigned char MR; unsigned char SP;
|
||
unsigned char DP; unsigned int MA;
|
||
|
||
struct date Fecha; int Vend; int NContrato;
|
||
|
||
};
|
||
|
||
// Se almacenan 1000 registros por archivo
|
||
// En un caso extremo son: 9 bit ---> Espacio por Dato
|
||
// 31 ---> Dias por mes
|
||
// 2 ---> Productos por d<>a
|
||
// 12 ---> 12 meses
|
||
// 1000 ---> Clientes
|
||
//
|
||
|
||
struct Clientes_compras { // C UU VEN REF
|
||
struct date Fecha; // 1 99 999 9999
|
||
unsigned long Cod_Und_Vend_Ref;
|
||
};
|
||
|
||
struct Vend_inx {
|
||
unsigned int Fin;
|
||
};
|
||
|
||
struct Vendedores {
|
||
int Num_V;
|
||
char Nombre[15+1]; char Apellido1[15+1]; char Apellido2[15+1];
|
||
char DNI[15+1]; unsigned long Telefono1; unsigned long Telefono2;
|
||
char Calle[30+1]; char Num[3+1]; char Piso[3+1];
|
||
char Poblacion[18+1]; char Provincia[16+1]; unsigned long CP;
|
||
unsigned long CC; unsigned int PP; unsigned int Cr;
|
||
};
|
||
/*
|
||
extern struct Stock_inx { unsigned int Fin; };
|
||
|
||
extern struct Stock_actual { int Ref; long Und_0; long Und_1; };
|
||
*/
|
||
extern struct Stock_actual Ventas1;
|
||
extern struct Stock_inx Ventas1_inx;
|
||
|
||
extern void Actualizar_Stock(int Referencia, int Unidades, int Codigo);
|
||
|
||
|
||
extern struct JD cabecera;
|
||
extern struct Clientes Clientes1;
|
||
extern struct Clientes_inx Clientes1_inx;
|
||
extern struct Clientes_compras Clientes2;
|
||
extern struct Clientes_inx_NContrato Clientes1_inx_NContrato;
|
||
|
||
struct Clientes Clientes1_Buscar;
|
||
|
||
extern struct Vendedores Vend1;
|
||
extern struct Vend_inx Vend1_inx;
|
||
|
||
struct boton *PAR;
|
||
extern struct boton Comunes[9];
|
||
|
||
|
||
extern int oldCNI;
|
||
extern int *Vend_Dir;
|
||
|
||
extern FILE *Vend; // Fichero Vendedores
|
||
extern FILE *Stock;
|
||
extern FILE *Ventas;
|
||
extern FILE *Clientes; // Fichero Clientes
|
||
extern FILE *Clientes_C; // Fichero Clientes con las Compras.
|
||
extern FILE *Clientes_NC; // Fichero Clientes con los n<>meros de contrato activos.
|
||
|
||
extern int CurrRow1_Clien, CurrRow2_Clien;
|
||
extern int CurrCol1_Clien, CurrCol2_Clien;
|
||
extern int CurrTopLine_Clien, CurrTopLine_Clien1;
|
||
extern int SWAP_CLIEN;
|
||
|
||
int Start_Comp_Clien;
|
||
int Comp_Clien_Records;
|
||
int Fecha, Usa_Pc = 0;
|
||
int Comienzo_Busqueda = 0;
|
||
char Se_Puede_Buscar = 0;
|
||
int Buscador;
|
||
|
||
|
||
|
||
void Menu_de_Clientes_Comp(int Current_Date) {
|
||
|
||
Fecha = Current_Date;
|
||
int finished = 0, key, bpush;
|
||
char Buffer[80];
|
||
|
||
Buscador = 0;
|
||
|
||
CurrRow1_Clien = 1; CurrCol1_Clien = 1;
|
||
CurrRow2_Clien = 1; CurrCol2_Clien = 1;
|
||
|
||
oldCNI = -1; SWAP_CLIEN = 1;
|
||
|
||
CurrTopLine_Clien = 1;
|
||
CurrTopLine_Clien1 = 1;
|
||
Se_Puede_Buscar = 0;
|
||
|
||
if( ( PAR = (struct boton *) malloc( sizeof(struct boton)*13 ) ) == NULL )
|
||
{
|
||
Confirma("Memoria insuficiente", "para crear tablas de", "posisi<EFBFBD>n PAR.");
|
||
// farfree(Clientes1_inx_NContrato);
|
||
return ;
|
||
}
|
||
|
||
if( ( Vend_Dir = (int *) malloc( sizeof(int)*1024 ) ) == NULL )
|
||
{
|
||
Confirma("Memoria insuficiente", "para crear tablas para", "Vend_Dir");
|
||
free(PAR);
|
||
return ;
|
||
}
|
||
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inicializa_raton_grafico(0, 0, 624, 464, 320, 240);
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> if(raton!=0) desactiva_raton();
|
||
|
||
cleardevice();
|
||
Dibuja_Pantalla_Altas_Rapida(PAR);
|
||
|
||
Fuente(SMALL_FONT, 5);
|
||
Coloca_Nombres_a_botones();
|
||
Fuente(SMALL_FONT, 5);
|
||
|
||
if( !Viable_Apertura() ) return ;
|
||
|
||
Abre_Ficha_Clientes();
|
||
Abre_Ficha_Clientes_Ncontrato();
|
||
|
||
|
||
Abre_Ficha_Referencias();
|
||
Carga_Referencias();
|
||
Abre_Ficha_Vendedores();
|
||
Carga_Todos_los_Vendedores();
|
||
Abre_Ficha_Stock();
|
||
Abre_Ficha_Ventas();
|
||
//<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> PUNTO DE CONFLICTO
|
||
|
||
PrintWholeScreenClientes1();
|
||
|
||
GetLineClientes();
|
||
Abre_Ficha_Clientes_Compras();
|
||
|
||
|
||
// GetLineClientes();
|
||
Acota_Contenido();
|
||
PrintWholeScreenClientes2();
|
||
GetLineClientes_Compras2();
|
||
|
||
|
||
//<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><EFBFBD>
|
||
{
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
}
|
||
//<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><EFBFBD>
|
||
|
||
// PrintLineClientes_C(0);
|
||
|
||
|
||
int oldCR1=0, oldCR2=0, oldCC1=0, oldCC2=0;
|
||
|
||
do{
|
||
|
||
|
||
if(oldCR1!=CurrRow1_Clien || oldCC1!=CurrCol1_Clien || oldCR2!=CurrRow2_Clien || oldCC2!=CurrCol2_Clien )
|
||
EditCursorClientes_C(0);
|
||
|
||
oldCR1 = CurrRow1_Clien; oldCC1 = CurrCol1_Clien;
|
||
oldCR2 = CurrRow2_Clien; oldCC2 = CurrCol2_Clien;
|
||
|
||
if(raton!=0) activa_raton();
|
||
Espera_Tecla_o_Raton();
|
||
if(raton!=0) desactiva_raton();
|
||
|
||
|
||
|
||
if(kbhit()){
|
||
EditCursorClientes_C(1);
|
||
key = getch();
|
||
if( isprint(key) || isspace(key) ) {
|
||
EditCursorClientes_C(0);
|
||
if(key!=13) ungetch(key);
|
||
Edit_Item_Clientes_C();
|
||
EditCursorClientes_C(0);
|
||
|
||
} else if( key == 0 ) {
|
||
switch( (key=getch()) ){
|
||
// Flecha Arriba
|
||
case 72:
|
||
if(!SWAP_CLIEN) Mueve_Ariba_Clientes2();
|
||
else Mueve_Arriba_Clientes1();
|
||
break;
|
||
// Flecha Izquierda
|
||
case 75:
|
||
case 15:
|
||
if(SWAP_CLIEN) { CurrCol1_Clien--; if ( CurrCol1_Clien<1 ) CurrCol1_Clien=3; }
|
||
else { CurrCol2_Clien--; if ( CurrCol2_Clien < 1 ) CurrCol2_Clien=7; }
|
||
break;
|
||
// Flecha Derecha
|
||
case 77:
|
||
case 9:
|
||
if(SWAP_CLIEN) { CurrCol1_Clien++; if ( CurrCol1_Clien>3 ) CurrCol1_Clien=1; }
|
||
else { CurrCol2_Clien++; if ( CurrCol2_Clien > 7 ) CurrCol2_Clien=1; }
|
||
break;
|
||
// Flecha Abajo
|
||
case 80:
|
||
if(!SWAP_CLIEN) Mueve_Abajo_Clientes2();
|
||
else Mueve_Abajo_Clientes1();
|
||
break;
|
||
// Buscar F2
|
||
case 60:
|
||
Buscar_Cliente_Seccion_Compras();
|
||
break;
|
||
// Buscar otra vez --> F3
|
||
case 61:
|
||
|
||
if(Se_Puede_Buscar) {
|
||
CurrTopLine_Clien1++;
|
||
Comienzo_Busqueda = 1;
|
||
if( Sigue_Buscando_CB(Clientes1_Buscar) == ENCONTRADO ) {
|
||
PrintWholeScreenClientes1();
|
||
GetLineClientes();
|
||
{
|
||
if( ( (Clientes1.Address)/100/*0*/ ) != oldCNI ){
|
||
oldCNI = ( (Clientes1.Address) / 100/*0*/ );
|
||
fclose(Clientes_C);
|
||
Abre_Ficha_Clientes_Compras();
|
||
}
|
||
Acota_Contenido();
|
||
PrintWholeScreenClientes2();
|
||
GetLineClientes_Compras2();
|
||
}
|
||
//<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><EFBFBD>
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
//<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><EFBFBD>
|
||
|
||
} else {
|
||
CurrTopLine_Clien1--;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, Comunes[7]);
|
||
GetLineClientes();
|
||
|
||
}
|
||
}
|
||
break;
|
||
|
||
// Imprimir Clientes (incluye men<65> desplegable) F5
|
||
case 63:
|
||
Imprimir_Clientes_C();
|
||
break;
|
||
// SWAP_CLIEN (la parte de edici<63>n) F6
|
||
case 64:
|
||
if(SWAP_CLIEN) { EditCursorClientes_C(0); SWAP_CLIEN=0; } else SWAP_CLIEN=1;
|
||
EditCursorClientes_C(0);
|
||
break;
|
||
// F9 --> A<>ADIR
|
||
case 67:
|
||
if(!SWAP_CLIEN)
|
||
/*if( Confirma("<22> Dar de ALTA a un", "nuevo CLIENTE ?", "") )*/
|
||
{ AddRecordClientes_C(); }
|
||
break;
|
||
// F10 -> BORRAR
|
||
case 68:
|
||
if(!SWAP_CLIEN)
|
||
if( Confirma("Desea eliminar la", "Compra Actual", "") )
|
||
{ Fuente(SMALL_FONT, 5); DeleteRecordClientes_C(); }
|
||
|
||
break;
|
||
// INICIO
|
||
case 71:
|
||
if(SWAP_CLIEN) CurrCol1_Clien = 1; else CurrCol2_Clien = 1;
|
||
break;
|
||
// FIN
|
||
case 79:
|
||
if(SWAP_CLIEN) CurrCol1_Clien = 3; else CurrCol2_Clien = 7;
|
||
break;
|
||
// ReP<65>g
|
||
case 73:
|
||
// CurrRow = 1;
|
||
if(SWAP_CLIEN) {
|
||
CurrRow1_Clien = 1;
|
||
if( CurrTopLine_Clien1 > 11 ) { CurrTopLine_Clien1 -= 11; } else { CurrTopLine_Clien1 = 1; }
|
||
if( CurrTopLine_Clien1 < 1 ) { CurrTopLine_Clien1 = 1; }
|
||
PrintWholeScreenClientes1();
|
||
GetLineClientes();
|
||
|
||
{
|
||
if( ( (Clientes1.Address)/100/*0*/ ) != oldCNI ){
|
||
oldCNI = ( (Clientes1.Address) / 100/*0*/ );
|
||
fclose(Clientes_C);
|
||
Abre_Ficha_Clientes_Compras();
|
||
}
|
||
Acota_Contenido();
|
||
PrintWholeScreenClientes2();
|
||
GetLineClientes_Compras2();
|
||
// PrintLineClientes_C(1);
|
||
//<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><EFBFBD>
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
//<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><EFBFBD>
|
||
|
||
}
|
||
|
||
}
|
||
break;
|
||
// AvP<76>g
|
||
case 81:
|
||
// CurrRow = 1;
|
||
if(SWAP_CLIEN) {
|
||
CurrRow1_Clien = 1;
|
||
CurrTopLine_Clien1 += 11;
|
||
if ( (CurrTopLine_Clien1+CurrRow1_Clien - 2 ) > Clientes1_inx.Fin) { CurrTopLine_Clien1 = Clientes1_inx.Fin+1; CurrRow1_Clien = 1; }
|
||
if (CurrTopLine_Clien1==0) CurrTopLine_Clien1 = 1;
|
||
PrintWholeScreenClientes1();
|
||
GetLineClientes();
|
||
{
|
||
if( ( (Clientes1.Address)/100/*0*/ ) != oldCNI ){
|
||
oldCNI = ( (Clientes1.Address) / 100/*0*/ );
|
||
fclose(Clientes_C);
|
||
Abre_Ficha_Clientes_Compras();
|
||
}
|
||
Acota_Contenido();
|
||
PrintWholeScreenClientes2();
|
||
GetLineClientes_Compras2();
|
||
// PrintLineClientes_C(1);
|
||
//<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><EFBFBD>
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
//<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><EFBFBD>
|
||
|
||
}
|
||
|
||
}
|
||
break;
|
||
|
||
// Salir F1
|
||
case 59:
|
||
finished = 1;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
EditCursorClientes_C(0);
|
||
}
|
||
}
|
||
else if(raton!=0 && ( boton_izq==1 || boton_der==1 ) )
|
||
if( (bpush = CheckButon( 9, Comunes))>0 ) {
|
||
EditCursorClientes_C(1);
|
||
switch(bpush){
|
||
// Flecha Arriba
|
||
case 1:
|
||
if(!SWAP_CLIEN) Mueve_Ariba_Clientes2();
|
||
else Mueve_Arriba_Clientes1();
|
||
break;
|
||
// Buscar
|
||
case 2:
|
||
Buscar_Cliente_Seccion_Compras();
|
||
break;
|
||
// Flecha Abajo
|
||
case 3:
|
||
if(!SWAP_CLIEN) Mueve_Abajo_Clientes2();
|
||
else Mueve_Abajo_Clientes1();
|
||
break;
|
||
case 4:
|
||
if(SWAP_CLIEN) { EditCursorClientes_C(0); SWAP_CLIEN=0; }else SWAP_CLIEN=1;
|
||
EditCursorClientes_C(0);
|
||
break;
|
||
// Imprimir
|
||
case 5:
|
||
Imprimir_Clientes_C();
|
||
break;
|
||
// A<>adir
|
||
case 6:
|
||
if(!SWAP_CLIEN)
|
||
/*if( Confirma("<22> Dar de ALTA a un", "nuevo CLIENTE ?", "") )*/
|
||
{ AddRecordClientes_C(); }
|
||
|
||
break;
|
||
// Borrar
|
||
case 7:
|
||
if(!SWAP_CLIEN)
|
||
if( Confirma("Desea eliminar la", "Compra Actual", "") )
|
||
{ Fuente(SMALL_FONT, 5); DeleteRecordClientes_C(); }
|
||
break;
|
||
// Repite Busqueda...
|
||
case 8:
|
||
if(Se_Puede_Buscar){
|
||
CurrTopLine_Clien1++;
|
||
Comienzo_Busqueda = 1;
|
||
if( Sigue_Buscando_CB(Clientes1_Buscar) == ENCONTRADO ) {
|
||
PrintWholeScreenClientes1();
|
||
GetLineClientes();
|
||
{
|
||
if( ( (Clientes1.Address)/100/*0*/ ) != oldCNI ){
|
||
oldCNI = ( (Clientes1.Address) / 100/*0*/ );
|
||
fclose(Clientes_C);
|
||
Abre_Ficha_Clientes_Compras();
|
||
}
|
||
Acota_Contenido();
|
||
PrintWholeScreenClientes2();
|
||
GetLineClientes_Compras2();
|
||
}
|
||
//<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><EFBFBD>
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
//<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><EFBFBD>
|
||
|
||
} else {
|
||
CurrTopLine_Clien1--;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, Comunes[7]);
|
||
GetLineClientes();
|
||
|
||
}
|
||
}
|
||
break;
|
||
// Salir
|
||
case 9:
|
||
finished = 1;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
EditCursorClientes_C(0);
|
||
} else CompruebaLineasClientes_C();
|
||
|
||
|
||
}while(!finished);
|
||
|
||
// rewind(Clientes_NC);
|
||
|
||
fclose(Clientes); // Fichero Clientes
|
||
fclose(Clientes_NC); // Fichero Clientes
|
||
fclose(Clientes_C); // Fichero Clientes
|
||
fclose(Stock);
|
||
fclose(Ventas);
|
||
fclose(Vend); // Fichero Clientes
|
||
fclose(Ref); // Fichero Vendedores
|
||
|
||
|
||
if(Memory_ok==1) farfree(Addr); else free(Ref_inx_addr);
|
||
free(Vend_Dir);
|
||
free(PAR);
|
||
|
||
|
||
}
|
||
|
||
void Mueve_Abajo_Clientes2(void){
|
||
|
||
int CurrRecord = CurrTopLine_Clien + CurrRow2_Clien - 1;
|
||
|
||
if (CurrRow2_Clien==/*12*/11) {
|
||
if ( (CurrRecord - 1) >= Comp_Clien_Records - 1) BEEP();
|
||
else { CurrTopLine_Clien++;
|
||
PrintWholeScreenClientes2();
|
||
//<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>
|
||
//<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>
|
||
//<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>
|
||
GetLineClientes_Compras2();
|
||
// PrintLineClientes_C(1);
|
||
}
|
||
|
||
} else {
|
||
|
||
if( (CurrRecord - 1) >= Comp_Clien_Records -1) BEEP();
|
||
else { CurrRow2_Clien++;
|
||
GetLineClientes_Compras2();
|
||
// PrintLineClientes_C(1);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
void Mueve_Ariba_Clientes2(void){
|
||
int CurrRecord = CurrTopLine_Clien + CurrRow2_Clien - 1;
|
||
|
||
if (CurrRow2_Clien==1) {
|
||
if ((CurrRecord - 1) <= 0) BEEP();
|
||
else {
|
||
CurrTopLine_Clien--;
|
||
PrintWholeScreenClientes2();
|
||
//<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>
|
||
//<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>
|
||
//<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>
|
||
GetLineClientes_Compras2();
|
||
// PrintLineClientes_C(1);
|
||
}
|
||
|
||
} else {
|
||
if( (CurrRecord - 1) <= 0) BEEP();
|
||
else { CurrRow2_Clien--;
|
||
GetLineClientes_Compras2();
|
||
// PrintLineClientes_C(1);
|
||
}
|
||
}
|
||
|
||
}
|
||
//<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><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
void Mueve_Abajo_Clientes1(void){
|
||
|
||
int CurrRecord = CurrTopLine_Clien1 + CurrRow1_Clien - 1;
|
||
char Buffer[80];
|
||
|
||
if (CurrRow1_Clien==11) {
|
||
if ( (CurrRecord - 1) >= Clientes1_inx.Fin) { BEEP(); return; }
|
||
else {
|
||
// CurrTopLine_Clien1++;
|
||
CurrRow1_Clien=1;
|
||
CurrTopLine_Clien1 += 11;
|
||
if ( (CurrTopLine_Clien1+CurrRow1_Clien) > Clientes1_inx.Fin) { CurrTopLine_Clien = Clientes1_inx.Fin; CurrRow1_Clien = 1; }
|
||
if (CurrTopLine_Clien1==0) CurrTopLine_Clien1 = 1;
|
||
|
||
PrintWholeScreenClientes1();
|
||
GetLineClientes();
|
||
|
||
//<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><EFBFBD>
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
//<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><EFBFBD>
|
||
// PrintLineClientes_C(0);
|
||
}
|
||
|
||
} else {
|
||
if( (CurrRecord - 1) >= (Clientes1_inx.Fin) ) { BEEP(); return; }
|
||
else { CurrRow1_Clien++;
|
||
GetLineClientes();
|
||
//<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><EFBFBD>
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
//<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><EFBFBD>
|
||
// PrintLineClientes_C(0);
|
||
}
|
||
}
|
||
|
||
{
|
||
if( ( (Clientes1.Address)/100/*0*/ ) != oldCNI ){
|
||
oldCNI = ( (Clientes1.Address) / 100/*0*/ );
|
||
fclose(Clientes_C);
|
||
Abre_Ficha_Clientes_Compras();
|
||
}
|
||
Acota_Contenido();
|
||
CurrTopLine_Clien = 1;
|
||
CurrRow2_Clien = 1;
|
||
PrintWholeScreenClientes2();
|
||
GetLineClientes_Compras2();
|
||
// PrintLineClientes_C(1);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
void Mueve_Arriba_Clientes1(void){
|
||
int CurrRecord = CurrTopLine_Clien1 + CurrRow1_Clien - 1;
|
||
char Buffer[80];
|
||
|
||
if (CurrRow1_Clien==1) {
|
||
if ((CurrRecord - 1) <= 0){ BEEP(); return; }
|
||
else {
|
||
|
||
// CurrTopLine_Clien1--;
|
||
|
||
if( CurrTopLine_Clien1 > 11 ) { CurrTopLine_Clien1 -= 11; } else { CurrTopLine_Clien1 = 1; }
|
||
if( CurrTopLine_Clien1 < 1 ) { CurrTopLine_Clien1 = 1; }
|
||
CurrRow1_Clien = 11;
|
||
while(CurrTopLine_Clien1 + CurrRow1_Clien - 1 >= Clientes1_inx.Fin ) CurrRow1_Clien--;
|
||
|
||
|
||
PrintWholeScreenClientes1();
|
||
//<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>
|
||
//<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>
|
||
//<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>
|
||
GetLineClientes();
|
||
//<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><EFBFBD>
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
//<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><EFBFBD>
|
||
|
||
// PrintLineClientes_C(0);
|
||
}
|
||
|
||
} else {
|
||
if( (CurrRecord - 1) <= 0){ BEEP(); return; }
|
||
else { CurrRow1_Clien--;
|
||
GetLineClientes();
|
||
//<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><EFBFBD>
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
//<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><EFBFBD>
|
||
|
||
// PrintLineClientes_C(0);
|
||
}
|
||
}
|
||
{
|
||
if( ( (Clientes1.Address)/100/*0*/ ) != oldCNI ){
|
||
oldCNI = ( (Clientes1.Address) / 100/*0*/ );
|
||
fclose(Clientes_C);
|
||
Abre_Ficha_Clientes_Compras();
|
||
}
|
||
Acota_Contenido();
|
||
CurrTopLine_Clien = 1;
|
||
CurrRow2_Clien = 1;
|
||
PrintWholeScreenClientes2();
|
||
GetLineClientes_Compras2();
|
||
// PrintLineClientes_C(1);
|
||
}
|
||
}
|
||
|
||
void EditCursorClientes_C(int ShowHide) {
|
||
char Buffer[80];
|
||
|
||
setcolor(GRIS_C);
|
||
setfillstyle(SOLID_FILL, GRIS_C);
|
||
bar(10, 455, 545, 473);
|
||
|
||
if(SWAP_CLIEN==1) {
|
||
if (!ShowHide) {
|
||
setcolor(63);
|
||
setfillstyle(SOLID_FILL, 63);
|
||
|
||
bar((PAR[CurrCol1_Clien].left+2), PAR[CurrCol1_Clien].up+4+(CurrRow1_Clien-1)*15+2, PAR[CurrCol1_Clien].right-2, PAR[CurrCol1_Clien].up+/*4*/+((CurrRow1_Clien)-1)*15+16);
|
||
|
||
setcolor(0);
|
||
} else {
|
||
// ImprimeBoton (0, GRIS_C, GRIS_O, BLANCO, PAR[CurrCol1_Clien/*-1*/]);
|
||
setcolor(0);
|
||
setfillstyle(SOLID_FILL, 0);
|
||
|
||
bar((PAR[CurrCol1_Clien].left+2), PAR[CurrCol1_Clien].up+4+(CurrRow1_Clien-1)*15+2, PAR[CurrCol1_Clien].right-2, PAR[CurrCol1_Clien].up+/*4*/+((CurrRow1_Clien)-1)*15+16);
|
||
|
||
Texto_Normal
|
||
}
|
||
|
||
|
||
switch(CurrCol1_Clien) {
|
||
case 1: outtextxy( PAR[1].left+2, PAR[1].up+2+(CurrRow1_Clien-1)*/*9*//*14*/15, Clientes1.Local );
|
||
outtextxy( 15, 455, "Nombre del Local.");
|
||
break;
|
||
case 2: sprintf(Buffer, "%s %s", Clientes1.Nombre, Clientes1.Apellido1);
|
||
Buffer[15] = '\0';
|
||
outtextxy( PAR[2].left+2, PAR[2].up+2+(CurrRow1_Clien-1)*/*9*//*14*/15, Buffer );
|
||
outtextxy( 15, 455, "Nombre del Propietario.");
|
||
break;
|
||
case 3: sprintf(Buffer, "%12ld", Clientes1.Telefono2);
|
||
outtextxy( PAR[3].left+2, PAR[3].up+2+(CurrRow1_Clien-1)*/*9*//*14*/15, Buffer );
|
||
outtextxy( 15, 455, "Tel<EFBFBD>fono del Local.");
|
||
}
|
||
} else {
|
||
if (!ShowHide) {
|
||
setcolor(63);
|
||
setfillstyle(SOLID_FILL, 63);
|
||
bar((PAR[CurrCol2_Clien + 3].left+2), PAR[(CurrCol2_Clien)/*-1*/+3].up+4+(CurrRow2_Clien-1)*15+2, PAR[(CurrCol2_Clien)/*-1*/+3].right-2, PAR[(CurrCol2_Clien)/*-1*/+3].up+/*3*//*4*/+((CurrRow2_Clien)-1)*15+16);
|
||
setcolor(0);
|
||
} else {
|
||
setcolor(0);
|
||
setfillstyle(SOLID_FILL, 0);
|
||
bar((PAR[CurrCol2_Clien + 3].left+2), PAR[(CurrCol2_Clien)/*-1*/+3].up+4+(CurrRow2_Clien-1)*15+2, PAR[(CurrCol2_Clien)/*-1*/+3].right-2, PAR[(CurrCol2_Clien)/*-1*/+3].up+/*3*//*4*/+((CurrRow2_Clien)-1)*15+16);
|
||
Texto_Normal
|
||
}
|
||
|
||
int Ref;
|
||
switch(CurrCol2_Clien){
|
||
|
||
case 1:
|
||
int day, mon;
|
||
day= Clientes2.Fecha.da_day;
|
||
mon= Clientes2.Fecha.da_mon;
|
||
sprintf(Buffer, "%02d/%02d/%02d", day, mon, Clientes2.Fecha.da_year );
|
||
outtextxy( PAR[4].left+2, (PAR[4].up+3)+(CurrRow2_Clien-1)*15, Buffer );
|
||
outtextxy( 15, 455, "Fecha. 6 digitos m<>ximo.");
|
||
break;
|
||
case 2:
|
||
// 1 99 999 XXXX
|
||
Ref = ( Clientes2.Cod_Und_Vend_Ref - ((Clientes2.Cod_Und_Vend_Ref/10000)*10000) );
|
||
sprintf(Buffer, " %04d", Ref);
|
||
outtextxy( PAR[5].left+2, (PAR[5].up+2)+(CurrRow2_Clien-1)*15, Buffer );
|
||
outtextxy( 15, 455, "Referencia del Producto. 4 digitos m<>ximo.");
|
||
break;
|
||
case 3:
|
||
outtextxy( PAR[6].left+2, (PAR[6].up+2)+(CurrRow2_Clien-1)*15, Ref1.Concepto );
|
||
outtextxy( 15, 455, "Concepto. 15 digitos m<>ximo.");
|
||
break;
|
||
case 4:
|
||
// 1 XX 999 9999
|
||
Ref = ( ( Clientes2.Cod_Und_Vend_Ref/10000000L ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000L)/100)*100 ) );
|
||
sprintf(Buffer, "% 2d", Ref);
|
||
outtextxy( PAR[7].left+2, (PAR[7].up+2)+(CurrRow2_Clien-1)*15,Buffer );
|
||
outtextxy( 15, 455, "Unidades. 2 digitos m<>ximo.");
|
||
break;
|
||
case 5:
|
||
// 1 99 XXX 9999
|
||
Ref = ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) - ( ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) / 1000) * 1000 ) );
|
||
sprintf(Buffer, "% 2d", Ref);
|
||
outtextxy( PAR[8].left+2, (PAR[8].up+2)+(CurrRow2_Clien-1)*15,Buffer );
|
||
outtextxy( 15, 455, "Vendedor. 3 digitos m<>ximo.");
|
||
break;
|
||
case 6:
|
||
// X 99 999 9999
|
||
Ref = ( Clientes2.Cod_Und_Vend_Ref/1000000000L );
|
||
sprintf(Buffer, "% 2d", Ref);
|
||
outtextxy( PAR[9].left+2, (PAR[9].up+2)+(CurrRow2_Clien-1)*15,Buffer );
|
||
outtextxy( 15, 455, "C<EFBFBD>digo. 1 digitos m<>ximo.");
|
||
break;
|
||
case 7:
|
||
// TOTAL
|
||
long Total = ( ( Clientes2.Cod_Und_Vend_Ref/10000000L ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000L)/100)*100 ) );
|
||
sprintf(Buffer, "% 7ld", ( (Total*Ref1.PVP) + ( (Total*Ref1.PVP*Ref1.P2)/100) ) );
|
||
outtextxy( PAR[10].left+2, (PAR[10].up+2)+(CurrRow2_Clien-1)*15,Buffer );
|
||
outtextxy( 15, 455, "TOTAL A PAGAR + I.V.A. ");
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
void PrintLineClientes_C(int Rapida_Completa){
|
||
|
||
char Buffer[80];
|
||
|
||
if(!Rapida_Completa) {
|
||
// Completa
|
||
|
||
setcolor(0);
|
||
setfillstyle(SOLID_FILL, 0); //<2F>// //<2F>// //<2F>// //<2F>//
|
||
for(int i=1; i<4; i++)
|
||
bar((PAR[i].left+2), PAR[i].up+4+(CurrRow1_Clien-1)*15+2, PAR[i].right-2, PAR[i].up+4+((CurrRow1_Clien)-1)*15+16);
|
||
|
||
|
||
Texto_Normal
|
||
outtextxy( PAR[1].left+2, PAR[1].up+2+(CurrRow1_Clien-1)*15, Clientes1.Local );
|
||
sprintf(Buffer, "%s %s", Clientes1.Nombre, Clientes1.Apellido1);
|
||
Buffer[15] = '\0';
|
||
outtextxy( PAR[2].left+2, PAR[2].up+2+(CurrRow1_Clien-1)*15, Buffer );
|
||
sprintf(Buffer, "%12ld", Clientes1.Telefono2);
|
||
outtextxy( PAR[3].left+2, PAR[3].up+2+(CurrRow1_Clien-1)*15, Buffer );
|
||
|
||
} else {
|
||
setcolor(0);
|
||
setfillstyle(SOLID_FILL, 0); //<2F>// //<2F>// //<2F>// //<2F>//
|
||
for(int i=4; i<11; i++)
|
||
bar((PAR[i].left+2), PAR[i].up+4+(CurrRow2_Clien-1)*15+2, PAR[i].right-2, PAR[i].up+4+((CurrRow2_Clien)-1)*15+16);
|
||
|
||
Texto_Normal
|
||
int day, mon;
|
||
day= Clientes2.Fecha.da_day;
|
||
mon= Clientes2.Fecha.da_mon;
|
||
sprintf(Buffer, "%02d/%02d/%02d", day, mon, Clientes2.Fecha.da_year );
|
||
outtextxy( PAR[4].left+2, (PAR[4].up+3)+(CurrRow2_Clien-1)*15, Buffer );
|
||
// 1 99 999 XXXX
|
||
int Ref = ( Clientes2.Cod_Und_Vend_Ref - ((Clientes2.Cod_Und_Vend_Ref/10000)*10000) );
|
||
sprintf(Buffer, " %04d", Ref);
|
||
outtextxy( PAR[5].left+2, (PAR[5].up+2)+(CurrRow2_Clien-1)*15, Buffer );
|
||
outtextxy( PAR[6].left+2, (PAR[6].up+2)+(CurrRow2_Clien-1)*15, Ref1.Concepto );
|
||
// 1 XX 999 9999
|
||
Ref = ( ( Clientes2.Cod_Und_Vend_Ref/10000000L ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000L)/100)*100 ) );
|
||
sprintf(Buffer, "% 2d", Ref);
|
||
outtextxy( PAR[7].left+2, (PAR[7].up+2)+(CurrRow2_Clien-1)*15,Buffer );
|
||
// 1 99 XXX 9999
|
||
Ref = ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) - ( ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) / 1000) * 1000 ) );
|
||
sprintf(Buffer, "% 2d", Ref);
|
||
outtextxy( PAR[8].left+2, (PAR[8].up+2)+(CurrRow2_Clien-1)*15,Buffer );
|
||
// X 99 999 9999
|
||
Ref = ( Clientes2.Cod_Und_Vend_Ref/1000000000L );
|
||
sprintf(Buffer, "% 2d", Ref);
|
||
outtextxy( PAR[9].left+2, (PAR[9].up+2)+(CurrRow2_Clien-1)*15,Buffer );
|
||
long Total = ( ( Clientes2.Cod_Und_Vend_Ref/10000000L ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000L)/100)*100 ) );
|
||
sprintf(Buffer, "% 7ld", ( (Total*Ref1.PVP) + ( (Total*Ref1.PVP*Ref1.P2)/100) ) );
|
||
outtextxy( PAR[10].left+2, (PAR[10].up+2)+(CurrRow2_Clien-1)*15,Buffer);
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
void PrintWholeScreenClientes2(void){
|
||
|
||
int tmp = CurrRow2_Clien;
|
||
|
||
for(int i=4; i<=10; i++)
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[i]);
|
||
|
||
|
||
for(CurrRow2_Clien = 1; CurrRow2_Clien < 11+1; CurrRow2_Clien++)
|
||
//<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><EFBFBD>
|
||
if ( (/*Start_Comp_Clien + */CurrTopLine_Clien + CurrRow2_Clien - 1 /*- 1*/) <= Comp_Clien_Records ){
|
||
GetLineClientes_Compras2();
|
||
//<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><EFBFBD>
|
||
PrintLineClientes_C(1);
|
||
}
|
||
|
||
|
||
|
||
CurrRow2_Clien = tmp;
|
||
|
||
}
|
||
|
||
void PrintWholeScreenClientes1(void){
|
||
|
||
int tmp = CurrRow1_Clien;
|
||
|
||
for(int i=1; i<4; i++)
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[i]);
|
||
|
||
|
||
for(CurrRow1_Clien = 1; CurrRow1_Clien < (/*12*/11+1); CurrRow1_Clien++)
|
||
|
||
if ( (CurrTopLine_Clien1 + CurrRow1_Clien - 1 - 1) <= Clientes1_inx.Fin){
|
||
GetLineClientes();
|
||
PrintLineClientes_C(0);
|
||
}
|
||
|
||
CurrRow1_Clien = tmp;
|
||
|
||
}
|
||
|
||
void Edit_Item_Clientes_C(void){
|
||
char Buffer[80];
|
||
long Fcha;
|
||
int Cod_b, Ref_b, Und_b, Vend_b;
|
||
|
||
if(SWAP_CLIEN){
|
||
while( kbhit() ) getch();
|
||
} else {
|
||
switch (CurrCol2_Clien) {
|
||
case 1:
|
||
int day/*, mon*/;
|
||
day= Clientes2.Fecha.da_day;
|
||
// mon= Clientes2.Fecha.da_mon;
|
||
// sprintf(Buffer, "%02d%02d%02d", day, mon, Clientes2.Fecha.da_year );
|
||
sprintf(Buffer, "%d", day );
|
||
do{
|
||
InputCadenaG_l( Buffer, 1, 2/*6*/, 63, 57, PAR[4], CurrRow2_Clien-1);
|
||
Fcha = atol(Buffer);
|
||
Clientes2.Fecha.da_day =Fcha;
|
||
// Clientes2.Fecha.da_day = (Fcha/10000);
|
||
// Clientes2.Fecha.da_mon = (Fcha/100) - ((Clientes2.Fecha.da_day) * 100);
|
||
// Clientes2.Fecha.da_year = Fcha - ( (Clientes2.Fecha.da_day*10000) + (Clientes2.Fecha.da_mon*100) );
|
||
}while( ( Clientes2.Fecha.da_day<1 || Clientes2.Fecha.da_day>31 ) );
|
||
// }while( ( Clientes2.Fecha.da_day<1 || Clientes2.Fecha.da_day>31 ) || (Clientes2.Fecha.da_mon!=Fecha ) || strlen(Buffer)!=6 );
|
||
|
||
break;
|
||
case 2:
|
||
// 1 99 999 XXXX
|
||
int Ref = ( Clientes2.Cod_Und_Vend_Ref - ((Clientes2.Cod_Und_Vend_Ref/10000)*10000) );
|
||
sprintf(Buffer, "%d", Ref);
|
||
do{
|
||
InputCadenaG_l( Buffer, 1, 4, 63, 57, PAR[5], CurrRow2_Clien-1);
|
||
|
||
Ref_b = atoi(Buffer);
|
||
}while( ( !Existe_Referencia( Ref_b ) || Ref_b == 0 ) && Ref_b != Ref );
|
||
// Este que viene ahora es un proceso cr<63>tico, la
|
||
// uni<6E>n de los distintos registros en uno solo.
|
||
Cod_b = ( Clientes2.Cod_Und_Vend_Ref/1000000000 );
|
||
// Ref_b = atoi(Buffer);
|
||
Und_b = ( ( Clientes2.Cod_Und_Vend_Ref/10000000 ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000)/100)*100 ) );
|
||
Vend_b = ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) - ( ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) / 1000) * 1000 ) );
|
||
|
||
Clientes2.Cod_Und_Vend_Ref = ( Cod_b * 1000000000 ) +
|
||
( Und_b * 10000000 ) +
|
||
( Vend_b * 10000 ) +
|
||
( Ref_b ) ;
|
||
|
||
if(Ref != Ref_b) {
|
||
/*if(!Ref_no_valid)*/ Actualizar_Stock( Ref, Und_b, Cod_b );
|
||
/*if(!Ref_no_valid)*/ Actualizar_Stock( Ref_b, (-1)*Und_b, Cod_b );
|
||
|
||
Actualizar_Ventas( Ref, (-1)*Und_b, Cod_b );
|
||
Actualizar_Ventas( Ref_b, Und_b, Cod_b );
|
||
|
||
}
|
||
break;
|
||
case 3:
|
||
/*
|
||
outtextxy( PAR[2].left+2, (PAR[2].up+2)+(CurrRow2_Clien-1)*12, Ref1.Concepto );
|
||
outtextxy( 15, 455, "Concepto. 15 digitos m<>ximo.");
|
||
*/ while( kbhit() ) getch();
|
||
break;
|
||
case 4:
|
||
// 1 XX 999 9999
|
||
int Und = ( ( Clientes2.Cod_Und_Vend_Ref/10000000 ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000)/100)*100 ) );
|
||
sprintf(Buffer, "%d", Und);
|
||
InputCadenaG_l( Buffer, 1, 2, 63, 57, PAR[7], CurrRow2_Clien-1);
|
||
// Este que viene ahora es un proceso cr<63>tico, la
|
||
// uni<6E>n de los distintos registros en uno solo.
|
||
Cod_b = ( Clientes2.Cod_Und_Vend_Ref/1000000000 );
|
||
Ref_b = ( Clientes2.Cod_Und_Vend_Ref - ((Clientes2.Cod_Und_Vend_Ref/10000)*10000) );
|
||
Und_b = atoi(Buffer);
|
||
Vend_b = ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) - ( ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) / 1000) * 1000 ) );
|
||
Clientes2.Cod_Und_Vend_Ref = ( Cod_b * 1000000000 ) +
|
||
( Und_b * 10000000 ) +
|
||
( Vend_b * 10000 ) +
|
||
( Ref_b ) ;
|
||
if(Und != Und_b) {
|
||
Actualizar_Stock( Ref_b, (-1)*( Und_b - Und), Cod_b );
|
||
|
||
Actualizar_Ventas( Ref_b, ( Und_b - Und), Cod_b );
|
||
}
|
||
|
||
|
||
break;
|
||
case 5:
|
||
int Vend = ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) - ( ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) / 1000) * 1000 ) );
|
||
sprintf(Buffer, "%d", Vend);
|
||
do{
|
||
InputCadenaG_l( Buffer, 1, 3, 63, 57, PAR[8], CurrRow2_Clien-1);
|
||
}while( Vend_Dir[atoi(Buffer)]==-1 );
|
||
|
||
Cod_b = ( Clientes2.Cod_Und_Vend_Ref/1000000000 );
|
||
Ref_b = ( Clientes2.Cod_Und_Vend_Ref - ((Clientes2.Cod_Und_Vend_Ref/10000)*10000) );
|
||
Und_b = ( ( Clientes2.Cod_Und_Vend_Ref/10000000 ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000)/100)*100 ) );
|
||
Vend_b = atoi(Buffer);
|
||
Clientes2.Cod_Und_Vend_Ref = ( Cod_b * 1000000000 ) +
|
||
( Und_b * 10000000 ) +
|
||
( Vend_b * 10000 ) +
|
||
( Ref_b ) ;
|
||
break;
|
||
case 6:
|
||
// X 99 999 9999
|
||
int Cod = ( Clientes2.Cod_Und_Vend_Ref/1000000000 );
|
||
sprintf( Buffer, "%d", Cod);
|
||
ungetch(8);
|
||
InputCadenaG_l( Buffer, 1, 1, 63, 57, PAR[9], CurrRow2_Clien-1);
|
||
|
||
Cod_b = (char)atoi(Buffer);
|
||
Ref_b = ( Clientes2.Cod_Und_Vend_Ref - ((Clientes2.Cod_Und_Vend_Ref/10000)*10000) );
|
||
Und_b = ( ( Clientes2.Cod_Und_Vend_Ref/10000000 ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000)/100)*100 ) );
|
||
Vend_b = ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) - ( ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) / 1000) * 1000 ) );
|
||
Clientes2.Cod_Und_Vend_Ref = ( Cod_b * 1000000000 ) +
|
||
( Und_b * 10000000 ) +
|
||
( Vend_b * 10000 ) +
|
||
( Ref_b ) ;
|
||
|
||
if(Cod != Cod_b) {
|
||
Actualizar_Stock( Ref_b, (Und_b), Cod);
|
||
Actualizar_Stock( Ref_b, (-1)*Und_b, Cod_b);
|
||
|
||
Actualizar_Ventas( Ref_b, (-1)*(Und_b), Cod);
|
||
Actualizar_Ventas( Ref_b, Und_b, Cod_b);
|
||
|
||
}
|
||
break;
|
||
default: while( kbhit() ) getch(); return;
|
||
}
|
||
|
||
PutLineClientes_Compras2();
|
||
/*<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>*/
|
||
/*<2A>*/ GetLineClientes_Compras2(); /*<2A>*/
|
||
/*<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>*/
|
||
PrintLineClientes_C(1);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
void Actualiza_Direccion_Compras(int which){
|
||
|
||
int i, LSC =sizeof(struct Clientes_inx_NContrato);
|
||
|
||
if ( which == SOLO_ESTA ) {
|
||
|
||
fseek(Clientes_NC, (long)LSC*(Clientes1.Address), SEEK_SET);
|
||
fwrite(&Clientes1_inx_NContrato, LSC,1, Clientes_NC);
|
||
|
||
}
|
||
|
||
if ( which == DESDE_CONTRATO_ACTUAL ) {
|
||
|
||
for ( i = (Clientes1.Address+1); i <= (Clientes1.Address/100)+99; i++ ){
|
||
|
||
fseek(Clientes_NC, (long)LSC*( i ), SEEK_SET);
|
||
fread(&Clientes1_inx_NContrato, LSC, 1, Clientes_NC);
|
||
|
||
Clientes1_inx_NContrato.Inicio++ ;
|
||
|
||
fseek(Clientes_NC, (long)LSC*( i ), SEEK_SET);
|
||
fwrite(&Clientes1_inx_NContrato, LSC, 1, Clientes_NC);
|
||
|
||
|
||
}
|
||
|
||
|
||
}
|
||
// Restauramos las direcciones.
|
||
fseek(Clientes_NC, (long)sizeof(struct Clientes_inx_NContrato)*(Clientes1.Address), SEEK_SET);
|
||
fread(&Clientes1_inx_NContrato, sizeof(struct Clientes_inx_NContrato),1, Clientes_NC);
|
||
|
||
|
||
|
||
}
|
||
|
||
int Obten_Direccion_Compras(int which){
|
||
|
||
int devolver = -1;
|
||
|
||
if ( which == FINAL ) {
|
||
|
||
fseek(Clientes_NC, (long)sizeof(struct Clientes_inx_NContrato)*( (Clientes1.Address/100)+99 ), SEEK_SET);
|
||
fread(&Clientes1_inx_NContrato, sizeof(struct Clientes_inx_NContrato),1, Clientes_NC);
|
||
|
||
devolver = Clientes1_inx_NContrato.Inicio + Clientes1_inx_NContrato.Records - 1;
|
||
|
||
}
|
||
|
||
// Restauramos las direcciones.
|
||
fseek(Clientes_NC, (long)sizeof(struct Clientes_inx_NContrato)*(Clientes1.Address), SEEK_SET);
|
||
fread(&Clientes1_inx_NContrato, sizeof(struct Clientes_inx_NContrato),1, Clientes_NC);
|
||
|
||
return devolver;
|
||
|
||
}
|
||
//<2F>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><DBB2><EFBFBD><EFBFBD>
|
||
|
||
void DeleteRecordClientes_C(void) {
|
||
|
||
unsigned int CurrRecord;
|
||
|
||
int LSC = sizeof(struct Clientes_compras);
|
||
|
||
CurrRecord = CurrTopLine_Clien + CurrRow2_Clien - 1;
|
||
|
||
if ( Comp_Clien_Records == 1 ) BEEP(); else {
|
||
|
||
Clientes1_inx_NContrato.Records -= 1;
|
||
Comp_Clien_Records--;
|
||
|
||
Actualiza_Direccion_Compras(SOLO_ESTA);
|
||
|
||
int Ref = ( Clientes2.Cod_Und_Vend_Ref - ((Clientes2.Cod_Und_Vend_Ref/10000)*10000) );
|
||
int Cod = ( Clientes2.Cod_Und_Vend_Ref/1000000000 );
|
||
int Und = ( ( Clientes2.Cod_Und_Vend_Ref/10000000 ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000)/100)*100 ) );
|
||
// int Vend = ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) - ( ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) / 1000) * 1000 ) );
|
||
|
||
Actualizar_Ventas( Ref, (-1)*Und, Cod );
|
||
Actualizar_Stock( Ref, Und, Cod );
|
||
|
||
unsigned int p =
|
||
CurrRecord +
|
||
Clientes1_inx_NContrato.Inicio +
|
||
Start_Comp_Clien - 1;
|
||
|
||
while( p <= ( Clientes1_inx_NContrato.Inicio + Clientes1_inx_NContrato.Records - 1) ) {
|
||
|
||
fseek(Clientes_C, (long)( LSC * ( p + 1 ) ), SEEK_SET);
|
||
fread(&Clientes2, LSC, 1, Clientes_C);
|
||
|
||
fseek(Clientes_C, (long)( LSC * p ), SEEK_SET);
|
||
fwrite(&Clientes2, LSC, 1, Clientes_C);
|
||
|
||
p++;
|
||
};
|
||
|
||
PrintWholeScreenClientes2();
|
||
if ( (CurrRecord - 1) == Comp_Clien_Records) CurrRow2_Clien--;
|
||
GetLineClientes_Compras2();
|
||
// PrintLineClientes_C(0);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
void AddRecordClientes_C(void){
|
||
|
||
int LSC = sizeof(struct Clientes_compras);
|
||
|
||
int CurrRecord = CurrTopLine_Clien + CurrRow2_Clien - 1;
|
||
|
||
if(CurrRecord < 80 ) {
|
||
|
||
long avance = Obten_Direccion_Compras(FINAL) + 1;
|
||
|
||
while( avance >= (CurrRecord +
|
||
Clientes1_inx_NContrato.Inicio +
|
||
Start_Comp_Clien ) )
|
||
{
|
||
|
||
fseek(Clientes_C, (long)( LSC * avance ), SEEK_SET);
|
||
fread(&Clientes2, LSC, 1, Clientes_C);
|
||
|
||
fseek(Clientes_C, (long)( LSC * (avance + 1) ), SEEK_SET);
|
||
fwrite(&Clientes2, LSC, 1, Clientes_C);
|
||
|
||
avance--;
|
||
};
|
||
|
||
Clientes1_inx_NContrato.Records ++;
|
||
Comp_Clien_Records++;
|
||
Actualiza_Direccion_Compras(SOLO_ESTA);
|
||
Actualiza_Direccion_Compras(DESDE_CONTRATO_ACTUAL);
|
||
|
||
Clientes2.Fecha.da_day = 0;
|
||
Clientes2.Fecha.da_mon = Fecha;
|
||
Clientes2.Cod_Und_Vend_Ref = 1000000000;
|
||
|
||
fseek(Clientes_C, (long)( LSC * ( CurrTopLine_Clien + CurrRow2_Clien + Start_Comp_Clien +
|
||
Clientes1_inx_NContrato.Inicio - 1) ), SEEK_SET);
|
||
fwrite(&Clientes2, LSC, 1, Clientes_C);
|
||
|
||
CurrRow2_Clien++;
|
||
if (CurrRow2_Clien>15) { CurrTopLine_Clien++; CurrRow2_Clien--; }
|
||
PrintWholeScreenClientes2();
|
||
GetLineClientes_Compras2();
|
||
//PrintLineClientes_C(0);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
void GetLineClientes_Compras2(void){
|
||
|
||
int LSC = sizeof(struct Clientes_compras);
|
||
|
||
long CurrRecord =
|
||
CurrTopLine_Clien +
|
||
CurrRow2_Clien - 1 +
|
||
Clientes1_inx_NContrato.Inicio +
|
||
Start_Comp_Clien;
|
||
|
||
fseek(Clientes_C, (long)( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca
|
||
fread(&Clientes2, LSC, 1, Clientes_C); // Y lee
|
||
|
||
BuscaReferencia(( Clientes2.Cod_Und_Vend_Ref - ((Clientes2.Cod_Und_Vend_Ref/10000)*10000) ));
|
||
|
||
}
|
||
|
||
|
||
void PutLineClientes_Compras2(void){
|
||
|
||
int LSC = sizeof(struct Clientes_compras);
|
||
|
||
long CurrRecord =
|
||
CurrTopLine_Clien +
|
||
CurrRow2_Clien - 1 +
|
||
Clientes1_inx_NContrato.Inicio +
|
||
Start_Comp_Clien;
|
||
|
||
fseek(Clientes_C, (long)( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca
|
||
fwrite(&Clientes2, LSC, 1, Clientes_C); // Y lee
|
||
|
||
}
|
||
|
||
|
||
|
||
void Imprimir_Clientes_C(void){
|
||
|
||
int Where_Ask = 1;
|
||
int fins_print= 0, key_print, bpush;
|
||
|
||
void far *ptr;
|
||
unsigned size;
|
||
struct boton pregunta[3];
|
||
|
||
size = imagesize(198, 138, 372, 257);
|
||
|
||
/* get byte size of image */
|
||
|
||
if ( (ptr = farmalloc(size)) != NULL) {
|
||
getimage(198, 138, 372, 257, ptr);
|
||
|
||
pregunta[0].up = 140; pregunta[0].down = 255;
|
||
pregunta[0].left= 200; pregunta[0].right= 370;
|
||
ImprimeBoton (1, ROJO, GRIS_C, BLANCO, pregunta[0]);
|
||
pregunta[0].up = 150; pregunta[0].down = 175;
|
||
pregunta[0].left= 210; pregunta[0].right= 360;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[0]);
|
||
pregunta[1].up = 185; pregunta[1].down = 210;
|
||
pregunta[1].left= 210; pregunta[1].right= 360;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[1]);
|
||
pregunta[2].up = 220; pregunta[2].down = 245;
|
||
pregunta[2].left= 210; pregunta[2].right= 360;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[2]);
|
||
Fuente(SMALL_FONT, 4);
|
||
} else {
|
||
Where_Ask = 0;
|
||
pregunta[0].up = 450; pregunta[0].down = 475;
|
||
pregunta[0].left= 5; pregunta[0].right= 152;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[0]);
|
||
pregunta[1].up = 450; pregunta[1].down = 475;
|
||
pregunta[1].left= 155; pregunta[1].right= 309;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[1]);
|
||
pregunta[2].up = 450; pregunta[2].down = 475;
|
||
pregunta[2].left= 312; pregunta[2].right= 549;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, pregunta[2]);
|
||
Fuente(SMALL_FONT, 4);
|
||
}
|
||
|
||
Letra_Boton
|
||
outtextxy(pregunta[0].left+2, pregunta[0].up+2, "F3 Factura Cliente");
|
||
outtextxy(pregunta[1].left+2, pregunta[1].up+2, "F2 Factura Empresa");
|
||
outtextxy(pregunta[2].left+2, pregunta[2].up+2, "F1 CANCELAR IMPRESION");
|
||
|
||
//<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><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
do{
|
||
|
||
if(raton!=0) activa_raton();
|
||
Espera_Tecla_o_Raton();
|
||
if(raton!=0) desactiva_raton();
|
||
|
||
if(kbhit()){
|
||
key_print = getch();
|
||
if( key_print == 0 ) {
|
||
switch( (key_print=getch()) ){
|
||
// F1 Cancelar
|
||
case 59:
|
||
fins_print = 1;
|
||
break;
|
||
// F3 Imprimir Ficha
|
||
case 61:
|
||
if(Where_Ask){
|
||
pregunta[0].up = 140; pregunta[0].down = 255;
|
||
pregunta[0].left= 200; pregunta[0].right= 370;
|
||
} else {
|
||
pregunta[0].up = 450; pregunta[0].down = 475;
|
||
pregunta[0].left= 5; pregunta[0].right= 549;
|
||
}
|
||
ImprimeBoton (1, GRIS_O, GRIS_C, BLANCO, pregunta[0]);
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if(Comprueba_Impresora()) {
|
||
Letra_Boton
|
||
if(Where_Ask){ outtextxy(210,150, "Imprimiendo.");
|
||
outtextxy(210,170, "Por Favor, espere...");
|
||
} else outtextxy(10,452, "Imprimiendo. Por Favor, espere...");
|
||
Imprime_Factura_C(Para_Cliente);
|
||
} else {
|
||
Letra_Boton
|
||
if(Where_Ask){ outtextxy(210,150, "Impresora no preparada.");
|
||
outtextxy(210,170, "Impresion Cancelada");
|
||
} else { outtextxy(10,452, "Impresora no preparada. Impresi<73>n Cancelada."); }
|
||
Espera_Tecla_o_Raton();
|
||
}
|
||
fins_print = 1;
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
break;
|
||
// F2 Imprimir lista r<>pida
|
||
case 60:
|
||
if(Where_Ask){
|
||
pregunta[0].up = 140; pregunta[0].down = 255;
|
||
pregunta[0].left= 200; pregunta[0].right= 370;
|
||
} else {
|
||
pregunta[0].up = 450; pregunta[0].down = 475;
|
||
pregunta[0].left= 5; pregunta[0].right= 549;
|
||
}
|
||
ImprimeBoton (1, GRIS_O, GRIS_C, BLANCO, pregunta[0]);
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if(Comprueba_Impresora()) {
|
||
Letra_Boton
|
||
if(Where_Ask){ outtextxy(210,150, "Imprimiendo.");
|
||
outtextxy(210,170, "Por Favor, espere...");
|
||
} else outtextxy(10,452, "Imprimiendo. Por Favor, espere...");
|
||
Imprime_Factura_C(Para_Empresa);
|
||
} else {
|
||
Letra_Boton
|
||
if(Where_Ask){ outtextxy(210,150, "Impresora no preparada.");
|
||
outtextxy(210,170, "Impresion Cancelada");
|
||
} else { outtextxy(10,452, "Impresora no preparada. Impresi<73>n Cancelada."); }
|
||
Espera_Tecla_o_Raton();
|
||
}
|
||
fins_print = 1;
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
break;
|
||
default:
|
||
fins_print = 1;
|
||
}
|
||
}
|
||
} else
|
||
if(raton!=0 && boton_izq==1 || boton_der==1) {
|
||
if( (bpush = CheckButon( 3, pregunta))>0 ) {
|
||
|
||
if(Where_Ask){
|
||
pregunta[0].up = 140; pregunta[0].down = 255;
|
||
pregunta[0].left= 200; pregunta[0].right= 370;
|
||
} else {
|
||
pregunta[0].up = 450; pregunta[0].down = 475;
|
||
pregunta[0].left= 5; pregunta[0].right= 549;
|
||
}
|
||
ImprimeBoton (1, GRIS_O, GRIS_C, BLANCO, pregunta[0]);
|
||
|
||
switch(bpush){
|
||
// Imprimir Ficha
|
||
case 1:
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if(Comprueba_Impresora()) {
|
||
Letra_Boton
|
||
if(Where_Ask){ outtextxy(210,150, "Imprimiendo.");
|
||
outtextxy(210,170, "Por Favor, espere...");
|
||
} else outtextxy(10,452, "Imprimiendo. Por Favor, espere...");
|
||
Imprime_Factura_C(Para_Cliente);
|
||
} else {
|
||
Letra_Boton
|
||
if(Where_Ask){ outtextxy(210,150, "Impresora no preparada.");
|
||
outtextxy(210,170, "Impresion Cancelada");
|
||
} else { outtextxy(10,452, "Impresora no preparada. Impresi<73>n Cancelada."); }
|
||
Espera_Tecla_o_Raton();
|
||
}
|
||
fins_print = 1;
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
break;
|
||
// Imprime Lista R<>pida
|
||
case 2:
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if(Comprueba_Impresora()) {
|
||
Letra_Boton
|
||
if(Where_Ask){ outtextxy(210,150, "Imprimiendo.");
|
||
outtextxy(210,170, "Por Favor, espere...");
|
||
} else outtextxy(10,452, "Imprimiendo. Por Favor, espere...");
|
||
Imprime_Factura_C(Para_Empresa);
|
||
} else {
|
||
Letra_Boton
|
||
if(Where_Ask){ outtextxy(210,150, "Impresora no preparada.");
|
||
outtextxy(210,170, "Impresion Cancelada");
|
||
} else { outtextxy(10,452, "Impresora no preparada. Impresi<73>n Cancelada."); }
|
||
Espera_Tecla_o_Raton();
|
||
}
|
||
fins_print = 1;
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
break;
|
||
// Cancelar
|
||
case 3:
|
||
fins_print=1;
|
||
break;
|
||
default:
|
||
fins_print = 1;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
}while(!fins_print);
|
||
|
||
//<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><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
if(Where_Ask == 1) {
|
||
putimage(198, 138, ptr, COPY_PUT);
|
||
farfree(ptr);
|
||
} else {
|
||
struct boton help;
|
||
help.up = 450; help.down = 475;
|
||
help.left = 5; help.right = 549;
|
||
ImprimeBoton (1, GRIS_C, GRIS_O, BLANCO, help);
|
||
}
|
||
|
||
Fuente(SMALL_FONT, 5);
|
||
}
|
||
|
||
void Imprime_Factura_C(int Para_quien){
|
||
char Buffer[80];
|
||
int old_CurrRow2, old_CurrTopLine;
|
||
int day, mon, Ref, Und, Cod, Vend;
|
||
unsigned long Suma_Total = 0, Suma_IVA = 0, Total;
|
||
|
||
old_CurrRow2 = CurrRow2_Clien;
|
||
old_CurrTopLine = CurrTopLine_Clien;
|
||
CurrTopLine_Clien = 1;
|
||
|
||
fprintf( stdprn, "\n\r");
|
||
fprintf( stdprn, "FACTURA PROTOTIPO N1JD(SV0001)\n\r");
|
||
fprintf( stdprn, "MENSAJE 001\n\r");
|
||
fprintf( stdprn, "DIRECCI<EFBFBD>N 001\n\r");
|
||
fprintf( stdprn, "TEL<EFBFBD>FONO 001, 002\n\r");
|
||
fprintf( stdprn, "MENSAJE 002\n\r");
|
||
fprintf( stdprn, "\n\r");
|
||
fprintf( stdprn, " Cliente: %03d", (Clientes1.CP-((Clientes1.CP/1000)*1000)) );
|
||
fprintf( stdprn, ".");
|
||
fprintf( stdprn, "%04d\n\r", Clientes1.NContrato);
|
||
fprintf( stdprn, " %s\n\r",Clientes1.Local);
|
||
fprintf( stdprn, " %s %s, %s\n\r", Clientes1.Apellido1, Clientes1.Apellido2, Clientes1.Nombre);
|
||
fprintf( stdprn, " %s, n<> %s\n\r", Clientes1.Calle2, Clientes1.Num2);
|
||
fprintf( stdprn, "\n\r");
|
||
fprintf( stdprn, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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");
|
||
fprintf( stdprn, "<EFBFBD> Fecha <20> Ref/C <20> Producto <20> IVA <20> Und <20> P.V.P <20> Total | Vend <20>\n\r");
|
||
|
||
for(CurrRow2_Clien = 1; (CurrTopLine_Clien + CurrRow2_Clien - 1) <= Comp_Clien_Records; CurrRow2_Clien++) {
|
||
|
||
GetLineClientes_Compras2();
|
||
|
||
// fprintf( stdprn, "<22> <20> <20> <20> <20> <20> <20> | <20>\n\r");
|
||
|
||
// X 99 999 9999
|
||
Cod = ( Clientes2.Cod_Und_Vend_Ref/1000000000L );
|
||
|
||
day= Clientes2.Fecha.da_day;
|
||
mon= Clientes2.Fecha.da_mon;
|
||
sprintf(Buffer, "%02d/%02d/%02d", day, mon, Clientes2.Fecha.da_year );
|
||
// 1 99 999 XXXX
|
||
Ref = ( Clientes2.Cod_Und_Vend_Ref - ((Clientes2.Cod_Und_Vend_Ref/10000)*10000) );
|
||
// 1 XX 999 9999
|
||
Und = ( ( Clientes2.Cod_Und_Vend_Ref/10000000L ) - ( ( (Clientes2.Cod_Und_Vend_Ref/10000000L)/100)*100 ) );
|
||
// 1 99 XXX 9999
|
||
Vend = ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) - ( ( ( Clientes2.Cod_Und_Vend_Ref/10000 ) / 1000) * 1000 ) );
|
||
|
||
Total = Und * Ref1.PVP;
|
||
|
||
if( Cod == 0 && Para_quien == Para_Empresa ) {
|
||
fprintf( stdprn, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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");
|
||
// fprintf( stdprn, "<22> % 6s <20> % 4d%1d <20> %-20s <20> % 3d <20> % 2d <20> % 5d <20> % 7ld | % 3d <20>\n\r", Buffer, Ref, Cod, Ref1.Concepto, Ref1.P2, Und, Ref1.PVP, Total, Vend);
|
||
fprintf( stdprn, "<EFBFBD> % 6s <20> % 4d%1d <20> %-20s <20> % 3d <20> % 2d <20> % 5d <20>", Buffer, Ref, Cod, Ref1.Concepto, Ref1.P2, Und, Ref1.PVP);
|
||
fprintf( stdprn, " % 7ld | % 3d <20>\n\r", Total, Vend);
|
||
Suma_Total += Total;
|
||
Suma_IVA += ( (Total * Ref1.P2) / 100 );
|
||
|
||
}
|
||
if( Cod != 0 ) {
|
||
fprintf( stdprn, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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");
|
||
// fprintf( stdprn, "<22> % 6s <20> % 4d%1d <20> %-20s <20> % 3d <20> % 2d <20> % 5d <20> % 7ld | % 3d <20>\n\r", Buffer, Ref, Cod, Ref1.Concepto, Ref1.P2, Und, Ref1.PVP, Total, Vend);
|
||
fprintf( stdprn, "<EFBFBD> % 6s <20> % 4d%1d <20> %-20s <20> % 3d <20> % 2d <20> % 5d <20>", Buffer, Ref, Cod, Ref1.Concepto, Ref1.P2, Und, Ref1.PVP);
|
||
fprintf( stdprn, " % 7ld | % 3d <20>\n\r", Total, Vend);
|
||
|
||
Suma_Total += Total;
|
||
Suma_IVA += ( (Total * Ref1.P2) / 100 );
|
||
}
|
||
|
||
if (Usa_Pc == 1)
|
||
pieslice(400, 265, (( ( 360 * ( ( CurrRow2_Clien * 100 ) / Comp_Clien_Records ) ) / 100 ) - 1), 0, 38);
|
||
|
||
|
||
}
|
||
|
||
fprintf( stdprn, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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");
|
||
fprintf( stdprn, " <20> Suma Total <20> %13ld <20>\n\r", Suma_Total ) ;
|
||
fprintf( stdprn, " <20> + I.V.A. <20> %13ld <20>\n\r", Suma_IVA ) ;
|
||
fprintf( stdprn, " <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>Ĵ\n\r") ;
|
||
fprintf( stdprn, " <20> TOTAL <20> %13ld <20>\n\r", (Suma_Total + Suma_IVA) ) ;
|
||
fprintf( stdprn, " <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>\n\r") ;
|
||
|
||
|
||
fputc(12, stdprn);
|
||
|
||
CurrRow2_Clien = old_CurrRow2;
|
||
CurrTopLine_Clien = old_CurrTopLine;
|
||
GetLineClientes_Compras2();
|
||
Fuente(SMALL_FONT, 5);
|
||
|
||
}
|
||
|
||
|
||
void CompruebaLineasClientes_C(void){
|
||
/* // Check una pulsacion sobre un campo, y se situa, si es posible
|
||
int inc=0;
|
||
|
||
if( (inc = CheckButon_S(10, 4, PAR))>0 && (inc <=23) ) { EditCursorClientes_C(1); CurrCol1_Clien = (inc); }
|
||
*/
|
||
}
|
||
|
||
//<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><> <20><>
|
||
//<2F><> Esta funci<63>n, que debe ser llamada antes de cada obtenci<63>n de datos <20><>
|
||
//<2F><> de Compras, devolvera las acotaciones necesarias, para el mes actual <20><>
|
||
//<2F><> dentro de la ficha respectiva. Si no existe ese mes en cuesti<74>n se <20><>
|
||
//<2F><> a<>adir<69>, ya indexado al fichero. <20><>
|
||
//<2F><> <20><>
|
||
//<2F><> Reestructuraci<63>n de la gesti<74>n interna del archivo de compras para <20><>
|
||
//<2F><> una mayor facilidad en su gesti<74>n... <20><>
|
||
//<2F><> <20><>
|
||
//<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>
|
||
void Acota_Contenido(void){
|
||
|
||
int Avance = 0, ok = 0;
|
||
int LSC = sizeof(struct Clientes_compras); long CurrRecord;
|
||
|
||
//Start_Comp_Clien = -1;
|
||
Comp_Clien_Records = 0;
|
||
// Ahora se buscar<61> que el mes, coincida con el mes elegido para la
|
||
// transacci<63>n, guardando la direcci<63>n del mes mas cercano.
|
||
|
||
fseek(Clientes_NC, (long)sizeof(struct Clientes_inx_NContrato)*(Clientes1.Address), SEEK_SET);
|
||
fread(&Clientes1_inx_NContrato, sizeof(struct Clientes_inx_NContrato),1, Clientes_NC);
|
||
/*
|
||
if(Clientes1_inx_NContrato.Records < 12){
|
||
fseek(Clientes_NC, (long)sizeof(struct Clientes_inx_NContrato)*(Clientes1.Address), SEEK_SET);
|
||
fwrite(&Clientes1_inx_NContrato, sizeof(struct Clientes_inx_NContrato),1, Clientes_NC);
|
||
}
|
||
*/
|
||
while(Avance < Clientes1_inx_NContrato.Records ){
|
||
|
||
CurrRecord = Clientes1_inx_NContrato.Inicio + Avance + 1;
|
||
|
||
fseek(Clientes_C, (long)( LSC * CurrRecord ) - LSC, SEEK_SET); // Se coloca
|
||
fread(&Clientes2, LSC, 1, Clientes_C); // Y lee
|
||
|
||
if( Clientes2.Fecha.da_mon == Fecha )
|
||
{
|
||
if( ok == 0) Start_Comp_Clien = Avance;
|
||
Comp_Clien_Records++;
|
||
ok = 1;
|
||
}
|
||
Avance++;
|
||
}
|
||
|
||
// Si no se encuentra el mes buscado,
|
||
|
||
if( ok == 1 ) return; else
|
||
{
|
||
Confirma("Error en direccionamiento","el archivo COMPRAS","debe estar corrupto.");
|
||
restorecrtmode();
|
||
exit(2);
|
||
}
|
||
|
||
}
|
||
|
||
|
||
int Viable_Apertura(void){
|
||
|
||
|
||
if( !file_exists("Clientes.DAT") || !file_exists("C_INDICE.DAT") ){
|
||
Confirma("Antes de iniciar el", "mantenimiento debe", "existir algun cliente" );
|
||
return (0);
|
||
}
|
||
|
||
return (1);
|
||
}
|
||
|
||
|
||
void Imprime_Todas_Facturas(int Para_quien, int Current_Date){
|
||
|
||
Fecha = Current_Date;
|
||
|
||
int tmp = CurrRow1_Clien, Ptotal;
|
||
Usa_Pc = 1;
|
||
|
||
oldCNI = -1;
|
||
|
||
setcolor(4);
|
||
setfillstyle(SOLID_FILL, 60);
|
||
|
||
if( !Viable_Apertura() ) return ;
|
||
|
||
Abre_Ficha_Clientes();
|
||
Abre_Ficha_Clientes_Ncontrato();
|
||
|
||
Abre_Ficha_Referencias();
|
||
Carga_Referencias();
|
||
|
||
if( ( Vend_Dir = (int *) malloc( sizeof(int)*1024 ) ) == NULL )
|
||
{
|
||
Confirma("Memoria insuficiente", "para crear tablas para", "Vend_Dir");
|
||
return ;
|
||
}
|
||
Abre_Ficha_Vendedores();
|
||
Carga_Todos_los_Vendedores();
|
||
|
||
|
||
CurrRow1_Clien = 1;
|
||
CurrTopLine_Clien1 = 1;
|
||
GetLineClientes();
|
||
Abre_Ficha_Clientes_Compras();
|
||
|
||
for(CurrRow1_Clien = 1; CurrRow1_Clien <= ( Clientes1_inx.Fin + 1); CurrRow1_Clien++){
|
||
|
||
GetLineClientes();
|
||
if( ( (Clientes1.Address)/100/*0*/ ) != oldCNI ){
|
||
oldCNI = ( (Clientes1.Address) / 100/*0*/ );
|
||
fclose(Clientes_C);
|
||
Abre_Ficha_Clientes_Compras();
|
||
}
|
||
Acota_Contenido();
|
||
|
||
// Porcentaje();
|
||
|
||
Displayado_de_Datos(Para_quien);
|
||
|
||
setcolor(4);
|
||
setfillstyle(SOLID_FILL, 60);
|
||
Imprime_Factura_C(Para_quien);
|
||
// Calculamos el porcentaje total realizado
|
||
// Si todo es el: ( Clientes1_inx.Fin + 1 ) es decir 100 %
|
||
// CurrRow1_Clien el el X %
|
||
// X = ( CurrRow1_Clien * 100 ) / ( Clientes1_inx.Fin + 1 )
|
||
|
||
// Si 285 es el 100 %
|
||
// x es el X anterior
|
||
// x = ( 285 * X ) / 100
|
||
Ptotal = ( ( 283 * ( ( CurrRow1_Clien * 100 ) / ( Clientes1_inx.Fin + 1 ) ) ) / 100 );
|
||
bar(167, 172, 167 + Ptotal, 182 );
|
||
|
||
Prepara_Porcentaje_Circular();
|
||
|
||
}
|
||
|
||
CurrRow1_Clien = tmp;
|
||
|
||
fclose(Clientes); // Fichero Clientes
|
||
fclose(Clientes_NC); // Fichero Clientes
|
||
fclose(Clientes_C); // Fichero Clientes
|
||
fclose(Ref); // Fichero Vendedores
|
||
|
||
|
||
if(Memory_ok==1) farfree(Addr); else free(Ref_inx_addr);
|
||
free(Vend_Dir);
|
||
|
||
Usa_Pc = 0;
|
||
}
|
||
|
||
void Displayado_de_Datos(int Para_quien){
|
||
char Buffer[80];
|
||
char mes[][11] = { " Enero", "Febrero", " Marzo",
|
||
" Abril", " Mayo", " Junio",
|
||
" Julio", " Agosto", "Septiemb",
|
||
"Octubre", "Noviemb", "Diciemb"
|
||
};
|
||
struct boton TMP;
|
||
TMP.up = 320; TMP.down = 380;
|
||
TMP.left = 165; TMP.right = 450;
|
||
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, TMP);
|
||
|
||
// Check[4].up = 290; Check[4].down = 310;
|
||
// Check[4].left = 260; Check[4].right = 350;
|
||
setcolor(4);
|
||
if(Para_quien==Para_Cliente)
|
||
sprintf( Buffer, "Imprimiendo mes: %s, para Cliente", mes[Fecha-1] );
|
||
else if(Para_quien==Para_Empresa)
|
||
sprintf( Buffer, "Imprimiendo mes: %s, para Empresa", mes[Fecha-1] );
|
||
else if(Para_quien==5)
|
||
sprintf( Buffer, "Buscando en %s, Los 12 mejores Clientes", mes[Fecha-1] );
|
||
|
||
|
||
outtextxy(167, 322, Buffer);
|
||
|
||
sprintf( Buffer, "Contrato n<> % 4d, y % 2d compras." , Clientes1.NContrato, Comp_Clien_Records);
|
||
outtextxy(167, 337, Buffer);
|
||
|
||
sprintf( Buffer, "> %s" , Clientes1.Local);
|
||
outtextxy(/*262*/167, 352, Buffer);
|
||
|
||
}
|
||
|
||
|
||
void Buscar_Cliente_Seccion_Compras(void){
|
||
|
||
struct boton *b_cc;
|
||
char Buffer[80];
|
||
|
||
int TFuente, f_busqueda = 0, Columna=1, key;
|
||
struct textsettingstype textinfo;
|
||
gettextsettings(&textinfo);
|
||
TFuente = textinfo.charsize;
|
||
void far *ptr;
|
||
unsigned size;
|
||
int Encontrado = 0;
|
||
|
||
size = imagesize(47, 224, 593, 271);
|
||
|
||
|
||
Clientes1_Buscar.NContrato = -1;
|
||
strcpy(Clientes1_Buscar.Local, "\0");
|
||
strcpy(Clientes1_Buscar.Nombre, "\0"); strcpy(Clientes1_Buscar.Apellido1, "\0");
|
||
Clientes1_Buscar.Telefono2 = -1;
|
||
|
||
|
||
if( (b_cc = (struct boton *)calloc( 10, sizeof( struct boton ) ) ) == NULL ) {
|
||
Confirma( "Imposible iniciar", "busqueda...", "MEMORIA INSUFICIENTE" );
|
||
return;
|
||
}
|
||
|
||
/* get byte size of image */
|
||
|
||
if ( (ptr = farmalloc(size)) == NULL) {
|
||
Confirma( "Imposible iniciar", "busqueda.._.", "MEMORIA INSUFICIENTE" );
|
||
free(b_cc);
|
||
return;
|
||
}
|
||
|
||
getimage(47, 224, 593, 271, ptr);
|
||
|
||
|
||
Barra_buscar_CC( b_cc );
|
||
|
||
|
||
// Prueba inicial...
|
||
do{
|
||
|
||
EditCursorClientes_CB(Columna, 0, b_cc, Clientes1_Buscar);
|
||
Espera_Tecla_o_Raton();
|
||
if(kbhit()){
|
||
EditCursorClientes_CB(Columna, 1, b_cc, Clientes1_Buscar);
|
||
key = getch();
|
||
if( key == 27 ) f_busqueda = 1;
|
||
if( isprint(key) || isspace(key) ) {
|
||
EditCursorClientes_CB(Columna, 0, b_cc, Clientes1_Buscar);
|
||
if(key!=13) ungetch(key);
|
||
Edit_Item_Clientes_CB(Columna, b_cc, &Clientes1_Buscar);
|
||
EditCursorClientes_CB(Columna, 0, b_cc, Clientes1_Buscar);
|
||
|
||
} else if( key == 0 ) {
|
||
switch( (key=getch()) ){
|
||
// Flecha Izquierda
|
||
|
||
case 75:
|
||
case 15:
|
||
{ Columna--; if ( Columna<1 ) Columna=4; }
|
||
break;
|
||
// Flecha Derecha
|
||
case 77:
|
||
case 9:
|
||
{ Columna++; if ( Columna>4 ) Columna=1; }
|
||
break;
|
||
// INICIO
|
||
case 71:
|
||
Columna = 1;
|
||
break;
|
||
// FIN
|
||
case 79:
|
||
Columna = 4;
|
||
break;
|
||
// Salir F1
|
||
case 59:
|
||
f_busqueda = 1;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
EditCursorClientes_CB(Columna, 0, b_cc, Clientes1_Buscar);
|
||
}
|
||
}
|
||
|
||
}while(!f_busqueda);
|
||
|
||
struct boton Temp;
|
||
|
||
if( strlen(Clientes1_Buscar.Local)!=0 ||
|
||
strlen(Clientes1_Buscar.Nombre)!=0 ||
|
||
Clientes1_Buscar.Telefono2 != -1 ||
|
||
Clientes1_Buscar.NContrato != -1 )
|
||
{ Comienzo_Busqueda = 0;
|
||
Encontrado = Sigue_Buscando_CB( Clientes1_Buscar );
|
||
} else {
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, Comunes[7]);
|
||
}
|
||
|
||
putimage(47, 224, ptr, 0);
|
||
farfree(ptr);
|
||
free(b_cc);
|
||
|
||
|
||
Fuente(SMALL_FONT, TFuente);
|
||
|
||
if( Encontrado ) {
|
||
|
||
Temp.up = Comunes[7].up+4; Temp.down = Comunes[7].down-4;
|
||
Temp.left = Comunes[7].left+4; Temp.right = Comunes[7].right-4;
|
||
ImprimeBoton (1, ROJO, GRIS_O, BLANCO, Temp);
|
||
|
||
textxy( Temp.left + 2, Temp.up /*+ 2*/, " Buscar");
|
||
textxy( Temp.left + 2, Temp.up /*+ 2*/+10, " otra ");
|
||
textxy( Temp.left + 2, Temp.up /*+ 2*/+20, " F3 ");
|
||
|
||
if(Buscador==0)
|
||
PrintWholeScreenClientes1();
|
||
GetLineClientes();
|
||
|
||
if( ( (Clientes1.Address)/100/*0*/ ) != oldCNI ){
|
||
oldCNI = ( (Clientes1.Address) / 100/*0*/ );
|
||
fclose(Clientes_C);
|
||
Abre_Ficha_Clientes_Compras();
|
||
}
|
||
if(Buscador==0){
|
||
Acota_Contenido();
|
||
PrintWholeScreenClientes2();
|
||
GetLineClientes_Compras2();
|
||
|
||
//<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><EFBFBD>
|
||
ImprimeBoton (1, NEGRO, GRIS_O, BLANCO, PAR[11]);
|
||
setcolor(63);
|
||
sprintf(Buffer, "N<EFBFBD> de Contrato: % 4d Suma Total:", Clientes1.NContrato);
|
||
outtextxy(20, 431, Buffer);
|
||
//<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><EFBFBD>
|
||
} else {
|
||
Fuente(SMALL_FONT, 4);
|
||
PrintWholeScreenClientes();
|
||
Fuente(SMALL_FONT, 5);
|
||
PrintLineClientes(0);
|
||
}
|
||
|
||
} else {
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, Comunes[7]);
|
||
GetLineClientes();
|
||
}
|
||
|
||
}
|
||
|
||
void Barra_buscar_CC(struct boton *Tmp){
|
||
|
||
Fuente(SMALL_FONT, 4);
|
||
|
||
// BARRA DE BUSQUEDA...
|
||
Tmp[0].up = 225; Tmp[0].down = 270;
|
||
Tmp[0].left = 48; Tmp[0].right = 592;
|
||
ImprimeBoton (1, GRIS_C, GRIS_O, BLANCO, Tmp[0]);
|
||
|
||
Tmp[1].up = 228; Tmp[1].down = 268;
|
||
Tmp[1].left = 50; Tmp[1].right = 590;
|
||
ImprimeBoton (1, GRIS_C, BLANCO, GRIS_O, Tmp[1]);
|
||
|
||
Tmp[0].up = 248; Tmp[0].down = 263;
|
||
Tmp[0].left = 54; Tmp[0].right = 126;
|
||
ImprimeBoton (1, NEGRO, BLANCO, GRIS_O, Tmp[0]);
|
||
|
||
Tmp[1].up = 248; Tmp[1].down = 263;
|
||
Tmp[1].left = 130; Tmp[1].right = 325;
|
||
ImprimeBoton (1, NEGRO, BLANCO, GRIS_O, Tmp[1]);
|
||
|
||
Tmp[2].up = 248; Tmp[2].down = 263;
|
||
Tmp[2].left = 329; Tmp[2].right = 440;
|
||
ImprimeBoton (1, NEGRO, BLANCO, GRIS_O, Tmp[2]);
|
||
|
||
Tmp[3].up = 248; Tmp[3].down = 263;
|
||
Tmp[3].left = 444; Tmp[3].right = 586;
|
||
ImprimeBoton (1, NEGRO, BLANCO, GRIS_O, Tmp[3]);
|
||
|
||
|
||
textxy( 52, 230, " N<> Contrato | Local | Nombre | Tel<65>fono" );
|
||
|
||
|
||
}
|
||
|
||
|
||
void EditCursorClientes_CB(int Columna, int ShowHide, struct boton *Tmp, struct Clientes Clientes1_Buscar) {
|
||
char Buffer[80];
|
||
|
||
setcolor(GRIS_C);
|
||
setfillstyle(SOLID_FILL, GRIS_C);
|
||
bar(10, 455, 545, 473);
|
||
|
||
if(SWAP_CLIEN==1) {
|
||
if (!ShowHide) {
|
||
setcolor(63);
|
||
setfillstyle(SOLID_FILL, 63);
|
||
bar((Tmp[Columna-1].left+2), Tmp[Columna-1].up+2, Tmp[Columna-1].right-2, Tmp[Columna-1].down - 2);
|
||
setcolor(0);
|
||
} else {
|
||
setcolor(0);
|
||
setfillstyle(SOLID_FILL, 0);
|
||
bar((Tmp[Columna-1].left+2), Tmp[Columna-1].up+2, Tmp[Columna-1].right-2, Tmp[Columna-1].down - 2);
|
||
Texto_Normal
|
||
}
|
||
|
||
|
||
switch(Columna) {
|
||
case 1: sprintf(Buffer, "%d", Clientes1_Buscar.NContrato);
|
||
outtextxy( Tmp[0].left+2, Tmp[0].up+2, Buffer);
|
||
outtextxy( 15, 455, "Buscar --> n<> Contrato xxxx.");
|
||
break;
|
||
case 2: outtextxy( Tmp[1].left+2, Tmp[1].up+2, Clientes1_Buscar.Local );
|
||
outtextxy( 15, 455, "Buscar --> Nombre del Local.");
|
||
break;
|
||
case 3: sprintf(Buffer, "%s %s", Clientes1_Buscar.Nombre, Clientes1_Buscar.Apellido1);
|
||
Buffer[15] = '\0';
|
||
outtextxy( Tmp[2].left+2, Tmp[2].up+2, Buffer );
|
||
outtextxy( 15, 455, "Buscar --> Nombre del Propietario.");
|
||
break;
|
||
case 4: sprintf(Buffer, "%12ld", Clientes1_Buscar.Telefono2);
|
||
outtextxy( Tmp[3].left+2, Tmp[3].up+2, Buffer );
|
||
outtextxy( 15, 455, "Buscar --> Tel<65>fono del Local.");
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
void Edit_Item_Clientes_CB(int Columna, struct boton *Tmp, struct Clientes *Clientes1_Buscar){
|
||
char Buffer[80];
|
||
|
||
setcolor(0);
|
||
setfillstyle(SOLID_FILL, 0);
|
||
bar((Tmp[0].left+2), Tmp[0].up+2, Tmp[0].right-2, Tmp[0].down - 2);
|
||
bar((Tmp[1].left+2), Tmp[1].up+2, Tmp[1].right-2, Tmp[1].down - 2);
|
||
bar((Tmp[2].left+2), Tmp[2].up+2, Tmp[2].right-2, Tmp[2].down - 2);
|
||
bar((Tmp[3].left+2), Tmp[3].up+2, Tmp[3].right-2, Tmp[3].down - 2);
|
||
|
||
switch(Columna) {
|
||
case 1: // N<> de Contrato
|
||
sprintf(Buffer, "%d", Clientes1_Buscar -> NContrato);
|
||
do{
|
||
InputCadenaG( Buffer, 1, 4, 63, 57, Tmp[0]);
|
||
}while( Clientes1_inx.Ncontrato_ocupado_SN[atoi(Buffer)]!=1);
|
||
Clientes1_Buscar -> NContrato = atoi(Buffer);
|
||
strcpy( Clientes1_Buscar -> Local, "\0" );
|
||
strcpy( Clientes1_Buscar -> Nombre, "\0" );
|
||
Clientes1_Buscar -> Telefono2 = -1;
|
||
break;
|
||
case 2: // Local
|
||
InputCadenaG( Clientes1_Buscar -> Local, 0, 30, 63, 57, Tmp[1]);
|
||
Clientes1_Buscar -> NContrato = -1;
|
||
strcpy( Clientes1_Buscar -> Nombre, "\0" );
|
||
Clientes1_Buscar -> Telefono2 = -1;
|
||
|
||
break;
|
||
case 3: // Nombre
|
||
InputCadenaG( Clientes1_Buscar -> Nombre, 0, 15, 63, 57, Tmp[2]);
|
||
Clientes1_Buscar -> NContrato = -1;
|
||
strcpy( Clientes1_Buscar -> Local, "\0" );
|
||
Clientes1_Buscar -> Telefono2 = -1;
|
||
break;
|
||
case 4: // Tel<65>fono
|
||
sprintf(Buffer, "%ld", Clientes1_Buscar -> Telefono2);
|
||
InputCadenaG( Buffer, 1, 9, 63, 57, Tmp[3]);
|
||
Clientes1_Buscar -> Telefono2 = atol(Buffer);
|
||
Clientes1_Buscar -> NContrato = -1;
|
||
strcpy( Clientes1_Buscar -> Local, "\0" );
|
||
strcpy( Clientes1_Buscar -> Nombre, "\0" );
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
int Sigue_Buscando_CB(struct Clientes Clientes1_Buscar){
|
||
|
||
int LSJ = sizeof(struct JD);
|
||
int LSI = sizeof(struct Clientes_inx);
|
||
int LSC = sizeof(struct Clientes);
|
||
int ok = 0, CurrRecord;
|
||
char Buffer[80], Buffer2[80], Buffer3[80];
|
||
int oldCTL= CurrTopLine_Clien1;
|
||
int oldCR= CurrRow1_Clien;
|
||
|
||
if( Comienzo_Busqueda == 0 ) {
|
||
CurrTopLine_Clien1 = 1;
|
||
CurrRow1_Clien = 1;
|
||
}
|
||
|
||
|
||
do{
|
||
|
||
CurrRecord = CurrTopLine_Clien1 + CurrRow1_Clien - 1;
|
||
|
||
fseek(Clientes, (long)LSJ + LSI + ( LSC * CurrRecord ) - LSC, SEEK_SET);
|
||
fread(&Clientes1, LSC, 1, Clientes);
|
||
|
||
//
|
||
if ( Clientes1_Buscar.NContrato != -1 ) {
|
||
// Compara el n<> de contrato
|
||
if ( Clientes1_Buscar.NContrato == Clientes1.NContrato ) ok = 1;
|
||
CurrCol1_Clien = 1;
|
||
|
||
} else
|
||
if ( strlen(Clientes1_Buscar.Local) != 0 ) {
|
||
// Compara la cadena de Local ( MAYUSCULAS = minusculas )
|
||
strncpy( Buffer, Clientes1.Local, strlen(Clientes1_Buscar.Local) );
|
||
Buffer[strlen(Clientes1_Buscar.Local)] = '\0';
|
||
if ( strcmpi(Clientes1_Buscar.Local, Buffer ) == 0 ) ok = 1;
|
||
CurrCol1_Clien = 1;
|
||
|
||
} else
|
||
if ( strlen(Clientes1_Buscar.Nombre) != 0 ) {
|
||
// Compara la cadena de Nombre ( MAYUSCULAS = minusculas )
|
||
strncpy( Buffer, Clientes1.Nombre, strlen(Clientes1_Buscar.Nombre) );
|
||
Buffer[strlen(Clientes1_Buscar.Nombre)] = '\0';
|
||
if ( strcmpi(Clientes1_Buscar.Nombre, Buffer ) == 0 ) ok = 1;
|
||
CurrCol1_Clien = 2;
|
||
|
||
} else
|
||
if ( Clientes1_Buscar.Telefono2 != -1 ) {
|
||
// Compara el tel<65>fono
|
||
sprintf(Buffer2, "%ld", Clientes1_Buscar.Telefono2);
|
||
sprintf(Buffer3, "%ld", Clientes1.Telefono2);
|
||
|
||
strncpy( Buffer, Buffer3, strlen(Buffer2) );
|
||
Buffer[strlen(Buffer2)] = '\0';
|
||
if ( strcmpi(Buffer2, Buffer ) == 0 ) ok = 1;
|
||
CurrCol1_Clien = 3;
|
||
|
||
}
|
||
//
|
||
if( ok != 1 ) CurrTopLine_Clien1++ ;
|
||
}while(!ok && (CurrRecord-1)<= Clientes1_inx.Fin );
|
||
|
||
|
||
if ( ok == 0 ) {
|
||
|
||
CurrTopLine_Clien1 = oldCTL;
|
||
CurrRow1_Clien = oldCR;
|
||
|
||
Se_Puede_Buscar = 0;
|
||
Confirma("No se encontr<74>", "equivalencia...", "");
|
||
Comienzo_Busqueda = 0;
|
||
return NO_ENCONTRADO;
|
||
} else {
|
||
Se_Puede_Buscar = 1;
|
||
return ENCONTRADO;
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|