Errore setting numero rate se tpr > 4; ora il numero rate specificato e'

quello totale e non piu' quello delle sole rate significative


git-svn-id: svn://10.65.10.50/trunk@2066 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1995-11-02 11:26:50 +00:00
parent 115beb6358
commit 650b996b45

View File

@ -135,19 +135,25 @@ void TPagamento::set_tipo_prima_rata(int v, int sscad)
void TPagamento::set_numero_rate(int n, int sscad, int rdiff)
{
_dirty = FALSE;
if (n == 0 || n == n_rate()) return;
if (n == 0 || n == n_rate()) return;
real p = real(100) / real(n);
p.round(2);
int nr = n_rate();
int first = _tpr < 4 ? 0 : 1;
const int nr = n_rate();
const int first = _tpr < 4 ? 0 : 1;
real sum = 0.0;
int i = 0;
// diciamo che gli diciamo il numero giusto
if (first == 1 && n < 2) return;
const int nact = first == 1 ? n - 1 : n;
real p = real(100) / real(nact);
p.round(2);
if (_inited || (!_inited && rdiff == 1)) // se e' inited rdiff e' 2 per forza
{
real tot = _inited ? (_tpr < 4 ? _firstr : _secndr) : real(100.0);
if (n == 1)
if (nact == 1)
{
if (_inited) set_imprata(first, tot);
set_percrata(first, real(100.0));
@ -161,11 +167,11 @@ void TPagamento::set_numero_rate(int n, int sscad, int rdiff)
if (nr == first + 1)
{
// suddividi equamente e riaggiusta la percentuale di conseguenza
real div = tot / real(n);
real div = tot / real(nact);
real perc = real(100.0)*(div/tot);
for (i = first; i < n; i++)
{
if (i > 0)
if (i > first)
add_rata(perc, (sscad == -1 ? scad_rata(0) : sscad), tipo_rata(0));
if (_inited) set_imprata (i, div);
set_percrata(i, perc);
@ -183,7 +189,7 @@ void TPagamento::set_numero_rate(int n, int sscad, int rdiff)
if (_inited && _tpr > 0 && _tpr < 4) rfirst -= _secndr;
real rest = tot - rfirst;
const real div = rest / real(n - 1);
const real div = rest / real(nact - 1);
real perc = real(100.0)*(div/tot);
for (i = first+1; i < n; i++)