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:
parent
115beb6358
commit
650b996b45
@ -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++)
|
||||
|
Loading…
x
Reference in New Issue
Block a user