Corretti errori su giornale e mastrini
git-svn-id: svn://10.65.10.50/trunk@841 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
fac1cd3d63
commit
d15ac0013b
@ -870,8 +870,9 @@ bool TMastrini_application::preprocess_page(int file, int counter)
|
|||||||
TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
|
TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
|
||||||
TString descr_contr = tc.descrizione();
|
TString descr_contr = tc.descrizione();
|
||||||
set_row (1,"@42g%.18s", (const char*) _descrcaus);
|
set_row (1,"@42g%.18s", (const char*) _descrcaus);
|
||||||
set_row (1,"@61g%.23s", (const char*) descr_contr);
|
if (descr_contr != "Sconosciuto")
|
||||||
}
|
set_row (1,"@61g%.23s", (const char*) descr_contr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (_numcarat == 2) // Stampa 198 caratteri
|
if (_numcarat == 2) // Stampa 198 caratteri
|
||||||
@ -902,7 +903,8 @@ bool TMastrini_application::preprocess_page(int file, int counter)
|
|||||||
TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
|
TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
|
||||||
TString descr_contr = tc.descrizione();
|
TString descr_contr = tc.descrizione();
|
||||||
set_row (1,"@42g%.25s", (const char*) _descrcaus);
|
set_row (1,"@42g%.25s", (const char*) _descrcaus);
|
||||||
set_row (1,"@68g%.32s", (const char*) descr_contr);
|
if (descr_contr != "Sconosciuto")
|
||||||
|
set_row (1,"@68g%.32s", (const char*) descr_contr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
415
cg/cg3400.cpp
415
cg/cg3400.cpp
@ -52,6 +52,8 @@ HIDDEN enum descr { causale, conto, operazione };
|
|||||||
|
|
||||||
class TContoOccas : public TBill
|
class TContoOccas : public TBill
|
||||||
{
|
{
|
||||||
|
long _s;
|
||||||
|
char _t;
|
||||||
TString16 _occfpi;
|
TString16 _occfpi;
|
||||||
TString80 _descrizione;
|
TString80 _descrizione;
|
||||||
|
|
||||||
@ -67,6 +69,7 @@ public:
|
|||||||
|
|
||||||
const TContoOccas& TContoOccas::set(int g, int c, long s, char t,const char* d, int r, const char* occfpi)
|
const TContoOccas& TContoOccas::set(int g, int c, long s, char t,const char* d, int r, const char* occfpi)
|
||||||
{
|
{
|
||||||
|
_s = s; _t = t;
|
||||||
TBill::set(g,c,s,t,d,r);
|
TBill::set(g,c,s,t,d,r);
|
||||||
_occfpi = occfpi;
|
_occfpi = occfpi;
|
||||||
return *this;
|
return *this;
|
||||||
@ -74,8 +77,21 @@ const TContoOccas& TContoOccas::set(int g, int c, long s, char t,const char* d,
|
|||||||
|
|
||||||
const TString& TContoOccas::descrizione()
|
const TString& TContoOccas::descrizione()
|
||||||
{
|
{
|
||||||
|
bool really_occas = FALSE;
|
||||||
|
|
||||||
if (_occfpi.empty())
|
if (_occfpi.not_empty())
|
||||||
|
{
|
||||||
|
TLocalisamfile clifo(LF_CLIFO);
|
||||||
|
clifo.zero();
|
||||||
|
clifo.put(CLI_CODCF, (long)_s);
|
||||||
|
clifo.put(CLI_TIPOCF, _t);
|
||||||
|
|
||||||
|
const bool clifo_ok = (clifo.read() == NOERR);
|
||||||
|
|
||||||
|
if (clifo_ok) really_occas = clifo.get_bool(CLI_OCCAS);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_occfpi.empty() || !really_occas)
|
||||||
_descrizione = TBill::descrizione();
|
_descrizione = TBill::descrizione();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -110,9 +126,13 @@ private:
|
|||||||
int _ae; // anno esercizio di ALLA_DATA
|
int _ae; // anno esercizio di ALLA_DATA
|
||||||
int _tipo; // tipo del registro
|
int _tipo; // tipo del registro
|
||||||
int _annoEsMov; // anno esercizio letto da mov
|
int _annoEsMov; // anno esercizio letto da mov
|
||||||
|
TString16 _reg;
|
||||||
|
int _anno_iva;
|
||||||
bool _stampa_definitiva;
|
bool _stampa_definitiva;
|
||||||
bool _MovGiaStampato;
|
bool _MovGiaStampato;
|
||||||
long _num_rig;
|
long _num_rig;
|
||||||
|
real _importo;
|
||||||
|
char _sezione;
|
||||||
// TParagraph_string* _descr_conto;
|
// TParagraph_string* _descr_conto;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -163,7 +183,7 @@ public:
|
|||||||
virtual bool user_destroy();
|
virtual bool user_destroy();
|
||||||
|
|
||||||
void set_rows (int file, int counter);
|
void set_rows (int file, int counter);
|
||||||
void setta_righe_indirizzo(char tipocf, long codcf, int rdesc);
|
int setta_righe_indirizzo(char tipocf, long codcf, int rdesc);
|
||||||
int setta_righe_iva();
|
int setta_righe_iva();
|
||||||
int setta_righe_valuta(int start_riga);
|
int setta_righe_valuta(int start_riga);
|
||||||
int setta_righe_descr(TParagraph_string&, enum descr);
|
int setta_righe_descr(TParagraph_string&, enum descr);
|
||||||
@ -187,6 +207,8 @@ public:
|
|||||||
const char* get_descr_caus (const char * codcaus);
|
const char* get_descr_caus (const char * codcaus);
|
||||||
TRectype& look_com (const char * cod);
|
TRectype& look_com (const char * cod);
|
||||||
const char* get_codiva_des(const char* codiva);
|
const char* get_codiva_des(const char* codiva);
|
||||||
|
void get_date_aep(int aep, TDate* in, TDate* fin);
|
||||||
|
void update_totals (char sezione, real& importo);
|
||||||
|
|
||||||
CG3400_application() {};
|
CG3400_application() {};
|
||||||
virtual ~CG3400_application() {};
|
virtual ~CG3400_application() {};
|
||||||
@ -417,11 +439,13 @@ void CG3400_application::set_totali_giorno(const TDate& data, const int righeiva
|
|||||||
TString td(_tot_dare_gg.string(REAL_PICTURE));
|
TString td(_tot_dare_gg.string(REAL_PICTURE));
|
||||||
TString ta(_tot_avere_gg.string(REAL_PICTURE));
|
TString ta(_tot_avere_gg.string(REAL_PICTURE));
|
||||||
|
|
||||||
sprintf(dep, "@b@%dgTotale operazioni del %s @%dg%s @%dg%s",
|
sprintf(dep, "@b@%dgTotale operazioni del %s %c @%dg%s %c @%dg%s",
|
||||||
_stampa_width == 132 ? DARE132-STACC : DARE198-STACC,
|
_stampa_width == 132 ? DARE132-STACC : DARE198-STACC,
|
||||||
data.string(),
|
data.string(),
|
||||||
|
_stampa_width == 132 ? 'D' : ' ',
|
||||||
_stampa_width == 132 ? DARE132 : DARE198,
|
_stampa_width == 132 ? DARE132 : DARE198,
|
||||||
(const char*)td,
|
(const char*)td,
|
||||||
|
_stampa_width == 132 ? 'A' : ' ',
|
||||||
_stampa_width == 132 ? AVERE132 : AVERE198,
|
_stampa_width == 132 ? AVERE132 : AVERE198,
|
||||||
(const char*)ta
|
(const char*)ta
|
||||||
);
|
);
|
||||||
@ -435,11 +459,13 @@ void CG3400_application::set_totali_giorno(const TDate& data, const int righeiva
|
|||||||
TString tdp(_tot_dare_gg_ap.string(REAL_PICTURE));
|
TString tdp(_tot_dare_gg_ap.string(REAL_PICTURE));
|
||||||
TString tap(_tot_avere_gg_ap.string(REAL_PICTURE));
|
TString tap(_tot_avere_gg_ap.string(REAL_PICTURE));
|
||||||
|
|
||||||
sprintf (dep, "@b@%dgTotale operazioni del %s Anno precedente @%dg%s @%dg%s",
|
sprintf (dep, "@b@%dgTotale operazioni del %s Anno precedente %c @%dg%s %c @%dg%s",
|
||||||
_stampa_width == 132 ? DARE132-STACC : DARE198-STACC,
|
_stampa_width == 132 ? DARE132-STACC : DARE198-STACC,
|
||||||
data.string(),
|
data.string(),
|
||||||
|
_stampa_width == 132 ? 'D' : ' ',
|
||||||
_stampa_width == 132 ? DARE132 : DARE198,
|
_stampa_width == 132 ? DARE132 : DARE198,
|
||||||
(const char*)tdp,
|
(const char*)tdp,
|
||||||
|
_stampa_width == 132 ? 'A' : ' ',
|
||||||
_stampa_width == 132 ? AVERE132 : AVERE198,
|
_stampa_width == 132 ? AVERE132 : AVERE198,
|
||||||
(const char*)tap
|
(const char*)tap
|
||||||
);
|
);
|
||||||
@ -530,7 +556,7 @@ void CG3400_application::preprocess_footer()
|
|||||||
_stampa_width == 132 ? 'D' : ' ',
|
_stampa_width == 132 ? 'D' : ' ',
|
||||||
(const char *) dts,
|
(const char *) dts,
|
||||||
_stampa_width == 132 ? AVERE132 : AVERE198,
|
_stampa_width == 132 ? AVERE132 : AVERE198,
|
||||||
_stampa_width == 132 ? 'D' : ' ',
|
_stampa_width == 132 ? 'A' : ' ',
|
||||||
(const char *) ats
|
(const char *) ats
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -573,14 +599,20 @@ int CG3400_application::stampa_intestazione_ditta()
|
|||||||
set_header (++r, "Ditta: %s %s %s %s %s", (const char *)_ragsoc,
|
set_header (++r, "Ditta: %s %s %s %s %s", (const char *)_ragsoc,
|
||||||
(const char *)_viafis, (const char *)_cap,
|
(const char *)_viafis, (const char *)_cap,
|
||||||
(const char *)_comunefis, (const char *)_provfis);
|
(const char *)_comunefis, (const char *)_provfis);
|
||||||
|
|
||||||
intes.format ("Partita iva %s @24gCodice fiscale %s @%dg%s @%dgData @>",
|
if (_stampa_definitiva)
|
||||||
(const char*)_paiva, (const char*)_cofi,
|
intes.format ("Partita iva %s @24gCodice fiscale %s",
|
||||||
_stampa_width == 132 ? 102 : 168,
|
(const char*)_paiva, (const char*)_cofi,
|
||||||
_stampa_definitiva ? "" : "LIBRO DI PROVA",
|
_stampa_width == 132 ? 102 : 168
|
||||||
_stampa_width == 132 ? 117 : 183
|
);
|
||||||
);
|
else
|
||||||
|
intes.format ("Partita iva %s @24gCodice fiscale %s @%dg%s @%dgData @>",
|
||||||
|
(const char*)_paiva, (const char*)_cofi,
|
||||||
|
_stampa_width == 132 ? 102 : 168,
|
||||||
|
"LIBRO DI PROVA",
|
||||||
|
_stampa_width == 132 ? 117 : 183
|
||||||
|
);
|
||||||
|
|
||||||
set_header (++r, "%s", (const char*)intes);
|
set_header (++r, "%s", (const char*)intes);
|
||||||
r++;
|
r++;
|
||||||
return r;
|
return r;
|
||||||
@ -710,10 +742,12 @@ void CG3400_application::preprocess_header()
|
|||||||
TString avere(riporto_avere.string(RIP_TOT_PIC));
|
TString avere(riporto_avere.string(RIP_TOT_PIC));
|
||||||
// RIP_TOT_PIC adesso e' lunga 15
|
// RIP_TOT_PIC adesso e' lunga 15
|
||||||
|
|
||||||
riporto.format("@b@%dgRiporto: @%dg%15s @%dg%15s",
|
riporto.format("@b@%dgRiporto: %c @%dg%15s %c @%dg%15s",
|
||||||
_stampa_width == 132 ? 84 : DARE198-11,
|
_stampa_width == 132 ? 84 : DARE198-11,
|
||||||
|
_stampa_width == 132 ? 'D' : ' ',
|
||||||
_stampa_width == 132 ? DARE132 : DARE198,
|
_stampa_width == 132 ? DARE132 : DARE198,
|
||||||
(const char *) dare,
|
(const char *) dare,
|
||||||
|
_stampa_width == 132 ? 'A' : ' ',
|
||||||
_stampa_width == 132 ? AVERE132 : AVERE198,
|
_stampa_width == 132 ? AVERE132 : AVERE198,
|
||||||
(const char *) avere
|
(const char *) avere
|
||||||
);
|
);
|
||||||
@ -749,7 +783,7 @@ bool CG3400_application::preprocess_print(int file, int counter)
|
|||||||
|
|
||||||
// _gia_settata_riga_mov = FALSE; // Stampa o no la riga di mov (solo se
|
// _gia_settata_riga_mov = FALSE; // Stampa o no la riga di mov (solo se
|
||||||
// NO stampa giornale_iva_unico
|
// NO stampa giornale_iva_unico
|
||||||
_num_rig = 0;
|
|
||||||
_iva_array.destroy();
|
_iva_array.destroy();
|
||||||
|
|
||||||
_nprog_mov = _nprog_da;
|
_nprog_mov = _nprog_da;
|
||||||
@ -826,26 +860,79 @@ print_action CG3400_application::postprocess_page(int file, int counter)
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LF_RMOVIVA:
|
case LF_RMOV:
|
||||||
|
// Sposto qui per evitare di aggiornare i progressivi con una riga della
|
||||||
|
// pagina dopo
|
||||||
|
update_totals(_sezione, _importo);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return NEXT_PAGE;
|
return NEXT_PAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CG3400_application::update_totals (char sezione, real& importo)
|
||||||
|
{
|
||||||
|
#ifdef DBG
|
||||||
|
TString dgap(_tot_dare_gg_ap.string());
|
||||||
|
TString dgpp(_tot_dare_progr_ap.string());
|
||||||
|
TString dgac(_tot_dare_gg.string());
|
||||||
|
TString dgpc(_tot_dare_progr.string());
|
||||||
|
TString agap(_tot_avere_gg_ap.string());
|
||||||
|
TString agpp(_tot_avere_progr_ap.string());
|
||||||
|
TString agac(_tot_avere_gg.string());
|
||||||
|
TString agpc(_tot_avere_progr.string());
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (sezione == 'D')
|
||||||
|
{
|
||||||
|
if (_annoEsMov != _ae) {
|
||||||
|
_tot_dare_gg_ap += importo; // prog. anno precedente
|
||||||
|
_tot_dare_progr_ap += importo;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_tot_dare_gg += importo; // prog. giornalieri
|
||||||
|
_tot_dare_progr += importo; // prog. generali
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_annoEsMov != _ae) {
|
||||||
|
_tot_avere_gg_ap += importo;
|
||||||
|
_tot_avere_progr_ap += importo;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_tot_avere_gg += importo;
|
||||||
|
_tot_avere_progr += importo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#ifdef DBG
|
||||||
|
dgap = _tot_dare_gg_ap.string();
|
||||||
|
dgpp = _tot_dare_progr_ap.string();
|
||||||
|
dgac = _tot_dare_gg.string();
|
||||||
|
dgpc = _tot_dare_progr.string();
|
||||||
|
agap = _tot_avere_gg_ap.string();
|
||||||
|
agpp = _tot_avere_progr_ap.string();
|
||||||
|
agac = _tot_avere_gg.string();
|
||||||
|
agpc = _tot_avere_progr.string();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void CG3400_application::set_rows (int file, int counter)
|
void CG3400_application::set_rows (int file, int counter)
|
||||||
{
|
{
|
||||||
TString16 datadoc, datareg, reg, numdoc, frm, caus;
|
TString16 datadoc_str, datareg_str, numdoc, frm, caus;
|
||||||
|
TDate datadoc, datareg;
|
||||||
TString80 mov_descr, rmv_descr;
|
TString80 mov_descr, rmv_descr;
|
||||||
TParagraph_string descr_conto("", 50);
|
TParagraph_string descr_conto("", 50);
|
||||||
TContoOccas tc;
|
TContoOccas tc;
|
||||||
long numreg, protiva;
|
long numreg, protiva;
|
||||||
int r = 1, rdes=1;
|
int r = 1;
|
||||||
int g, c;
|
int g, c;
|
||||||
long s;
|
long s;
|
||||||
char sezione;
|
static char cf = ' ';
|
||||||
real importo;
|
static int rdes = 1;
|
||||||
static char cf;
|
|
||||||
|
|
||||||
switch (file)
|
switch (file)
|
||||||
{
|
{
|
||||||
@ -855,45 +942,59 @@ void CG3400_application::set_rows (int file, int counter)
|
|||||||
{
|
{
|
||||||
*/
|
*/
|
||||||
reset_row(1);
|
reset_row(1);
|
||||||
reset_row(2);
|
reset_row(2);
|
||||||
datareg = _cur->file(LF_MOV).get("DATAREG");
|
|
||||||
datadoc = _cur->file(LF_MOV).get("DATADOC");
|
datareg = _cur->file(LF_MOV).get_date("DATAREG");
|
||||||
|
datadoc = _cur->file(LF_MOV).get_date("DATADOC");
|
||||||
|
datareg_str = datareg.string();
|
||||||
|
// "Fai vedere lo stesso ..-..-.... anche se non c'e' la data..."
|
||||||
|
if (datareg_str.empty())
|
||||||
|
datareg_str = " - - ";
|
||||||
|
datadoc_str = datadoc.string();
|
||||||
|
if (datadoc_str.empty())
|
||||||
|
datadoc_str = " - - ";
|
||||||
numdoc = _cur->file(LF_MOV).get("NUMDOC");
|
numdoc = _cur->file(LF_MOV).get("NUMDOC");
|
||||||
numreg = _cur->file(LF_MOV).get_long("NUMREG");
|
numreg = _cur->file(LF_MOV).get_long("NUMREG");
|
||||||
mov_descr = _cur->file(LF_MOV).get("DESCR");
|
mov_descr = _cur->file(LF_MOV).get("DESCR");
|
||||||
reg = _cur->file(LF_MOV).get(MOV_REG);
|
|
||||||
protiva = _cur->file(LF_MOV).get_long(MOV_PROTIVA);
|
// Usati in setta_righe_iva per determinare tipo attivita'
|
||||||
|
_reg = _cur->file(LF_MOV).get(MOV_REG);
|
||||||
|
_anno_iva = _cur->file(LF_MOV).get_int(MOV_ANNOIVA);
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
protiva = _cur->file(LF_MOV).get_long(MOV_PROTIVA);
|
||||||
caus = _cur->file(LF_MOV).get(MOV_CODCAUS);
|
caus = _cur->file(LF_MOV).get(MOV_CODCAUS);
|
||||||
_occfpi = _cur->file(LF_MOV).get(MOV_OCFPI);
|
_occfpi = _cur->file(LF_MOV).get(MOV_OCFPI);
|
||||||
_annoEsMov = _cur->file(LF_MOV).get_int(MOV_ANNOES);
|
_annoEsMov = _cur->file(LF_MOV).get_int(MOV_ANNOES);
|
||||||
|
|
||||||
if (_stampa_definitiva)
|
if (_stampa_definitiva)
|
||||||
{
|
{
|
||||||
set_row(r,"Operazione n. %-7ld", _nprog_mov);
|
set_row(r,"Operazione n. %-7ld", _nprog_mov);
|
||||||
set_row(r," del %s", (const char*)datareg);
|
set_row(r," del %s", (const char*)datareg_str); // XX/XX/XXXX
|
||||||
set_row(r," documento n. %-7s",(const char*)numdoc);
|
set_row(r," doc. n. %-7s",(const char*)numdoc);
|
||||||
set_row(r," del %s %s",(const char*)datadoc,(const char*)mov_descr);
|
set_row(r," del %s %-50s",(const char*)datadoc_str,
|
||||||
|
(const char*)mov_descr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
set_row(r,"Operazione n. %7ld", numreg);
|
set_row(r,"Operazione n. %-7ld", numreg);
|
||||||
set_row(r," del %s", (const char*) datareg);
|
set_row(r," del %s", (const char*) datareg_str);
|
||||||
set_row(r," documento n. %-7s", (const char*) numdoc);
|
set_row(r," doc. n. %-7s", (const char*) numdoc);
|
||||||
set_row(r," del %s %s", (const char*)datadoc,(const char*)mov_descr);
|
set_row(r," del %s %-50s", (const char*)datadoc_str,(const char*)mov_descr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_annoEsMov != _ae)
|
if (_annoEsMov != _ae)
|
||||||
set_row(r," Comp. %04d", _annoEsMov);
|
set_row(r," Comp. %04d", _annoEsMov);
|
||||||
if (reg.not_empty())
|
|
||||||
set_row(r, " (R.IVA %3s Prot. %ld) ", (const char*)reg,protiva);
|
|
||||||
|
|
||||||
if (_MovGiaStampato && !_stampa_definitiva)
|
if (_MovGiaStampato && !_stampa_definitiva)
|
||||||
set_row(r,format("@%dg*",_stampa_width == 132 ? 131 : 197));
|
set_row(r,format("@%dg*",_stampa_width == 132 ? 131 : 197));
|
||||||
|
|
||||||
if (caus.not_empty())
|
if (caus.not_empty())
|
||||||
{
|
{
|
||||||
TString80 desc_caus(get_descr_caus(caus));
|
TString80 desc_caus(get_descr_caus(caus));
|
||||||
set_row(r+1, "@37gCausale %s %s", (const char*) caus, (const char*) desc_caus);
|
set_row(r+1, "@36gCausale %3s %-50s", (const char*) caus, (const char*) desc_caus);
|
||||||
|
if (_reg.not_empty())
|
||||||
|
set_row(r+1, " (R.IVA %3s Prot. %ld) ", (const char*)_reg,protiva);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************
|
/**************
|
||||||
@ -913,20 +1014,22 @@ void CG3400_application::set_rows (int file, int counter)
|
|||||||
_num_rig++;
|
_num_rig++;
|
||||||
// if (!_libro_giornale_iva_unico) _nprog_mov++;
|
// if (!_libro_giornale_iva_unico) _nprog_mov++;
|
||||||
|
|
||||||
reset_row(1);
|
reset_print();
|
||||||
|
|
||||||
if (cf > ' ') { // Per pulire le righe di indirizzo eventualmente settate prima.
|
|
||||||
reset_row(2); reset_row(3);reset_row(4);
|
|
||||||
}
|
|
||||||
|
|
||||||
g = _cur->file(LF_RMOV).get_int("GRUPPO");
|
g = _cur->file(LF_RMOV).get_int("GRUPPO");
|
||||||
c = _cur->file(LF_RMOV).get_int("CONTO");
|
c = _cur->file(LF_RMOV).get_int("CONTO");
|
||||||
s = _cur->file(LF_RMOV).get_long("SOTTOCONTO");
|
s = _cur->file(LF_RMOV).get_long("SOTTOCONTO");
|
||||||
cf = _cur->file(LF_RMOV).get_char(RMV_TIPOC);
|
cf = _cur->file(LF_RMOV).get_char(RMV_TIPOC);
|
||||||
|
|
||||||
|
if (cf != 'C' && cf != 'F')
|
||||||
|
cf = ' ';
|
||||||
|
|
||||||
numreg = _cur->file(LF_RMOV).get_long("NUMREG");
|
numreg = _cur->file(LF_RMOV).get_long("NUMREG");
|
||||||
datareg = _cur->file(LF_RMOV).get("DATAREG");
|
datareg = _cur->file(LF_RMOV).get("DATAREG");
|
||||||
sezione = _cur->file(LF_RMOV).get_char (RMV_SEZIONE);
|
|
||||||
importo = _cur->file(LF_RMOV).get_real (RMV_IMPORTO);
|
_sezione = _cur->file(LF_RMOV).get_char (RMV_SEZIONE);
|
||||||
|
_importo = _cur->file(LF_RMOV).get_real (RMV_IMPORTO);
|
||||||
|
|
||||||
rmv_descr = _cur->file(LF_RMOV).get(RMV_DESCR);
|
rmv_descr = _cur->file(LF_RMOV).get(RMV_DESCR);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -935,6 +1038,7 @@ void CG3400_application::set_rows (int file, int counter)
|
|||||||
*/
|
*/
|
||||||
r=1;
|
r=1;
|
||||||
|
|
||||||
|
// Num. progressivo di operazione. Azzerato in preprocess_page
|
||||||
if (!_stampa_definitiva) set_row (r, "%7ld", _num_rig);
|
if (!_stampa_definitiva) set_row (r, "%7ld", _num_rig);
|
||||||
|
|
||||||
set_row (r, "@8g%-50s", (const char*) rmv_descr);
|
set_row (r, "@8g%-50s", (const char*) rmv_descr);
|
||||||
@ -962,56 +1066,35 @@ void CG3400_application::set_rows (int file, int counter)
|
|||||||
|
|
||||||
tc.set(g,c,s,cf,NULL,-1,_occfpi);
|
tc.set(g,c,s,cf,NULL,-1,_occfpi);
|
||||||
|
|
||||||
/*if (_stampa_width == 132)
|
if (_stampa_width == 132)
|
||||||
descr_conto.set_width (WCONTO132);
|
descr_conto.set_width (WCONTO132);
|
||||||
else // se a 198 non spezzo le descrizioni
|
else // se a 198 non spezzo le descrizioni
|
||||||
descr_conto.set_width(198);*/
|
descr_conto.set_width(198);
|
||||||
|
|
||||||
|
descr_conto = tc.descrizione();
|
||||||
|
|
||||||
tmp = tc.descrizione();
|
|
||||||
descr_conto = tmp;
|
|
||||||
if (_stampa_width == 132)
|
if (_stampa_width == 132)
|
||||||
rdes = setta_righe_descr (descr_conto, conto);
|
rdes = setta_righe_descr (descr_conto, conto);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rdes = 2;
|
rdes = 2;
|
||||||
frm.format("@%dg%%-%ds", POSCONTO,50);
|
frm.format("@%dg%%-%ds", POSCONTO,50);
|
||||||
set_row (r, frm, (const char*) tmp);
|
set_row (r, frm, (const char*) descr_conto);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cf > ' ')
|
if (cf > ' ')
|
||||||
if (_libro_cronologico)
|
if (_libro_cronologico)
|
||||||
setta_righe_indirizzo(cf, s, rdes);
|
rdes = setta_righe_indirizzo(cf, s, rdes);
|
||||||
|
|
||||||
if (sezione == 'D')
|
// NB Totali aggiornati in postprocess_page (update_totals())
|
||||||
{
|
|
||||||
if (_annoEsMov != _ae) {
|
|
||||||
_tot_dare_gg_ap += importo; // prog. anno precedente
|
|
||||||
_tot_dare_progr_ap += importo;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
_tot_dare_gg += importo; // prog. giornalieri
|
|
||||||
_tot_dare_progr += importo; // prog. generali
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (_annoEsMov != _ae) {
|
|
||||||
_tot_avere_gg_ap += importo;
|
|
||||||
_tot_avere_progr_ap += importo;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
_tot_avere_gg += importo;
|
|
||||||
_tot_avere_progr += importo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_stampa_width == 132)
|
if (_stampa_width == 132)
|
||||||
{
|
{
|
||||||
set_row (r, "@112g%r", &importo);
|
set_row (r, "@112g%r", &_importo);
|
||||||
set_row (r, "@128g%c", sezione);
|
set_row (r, "@128g%c", _sezione);
|
||||||
}
|
}
|
||||||
else // stampa_width == 198
|
else // stampa_width == 198
|
||||||
set_row (r, sezione == 'D' ? "@150g%r" : "@174g%r", &importo);
|
set_row (r, _sezione == 'D' ? "@150g%r" : "@174g%r", &_importo);
|
||||||
|
|
||||||
if (_MovGiaStampato && !_stampa_definitiva)
|
if (_MovGiaStampato && !_stampa_definitiva)
|
||||||
set_row(r,format("@%dg*",_stampa_width == 132 ? 131 : 197));
|
set_row(r,format("@%dg*",_stampa_width == 132 ? 131 : 197));
|
||||||
@ -1040,7 +1123,7 @@ bool CG3400_application::preprocess_page(int file, int counter)
|
|||||||
|
|
||||||
case LF_MOV:
|
case LF_MOV:
|
||||||
|
|
||||||
_annoEsMov = 0;
|
_annoEsMov = _anno_iva = 0;
|
||||||
_iva_array.destroy();
|
_iva_array.destroy();
|
||||||
|
|
||||||
if (!_cur->is_first_match(LF_RMOV)) return FALSE;
|
if (!_cur->is_first_match(LF_RMOV)) return FALSE;
|
||||||
@ -1053,7 +1136,9 @@ bool CG3400_application::preprocess_page(int file, int counter)
|
|||||||
*_RecArrivoA = _cur->file(LF_MOV).curr();
|
*_RecArrivoA = _cur->file(LF_MOV).curr();
|
||||||
|
|
||||||
// if (_libro_giornale_iva_unico) _nprog_mov++;
|
// if (_libro_giornale_iva_unico) _nprog_mov++;
|
||||||
_nprog_mov++;
|
_nprog_mov++;
|
||||||
|
// Il numero di operazione deve ripartire da 0 per ogni movimento
|
||||||
|
_num_rig = 0;
|
||||||
|
|
||||||
_data_corr = _cur->file(LF_MOV).get_date(MOV_DATAREG);
|
_data_corr = _cur->file(LF_MOV).get_date(MOV_DATAREG);
|
||||||
|
|
||||||
@ -1161,30 +1246,47 @@ const char* CG3400_application::get_codiva_des(const char* codiva)
|
|||||||
int CG3400_application::setta_righe_iva()
|
int CG3400_application::setta_righe_iva()
|
||||||
{
|
{
|
||||||
int r=0, j;
|
int r=0, j;
|
||||||
|
TString80 rig;
|
||||||
|
|
||||||
for (j = 0; j < _iva_array.items(); j++)
|
for (j = 0; j < _iva_array.items(); j++)
|
||||||
{
|
{
|
||||||
TRigaiva& riga = (TRigaiva&)_iva_array[j];
|
TRigaiva& riga = (TRigaiva&)_iva_array[j];
|
||||||
r = j+1;
|
r = j+1;
|
||||||
set_row(r, "Imponibile@12g%r", &riga._imponibile);
|
set_row(r, "Imponibile@12g%r", &riga._imponibile);
|
||||||
set_row(r, "@31gImposta@39g%r", &riga._imposta);
|
set_row(r, "@28gImposta@36g%r", &riga._imposta);
|
||||||
set_row(r, "@58gCod.Iva@68g%3s", (const char*)riga._codiva);
|
// set_row(r, "@58gCod.Iva@68g%3s", (const char*)riga._codiva);
|
||||||
|
set_row(r, "@53gCod.Iva %3s", (const char*)riga._codiva);
|
||||||
const TString80 codiva_des(get_codiva_des(riga._codiva));
|
const TString80 codiva_des(get_codiva_des(riga._codiva));
|
||||||
const int tipoatt = riga._tipoatt;
|
const int tipoatt = riga._tipoatt;
|
||||||
set_row(r, "@73g%20s", (const char*)codiva_des);
|
if (_stampa_width == 132)
|
||||||
|
set_row(r, "@65g%-.20s", (const char*)codiva_des);
|
||||||
|
else
|
||||||
|
set_row(r, "@65g%-50s", (const char*)codiva_des);
|
||||||
|
const int S132 = 86;
|
||||||
|
const int S198 = 116;
|
||||||
|
rig.format("@%dg", _stampa_width == 132 ? S132 : S198);
|
||||||
switch (riga._tipodet)
|
switch (riga._tipodet)
|
||||||
{
|
{
|
||||||
case 0 : set_row(r, "@94gDetraibile");
|
case 0 :
|
||||||
break;
|
rig << "Detraibile ";
|
||||||
case 1 : set_row(r, "@94gIndetraibile su op.es.");
|
break;
|
||||||
break;
|
case 1 :
|
||||||
case 3 : set_row(r, "@94gPassaggi interni");
|
rig << "Indetraibile su op.es. ";
|
||||||
break;
|
break;
|
||||||
case 9 : set_row(r, "@94gIndetraibile art.19");
|
case 3 :
|
||||||
break;
|
rig << "Passaggi interni ";
|
||||||
default: break;
|
break;
|
||||||
}
|
case 9 :
|
||||||
set_row(r, " Tipo attivita' %d", tipoatt);
|
rig << "Indetraibile art.19 ";
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
set_row(r, (const char*)rig);
|
||||||
|
|
||||||
|
TRegistro reg(_reg, _anno_iva);
|
||||||
|
const bool att_mista_ev = reg.attivita_mista();
|
||||||
|
if (tipoatt != 0 && att_mista_ev)
|
||||||
|
set_row(r, " Tipo attivita' %d", tipoatt);
|
||||||
}
|
}
|
||||||
_iva_array.destroy();
|
_iva_array.destroy();
|
||||||
set_row (j+1, ""); // lascio una riga vuota dopo tutto cio'
|
set_row (j+1, ""); // lascio una riga vuota dopo tutto cio'
|
||||||
@ -1193,7 +1295,7 @@ int CG3400_application::setta_righe_iva()
|
|||||||
|
|
||||||
int CG3400_application::setta_righe_valuta(int riga)
|
int CG3400_application::setta_righe_valuta(int riga)
|
||||||
{
|
{
|
||||||
const char* simbolo;
|
// const char* simbolo;
|
||||||
TString16 codvali;
|
TString16 codvali;
|
||||||
real corrval;
|
real corrval;
|
||||||
int r = riga+1;
|
int r = riga+1;
|
||||||
@ -1203,13 +1305,14 @@ int CG3400_application::setta_righe_valuta(int riga)
|
|||||||
if (corrval != ZERO)
|
if (corrval != ZERO)
|
||||||
{
|
{
|
||||||
codvali = current_cursor()->file(LF_MOV).get(MOV_CODVALI);
|
codvali = current_cursor()->file(LF_MOV).get(MOV_CODVALI);
|
||||||
simbolo = SimboloValuta(codvali);
|
// simbolo = SimboloValuta(codvali);
|
||||||
TString valut(corrval.string(REAL_PICTURE));
|
TString valut(corrval.string(REAL_PICTURE));
|
||||||
|
|
||||||
if (simbolo && *simbolo)
|
/* if (simbolo && *simbolo)
|
||||||
set_row(r,"@58gValuta %5s", simbolo);
|
set_row(r,"@58gValuta %5s", simbolo);
|
||||||
else
|
else */
|
||||||
set_row(r,"@58gValuta %3s", (const char*)codvali);
|
|
||||||
|
set_row(r,"@58gValuta %3s", (const char*)codvali);
|
||||||
|
|
||||||
set_row(r++,"@84gCorr.in valuta @112g%s", (const char*)valut);
|
set_row(r++,"@84gCorr.in valuta @112g%s", (const char*)valut);
|
||||||
}
|
}
|
||||||
@ -1219,7 +1322,7 @@ int CG3400_application::setta_righe_valuta(int riga)
|
|||||||
// Cerca l'indirizzo del C/F.
|
// Cerca l'indirizzo del C/F.
|
||||||
// Legge CLIFO o OCCAS a seconda di _occas
|
// Legge CLIFO o OCCAS a seconda di _occas
|
||||||
// Setta le righe 2 e 3 che vengono poi resettate al record successivo
|
// Setta le righe 2 e 3 che vengono poi resettate al record successivo
|
||||||
void CG3400_application::setta_righe_indirizzo(char tipocf, long codcf,int rdes)
|
int CG3400_application::setta_righe_indirizzo(char tipocf, long codcf,int rdes)
|
||||||
{
|
{
|
||||||
TString16 prov, comcf, capcf, civcf, statocf;
|
TString16 prov, comcf, capcf, civcf, statocf;
|
||||||
TString80 viacf, comune;
|
TString80 viacf, comune;
|
||||||
@ -1253,7 +1356,7 @@ void CG3400_application::setta_righe_indirizzo(char tipocf, long codcf,int rdes)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// E' possibile cio' ?
|
// E' possibile cio' ?
|
||||||
if (!clifo_ok) return;
|
if (!clifo_ok) return r;
|
||||||
|
|
||||||
viacf = _clifo->get(CLI_INDCF);
|
viacf = _clifo->get(CLI_INDCF);
|
||||||
civcf = _clifo->get(CLI_CIVCF);
|
civcf = _clifo->get(CLI_CIVCF);
|
||||||
@ -1318,6 +1421,7 @@ sprintf (riga, "@%dg%s %s",
|
|||||||
set_row(r++, riga);
|
set_row(r++, riga);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -1335,7 +1439,7 @@ void CG3400_application::aggiorna_tabreg(int partito_da, int stampate)
|
|||||||
|
|
||||||
if (_tabreg->good())
|
if (_tabreg->good())
|
||||||
{
|
{
|
||||||
_tabreg->put ("I7", (long)partito_da); // partito_da = -1 se stampa OK
|
_tabreg->put ("I8", (long)partito_da); // partito_da = -1 se stampa OK
|
||||||
if (partito_da == -1)
|
if (partito_da == -1)
|
||||||
{
|
{
|
||||||
_tabreg->put ("I1", (long)_pagine_stampate + stampate); // pagine stampate
|
_tabreg->put ("I1", (long)_pagine_stampate + stampate); // pagine stampate
|
||||||
@ -1348,21 +1452,62 @@ void CG3400_application::aggiorna_tabreg(int partito_da, int stampate)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CG3400_application::get_date_aep(int aep, TDate* in, TDate* fin)
|
||||||
|
{
|
||||||
|
TTable esc("ESC");
|
||||||
|
|
||||||
|
esc.zero(); esc.put("CODTAB", format("%04d",aep));
|
||||||
|
if (esc.read() == NOERR)
|
||||||
|
{
|
||||||
|
*in = esc.get_date("D0");
|
||||||
|
*fin = esc.get_date("D1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool CG3400_application::controlla_mov_aep()
|
bool CG3400_application::controlla_mov_aep()
|
||||||
{
|
{
|
||||||
const int aep = _ae - 1;
|
const int aep = _ae - 1;
|
||||||
|
bool gia_stampati;
|
||||||
|
TDate inizio_ep, fine_ep;
|
||||||
|
|
||||||
|
if (aep <= 0)
|
||||||
|
return TRUE;
|
||||||
|
else
|
||||||
|
get_date_aep(aep,&inizio_ep, &fine_ep);
|
||||||
|
|
||||||
_cur->setfilter(format("ANNOES=%04d && STAMPATO!=\"X\"", aep));
|
#ifdef DBG
|
||||||
|
TString instr(inizio_ep.string());
|
||||||
|
TString finstr(fine_ep.string());
|
||||||
|
#endif
|
||||||
|
|
||||||
|
TRectype da (_cur->file(LF_MOV).curr());
|
||||||
|
TRectype a (_cur->file(LF_MOV).curr());
|
||||||
|
|
||||||
|
da.zero(); a.zero();
|
||||||
|
da.put(MOV_DATAREG, inizio_ep);
|
||||||
|
a.put (MOV_DATAREG, fine_ep);
|
||||||
|
|
||||||
|
_cur->setregion(da, a);
|
||||||
|
|
||||||
|
// _cur->setfilter(format("ANNOES=%04d && STAMPATO!=\"X\"", aep));
|
||||||
(*_cur) = 0L;
|
(*_cur) = 0L;
|
||||||
|
for ( ; _cur->pos() < _cur->items(); ++(*_cur))
|
||||||
_cur->setfilter("");
|
|
||||||
|
|
||||||
if (_cur->items() > 0)
|
|
||||||
{
|
{
|
||||||
|
#ifdef DBG
|
||||||
|
TString datareg(_cur->file().get("DATAREG"));
|
||||||
|
TString numreg(_cur->file().get("NUMREG"));
|
||||||
|
#endif
|
||||||
|
gia_stampati = _cur->file().get_bool("STAMPATO");
|
||||||
|
if (!gia_stampati) break; // basta trovarne uno ancora da stampare
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_cur->items() > 0L && !gia_stampati)
|
||||||
|
{
|
||||||
|
_cur->setfilter("");
|
||||||
warning_box("Impossibile proseguire nella stampa.\nEsistono movimenti nell'esercizio precedente non ancora stampati su bollato");
|
warning_box("Impossibile proseguire nella stampa.\nEsistono movimenti nell'esercizio precedente non ancora stampati su bollato");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
_cur->setfilter("");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1382,7 +1527,7 @@ bool CG3400_application::leggi_tabreg(const char * reg_cod, int reg_anno)
|
|||||||
|
|
||||||
_pagine_stampate = _tabreg->get_int("I1");
|
_pagine_stampate = _tabreg->get_int("I1");
|
||||||
_pagine_numerate = _tabreg->get_int("I2");
|
_pagine_numerate = _tabreg->get_int("I2");
|
||||||
_stampa_ok = _tabreg->get_int("I7");
|
_stampa_ok = _tabreg->get_int("I8");
|
||||||
_nprog_da = _tabreg->get_long ("I6");
|
_nprog_da = _tabreg->get_long ("I6");
|
||||||
_tot_dare = _tabreg->get_real ("R1");
|
_tot_dare = _tabreg->get_real ("R1");
|
||||||
_tot_avere = _tabreg->get_real ("R2");
|
_tot_avere = _tabreg->get_real ("R2");
|
||||||
@ -1645,24 +1790,58 @@ void CG3400_application::init_totals()
|
|||||||
_tot_avere_gg = ZERO;
|
_tot_avere_gg = ZERO;
|
||||||
_tot_dare_generale = ZERO;
|
_tot_dare_generale = ZERO;
|
||||||
_tot_avere_generale = ZERO;
|
_tot_avere_generale = ZERO;
|
||||||
_tot_dare_progr = _tot_dare;
|
if (_stampa_definitiva)
|
||||||
_tot_avere_progr = _tot_avere;
|
{
|
||||||
|
_tot_dare_progr = _tot_dare;
|
||||||
|
_tot_avere_progr = _tot_avere;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_tot_dare_progr = ZERO;
|
||||||
|
_tot_avere_progr = ZERO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CG3400_application::init_cursor()
|
bool CG3400_application::init_cursor()
|
||||||
{
|
{
|
||||||
|
bool gia_stampati = FALSE;
|
||||||
|
|
||||||
TRectype da (_cur->file(LF_MOV).curr());
|
TRectype da (_cur->file(LF_MOV).curr());
|
||||||
TRectype a (_cur->file(LF_MOV).curr());
|
TRectype a (_cur->file(LF_MOV).curr());
|
||||||
|
|
||||||
|
#ifdef DBG
|
||||||
|
TString instr(_data_da.string());
|
||||||
|
TString finstr(_data_a.string());
|
||||||
|
#endif
|
||||||
|
|
||||||
da.zero(); a.zero();
|
da.zero(); a.zero();
|
||||||
da.put(MOV_DATAREG, _data_da);
|
da.put(MOV_DATAREG, _data_da);
|
||||||
a.put (MOV_DATAREG, _data_a);
|
a.put (MOV_DATAREG, _data_a);
|
||||||
|
|
||||||
_cur->setregion(da, a);
|
_cur->setregion(da, a);
|
||||||
|
|
||||||
if (_cur->items() == 0)
|
// _cur->setfilter(format("ANNOES=%04d && STAMPATO!=\"X\"", _ae));
|
||||||
return warning_box ("Non ci sono movimenti.\nLa stampa e' annullata");
|
(*_cur) = 0L;
|
||||||
|
|
||||||
|
if (_stampa_definitiva)
|
||||||
|
for ( ; _cur->pos() < _cur->items(); ++(*_cur))
|
||||||
|
{
|
||||||
|
#ifdef DBG
|
||||||
|
TString datareg(_cur->file().get("DATAREG"));
|
||||||
|
TString numreg(_cur->file().get("NUMREG"));
|
||||||
|
#endif
|
||||||
|
gia_stampati = _cur->file().get_bool("STAMPATO");
|
||||||
|
if (!gia_stampati) break; // basta trovarne uno ancora da stampare
|
||||||
|
}
|
||||||
|
|
||||||
|
// if (_cur->items() == 0L)
|
||||||
|
if (_cur->items() == 0L || (gia_stampati && _stampa_definitiva))
|
||||||
|
{
|
||||||
|
_cur->setfilter("");
|
||||||
|
return warning_box ("Non ci sono movimenti da stampare nel periodo selezionato.\nLa stampa e' annullata");
|
||||||
|
}
|
||||||
|
|
||||||
|
_cur->setfilter("");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1701,6 +1880,7 @@ bool CG3400_application::set_print(int)
|
|||||||
}
|
}
|
||||||
|
|
||||||
init_print();
|
init_print();
|
||||||
|
if (!init_cursor()) continue;
|
||||||
|
|
||||||
if (_stampa_definitiva)
|
if (_stampa_definitiva)
|
||||||
{
|
{
|
||||||
@ -1730,7 +1910,6 @@ bool CG3400_application::set_print(int)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!init_cursor()) return FALSE;
|
|
||||||
init_totals();
|
init_totals();
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user