Patch level : 12.0 332

Files correlati     : sc2.exe

L'ultima colonna dell' a scadere non viene mai riempita

git-svn-id: svn://10.65.10.50/branches/R_10_00@23522 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2017-01-12 00:24:30 +00:00
parent 98f08fd845
commit 64c4ff6050

View File

@ -44,8 +44,8 @@ enum tipo_st {clienti=0, fornitori=1};
class TLineTotal : public TObject //Oggetto di base per i TAssoc_array dei totali
{
public:
real _s[NUMERO_FASCE];// Scaglioni scaduto
real _ns[NUMERO_FASCE];// Scaglioni a scadere
real _s[NUMERO_FASCE + 1];// Scaglioni scaduto
real _ns[NUMERO_FASCE + 1];// Scaglioni a scadere
real _es; // esposto
real _sl; // saldo
@ -58,7 +58,7 @@ public:
TLineTotal & TLineTotal::copy(const TLineTotal & l)
{
for (int i = 0; i < NUMERO_FASCE; i++)
for (int i = 0; i <= NUMERO_FASCE; i++)
{
_s[i] = l._s[i];
_ns[i] = l._ns[i];
@ -70,7 +70,7 @@ TLineTotal & TLineTotal::copy(const TLineTotal & l)
void TLineTotal::zero()
{
for (int i = 0; i < NUMERO_FASCE; i++)
for (int i = 0; i <= NUMERO_FASCE; i++)
{
_s[i] = ZERO;
_ns[i] = ZERO;
@ -132,7 +132,7 @@ public:
void print_header();
int calc_last_column();
void update_totals(bool what, real& esp, real s[NUMERO_FASCE], real ns[NUMERO_FASCE]);
void update_totals(bool what, real& esp, real s[NUMERO_FASCE + 1], real ns[NUMERO_FASCE + 1]);
void compute_unassigned(TPartita& p, const TDate & datalim);
void compute_all(TPartita& p);
void print_real(TString& dest, const real& num);
@ -171,7 +171,7 @@ bool fil_function(const TRelation *r)
}
void TProspettoScadenze::update_totals(bool what, real& esp,
real s[NUMERO_FASCE], real ns[NUMERO_FASCE])
real s[NUMERO_FASCE + 1], real ns[NUMERO_FASCE + 1])
{
TAssoc_array& a = (TAssoc_array&) _t[what];
TLineTotal *ll = (TLineTotal *) a.objptr(_codval);
@ -180,7 +180,7 @@ void TProspettoScadenze::update_totals(bool what, real& esp,
ll = new TLineTotal;
a.add(_codval, ll);
}
for (int i = 0; i < NUMERO_FASCE; i++)
for (int i = 0; i <= NUMERO_FASCE; i++)
{
ll->_s[i] += s[i];
ll->_ns[i] += ns[i];
@ -221,8 +221,8 @@ void TProspettoScadenze::compute_unassigned(TPartita& p, const TDate & datalim)
void TProspettoScadenze::compute_all(TPartita& p)
{
real residuo;
real s[NUMERO_FASCE];
real ns[NUMERO_FASCE];
real s[NUMERO_FASCE + 1];
real ns[NUMERO_FASCE + 1];
real res_pagati;
real esposto;
@ -333,15 +333,18 @@ void TProspettoScadenze::compute_all(TPartita& p)
{
if (_nsinfasce)
{
for (int i = _nsfasce - 1; i >= 0; i--)
bool found = false;
for (int i = 0 ; !found && i < _nsfasce; i++)
{
const TDate & limdate = (TDate&)_ns_date[i];
if (limdate.ok() && d > limdate)
{
found = d <= limdate;
if (found)
ns[i] += res;
break;
}
}
if (!found)
ns[_nsfasce] += res;
}
else
ns[0] += res;
@ -350,15 +353,18 @@ void TProspettoScadenze::compute_all(TPartita& p)
{
if (_sinfasce)
{
for (int i = _sfasce - 1; i >= 0; i--)
bool found = false;
for (int i = 0; !found && i <= _sfasce; i++)
{
const TDate & limdate = (TDate&)_s_date[i];
if (limdate.ok() && d <= limdate)
{
found = d >= limdate;
if (found)
s[i] += res;
break;
}
}
if (!found)
s[_sfasce] += res;
}
else
s[0] += res;
@ -515,13 +521,13 @@ bool TProspettoScadenze::open_print()
_s_date.add(new TDate);
_ns_date.add(new TDate);
}
for (int j = 0; j <= _sfasce; j++)
for (int j = 0; j < _sfasce; j++)
{
TDate & d = (TDate &)_s_date[j];
d = _limscad;
d.addmonth(-_limiti[j]);
}
for (int k = 0; k <= _nsfasce; k++)
for (int k = 0; k < _nsfasce; k++)
{
TDate & d = (TDate &)_ns_date[k];
d = _limscad;
@ -593,17 +599,17 @@ bool TProspettoScadenze::open_print()
_colnames.destroy();
if (_sinfasce)
{
_colnames.add(format("Scaduto > %3d gg", _limiti[_sfasce] * 30));
for (int i = _sfasce; i > 0; i--)
_colnames.add(format("Scaduto > %3d gg", _limiti[_sfasce - 1] * 30));
for (int i = _sfasce - 1; i >= 0; i--)
_colnames.add(format("Scaduto <= %3d gg", _limiti[i] * 30));
}
else
_colnames.add("Scaduto");
if (_nsinfasce)
{
for (int i = 1; i <= _nsfasce; i++)
for (int i = 0; i < _nsfasce; i++)
_colnames.add(format("A Scadere <= %3d gg", _limiti[i] * 30));
_colnames.add(format("A Scadere > %3d gg", _limiti[_nsfasce] * 30));
_colnames.add(format("A Scadere > %3d gg", _limiti[_nsfasce - 1] * 30));
}
else
_colnames.add("A Scadere");
@ -734,8 +740,8 @@ bool TProspettoScadenze::set_print(int)
if (nmesi == 0)
nmesi = 1;
for (int i = 0; i <= NUMERO_FASCE; i++)
_limiti[i] = i * nmesi;
for (int i = 0; i < NUMERO_FASCE; i++)
_limiti[i] = (i + 1) * nmesi;
_start = true;
}
_stvaluta = _m->get_bool(F_VALUTA);
@ -922,7 +928,7 @@ void TProspettoScadenze::export_totali_rows()
if (_nsinfasce)
{
for (int i = 0; i < _nsfasce; i++)
for (int i = 0; i <= _nsfasce; i++)
{
_recset->set(_colnames.row(col++), v._ns[i]);
tot += v._ns[i];
@ -1001,9 +1007,9 @@ void TProspettoScadenze::print_header()
rw.cut(0);
if (_sinfasce)
{
rw << format("@%dg >%3d gg", pos, _limiti[_sfasce] * 30);
rw << format("@%dg >%3d gg", pos, _limiti[_sfasce - 1] * 30);
pos += 12;
for (int i = _sfasce; i > 0; i--)
for (int i = _sfasce - 1; i >= 0; i--)
{
rw << format("@%dg <= %3d gg", pos, _limiti[i] * 30);
pos += 12;
@ -1019,12 +1025,12 @@ void TProspettoScadenze::print_header()
const int pos_ascad = pos;
if (_nsinfasce)
{
for (int i = 1; i <= _nsfasce; i++)
for (int i = 0; i < _nsfasce; i++)
{
rw << format("@%dg <= %3d gg", pos, _limiti[i] * 30);
pos = pos + 12;
}
rw << format("@%dg >%3d gg", pos, _limiti[_nsfasce] * 30);
rw << format("@%dg >%3d gg", pos, _limiti[_nsfasce - 1] * 30);
pos = pos + 12;
set_header(soh, format("@%dg%s", pos_ascad+((pos-pos_ascad)/2)-5, "A SCADERE"));
}