SV/SV_CLIE2.CPP
2021-09-08 21:43:28 +02:00

2151 lines
65 KiB
C++
Raw Permalink Blame History

#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;
}
}