Corretto il salto pagina sui clienti a saldo 0, aggiunta stampa
totale pagamenti non assegnati (valida solo per i solleciti), corretto l'incolonnamento su Dare/Avere del saldo totale; corretto l'ordinamento per data scadenza/pagamento. git-svn-id: svn://10.65.10.50/trunk@2470 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
aa872d7573
commit
4e94e16ff0
@ -78,9 +78,11 @@ bool TStampaSol_application::print_selected()
|
|||||||
if (ret > 0)
|
if (ret > 0)
|
||||||
one_printed = TRUE;
|
one_printed = TRUE;
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
one_printed = FALSE;
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
analfabeti++;
|
analfabeti++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (one_printed)
|
if (one_printed)
|
||||||
printer().formfeed();
|
printer().formfeed();
|
||||||
@ -147,7 +149,31 @@ int TStampaSol_application::print_sol()
|
|||||||
|
|
||||||
saldo.normalize(f.sezione_normale());
|
saldo.normalize(f.sezione_normale());
|
||||||
|
|
||||||
if (sel_tot_saldo || saldo.valore() >= sel_importo )
|
TImporto unreferenced; //Totale non assegnati per questa partita.
|
||||||
|
{
|
||||||
|
// Tutto questo ha senso se e solo se la partita e' espressa in un'unica valuta.
|
||||||
|
TString valuta;
|
||||||
|
TRecord_array& unassigned = game.unassigned();
|
||||||
|
for (int r = unassigned.last_row(); r > 0; r = unassigned.pred_row(r))
|
||||||
|
{
|
||||||
|
const TRectype& rec = unassigned.row(r);
|
||||||
|
const TRiga_partite& sum = game.riga(rec.get_int(PAGSCA_NRIGP));
|
||||||
|
const char * field = (sum.in_valuta() && f.in_valuta() ? PAGSCA_IMPORTOVAL : PAGSCA_IMPORTO);
|
||||||
|
if (valuta.empty()) valuta = sum.get(PART_CODVAL);
|
||||||
|
if (sum.get_date(PART_DATAPAG)<=data_limite_soll)
|
||||||
|
{
|
||||||
|
TImporto r(sum.sezione(),rec.get_real(field));
|
||||||
|
unreferenced += r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (unreferenced.valore() > 0)
|
||||||
|
{
|
||||||
|
unreferenced.normalize('A'); //per i non assegnati/anticipi c'e' solo la colonna AVERE
|
||||||
|
form().totali().add(unreferenced,valuta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sel_tot_saldo || unreferenced.valore() > 0 || saldo.valore() >= sel_importo )
|
||||||
{
|
{
|
||||||
const bool printed = form().print_game(game);
|
const bool printed = form().print_game(game);
|
||||||
if (printed)
|
if (printed)
|
||||||
|
@ -94,7 +94,7 @@ int TESSL_row::compare(const TSortable& s) const
|
|||||||
if (c == 0) c = r._rata - _rata;
|
if (c == 0) c = r._rata - _rata;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
c = _data < r._data ? +1 : -1;
|
c = _data < r._data ? -1 : +1;
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -637,8 +637,8 @@ void TESSL_form::change_magic_footer(const THash_object& o, TString& s)
|
|||||||
|
|
||||||
void TESSL_form::print_total(int riga, const THash_object& o)
|
void TESSL_form::print_total(int riga, const THash_object& o)
|
||||||
{
|
{
|
||||||
const short MAXID = 4;
|
const short MAXID = 5;
|
||||||
const short f_id[MAXID] = { PEC_TSALDO, PEC_TSCADUTO, PEC_TESPOSTO, PEC_TIMPLIRE };
|
const short f_id[MAXID] = { PEC_TSALDO, PEC_TSCADUTO, PEC_TESPOSTO, PEC_TIMPLIRE, PEC_TUNASSIGNED };
|
||||||
TString_array prompt(MAXID);
|
TString_array prompt(MAXID);
|
||||||
|
|
||||||
TPrint_section& foot = section('F');
|
TPrint_section& foot = section('F');
|
||||||
@ -674,16 +674,25 @@ void TESSL_form::print_total(int riga, const THash_object& o)
|
|||||||
TForm_item& bavere = body.find_field(PEC_AVERE);
|
TForm_item& bavere = body.find_field(PEC_AVERE);
|
||||||
avere.set_x(bavere.x());
|
avere.set_x(bavere.x());
|
||||||
}
|
}
|
||||||
|
char sez = imp.sezione();
|
||||||
if (imp.sezione() == 'D')
|
real num = imp.valore();
|
||||||
|
if (sez=='D' && num<0)
|
||||||
{
|
{
|
||||||
dare.set(imp.valore().string());
|
num = abs(num); sez = 'A';
|
||||||
|
}
|
||||||
|
if (sez=='A' && num<0)
|
||||||
|
{
|
||||||
|
num = abs(num); sez = 'D';
|
||||||
|
}
|
||||||
|
if (sez == 'D')
|
||||||
|
{
|
||||||
|
dare.set(num.string());
|
||||||
avere.set("");
|
avere.set("");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dare.set("");
|
dare.set("");
|
||||||
avere.set(imp.valore().string());
|
avere.set(num.string());
|
||||||
}
|
}
|
||||||
|
|
||||||
TForm_item& scaduto = foot.find_field(PEC_SCADUTO);
|
TForm_item& scaduto = foot.find_field(PEC_SCADUTO);
|
||||||
@ -710,6 +719,14 @@ void TESSL_form::print_total(int riga, const THash_object& o)
|
|||||||
}
|
}
|
||||||
implire.set(t.importo_lire().string());
|
implire.set(t.importo_lire().string());
|
||||||
|
|
||||||
|
TForm_item& unreferenced = foot.find_field(PEC_UNASSIGNED);
|
||||||
|
if (unreferenced.x() <= 0)
|
||||||
|
{
|
||||||
|
TForm_item& uns = body.find_field(PEC_AVERE);
|
||||||
|
unreferenced.set_x(uns.x());
|
||||||
|
}
|
||||||
|
unreferenced.set(t.unassigned().valore().string());
|
||||||
|
|
||||||
foot.update();
|
foot.update();
|
||||||
|
|
||||||
// Ripristina prompt originari
|
// Ripristina prompt originari
|
||||||
|
Loading…
x
Reference in New Issue
Block a user