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:
parent
7447506b41
commit
8f7d3a77cb
119
sc/sc2300.cpp
119
sc/sc2300.cpp
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user