Corretto errore MI1043. Aggiunta la stampa dei 3 decimali per la stampa

in valuta (prima era a 2). Risistemate intestazioni e calcoli
sulle note di credito, non assegnati ecc.


git-svn-id: svn://10.65.10.50/trunk@2731 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-04-15 16:55:59 +00:00
parent 7447506b41
commit 8f7d3a77cb

View File

@ -177,7 +177,7 @@ void TStampaScaduto::compute_all(TPartita& p)
const char* field = (_stvaluta && rs.in_valuta()) ? PAGSCA_IMPORTOVAL : PAGSCA_IMPORTO;
const char* sfield = (_stvaluta && rs.in_valuta()) ? SCAD_IMPORTOVAL : SCAD_IMPORTO;
const char ssez = rp.sezione();
TImporto scd,pag,bf;
TImporto scd,pag,bf,work_imp;
if (d > _limop) continue;
scd += TImporto(ssez,rs.get_real(sfield)); // Importo in scadenza...
pag += rs.importo_pagato(_stvaluta,7); // Quanto e' stato pagato per questa scadenza?
@ -187,20 +187,18 @@ void TStampaScaduto::compute_all(TPartita& p)
const TRiga_partite& sum = p.riga(pp);
const char sez = sum.sezione();
const int tipomov = sum.get_int(PART_TIPOMOV);
switch (tipomov)
{
case 5: // Insoluto (aumenta scd)
scd += TImporto(sez,pg.get_real(field));
break;
case 2: // Nota di credito assegnata (storna da scd)
scd -= TImporto(sez,pg.get_real(field));
break;
default:
break;
// Se tipomov e' 5 (Insoluto) aumenta scdz; se tipomov e' 2 (Nota di credito assegnata)
// storna da scdz. In entrambi i casi si ha l'operatore +=, perche' nel TImporto e' gia'
// compresa la sezione opposta
if (tipomov==5 || tipomov==2)
{
work_imp = TImporto(sez,pg.get_real(field));
scd += work_imp;
pag -= work_imp;
}
if ((tipomov==3 || tipomov==5) && _tipost==clienti && _gcr!=0)
{
TDate data_pag(sum.get_date(PART_DATAPAG)); // This will be PART_DATAPAG
TDate data_pag(sum.get_date(PART_DATAPAG));
int tipo_pag = rs.get_int(SCAD_TIPOPAG);
if (tipo_pag!=1 && tipo_pag!=8 && tipo_pag!= 9 && data_pag.ok()) //Incasso tramite effetto
if (data_pag >= _limbf && data_pag <= _limscad)
@ -209,7 +207,7 @@ void TStampaScaduto::compute_all(TPartita& p)
}
char norm='D';
if (_tipost == fornitori) norm = 'A';
pag.normalize(norm); scd.normalize(norm); bf.normalize(norm);
pag.normalize((norm=='D') ? 'A' : 'D'); scd.normalize(norm); bf.normalize(norm);
real res,a,b; a = pag.valore(); b = scd.valore(); buonf = bf.valore();
if (_uns > 0.0) // Rettifica i pagamenti con i non assegnati
{
@ -224,15 +222,24 @@ void TStampaScaduto::compute_all(TPartita& p)
_unsnc -= gap;
}
res = b - a; // Scadenze - pagati = scaduto per questo gruppo di rate
if (b == 0.0) // Se le scadenze sono a zero, vuol dire che sono state stornate
res = 0.0; // da qualche nota di credito o non assegnato percio' non si ha residuo
if (res < 0.0) // Significa che l'importo pagato e' maggiore dell'importo in scadenza
{ // c'e' un residuo positivo, e quindi va memorizzato
res *= -1.0; // cambia il segno
res_pagati+= res; // Residui pagati in piu'
res = 0.0;
}
if (d > _limscad)
nonscad += res;
else
res -= res_pagati; //Detrae dal residuo scaduto eventuali pagamenti in piu' effettuati
{
// Detrae dal residuo scaduto eventuali pagamenti in piu' effettuati
real gap = (res_pagati > res ? res : res_pagati);
res -= gap;
res_pagati -= gap;
}
if (d < _limscad && d >= (TDate&)_s_date[0])
s1 += res;
if (d < (TDate&)_s_date[0] && d >= (TDate&)_s_date[1])
@ -258,47 +265,47 @@ void TStampaScaduto::compute_all(TPartita& p)
}
if (residuo != 0.0)
{
if (_stvaluta && _codval != " ") _residuo = residuo.string(".2");
if (_stvaluta && _codval != " ") _residuo = residuo.string(".3");
else _residuo = residuo.string(".");
}
if (nonscad != 0.0)
{
if (_stvaluta && _codval != " ") _nonscad = nonscad.string(".2");
if (_stvaluta && _codval != " ") _nonscad = nonscad.string(".3");
else _nonscad = nonscad.string(".");
}
if (buonf != 0.0)
{
if (_stvaluta && _codval != " ") _buonfin = buonf.string(".2");
if (_stvaluta && _codval != " ") _buonfin = buonf.string(".3");
else _buonfin = buonf.string(".");
}
if (s1 != 0.0)
{
if (_stvaluta && _codval != " ") _sc_1 = s1.string(".2");
if (_stvaluta && _codval != " ") _sc_1 = s1.string(".3");
else _sc_1 = s1.string(".");
}
if (s2 != 0.0)
{
if (_stvaluta && _codval != " ") _sc_2 = s2.string(".2");
if (_stvaluta && _codval != " ") _sc_2 = s2.string(".3");
else _sc_2 = s2.string(".");
}
if (s3 != 0.0)
{
if (_stvaluta && _codval != " ") _sc_3 = s3.string(".2");
if (_stvaluta && _codval != " ") _sc_3 = s3.string(".3");
else _sc_3 = s3.string(".");
}
if (s4 != 0.0)
{
if (_stvaluta && _codval != " ") _sc_4 = s4.string(".2");
if (_stvaluta && _codval != " ") _sc_4 = s4.string(".3");
else _sc_4 = s4.string(".");
}
if (s5 != 0.0)
{
if (_stvaluta && _codval != " ") _sc_5 = s5.string(".2");
if (_stvaluta && _codval != " ") _sc_5 = s5.string(".3");
else _sc_5 = s5.string(".");
}
if (s6 != 0.0)
{
if (_stvaluta && _codval != " ") _sc_6 = s6.string(".2");
if (_stvaluta && _codval != " ") _sc_6 = s6.string(".3");
else _sc_6 = s6.string(".");
}
// Aggiorna i totali...
@ -630,42 +637,42 @@ void TStampaScaduto::print_totali_rows(int& nriga, bool what)
_LineTotal& v = (_LineTotal&)xassoc[k];
if (k != " ")
set_row(nriga,"@37g%-3s",(const char*)k);
if (_stvaluta && k != " ") value = v._rd.string(".2");
if (_stvaluta && k != " ") value = v._rd.string(".3");
else value = v._rd.string(".");
if (v._rd != 0.0)
set_row(nriga,"@41g%17s",(const char*) value);
if (_stvaluta && k != " ") value = v._ns.string(".2");
set_row(nriga,"@41g%18s",(const char*) value);
if (_stvaluta && k != " ") value = v._ns.string(".3");
else value = v._ns.string(".");
if (v._ns != 0.0)
set_row(nriga,"@59g%17s",(const char*) value);
if (_stvaluta && k != " ") value = v._bf.string(".2");
set_row(nriga,"@60g%18s",(const char*) value);
if (_stvaluta && k != " ") value = v._bf.string(".3");
else value = v._bf.string(".");
if (v._bf != 0.0)
set_row(nriga,"@77g%17s",(const char*) value);
if (_stvaluta && k != " ") value = v._s1.string(".2");
set_row(nriga,"@79g%18s",(const char*) value);
if (_stvaluta && k != " ") value = v._s1.string(".3");
else value = v._s1.string(".");
if (v._s1 != 0.0)
set_row(nriga,"@95g%17s",(const char*) value);
if (_stvaluta && k != " ") value = v._s2.string(".2");
set_row(nriga,"@98g%18s",(const char*) value);
if (_stvaluta && k != " ") value = v._s2.string(".3");
else value = v._s2.string(".");
if (v._s2 != 0.0)
set_row(nriga,"@113g%17s",(const char*) value);
if (_stvaluta && k != " ") value = v._s3.string(".2");
set_row(nriga,"@117g%18s",(const char*) value);
if (_stvaluta && k != " ") value = v._s3.string(".3");
else value = v._s3.string(".");
if (v._s3 != 0.0)
set_row(nriga,"@131g%17s",(const char*) value);
if (_stvaluta && k != " ") value = v._s4.string(".2");
set_row(nriga,"@136g%18s",(const char*) value);
if (_stvaluta && k != " ") value = v._s4.string(".3");
else value = v._s4.string(".");
if (v._s4 != 0.0)
set_row(nriga,"@149g%17s",(const char*) value);
if (_stvaluta && k != " ") value = v._s5.string(".2");
set_row(nriga,"@155g%18s",(const char*) value);
if (_stvaluta && k != " ") value = v._s5.string(".3");
else value = v._s5.string(".");
if (v._s5 != 0.0)
set_row(nriga,"@167g%17s",(const char*) value);
if (_stvaluta && k != " ") value = v._s6.string(".2");
set_row(nriga,"@174g%18s",(const char*) value);
if (_stvaluta && k != " ") value = v._s6.string(".3");
else value = v._s6.string(".");
if (v._s6 != 0.0)
set_row(nriga,"@185g%17s",(const char*) value);
set_row(nriga,"@193g%18s",(const char*) value);
set_row(++nriga,"");
}
xassoc.destroy(); // Distrugge il totale appena stampato
@ -714,7 +721,7 @@ void TStampaScaduto::print_header()
case fornitori:
case clienti:
{
TString rw(203);
TString rw(211);
TString s1,s2;
int o = 0; // Offset per scaglioni.
set_header (soh++, "Ditta : %ld %s@158gData@163g%s @190gPag. @#",
@ -734,11 +741,11 @@ void TStampaScaduto::print_header()
rw.fill('-');
set_header(soh++, (const char *) rw);
set_header(soh++,"CODICE@18gC O G N O M E E N O M E ");
set_header(soh++,"Riferim.@12gNumero@20gNumero@27gData@46gResiduo@94g"
set_header(soh++,"Riferim.@12gNumero@20gNumero@27gData@50gResiduo@102g"
"---------------------------------------------- S C A D U T O "
"----------------------------------------------");
set_header(soh++,"partita@12gDocum.@20gProt.@27gDocumento@38gValuta"
"@46gDocumento@64gNon Scaduto@82g%s@100g%s@118g%s@136g%s@154g%s@172g%s@190g%s",
"@50gDocumento@67gNon Scaduto@86g%s@112g%s@129g%s@148g%s@167g%s@185g%s@204g%s",
(const char*)s1,scaglioni[0],scaglioni[1+o],scaglioni[2+o],
scaglioni[3+o],scaglioni[4+o],(const char*) s2);
set_header(soh++,(const char *)rw);
@ -746,7 +753,7 @@ void TStampaScaduto::print_header()
}
case altri: // Piano dei conti
{
TString rw(180);
TString rw(183);
set_header (soh++, "Ditta : %ld %s@152gData@157g%s @170gPag. @#",
firm, (const char *)s, (const char *)datas);
set_header(soh++,"@79g** SCADUTO **");
@ -755,10 +762,10 @@ void TStampaScaduto::print_header()
rw.fill('-');
set_header(soh++, (const char *) rw);
set_header(soh++,"CONTO@18gD E S C R I Z I O N E");
set_header(soh++,"Riferim.@12gNumero@20gNumero@27gData@46gResiduo@94g"
set_header(soh++,"Riferim.@12gNumero@20gNumero@27gData@50gResiduo@102g"
"-------------------------- S C A D U T O -------------------------");
set_header(soh++,"partita@12gDocum.@20gProt.@27gDocumento@38gValuta"
"@46gDocumento@64gNon Scaduto@100g%s@118g%s@136g%s@154g%s@172g%s",
"@50gDocumento@67gNon Scaduto@112g%s@129g%s@148g%s@167g%s@185g%s",
scaglioni[0],scaglioni[5],scaglioni[6],
scaglioni[7],scaglioni[8]);
set_header(soh++,(const char *)rw);
@ -783,15 +790,15 @@ void TStampaScaduto::set_page_part(int& nriga)
set_row(nriga,"#2t/@7s",&_anno,FLD(LF_PARTITE,PART_NUMPART));
set_row(nriga,"@12g#t@20g#5t",&_numdoc,&_protiva);
set_row(nriga,"@26g#t@37g#t",&_datadoc,&_codval);
set_row(nriga,"@41g#17t",&_residuo);
set_row(nriga,"@59g#17t",&_nonscad);
set_row(nriga,"@77g#17t",&_buonfin);
set_row(nriga,"@95g#17t",&_sc_1);
set_row(nriga,"@113g#17t",&_sc_2);
set_row(nriga,"@131g#17t",&_sc_3);
set_row(nriga,"@149g#17t",&_sc_4);
set_row(nriga,"@167g#17t",&_sc_5);
set_row(nriga,"@185g#17t",&_sc_6);
set_row(nriga,"@41g#18t",&_residuo);
set_row(nriga,"@60g#18t",&_nonscad);
set_row(nriga,"@79g#18t",&_buonfin);
set_row(nriga,"@98g#18t",&_sc_1);
set_row(nriga,"@117g#18t",&_sc_2);
set_row(nriga,"@136g#18t",&_sc_3);
set_row(nriga,"@155g#18t",&_sc_4);
set_row(nriga,"@174g#18t",&_sc_5);
set_row(nriga,"@193g#18t",&_sc_6);
}
void TStampaScaduto::set_page(int file, int counter)