Modificate calcola_saldo_al e Triga_partita::importo
git-svn-id: svn://10.65.10.50/trunk@2277 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5bc72dc683
commit
5a9ca6285e
@ -628,13 +628,13 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
||||
rsal.add("Saldo rata ", 4); rsal << ra;
|
||||
if (!scad.chiusa())
|
||||
{
|
||||
TImporto sl = scad.residuo(FALSE, 0x7);
|
||||
TImporto sl = scad.residuo(FALSE);
|
||||
gm.add_importo(rsal, sl);
|
||||
tot_lit += sl;
|
||||
|
||||
if (in_valuta)
|
||||
{
|
||||
sl = scad.residuo(TRUE, 0x3);
|
||||
sl = scad.residuo(TRUE, 0xB);
|
||||
gm.add_importo(rsal, sl, TRUE);
|
||||
tot_val += sl;
|
||||
}
|
||||
|
@ -318,11 +318,9 @@ TImporto TRiga_scadenze::importo_pagato(bool val, int mode) const
|
||||
const char sez = sum.sezione();
|
||||
|
||||
if (mode & 0x1)
|
||||
{
|
||||
totale += TImporto(sez, pag.get_real(imp_field));
|
||||
if (!in_val)
|
||||
totale += TImporto(sez, pag.get_real(PAGSCA_RITENUTE));
|
||||
}
|
||||
if ((mode & 0x8) && !in_val)
|
||||
totale += TImporto(sez, pag.get_real(PAGSCA_RITENUTE));
|
||||
|
||||
if (mode & 0x2) // Voglio anche gli abbuoni
|
||||
{
|
||||
@ -669,7 +667,7 @@ int TRiga_partite::rata_con_abbuoni_diffcam() const
|
||||
// E' possibile considerare o meno IMPORTO, ABBUONI e DIFFCAM
|
||||
TImporto TRiga_partite::importo(bool valuta, int mode) const
|
||||
{
|
||||
CHECKD(mode > 0 && mode < 8, "Bad importo mode ", mode);
|
||||
CHECKD(mode > 0 && mode < 16, "Bad importo mode ", mode);
|
||||
const bool in_lire = !in_valuta();
|
||||
if (valuta && in_lire)
|
||||
valuta = FALSE;
|
||||
@ -690,7 +688,7 @@ TImporto TRiga_partite::importo(bool valuta, int mode) const
|
||||
}
|
||||
else
|
||||
{
|
||||
if (in_lire && (mode & 0x1))
|
||||
if (in_lire && (mode & 0x8))
|
||||
i.valore() += get_real(PART_RITENUTE);
|
||||
|
||||
if ((mode & 0x2) && !abbuoni.is_zero())
|
||||
@ -1121,7 +1119,7 @@ void TPartita::calcola_saldo(TImporto& saldo, TImporto& doc, TImporto& pag, TImp
|
||||
for (int r = last(); r > 0; r = pred(r))
|
||||
{
|
||||
const TRiga_partite& row = riga(r);
|
||||
const TImporto i(row.importo(FALSE, 0x1));
|
||||
const TImporto i(row.importo(FALSE, 0x9));
|
||||
|
||||
const tipo_movimento tipo = row.tipo();
|
||||
switch (tipo)
|
||||
@ -1169,15 +1167,42 @@ TImporto TPartita::calcola_saldo(bool valuta) const
|
||||
return saldo;
|
||||
}
|
||||
|
||||
TImporto TPartita::calcola_saldo_al(const TDate& al, bool valuta) const
|
||||
TImporto TPartita::calcola_saldo_al(bool valuta,const TDate& al, const TDate& data_rischio) const
|
||||
{
|
||||
TImporto saldo;
|
||||
const bool calcolo_rischio = data_rischio.ok();
|
||||
|
||||
for (int r = last(); r > 0; r = pred(r))
|
||||
{
|
||||
const TRiga_partite& row = riga(r);
|
||||
const TDate data = row.get(row.is_fattura() ? PART_DATADOC : PART_DATAPAG);
|
||||
if (data < al)
|
||||
saldo += row.importo(valuta);
|
||||
if (row.is_fattura())
|
||||
{
|
||||
for (int s = row.rate(); s > 0 ;s--)
|
||||
{
|
||||
const TRiga_scadenze & rata = row.rata(s);
|
||||
const TDate data(rata.get(SCAD_DATASCAD));
|
||||
|
||||
if (data < al)
|
||||
saldo += rata.importo(valuta);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const TDate data = row.get(PART_DATAPAG);
|
||||
if (calcolo_rischio)
|
||||
{
|
||||
const int tipopag = row.get_int(PART_TIPOPAG);
|
||||
if (tipopag < 2 || tipopag > 7 || data <= data_rischio)
|
||||
saldo += row.importo(valuta);
|
||||
else
|
||||
if (data < al)
|
||||
saldo += row.importo(valuta);
|
||||
}
|
||||
if (data < al)
|
||||
saldo += row.importo(valuta);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return saldo;
|
||||
}
|
||||
|
@ -149,9 +149,9 @@ public:
|
||||
TPartita& partita() const;
|
||||
TRiga_partite& riga() const { return *_riga; } // Riga partite
|
||||
|
||||
TImporto importo_pagato(bool val, int mode = 0x7) const;
|
||||
TImporto importo_pagato(bool val, int mode = 0xF) const;
|
||||
TImporto importo(bool val) const;
|
||||
TImporto residuo(bool val, int mode = 0x7) const; // Differenza delle due funzioni precedenti
|
||||
TImporto residuo(bool val, int mode = 0xF) const; // Differenza delle due funzioni precedenti
|
||||
|
||||
TRiga_scadenze(TRiga_partite* riga);
|
||||
TRiga_scadenze(const TRiga_scadenze& s);
|
||||
@ -191,7 +191,7 @@ public:
|
||||
int rata_con_abbuoni_diffcam() const;
|
||||
|
||||
char sezione() const { return get_char(PART_SEZ); }
|
||||
TImporto importo(bool valuta, int mode = 0x7) const;
|
||||
TImporto importo(bool valuta, int mode = 0xF) const;
|
||||
|
||||
bool in_valuta() const { return get(PART_CODVAL).not_empty(); }
|
||||
|
||||
@ -275,7 +275,7 @@ public:
|
||||
void update_reg(long nreg, const TRectype& mov);
|
||||
void calcola_saldo(TImporto& saldo, TImporto& doc, TImporto& pag, TImporto& imp) const;
|
||||
TImporto calcola_saldo(bool valuta) const;
|
||||
TImporto calcola_saldo_al(const TDate& al, bool valuta) const;
|
||||
TImporto calcola_saldo_al(bool valuta, const TDate& al, const TDate& data_rischio = botime) const;
|
||||
|
||||
bool modifica_pagamento(const TRectype& new_pag, const TValuta& valuta,
|
||||
char& old_ap, TImporto& old_abb, TImporto& old_diffcam,
|
||||
|
Loading…
x
Reference in New Issue
Block a user