campo-sirio/cg/cg3300.h

303 lines
6.9 KiB
C++
Executable File

// cg3300.h
enum stampe {
clienti=1,
fornitori=2,
modulo101=3,
modulo102=4,
entrambi=5
};
class desc_campo : public TObject
{
public:
int _riga;
TString _formato;
desc_campo() : _riga(0), _formato("") {}
virtual ~desc_campo() {}
};
class Array_desc_campi : public TObject
{
TArray _campi; // Array di campi e stringhe di formato
int _passo; // Numero di righe tra le righe dettaglio
int _righe_modulo; // Numero di righe totali del modulo
public:
const desc_campo& campi(int i) { return (const desc_campo&) _campi[i]; }
int riga (int i) { return ((const desc_campo&)_campi[i])._riga; }
const char * formato (int i)
{ return ((desc_campo&)_campi[i])._formato; }
void add (int, const char*);
void leggi_modulo (const char *, const char *);
const int passo() { return _passo; }
const int righe_modulo () { return _righe_modulo; }
Array_desc_campi() {};
virtual ~Array_desc_campi() {};
};
class Record_B {
int esc;
real impesc;
real ivaesc;
real tot;
public:
void compila (TLocalisamfile *);
void azzera();
void somma();
real tot_real() { return tot; }
int esc_int() { return esc; }
real impesc_real() { return impesc; }
real ivaesc_real() { return ivaesc; }
const char * tot_str() { return tot.string("@@@@@@@@@@@"); }
// const char * esc_str() { return esc.string("@@@@@@@@@@@"); }
const char * impesc_str() { return impesc.string("@@@@@@@@@@@"); }
const char * ivaesc_str() { return ivaesc.string("@@@@@@@@@@@"); }
Record_B() : esc(0), impesc(0.00), ivaesc(0.00), tot(0.00) {};
virtual ~Record_B () {};
};
struct alleg_sort {
long codditta_dic;
char tipopers_dic [2];
char paiva_dic [12];
char cognome_dic [31];
char nome_dic [21];
char ragsoc_dic[51];
// char datana_dic[11];
TDate datana_dic;
char sesso_dic [2];
char comunena_dic [51];
char provna_dic [6];
char viafis_dic[36]; // via + numero civico
char comunefis_dic [51];
char provfis_dic [6];
char attivita_dic [51];
char codatt_dic [6];
int natgiu_dic;
int anno;
char codatt_dett [6];
char tipopers_dett [2];
long codcf_dett ;
char ragsoc_dett [51];
char cognome_dett [31];
char nome_dett [21];
char via_dett [36];
char comune_dett [51];
char prov_dett [6];
char statopaiva_dett [2];
char paiva_dett [12];
bool immesso;
real impesc;
real ivaesc;
real niesc;
real e8esc;
int ndocesc;
real impesp;
real ivaesp;
real niesp;
real e8esp;
int ndocesp;
real prog101102;
real tot_rigac;
real tot_rigap;
};
class SortRecord {
TLocalisamfile * _clifo;
TLocalisamfile * _comuni;
TLocalisamfile * _anagfis;
TLocalisamfile * _anaggiu;
TLocalisamfile * _anag;
TTable * _attiv;
TTable * _tpd;
struct alleg_sort * _all;
protected:
TRectype& look_com(const char *);
long cerca_codice_all(TString tipo, long codcf) ;
const char * decodifica_desc_att (TString & codatt);
bool corrispettivo (const char * tipodoc);
public:
void azzera_struttura();
bool fill_dati_anag_dic (TLocalisamfile *);
const char * fill_dati_dettaglio (const char * tipo, long codcf);
const char * Strutt_str() { return (const char *) _all; }
struct alleg_sort * Strutt() { return _all; }
void compila(TLocalisamfile *);
void somma (TLocalisamfile *, stampe);
real importo() { return _all->impesc; }
int RecSize () { return sizeof(struct alleg_sort); }
long codcf_dett() { return _all->codcf_dett; }
const real& Impesc() { return _all->impesc; }
SortRecord();
~SortRecord();
};
struct Totali {
// Totali anno corrente
real _tot_tot_rigac;
int _tot_esc;
real _tot_impesc;
real _tot_ivaesc;
real _tot_niesc;
real _tot_e8esc;
// Totali anno precedente
real _tot_tot_rigap;
int _tot_esp;
real _tot_impesp;
real _tot_ivaesp;
real _tot_niesp;
real _tot_e8esp;
// Riporti
real _rip_tot_riga;
int _rip_tot_es;
real _rip_tot_impes;
real _rip_tot_ivaes;
real _rip_tot_nies;
real _rip_tot_e8es;
real _tot_col_101102;
public:
void azzera_totali();
void incrementa_totali(struct alleg_sort*, stampe);
void compila_riporti();
const real& TotTotRigac() { return _tot_tot_rigac; }
const int TotEsc() { return _tot_esc; }
const real& TotImpesc() { return _tot_impesc; }
const real& TotIvaesc() { return _tot_ivaesc; }
const real& TotNiesc() { return _tot_niesc; }
const real& TotE8esc() { return _tot_e8esc; }
const real& TotTotRigap() { return _tot_tot_rigap; }
const int TotEsp() { return _tot_esp; }
const real& TotImpesp() { return _tot_impesp; }
const real& TotIvaesp() { return _tot_ivaesp; }
const real& TotNiesp() { return _tot_niesp; }
const real& TotE8esp() { return _tot_e8esp; }
const real& RipTotTotRiga() { return _rip_tot_riga; }
const int RipTotEs() { return _rip_tot_es; }
const real& RipTotImpes() { return _rip_tot_impes; }
const real& RipTotIvaes() { return _rip_tot_ivaes; }
const real& RipTotNies() { return _rip_tot_nies; }
const real& RipTotE8es() { return _rip_tot_e8es; }
};
enum modi_stampa {
modulo=1,
controllo=2,
dischetto=3
};
enum posizioni {
PAIVA_DIC = 0,
PAG_NUM,
COGNOME_DIC,
NOME_DIC ,
GG_NA ,
MM_NA ,
AA_NA ,
MASCHIO,
FEMMINA,
COMUNE_NA,
PROV_NA ,
IND_FIS ,
COMUNE_FIS,
PROV_FIS ,
PAIVA_FIS,
ATT_FIS ,
CODATT_FIS ,
RAGSOC_DIC ,
NAT_GIU ,
IND_GIU ,
COMUNE_GIU ,
PROV_GIU ,
PAIVA_GIU,
ATT_GIU ,
CODATT_GIU ,
NUM_PAG_TOT,
NUM_REC,
PROG_DETT,
COG_DETT,
NOM_DETT,
VIA_DETT,
COM_DETT,
PRO_DETT,
PAIVA_DETT,
ESC_DETT,
SEGNO_IMPESC,
IMPESC_DETT,
SEGNO_IVAESC,
IVAESC_DETT,
SEGNO_NIESC,
NIESC_DETT,
SEGNO_E8ESC,
E8ESC_DETT,
SEGNO_TOTC,
TOTC_DETT,
CASELLA_PAIVA,
ESP_DETT,
SEGNO_IMPESP,
IMPESP_DETT,
SEGNO_IVAESP,
IVAESP_DETT,
SEGNO_NIESP,
NIESP_DETT,
SEGNO_E8ESP,
E8ESP_DETT,
SEGNO_TOTP,
TOTP_DETT,
RECB_ESC,
RECB_IMPESP,
RECB_IVAESC,
RECB_SEGNO_TOT,
RECB_TOT,
RIP_ESC,
RIP_SEGNO_IMPESP,
RIP_IMPESP,
RIP_SEGNO_IVAESP,
RIP_IVAESP,
RIP_SEGNO_NIESP,
RIP_NIESP,
RIP_SEGNO_E8ESP,
RIP_E8ESP,
RIP_SEGNO_TOTALE,
RIP_TOTALE,
TOT_ESC,
TOT_SEGNO_IMPESP,
TOT_IMPESP,
TOT_SEGNO_IVAESP,
TOT_IVAESP,
TOT_SEGNO_NIESP,
TOT_NIESP,
TOT_SEGNO_E8ESP,
TOT_E8ESP,
TOT_SEGNO_TOTALE,
TOT_TOTALE
};