Cacarole Gabriella Saldaconto
git-svn-id: svn://10.65.10.50/trunk@2054 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d77b6dbe36
commit
b8f59ca129
@ -485,16 +485,17 @@ real TPrimanota_application::calcola_saldo() const
|
||||
}
|
||||
|
||||
TMask& m = curr_mask();
|
||||
real sbilancio = abs(tdare)-abs(tavere);
|
||||
const real sbilancio = abs(tdare)-abs(tavere);
|
||||
const real absbilancio = abs(tdare - tavere);
|
||||
switch (sbilancio.sign())
|
||||
{
|
||||
case +1: // Il dare supera l'avere in valore assoluto
|
||||
m.set(F_DARE, real(tdare-tavere).string());
|
||||
m.set(F_DARE, absbilancio.string());
|
||||
m.reset(F_AVERE);
|
||||
break;
|
||||
case -1: // L'avere supera il dare in valore assoluto
|
||||
m.reset(F_DARE);
|
||||
m.set(F_AVERE, real(tavere-tdare).string());
|
||||
m.set(F_AVERE, absbilancio.string());
|
||||
break;
|
||||
default: // Sbilancio nullo
|
||||
m.reset(F_DARE);
|
||||
@ -1576,6 +1577,11 @@ bool TPrimanota_application::doc_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
const TDate dd(val);
|
||||
m.set(F_ANNORIF, dd.year()); // copia data documento
|
||||
|
||||
// TBI modifica scadenze pagamento
|
||||
if (app().pagamento() != NULL)
|
||||
app().recalc_scadenze(dd);
|
||||
|
||||
}
|
||||
else if (!app().npart_is_prot())
|
||||
{
|
||||
|
@ -211,6 +211,7 @@ protected:
|
||||
void write_scadenze(const TMask& m);
|
||||
void remove_scadenze(const TMask& m, const char* rif);
|
||||
void renumber_partita(TMask& m, const char* oldp, const char* newp);
|
||||
void recalc_scadenze(const TDate& d);
|
||||
|
||||
bool edit_partite(const TMask& m, int riga);
|
||||
|
||||
|
@ -264,6 +264,18 @@ void TPrimanota_application::reset_pagamento()
|
||||
}
|
||||
}
|
||||
|
||||
void TPrimanota_application::recalc_scadenze(const TDate& d)
|
||||
{
|
||||
if (_pag == NULL) return;
|
||||
_pag->set_inizio(d);
|
||||
// ridefinisci lo sheet sulla base delle nuove rate
|
||||
TSheet_field& ps = pags();
|
||||
TString_array& rws = pag_rows();
|
||||
|
||||
_pag->set_sheet(ps);
|
||||
rws = ps.rows_array();
|
||||
ps.force_update();
|
||||
}
|
||||
|
||||
void TPrimanota_application::set_pagamento(const char* c, const char* d)
|
||||
{
|
||||
|
@ -42,6 +42,13 @@ const char* TPagamento::_rata_sfield(int n, int f) const
|
||||
return kak;
|
||||
}
|
||||
|
||||
void TPagamento::set_inizio(const TDate& d)
|
||||
{
|
||||
bool dio;
|
||||
_inizio = d;
|
||||
recalc_rate(0, FALSE, NULL, d.string(), NULL, _rdiff, _mcomm, dio);
|
||||
}
|
||||
|
||||
void TPagamento::set_intervallo_rate(int in)
|
||||
{
|
||||
_dirty = TRUE;
|
||||
@ -989,7 +996,8 @@ word TPagamento::recalc_rate(int row, bool is_perc_modified,
|
||||
if (rdiff == 2)
|
||||
{
|
||||
real reminder = toshare - rfirst;
|
||||
real rdiv = reminder / real(_rate.items() - (1+first));
|
||||
real rdiv = reminder.is_zero() ? real(0.0) :
|
||||
(reminder / real(_rate.items() - (1+first)));
|
||||
rdiv.round( is_perc_modified ? _round : 2);
|
||||
rfirst += reminder - (rdiv * real(_rate.items() - (1+first)));
|
||||
rvl = rdiv;
|
||||
@ -1116,7 +1124,7 @@ bool TPagamento::read(TTable* t, TTable* r)
|
||||
next_scad(d,(int)(r->get_long("I0")),_mcomm,i);
|
||||
tt->add((const char*)d);
|
||||
tt->add("");
|
||||
tt->add(r->get("S1"));
|
||||
tt->add(r->get("S1")); // ulteriore classificazione
|
||||
_slicer.add((real)r->get("R0"));
|
||||
_rate.add(tt);
|
||||
}
|
||||
|
@ -102,6 +102,7 @@ public:
|
||||
real recalc_percrata(int i);
|
||||
void set_numero_rate(int n, int sscad = -1, int rdiff = 1);
|
||||
|
||||
void set_inizio(const TDate& d); // resetta tutto
|
||||
void set_inizio_scadenza(char v) { _inscad = v; }
|
||||
void set_code(const char* c) { _code = c; }
|
||||
void set_round(int n) { _round = n; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user