Correzioni al libro unico

git-svn-id: svn://10.65.10.50/trunk@904 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1995-01-24 15:47:46 +00:00
parent caef648b65
commit ffc9b4f8a5
3 changed files with 292 additions and 70 deletions

View File

@ -7,6 +7,8 @@
#include <progind.h>
#include <nditte.h>
#include <anagr.h>
#include <comuni.h>
#include "ba3.h"
#include "ba3600.h"
@ -41,18 +43,22 @@ class BA3600_application : public TPrintapp
TTable* _tab_lbu;
TTable* _tab_reg;
TLocalisamfile* _nditte;
TLocalisamfile* _anag;
TLocalisamfile* _comuni;
TSort* _sort;
TProgind* _prog;
ind_lib* _lib;
const char* _buff;
TDate _datastampa;
int _tipo_stampa, _meseda, _mesea;
int _tipo_stampa, _meseda, _mesea, _mese, _meseprec;
long _anno, _numini_paglib, _numfin_paglib, _numini_pagut, _numfin_pagut;
long _codditta, _pag_fin, _num_riga, _nfin_plib_prec;
TString _cod_lib, _rag_soc, _cod_reg, _descrizione, _cod_vidimaz;
TString _cod_lib_stampa, _stamp_bollato_str;
bool _stamp_bollato, _pag_ann, _pag_fuori_sequenza;
long _codditta, _pag_fin, _num_riga, _nfin_plib_prec,_codana_intesta,_codana_ditta;
TString _cod_lib, _cod_lib_su, _rag_soc, _cod_reg, _descrizione, _cod_vidimaz;
TString _cod_lib_stampa, _stamp_bollato_str, _desc_cod_lib,_desc_cod_lib_su;
char _tipo_intesta,_tipoa_ditta;
bool _stamp_bollato, _pag_ann, _pag_fuori_sequenza,_stampa_intesta,_stampa_ind;
TString _ind_dta,_civ_dta,_cap_dta,_com_dta,_prov_dta;
public:
@ -71,11 +77,17 @@ public:
void crea_sort();
bool preprocess_prova(int);
bool preprocess_bollato();
void crea_intestazione();
void crea_intestazione_prova();
void crea_intestazione_bollato();
const char* ragsoc_ditta(long);
const char* descrizione_codreg(TString&);
void setta_righe_prova();
void setta_righe_bollato();
void dati_libro_unico();
void intestatario(TString&,TString&,TString&,TString&,TString&,TString&,TString&,TString&);
void compatta_ragsoc(TString&);
void descrizione();
void dati_anagrafici_ditta(TString&,TString&,TString&,TString&,TString&);
BA3600_application() {}
};
@ -194,6 +206,82 @@ void BA3600_application::crea_sort()
} //di quel mese sono gia stati stampati
} //su bollato (flag = TRUE).
void BA3600_application::dati_libro_unico()
{
TTable lbu ("%LBU");
TString dep;
lbu.zero();
dep = format ("%4d", _anno);
dep << format ("%-3s", (const char*) _cod_lib);
lbu.put("CODTAB", (const char*) dep);
if (lbu.read(_isequal) == NOERR)
{
_stampa_intesta = lbu.get_bool("B0");
_stampa_ind = lbu.get_bool("B1");
_tipo_intesta = lbu.get_char("S2");
_codana_intesta = lbu.get_long("I4");
_desc_cod_lib = lbu.get ("S2");
}
}
void BA3600_application::descrizione()
{
TTable lbu ("%LBU");
TString dep;
lbu.zero();
dep = format ("%4d", _anno);
dep << format ("%-3s", (const char*) _cod_lib_su);
lbu.put("CODTAB", (const char*) dep);
if (lbu.read(_isequal) == NOERR)
_desc_cod_lib_su = lbu.get ("S2");
}
void BA3600_application::intestatario(TString& cofi,TString& paiv,TString& ragsoc,TString& ind,
TString& civ,TString& cap,TString& com,TString& prov)
{
TString codcom;
_anag->setkey(1);
_anag->zero();
_anag->put(ANA_TIPOA, _tipo_intesta);
_anag->put(ANA_CODANAGR, _codana_intesta);
if (_anag->read(_isequal) == NOERR)
{
cofi = _anag->get(ANA_COFI);
paiv = _anag->get(ANA_PAIV);
codcom = _anag->get(ANA_COMRF);
ragsoc = _anag->get(ANA_RAGSOC);
if (codcom != "")
{
ind = _anag->get(ANA_INDRF);
civ = _anag->get(ANA_CIVRF);
cap = _anag->get(ANA_CAPRF);
}
else
{
codcom = _anag->get(ANA_COMRES);
ind = _anag->get(ANA_INDRES);
civ = _anag->get(ANA_CIVRES);
cap = _anag->get(ANA_CAPRES);
}
}
_comuni->setkey(1);
_comuni->zero();
_comuni->put(COM_COM, codcom);
if (_comuni->read(_isequal) == NOERR)
{
com = _comuni->get(COM_DENCOM);
prov = _comuni->get(COM_PROVCOM);
}
}
bool BA3600_application::set_print(int)
{
KEY tasto;
@ -215,17 +303,24 @@ bool BA3600_application::set_print(int)
else if (_tipo_stampa == 2)
{
_cod_lib = _msk->get(F_LIBRO_UNICO2);
_cod_lib_su = _msk->get(F_CODLIB_STAMPA);
_mesea = _msk->get_int(F_STAMPA_MESE);
_anno = _msk->get_long(F_STAMPA_ANNO);
_cod_lib_stampa = _msk->get(F_CODLIB_STAMPA);
_pag_fin = _msk->get_long(F_PAGFINALE);
}
_meseprec = 0;
_pag_fuori_sequenza = FALSE;
dati_libro_unico();
crea_sort();
crea_intestazione();
if (_tipo_stampa == 2)
crea_intestazione_bollato();
return TRUE;
}
@ -267,10 +362,12 @@ bool BA3600_application::preprocess_page(int file, int counter)
{
lib = (struct ind_lib*) _buff;
_mese = atoi(lib->mese);
_numini_paglib = atoi(lib->nini_plib);
_numfin_paglib = lib->nfin_plib;
_codditta = lib->codditta;
_rag_soc = ragsoc_ditta(_codditta);
dati_anagrafici_ditta(_ind_dta,_civ_dta,_cap_dta,_com_dta,_prov_dta);
_cod_reg = lib->cod_reg;
_descrizione = descrizione_codreg(_cod_reg);
_cod_vidimaz = lib->cod_vid;
@ -287,12 +384,18 @@ bool BA3600_application::preprocess_page(int file, int counter)
if (counter)
{
nini_plib = _numini_paglib - 1;
if (_nfin_plib_prec != nini_plib)
_pag_fuori_sequenza = TRUE;
else
_pag_fuori_sequenza = FALSE;
if (_mese != _meseprec)
printer().formfeed();
}
_meseprec = _mese;
_nfin_plib_prec = _numfin_paglib;
return TRUE;
@ -338,7 +441,9 @@ void BA3600_application::setta_righe_prova()
set_row (i, "@111g#5d", &_numini_pagut);
set_row (i, "@117g#5d", &_numfin_pagut);
set_row (i, "@124g#5d", &_num_riga);
set_row (i,"@130g#t", &_stamp_bollato_str);
set_row (i++,"@130g#t", &_stamp_bollato_str);
if (_stampa_ind)
set_row (i ,"@27g#t #t #t #t #t", &_ind_dta, &_civ_dta, &_cap_dta, &_com_dta, &_prov_dta);
}
void BA3600_application::setta_righe_bollato()
@ -371,7 +476,9 @@ void BA3600_application::setta_righe_bollato()
set_row (i,"@111g#5d", &_numini_pagut);
set_row (i,"@117g#5d", &_numfin_pagut);
set_row (i,"@124g#5d", &_num_riga);
set_row (i,"@130g#t", &_stamp_bollato_str);
set_row (i++,"@130g#t", &_stamp_bollato_str);
if (_stampa_ind)
set_row (i ,"@27g#t #t #t #t #t", &_ind_dta, &_civ_dta, &_cap_dta, &_com_dta, &_prov_dta);
}
print_action BA3600_application::postprocess_page(int file, int counter)
@ -392,9 +499,52 @@ const char* BA3600_application::ragsoc_ditta(long codditta)
if (nditte.bad())
nditte.zero();
tmp = nditte.get(NDT_RAGSOC);
_tipoa_ditta = nditte.get_char(NDT_TIPOA);
_codana_ditta = nditte.get_long(NDT_CODANAGR);
return tmp;
}
void BA3600_application::dati_anagrafici_ditta(TString& ind,TString& civ,TString& cap,
TString& com,TString& prov)
{
TLocalisamfile anag (LF_ANAG);
TLocalisamfile comuni (LF_COMUNI);
TString codcom;
anag.setkey(1);
anag.zero();
anag.put(ANA_TIPOA, _tipoa_ditta);
anag.put(ANA_CODANAGR, _codana_ditta);
if (anag.read(_isequal) == NOERR)
{
codcom = anag.get(ANA_COMRF);
if (codcom != "")
{
ind = anag.get(ANA_INDRF);
civ = anag.get(ANA_CIVRF);
cap = anag.get(ANA_CAPRF);
}
else
{
codcom = anag.get(ANA_COMRES);
ind = anag.get(ANA_INDRES);
civ = anag.get(ANA_CIVRES);
cap = anag.get(ANA_CAPRES);
}
}
comuni.setkey(1);
comuni.zero();
comuni.put(COM_COM, codcom);
if (comuni.read(_isequal) == NOERR)
{
com = comuni.get(COM_DENCOM);
prov = comuni.get(COM_PROVCOM);
}
}
const char* BA3600_application::descrizione_codreg(TString& codreg)
{
TString16 dep;
@ -410,18 +560,39 @@ const char* BA3600_application::descrizione_codreg(TString& codreg)
return tmp;
}
void BA3600_application::preprocess_header()
void BA3600_application::compatta_ragsoc(TString& ragsoc)
{
TString app;
if (_tipo_intesta == 'F')
{
app = ragsoc.mid(29,20);
app.trim();
ragsoc = ragsoc.mid(0,30);
ragsoc.trim();
ragsoc << ' ' << app;
}
}
void BA3600_application::crea_intestazione()
void BA3600_application::preprocess_header()
{
if (_tipo_stampa ==1)
crea_intestazione_prova();
}
void BA3600_application::crea_intestazione_prova()
{
TString datastampastr;
TString sep(132);
TString cofi,paiv,ind,civ,cap,com,prov,ragsoc;
intestatario(cofi,paiv,ragsoc,ind,civ,cap,com,prov);
compatta_ragsoc(ragsoc);
reset_header();
set_header (1,"Studio");
set_header (1,"Studio %s %s %s %s %s %s", (const char*) ragsoc,(const char*) ind,(const char*) civ,
(const char*) cap,(const char*) com,(const char*) prov);
sep << "Pag. @#";
sep.right_just(132);
@ -429,22 +600,55 @@ void BA3600_application::crea_intestazione()
datastampastr = _datastampa.string();
set_header (2,"@0gPartita iva");
set_header (2,"@30gCodice fiscale");
if (_tipo_stampa == 1)
{
set_header (2,"@0gPartita iva %11s", (const char*) paiv);
set_header (2,"@30gCodice fiscale %16s", (const char*) cofi);
set_header (2,"@75gLIBRO UNICO DI PROVA");
set_header (2,"@105gData@110g%s",(const char*) datastampastr);
}
else
if (_tipo_stampa == 2)
{
TString mese = itom(_mesea);
set_header (2,"@75gmese di ", (const char*) mese);
set_header (2,"@92g%4d", _anno);
set_header (3,"@0gLibro unico : %s %s", (const char*) _cod_lib,(const char*) _desc_cod_lib);
TString mese = itom(_mese);
set_header (3,"@75gmese di %s", (const char*) mese);
set_header (3,"@92g%4d", _anno);
sep.fill('-'); //Stampa 132 - (sep(132))
set_header (4, (const char *) sep);
set_header (5,"@0gCod.@6gNumero@13gpagine@21gCodice@69gCod.@104gCodice@111gN.pag.@118gutente@126gNum.@131gF");
set_header (6,"@0gLibro@8gda@16ga@21gditta@28gDenominazione@69greg.@74gDescrizione@104gvidim.@112gutilizzate@126greg.@131g8");
set_header (7, (const char *) sep);
}
set_header (3,"@0gLibro unico :");
void BA3600_application::crea_intestazione_bollato()
{
TString datastampastr;
TString sep(132);
TString cofi,paiv,ind,civ,cap,com,prov,ragsoc;
descrizione();
reset_header();
sep << "Pag. @#";
sep.right_just(132);
set_header (2,(const char*) sep);
datastampastr = _datastampa.string();
if (_stampa_intesta)
{
intestatario(cofi,paiv,ragsoc,ind,civ,cap,com,prov);
compatta_ragsoc(ragsoc);
set_header (1,"Studio %s %s %s %s %s %s", (const char*) ragsoc,(const char*) ind,(const char*) civ,
(const char*) cap,(const char*) com,(const char*) prov);
set_header (2,"@0gPartita iva %11s", (const char*) paiv);
set_header (2,"@30gCodice fiscale %16s", (const char*) cofi);
}
set_header (3,"@0gLibro unico : %s %s", (const char*) _cod_lib_su,(const char*) _desc_cod_lib_su);
TString mese = itom(_mesea);
set_header (3,"@75gmese di %s", (const char*) mese);
set_header (3,"@92g%4d", _anno);
sep.fill('-'); //Stampa 132 - (sep(132))
set_header (4, (const char *) sep);
set_header (5,"@0gCod.@6gNumero@13gpagine@21gCodice@69gCod.@104gCodice@111gN.pag.@118gutente@126gNum.@131gF");
@ -455,6 +659,8 @@ void BA3600_application::crea_intestazione()
bool BA3600_application::user_create()
{
_nditte = new TLocalisamfile (LF_NDITTE);
_anag = new TLocalisamfile (LF_ANAG);
_comuni = new TLocalisamfile (LF_COMUNI);
_tab_inl = new TTable (TAB_INL);
_tab_lbu = new TTable (TAB_LBU);
@ -472,6 +678,9 @@ bool BA3600_application::user_destroy()
delete _tab_lbu;
delete _tab_reg;
delete _nditte;
delete _anag;
delete _comuni;
return TRUE;
}

View File

@ -21,6 +21,7 @@
#define F_LIBRO_UNICO2 114
#define F_GRUPPO 115
#define F_STAMPA_MESEG 116
#define F_ANNO 117
#endif // __BA3600_H

View File

@ -15,7 +15,7 @@ BEGIN
MESSAGE HIDE,F_TITOLO_BOLLATO|RESET,F_TITOLO_BOLLATO
MESSAGE SHOW,F_DATA_STAMPA|SHOW,F_MESEDA|SHOW,F_ANNODA|SHOW,F_MESEA
MESSAGE SHOW,F_ANNOA|SHOW,F_TITOLO_PROVA
MESSAGE SHOW,F_LIBRO_UNICO1|SHOW,F_GRUPPO
MESSAGE SHOW,F_LIBRO_UNICO1|SHOW,F_GRUPPO|SHOW,F_ANNO
ITEM "2|Stampa su libro bollato"
MESSAGE HIDE,F_LIBRO_UNICO1|RESET,F_LIBRO_UNICO1
MESSAGE HIDE,F_DATA_STAMPA|RESET,F_DATA_STAMPA
@ -23,6 +23,7 @@ BEGIN
MESSAGE HIDE,F_MESEA|RESET,F_MESEA|HIDE,F_ANNOA|RESET,F_ANNOA
MESSAGE HIDE,F_TITOLO_PROVA|RESET,F_TITOLO_PROVA
MESSAGE HIDE,F_GRUPPO|RESET,F_GRUPPO
MESSAGE HIDE,F_ANNO|RESET,F_ANNO
MESSAGE SHOW,F_STAMPA_MESE|SHOW,F_STAMPA_ANNO|SHOW,F_CODLIB_STAMPA
MESSAGE SHOW,F_PAGFINALE|SHOW,F_TITOLO_BOLLATO|SHOW,F_LIBRO_UNICO2
END
@ -44,18 +45,26 @@ BEGIN
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 4 10 "Anno "
USE %LBU
INPUT CODTAB[1,4] F_ANNO
INPUT CODTAB[5,7] F_LIBRO_UNICO1
DISPLAY "Anno riferimento" CODTAB[1,4]
DISPLAY "Codice libro unico" CODTAB[5,7]
OUTPUT F_ANNO CODTAB[1,4]
OUTPUT F_LIBRO_UNICO1 CODTAB[5,7]
OUTPUT F_ANNODA CODTAB[1,4]
OUTPUT F_ANNOA CODTAB[1,4]
CHECKTYPE REQUIRED
END
STRING F_LIBRO_UNICO1 3
BEGIN
PROMPT 4 11 "Codice libro unico "
HELP "Codice del libro da stampare"
USE %LBU
INPUT CODTAB[1,4] F_ANNODA
INPUT CODTAB[5,7] F_LIBRO_UNICO1
DISPLAY "Anno riferimento" CODTAB[1,4]
DISPLAY "Codice libro unico" CODTAB[5,7]
OUTPUT F_LIBRO_UNICO1 CODTAB[5,7]
OUTPUT F_ANNODA CODTAB[1,4]
OUTPUT F_ANNOA CODTAB[1,4]
COPY ALL F_ANNO
CHECKTYPE REQUIRED
END
@ -91,10 +100,10 @@ BEGIN
FLAGS "D"
END
STRING F_LIBRO_UNICO2 3
NUMBER F_STAMPA_ANNO 4
BEGIN
PROMPT 4 9 "Codice libro unico di studio "
HELP "Codice del libro da stampare"
PROMPT 4 8 "Anno "
FLAGS "R"
USE %LBU
INPUT CODTAB[1,4] F_STAMPA_ANNO
INPUT CODTAB[5,7] F_LIBRO_UNICO2
@ -109,6 +118,14 @@ BEGIN
CHECKTYPE REQUIRED
END
STRING F_LIBRO_UNICO2 3
BEGIN
PROMPT 4 9 "Codice libro unico di studio "
HELP "Codice del libro da stampare"
COPY ALL F_STAMPA_ANNO
CHECKTYPE REQUIRED
END
NUMBER F_STAMPA_MESEG 2
BEGIN
@ -120,13 +137,8 @@ NUMBER F_STAMPA_MESE 2
BEGIN
PROMPT 4 11 "Stampa mese "
HELP "Mese di cui effettuare la stampa"
NUM_EXPR {(#THIS_FIELD >= #F_STAMPA_MESEG) && (#THIS_FIELD <= 12)}
END
NUMBER F_STAMPA_ANNO 4
BEGIN
PROMPT 37 11 "Anno "
FLAGS "D"
NUM_EXPR {(#THIS_FIELD > #F_STAMPA_MESEG) && (#THIS_FIELD <= 12)}
CHECKTYPE REQUIRED
END
STRING F_CODLIB_STAMPA 3
@ -139,7 +151,7 @@ BEGIN
DISPLAY "Codice libro unico" CODTAB[5,7]
DISPLAY "Anno riferimento" CODTAB[1,4]
OUTPUT F_CODLIB_STAMPA CODTAB[5,7]
CHECKTYPE NORMAL
//CHECKTYPE NORMAL
END
NUMBER F_PAGFINALE 5