campo-sirio/m770/77stqga.cpp
nik 42036c85e4 Corretto L agg. e filtro in all.G
git-svn-id: svn://10.65.10.50/trunk@3849 c028cbd2-c16b-5b4b-a496-9718f37d4682
1996-10-30 10:54:27 +00:00

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;
}