244 lines
5.7 KiB
C++
Executable File
244 lines
5.7 KiB
C++
Executable File
// stampa quadro G aggiuntivo
|
|
#include "77stba.h"
|
|
|
|
// ATTENZIONE! cambiare se nel form 77qga.frm
|
|
// cambia il numero identificativo del primo importo
|
|
const int PRIMO_IMPORTO = 24;
|
|
const int PRIMA_ALIQUOTA = 49;
|
|
|
|
// determina se codditta necessita dell'all.G
|
|
bool TQuadroGAgg::EsisteAllegG(const long codditta)
|
|
{
|
|
TString filtr(24);
|
|
_codditta=codditta;
|
|
TCursor* cur=cursor();
|
|
filtr.format("CODDITTA==%ld", codditta);
|
|
cur->setfilter(filtr, TRUE);
|
|
const long items = cur->items();
|
|
if (!items)
|
|
return FALSE;
|
|
|
|
(*cur)=0L;
|
|
TRectype& rec = cur->curr();
|
|
TToken_string p35a(rec.get("P35A"));
|
|
|
|
for (int i=0; i<20; i++)
|
|
{
|
|
if (i == 6 || i == 10 || i == 13 || i == 16 || i == 19)
|
|
{
|
|
TString aliquota = p35a.get(i);
|
|
if (!aliquota.blank())
|
|
return TRUE;
|
|
}
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
bool TQuadroGAgg::print(const long codditta, const long NumFis, const long NumNoFis)
|
|
{
|
|
TCursor* cur = cursor();
|
|
TPrinter& pr = printer();
|
|
|
|
if (!EsisteAllegG(codditta))
|
|
return FALSE;
|
|
|
|
// MA SERVE???
|
|
// (*cur)=0L;
|
|
|
|
TRectype& rec = cur->curr();
|
|
|
|
TToken_string p33a(rec.get("P33A"));
|
|
TToken_string p33b(rec.get("P33B"));
|
|
TToken_string p35a(rec.get("P35A"));
|
|
TToken_string p35b(rec.get("P35B"));
|
|
TToken_string p36a(rec.get("P36A"));
|
|
TToken_string p36b(rec.get("P36B"));
|
|
|
|
bool bAggiuntivo = FALSE;
|
|
|
|
TArray importi;
|
|
TArray aliquote;
|
|
|
|
real rip_p33a, rip_p33b, rip_p35b, rip_p36a, rip_p36b;
|
|
real tot_p33a, tot_p33b, tot_p35b, tot_p36a, tot_p36b;
|
|
|
|
rip_p33a = ZERO;
|
|
rip_p33b = ZERO;
|
|
rip_p35b = ZERO;
|
|
rip_p36a = ZERO;
|
|
rip_p36b = ZERO;
|
|
|
|
tot_p33a = ZERO;
|
|
tot_p33b = ZERO;
|
|
tot_p35b = ZERO;
|
|
tot_p36a = ZERO;
|
|
tot_p36b = ZERO;
|
|
|
|
for (int i=0; i<20; i++)
|
|
{
|
|
if (i == 6 || i == 10 || i == 13 || i == 16 || i == 19)
|
|
{
|
|
TString aliquota = p35a.get(i);
|
|
bAggiuntivo = bAggiuntivo || !aliquota.blank();
|
|
|
|
real aliq = p35a.get(i);
|
|
aliquote.add(aliq);
|
|
|
|
real imp = ZERO;
|
|
if (aliquota.blank())
|
|
{
|
|
importi.add(imp);
|
|
importi.add(imp);
|
|
importi.add(imp);
|
|
importi.add(imp);
|
|
importi.add(imp);
|
|
}
|
|
else
|
|
{
|
|
imp = p33a.get(i);
|
|
importi.add(imp);
|
|
tot_p33a += imp;
|
|
imp = p33b.get(i);
|
|
importi.add(imp);
|
|
tot_p33b += imp;
|
|
imp = p35b.get(i);
|
|
importi.add(imp);
|
|
tot_p35b += imp;
|
|
imp = p36a.get(i);
|
|
importi.add(imp);
|
|
tot_p36a += imp;
|
|
imp = p36b.get(i);
|
|
importi.add(imp);
|
|
tot_p36b += imp;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
rip_p33a += p33a.get(i);
|
|
rip_p33b += p33b.get(i);
|
|
rip_p35b += p35b.get(i);
|
|
rip_p36a += p36a.get(i);
|
|
rip_p36b += p36b.get(i);
|
|
}
|
|
}
|
|
|
|
_RigaCorr=0;
|
|
|
|
if (bAggiuntivo)
|
|
{
|
|
TPrint_section& body = section('B', odd_page);
|
|
|
|
// calcolo totali finali (tot+rip)
|
|
tot_p33a += rip_p33a;
|
|
tot_p33b += rip_p33b;
|
|
tot_p35b += rip_p35b;
|
|
tot_p36a += rip_p36a;
|
|
tot_p36b += rip_p36b;
|
|
|
|
TForm_item& item_tot_p33a = body.find_field(61);
|
|
tot_p33a = tot_p33a / 1000.00;
|
|
tot_p33a.trunc();
|
|
TString stot_p33a (tot_p33a.string());
|
|
item_tot_p33a.set(stot_p33a);
|
|
|
|
TForm_item& item_tot_p33b = body.find_field(62);
|
|
tot_p33b = tot_p33b / 1000.00;
|
|
tot_p33b.trunc();
|
|
TString stot_p33b (tot_p33b.string());
|
|
item_tot_p33b.set(stot_p33b);
|
|
|
|
TForm_item& item_tot_p35b = body.find_field(63);
|
|
tot_p35b = tot_p35b / 1000.00;
|
|
tot_p35b.trunc();
|
|
TString stot_p35b (tot_p35b.string());
|
|
item_tot_p35b.set(stot_p35b);
|
|
|
|
TForm_item& item_tot_p36a = body.find_field(64);
|
|
tot_p36a = tot_p36a / 1000.00;
|
|
tot_p36a.trunc();
|
|
TString stot_p36a (tot_p36a.string());
|
|
item_tot_p36a.set(stot_p36a);
|
|
|
|
TForm_item& item_tot_p36b = body.find_field(65);
|
|
tot_p36b = tot_p36b / 1000.00;
|
|
tot_p36b.trunc();
|
|
TString stot_p36b (tot_p36b.string());
|
|
item_tot_p36b.set(stot_p36b);
|
|
|
|
// riporti
|
|
TForm_item& item_rip_p33a = body.find_field(19);
|
|
rip_p33a = rip_p33a / 1000.00;
|
|
rip_p33a.trunc();
|
|
TString srip_p33a (rip_p33a.string());
|
|
item_rip_p33a.set(srip_p33a);
|
|
|
|
TForm_item& item_rip_p33b = body.find_field(20);
|
|
rip_p33b = rip_p33b / 1000.00;
|
|
rip_p33b.trunc();
|
|
TString srip_p33b (rip_p33b.string());
|
|
item_rip_p33b.set(srip_p33b);
|
|
|
|
TForm_item& item_rip_p35b = body.find_field(21);
|
|
rip_p35b = rip_p35b / 1000.00;
|
|
rip_p35b.trunc();
|
|
TString srip_p35b (rip_p35b.string());
|
|
item_rip_p35b.set(srip_p35b);
|
|
|
|
TForm_item& item_rip_p36a = body.find_field(22);
|
|
rip_p36a = rip_p36a / 1000.00;
|
|
rip_p36a.trunc();
|
|
TString srip_p36a (rip_p36a.string());
|
|
item_rip_p36a.set(srip_p36a);
|
|
|
|
TForm_item& item_rip_p36b = body.find_field(23);
|
|
rip_p36b = rip_p36b / 1000.00;
|
|
rip_p36b.trunc();
|
|
TString srip_p36b (rip_p36b.string());
|
|
item_rip_p36b.set(srip_p36b);
|
|
|
|
|
|
for (int j = 0; j < importi.items(); j++)
|
|
{
|
|
TForm_item& item_imp = body.find_field(PRIMO_IMPORTO + j);
|
|
real imp = (real&) importi[j];
|
|
imp = imp / 1000.00;
|
|
imp.trunc();
|
|
TString simp (imp.string());
|
|
item_imp.set(simp);
|
|
}
|
|
for (j = 0; j < aliquote.items(); j++)
|
|
{
|
|
TForm_item& item_aliq = body.find_field(PRIMA_ALIQUOTA + j);
|
|
real aliq = (real&) aliquote[j];
|
|
TString saliq (aliq.string());
|
|
item_aliq.set(saliq);
|
|
}
|
|
|
|
body.update();
|
|
const int body_righe = body.height();
|
|
for (int i = 0; i < body_righe; i++)
|
|
{
|
|
pr.print(body.row(i));
|
|
_RigaCorr++;
|
|
}
|
|
}
|
|
|
|
pr.formfeed();
|
|
close_print();
|
|
return TRUE;
|
|
}
|
|
|
|
bool TStampaQuadroGAgg::user_create()
|
|
{
|
|
_form = new TQuadroGAgg("77QGA", quadro());
|
|
_form->set_cursor(_form->TForm::cursor());
|
|
_cur = _form->cursor();
|
|
_rel = _form->relation();
|
|
return TRUE;
|
|
}
|
|
|
|
bool TStampaQuadroGAgg::user_destroy()
|
|
{
|
|
delete _form;
|
|
return TRUE;
|
|
} |