Patch level :10.0 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento : Questo sorgente NON è più usato!!! Infatti la stampa (vecchia printapp) è stata sostituita con 2 report, che vengono stampati normalmente dallo stampatore standard dei report (ba8). Il sorgente viene comunque committato con le ultime modifiche che si erano provate a fare per ottemperare alcune richieste poi soddisfatte con i report in 1/10 del tempo. Il file andrebbe comunque rimosso in via definitiva, sia perchè inutile sia, soprattutto, perchè fulgido esempio di pessima programmazione! git-svn-id: svn://10.65.10.50/trunk@18856 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c754dc7617
commit
d7b0a8f5f7
176
m770/772200.cpp
176
m770/772200.cpp
@ -58,13 +58,13 @@ class TSt_certif : public TPrintapp
|
|||||||
TString16 _key1p, _key2p, _perc_p;
|
TString16 _key1p, _key2p, _perc_p;
|
||||||
TDate _data;
|
TDate _data;
|
||||||
char _tipoa_p, _tipoa;
|
char _tipoa_p, _tipoa;
|
||||||
int _mese_da, _mese_a, _codc_p;
|
int _mese_da, _mese_a, _codc_p, _codc;
|
||||||
int _riga, _off_lung, _conta;
|
int _riga, _off_lung, _conta;
|
||||||
long _num_att, _codanagER, _codanagPE_p, _codanagPE;
|
long _num_att, _codanagER, _codanagPE_p, _codanagPE;
|
||||||
real _tot_corr, _tot_somme, _tot_quote, _tot_impo, _tot_rite, _tot_netto, _tot_inps;
|
real _tot_corr, _tot_somme, _tot_quote, _tot_impo, _tot_rite, _tot_netto, _tot_inps;
|
||||||
real _t_corr, _t_somme, _t_quote, _t_impo, _t_rite, _t_netto, _t_inps;
|
real _t_corr, _t_somme, _t_quote, _t_impo, _t_rite, _t_netto, _t_inps;
|
||||||
real _corr, _quote, _impo, _rite, _netto, _somme, _inps;
|
real _corr, _quote, _impo, _rite, _netto, _somme, _inps;
|
||||||
bool _intesta, _stampa, _settato_totale, _fai_footer;
|
bool _intesta, _stampa, _settato_totale, _fai_footer, _stampa_righe_pagamenti;
|
||||||
bool _st_modulo, _st_data;
|
bool _st_modulo, _st_data;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -85,7 +85,7 @@ protected:
|
|||||||
bool init_print();
|
bool init_print();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const TRectype& look_causali();
|
const TRectype& look_causali(int codc) const;
|
||||||
TRectype& look_schperc(long,char,long,int);
|
TRectype& look_schperc(long,char,long,int);
|
||||||
void crea_sort();
|
void crea_sort();
|
||||||
void init_sort();
|
void init_sort();
|
||||||
@ -93,7 +93,8 @@ public:
|
|||||||
void stampa_su_modulo();
|
void stampa_su_modulo();
|
||||||
void stampa_totale(int);
|
void stampa_totale(int);
|
||||||
void salva_totale();
|
void salva_totale();
|
||||||
int stampa_riga(int,int,const char*);
|
int stampa_riga(int i);
|
||||||
|
int stampa_riga_pagamento(int i);
|
||||||
void dati_erogante();
|
void dati_erogante();
|
||||||
void dati_percipiente();
|
void dati_percipiente();
|
||||||
void riempi_record(long,char,long,const real&,int,const real&,const real&,const real&,const real&,const real&,const real&,const real&);
|
void riempi_record(long,char,long,const real&,int,const real&,const real&,const real&,const real&,const real&,const real&,const real&);
|
||||||
@ -160,9 +161,9 @@ TRectype& TSt_certif::look_schperc (long cod, char t, long codan, int np)
|
|||||||
return schede.curr();
|
return schede.curr();
|
||||||
}
|
}
|
||||||
|
|
||||||
const TRectype& TSt_certif::look_causali()
|
const TRectype& TSt_certif::look_causali(int codc) const
|
||||||
{
|
{
|
||||||
TString4 dep; dep.format("%02d", _codc_p);
|
TString4 dep; dep.format("%02d", codc);
|
||||||
return cache().get("%CA7", dep);
|
return cache().get("%CA7", dep);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,8 +270,16 @@ void TSt_certif::riempi_record(long d,char t,long ca,const real& p,int c,
|
|||||||
_sort->sort((const char*)&rig);
|
_sort->sort((const char*)&rig);
|
||||||
}
|
}
|
||||||
|
|
||||||
int TSt_certif::stampa_riga(int i, int ct, const char* d)
|
int TSt_certif::stampa_riga(int i)
|
||||||
{
|
{
|
||||||
|
const TRectype& cau = look_causali(_codc_p);
|
||||||
|
const char* d = cau.get("S0");
|
||||||
|
const int ct = cau.get_int("I0");
|
||||||
|
|
||||||
|
//nel caso si scelga di dettagliare i pagamenti, conviene metterci una riga vuota di stacco
|
||||||
|
if (_stampa_righe_pagamenti)
|
||||||
|
set_row(i++, "");
|
||||||
|
|
||||||
if (!_st_modulo)
|
if (!_st_modulo)
|
||||||
{
|
{
|
||||||
TString16 app (_perc_p.left(3)); //stampo solo la parte intera
|
TString16 app (_perc_p.left(3)); //stampo solo la parte intera
|
||||||
@ -279,8 +288,8 @@ int TSt_certif::stampa_riga(int i, int ct, const char* d)
|
|||||||
real lordo_netto_iva = _tot_corr + _tot_somme;
|
real lordo_netto_iva = _tot_corr + _tot_somme;
|
||||||
real somme_quote = _tot_somme + _tot_quote;
|
real somme_quote = _tot_somme + _tot_quote;
|
||||||
|
|
||||||
set_row(i,"%02d %4d %-.25s @34g%r@50g%r@66g%r",_codc_p,ct,d,&lordo_netto_iva,&somme_quote,&_tot_impo);
|
set_row(i, "%02d %4d %-.25s @34g%r@50g%r@66g%r", _codc_p, ct, d, &lordo_netto_iva, &somme_quote, &_tot_impo);
|
||||||
set_row(i++,"@83g%s@86g%r@101g%r@117g%r",(const char*)app,&_tot_rite,&_tot_inps,&_tot_netto);
|
set_row(i++, "@83g%s@86g%r@101g%r@117g%r", (const char*)app, &_tot_rite, &_tot_inps, &_tot_netto);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -289,7 +298,38 @@ int TSt_certif::stampa_riga(int i, int ct, const char* d)
|
|||||||
TString16 app (_perc_p.left(3));
|
TString16 app (_perc_p.left(3));
|
||||||
app.ltrim();
|
app.ltrim();
|
||||||
set_row(i++, "@3g%4d@11g%-.28s@43g%12.0r@57g%12.0r@71g%12.0r@85g%s@89g%12.0r@104g%12.0r",
|
set_row(i++, "@3g%4d@11g%-.28s@43g%12.0r@57g%12.0r@71g%12.0r@85g%s@89g%12.0r@104g%12.0r",
|
||||||
ct,d,&_tot_corr,&non_sogg,&_tot_impo,(const char*)app,&_tot_rite,&imp_netto);
|
ct, d, &_tot_corr, &non_sogg, &_tot_impo, (const char*)app, &_tot_rite, &imp_netto);
|
||||||
|
set_row(i, "");
|
||||||
|
}
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
//stampa delle righe di pagamento
|
||||||
|
int TSt_certif::stampa_riga_pagamento(int i)
|
||||||
|
{
|
||||||
|
const TRectype& cau = look_causali(_codc);
|
||||||
|
const char* d = cau.get("S0");
|
||||||
|
const int ct = cau.get_int("I0");
|
||||||
|
|
||||||
|
if (!_st_modulo)
|
||||||
|
{
|
||||||
|
TString16 app (_perc_p.left(3)); //stampo solo la parte intera
|
||||||
|
app.ltrim();
|
||||||
|
|
||||||
|
real lordo_netto_iva = _corr + _somme;
|
||||||
|
real somme_quote = _somme + _quote;
|
||||||
|
|
||||||
|
set_row(i, "%02d %4d %-.25s @34g%r@50g%r@66g%r", _codc, ct, d, &lordo_netto_iva, &somme_quote, &_impo);
|
||||||
|
set_row(i++, "@83g%s@86g%r@101g%r@117g%r", (const char*)app, &_rite, &_inps, &_netto);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
real non_sogg = _corr - _impo + _somme;
|
||||||
|
real imp_netto = _impo - _rite;
|
||||||
|
TString16 app (_perc_p.left(3));
|
||||||
|
app.ltrim();
|
||||||
|
set_row(i++, "@3g%4d@11g%-.28s@43g%12.0r@57g%12.0r@71g%12.0r@85g%s@89g%12.0r@104g%12.0r",
|
||||||
|
ct, d, &_corr, &non_sogg, &_impo, (const char*)app, &_rite, &imp_netto);
|
||||||
set_row(i, "");
|
set_row(i, "");
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@ -306,7 +346,7 @@ void TSt_certif::stampa_totale(int i)
|
|||||||
real somme_quote = _t_somme + _t_quote;
|
real somme_quote = _t_somme + _t_quote;
|
||||||
|
|
||||||
set_row(i, "@15gTOTALE@34g%r@50g%r@66g%r@86g%r@101g%r@117g%r",
|
set_row(i, "@15gTOTALE@34g%r@50g%r@66g%r@86g%r@101g%r@117g%r",
|
||||||
&lordo_netto_iva,&somme_quote,&_t_impo,&_t_rite,&_t_inps,&_t_netto);
|
&lordo_netto_iva, &somme_quote, &_t_impo, &_t_rite, &_t_inps, &_t_netto);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TSt_certif::salva_totale()
|
void TSt_certif::salva_totale()
|
||||||
@ -341,8 +381,9 @@ void TSt_certif::leggi_sort()
|
|||||||
_codanagPE_p = _codanagPE;
|
_codanagPE_p = _codanagPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//valori del singolo record di pagamento (vengono stampati solo se richiesto il dettaglio delle righe di pagamento)
|
||||||
TString16 perc = rp->perc;
|
TString16 perc = rp->perc;
|
||||||
int codc = atoi(rp->codc);
|
_codc = atoi(rp->codc);
|
||||||
_corr = rp->corr;
|
_corr = rp->corr;
|
||||||
_somme = rp->somme;
|
_somme = rp->somme;
|
||||||
_quote = rp->quote;
|
_quote = rp->quote;
|
||||||
@ -352,15 +393,14 @@ void TSt_certif::leggi_sort()
|
|||||||
_inps = rp->inps;
|
_inps = rp->inps;
|
||||||
|
|
||||||
key1.format("%c%5ld", _tipoa, _codanagPE);
|
key1.format("%c%5ld", _tipoa, _codanagPE);
|
||||||
key2.format("%s%02d", (const char*)perc, codc);
|
key2.format("%s%02d", (const char*)perc, _codc);
|
||||||
|
|
||||||
if (key1 != _key1p && _key1p != "") //e' cambiato il percipiente
|
if (key1 != _key1p && _key1p != "") //e' cambiato il percipiente
|
||||||
{
|
{
|
||||||
const TRectype& cau = look_causali();
|
//se si vuole il dettaglio dei pagamenti si deve rinunciare al totale di causale (sennò ci vien su un casino..
|
||||||
const TString& descr = cau.get("S0");
|
//..mondiale)
|
||||||
const int codtrib = cau.get_int("I0");
|
if (!_stampa_righe_pagamenti)
|
||||||
|
i = stampa_riga(i);
|
||||||
i = stampa_riga(i, codtrib, descr);
|
|
||||||
|
|
||||||
//aggiornamento totale finale
|
//aggiornamento totale finale
|
||||||
_t_corr += _tot_corr;
|
_t_corr += _tot_corr;
|
||||||
@ -373,23 +413,23 @@ void TSt_certif::leggi_sort()
|
|||||||
|
|
||||||
if (!_st_modulo)
|
if (!_st_modulo)
|
||||||
{
|
{
|
||||||
|
//questo va stampato in ogni modo
|
||||||
stampa_totale(i);
|
stampa_totale(i);
|
||||||
_tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=_tot_inps=ZERO; //sono i totali relativi ad ogni singola riga di stampa
|
//è nel caso di cambiamento percipiente (e quindi anche di causale)
|
||||||
_t_corr = _t_somme = _t_quote = _t_impo = _t_rite =_t_netto = _t_inps=ZERO; //sono i totali finali (relativi cioe' al percipiente)
|
//azzera i totali per causale
|
||||||
|
_tot_corr = _tot_somme = _tot_quote = _tot_impo = _tot_rite = _tot_netto = _tot_inps = ZERO;
|
||||||
|
//azzera i totali per percipiente
|
||||||
|
_t_corr = _t_somme = _t_quote = _t_impo = _t_rite =_t_netto = _t_inps = ZERO;
|
||||||
}
|
}
|
||||||
|
|
||||||
//salvo gli importi del record che sto leggendo
|
_settato_totale = true;
|
||||||
//salva_totale();
|
|
||||||
|
|
||||||
_settato_totale = TRUE;
|
|
||||||
}
|
}
|
||||||
else if (key2 != _key2p && _key2p != "")
|
else if (key2 != _key2p && _key2p != "") //è cambiata la causale del pagamento all'interno dello stesso percipiente
|
||||||
{
|
{
|
||||||
const TRectype& cau = look_causali();
|
//se si vuole il dettaglio dei pagamenti si deve rinunciare al totale di causale (sennò ci vien su un casino..
|
||||||
const TString& descr = cau.get("S0");
|
//..mondiale)
|
||||||
const int codtrib = cau.get_int("I0");
|
if (!_stampa_righe_pagamenti)
|
||||||
|
stampa_riga(i);
|
||||||
stampa_riga(i, codtrib, descr);
|
|
||||||
|
|
||||||
_t_corr += _tot_corr;
|
_t_corr += _tot_corr;
|
||||||
_t_somme += _tot_somme;
|
_t_somme += _tot_somme;
|
||||||
@ -399,24 +439,18 @@ void TSt_certif::leggi_sort()
|
|||||||
_t_netto += _tot_netto;
|
_t_netto += _tot_netto;
|
||||||
_t_inps += _tot_inps;
|
_t_inps += _tot_inps;
|
||||||
|
|
||||||
_tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=_tot_inps=ZERO;
|
//azzera i totali per causale (è nel caso in cui cambia la causale ma non il percipiente)
|
||||||
|
_tot_corr = _tot_somme = _tot_quote = _tot_impo = _tot_rite = _tot_netto = _tot_inps = ZERO;
|
||||||
|
|
||||||
if (_st_modulo)
|
if (_st_modulo)
|
||||||
_conta += 1;
|
_conta += 1;
|
||||||
|
|
||||||
//salvo gli importi del record che sto leggendo
|
|
||||||
//spostato in postprocess_page
|
|
||||||
//salva_totale();
|
|
||||||
}
|
}
|
||||||
//else //non e' cambiato il percipiente e non sono cambiate ne' la causale ne' la percentuale
|
|
||||||
//salva_totale();
|
|
||||||
|
|
||||||
//spostato nella postprocess_page
|
//stampa i dettagli di tutte le righe di pagamento
|
||||||
/*
|
if (_stampa_righe_pagamenti && (key1 == _key1p || _key1p.empty()))
|
||||||
_tipoa_p = _tipoa; //serve alla preprocess_header
|
i = stampa_riga_pagamento(i);
|
||||||
_codanagPE_p = _codanagPE; //idem
|
|
||||||
*/
|
_codc_p = _codc;
|
||||||
_codc_p = codc;
|
|
||||||
_perc_p = perc;
|
_perc_p = perc;
|
||||||
_key1p = key1,
|
_key1p = key1,
|
||||||
_key2p = key2;
|
_key2p = key2;
|
||||||
@ -424,16 +458,10 @@ void TSt_certif::leggi_sort()
|
|||||||
}
|
}
|
||||||
else if (_stampa) //sono finiti i record ma c'e' ancora un record da stampare
|
else if (_stampa) //sono finiti i record ma c'e' ancora un record da stampare
|
||||||
{
|
{
|
||||||
const TRectype& cau = look_causali();
|
//se si vuole il dettaglio dei pagamenti si deve rinunciare al totale di causale (sennò ci vien su un casino..
|
||||||
const TString& descr = cau.get("S0");
|
//..mondiale)
|
||||||
const int codtrib = cau.get_int("I0");
|
if (!_stampa_righe_pagamenti)
|
||||||
|
stampa_riga(i);
|
||||||
/*
|
|
||||||
_tipoa_p = _tipoa;
|
|
||||||
_codanagPE_p = _codanagPE;
|
|
||||||
*/
|
|
||||||
|
|
||||||
stampa_riga(i, codtrib, descr);
|
|
||||||
|
|
||||||
_t_corr += _tot_corr;
|
_t_corr += _tot_corr;
|
||||||
_t_somme += _tot_somme;
|
_t_somme += _tot_somme;
|
||||||
@ -456,7 +484,7 @@ void TSt_certif::preprocess_footer()
|
|||||||
{
|
{
|
||||||
//riga totale
|
//riga totale
|
||||||
real t_non_sogg = _t_corr - _t_impo + _t_somme;
|
real t_non_sogg = _t_corr - _t_impo + _t_somme;
|
||||||
real t_imp_netto = _t_impo - _t_rite /* - _t_inps */;
|
real t_imp_netto = _t_impo - _t_rite;
|
||||||
|
|
||||||
reset_footer();
|
reset_footer();
|
||||||
|
|
||||||
@ -630,8 +658,11 @@ bool TSt_certif::init_print()
|
|||||||
_mese_a = msk.get_int(F_A);
|
_mese_a = msk.get_int(F_A);
|
||||||
_luogo = msk.get(F_LUOGO);
|
_luogo = msk.get(F_LUOGO);
|
||||||
_data = msk.get(F_DATA);
|
_data = msk.get(F_DATA);
|
||||||
_st_modulo = msk.get_bool(F_MODULO);
|
|
||||||
|
|
||||||
|
//aggiunta fatta il 16/03/2009, dopo soli 14 anni che il file non veniva cambiato
|
||||||
|
_stampa_righe_pagamenti = msk.get_bool(F_DETTAGLIO);
|
||||||
|
|
||||||
|
_st_modulo = msk.get_bool(F_MODULO);
|
||||||
_off_lung = msk.get_int(F_LUNG);
|
_off_lung = msk.get_int(F_LUNG);
|
||||||
|
|
||||||
TLocalisamfile& fl = _cur->file(LF_RPAG);
|
TLocalisamfile& fl = _cur->file(LF_RPAG);
|
||||||
@ -853,41 +884,6 @@ void TSt_certif::dati_erogante()
|
|||||||
_dencomER = _comuni->get(COM_DENCOM);
|
_dencomER = _comuni->get(COM_DENCOM);
|
||||||
_provER = _comuni->get(COM_PROVCOM);
|
_provER = _comuni->get(COM_PROVCOM);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* dati riguardanti il luogo e la data di nascita
|
|
||||||
if (tipoa == 'F')
|
|
||||||
{
|
|
||||||
TLocalisamfile anagfis(LF_ANAGFIS);
|
|
||||||
|
|
||||||
anagfis.setkey(1);
|
|
||||||
anagfis.zero();
|
|
||||||
anagfis.put(ANF_CODANAGR, _codanagER);
|
|
||||||
if (anagfis.read() == NOERR)
|
|
||||||
{
|
|
||||||
data = anagfis.get_date(ANF_DATANASC);
|
|
||||||
_datanascER = data.string();
|
|
||||||
comnasc = anagfis.get (ANF_COMNASC);
|
|
||||||
}
|
|
||||||
|
|
||||||
_comuni->setkey(1);
|
|
||||||
_comuni->zero();
|
|
||||||
_comuni->put(COM_COM,comnasc);
|
|
||||||
if (_comuni->read() == NOERR)
|
|
||||||
{
|
|
||||||
_dencomnscER = _comuni->get(COM_DENCOM);
|
|
||||||
_provnscER = _comuni->get(COM_PROVCOM);
|
|
||||||
}
|
|
||||||
_dencomnscER.rtrim();
|
|
||||||
_provnscER.rtrim();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_dencomnscER = "";
|
|
||||||
_provnscER = "";
|
|
||||||
}
|
|
||||||
_indER.rtrim();
|
|
||||||
_dencomER.rtrim();
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TSt_certif::dati_percipiente()
|
void TSt_certif::dati_percipiente()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user