From 313732f8ac02da0e38b258ba78aaa1fcd6bfaeef Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 3 Nov 1995 08:04:05 +0000 Subject: [PATCH] Aggiunta gestione ulc in sheet di prima nota git-svn-id: svn://10.65.10.50/trunk@2070 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/pagament.cpp | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/cg/pagament.cpp b/cg/pagament.cpp index c2da99fe5..4680f56d3 100755 --- a/cg/pagament.cpp +++ b/cg/pagament.cpp @@ -46,7 +46,7 @@ void TPagamento::set_inizio(const TDate& d) { bool dio; _inizio = d; - recalc_rate(0, FALSE, NULL, d.string(), NULL, _rdiff, _mcomm, dio); + recalc_rate(0, FALSE, NULL, d.string(), NULL, NULL, _rdiff, _mcomm, dio); } void TPagamento::set_intervallo_rate(int in) @@ -196,7 +196,7 @@ void TPagamento::set_numero_rate(int n, int sscad, int rdiff) { if (i >= nr) add_rata(perc, (sscad == -1 ? (i < nr ? scad_rata(i) : scad_rata(nr-1)) : sscad), - tipo_rata(nr-1)); + tipo_rata(nr-1), ulc_rata(nr-1)); if (_inited) set_imprata (i, div); set_percrata(i, perc); } @@ -598,7 +598,8 @@ const char* TPagamento::desc_tipo(int i) const word TPagamento::recalc_rate(int row, bool is_perc_modified, const char* new_value, const char* scad, - const char* typ, int rdiff, bool mcomm, + const char* typ, const char* ulc, + int rdiff, bool mcomm, bool& need_recalc) // ricalcola le rate sulla base di parametri modificati sulla riga row // parametri: tutti i const char* possono essere NULL, il che vuol dire @@ -614,7 +615,8 @@ word TPagamento::recalc_rate(int row, bool is_perc_modified, if (_rate.items() == 0) return P_OK; real rsum(0.0), newv(0.0), rmax(0.0); - int oldtype = tipo_rata(0); + int oldtype = tipo_rata(0); + TString oldulc = ulc_rata(0); int oldscad = scad_rata(0); TDate lastdate = data_rata(0); int first = _tpr < 4 ? 0 : 1; @@ -666,6 +668,12 @@ word TPagamento::recalc_rate(int row, bool is_perc_modified, // no error is possible } } + } + + if (ulc != NULL) + { + rata(row).add(ulc, 5); + srate.row(row).add(ulc, 5); } if (scad != NULL) @@ -787,6 +795,7 @@ word TPagamento::recalc_rate(int row, bool is_perc_modified, TDate dd(lastdate); int type = oldtype; + TString nulc = oldulc; int nscd = oldscad; const int frs = (rdiff == 3 || rdiff == 4) ? row+1 : first; @@ -828,7 +837,7 @@ word TPagamento::recalc_rate(int row, bool is_perc_modified, next_scad(dd,nscd,mcomm,k); set_rata(k, is_perc_modified ? (k == first ? nimp : div) : ZERO, - nscd, type, NULL, NULL, _inited ? dd.string() : NULL); + nscd, type, nulc, NULL, _inited ? dd.string() : NULL); if (!is_perc_modified) set_imprata (k, k == first ? (nimp + delta) : div); } @@ -872,7 +881,7 @@ word TPagamento::recalc_rate(int row, bool is_perc_modified, next_scad(dd,nscd,mcomm,k); set_rata(k, is_perc_modified ? (k == first ? rfirst : nimp) : ZERO, - nscd, type, ulc); + nscd, type, ulc, NULL, dd.string()); if (!is_perc_modified) set_imprata (k, k == first ? (rfirst + delta) : nimp); } @@ -1334,10 +1343,11 @@ void TPagamento::set_sheet(TSheet_field& sf, int sscad) } ts.add(perc_rata(i).string(), 3); // 3 - Percentuale ts.add(tipo_rata(i), 4); // 4 - Tipo rata - ts.add(desc_tipo(tipo_rata(i)), 5); // 5 - Descrizione tipo rata - // 6,7,8,9 - Banche + ts.add(ulc_rata(i), 5); // 5 - Ulteriore classificazione + ts.add(desc_tipo(tipo_rata(i)), 6); // 6 - Descrizione tipo rata + // 7,8,9,10 - Banche const bool paid = ratapagata(i); - ts.add(paid ? "X" : "", 10); // 10 - Pagaya + ts.add(paid ? "X" : "", 11); // 11 - Pagaya } // destroy remaining