Aggiunto calcolo esposto
git-svn-id: svn://10.65.10.50/trunk@2931 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f274c85033
commit
02f055ba13
@ -805,6 +805,80 @@ TImporto TRiga_partite::importo(bool valuta, int mode) const
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Calcola l'esposto e l' esposto SBF
|
||||||
|
TImporto TRiga_partite::esposto(bool valuta, const TDate & data_scad, const TDate & data_rischio, bool & sbf) const
|
||||||
|
{
|
||||||
|
TImporto esposto;
|
||||||
|
|
||||||
|
sbf = FALSE;
|
||||||
|
const int nrigp = get_int(PART_NRIGA);
|
||||||
|
const char sez = sezione();
|
||||||
|
const int last = _partita->last();
|
||||||
|
const TDate datapag(get_date(PART_DATAPAG));
|
||||||
|
const bool rischio = data_scad != data_rischio;
|
||||||
|
bool found_pag = FALSE;
|
||||||
|
|
||||||
|
for (int row = last; row > 0; row = _partita->pred(row))
|
||||||
|
{
|
||||||
|
const TRiga_partite & riga = _partita->riga(row);
|
||||||
|
if (riga.is_fattura())
|
||||||
|
{
|
||||||
|
const int lastr = riga.rate();
|
||||||
|
for (int rata = lastr; rata > 0; rata--)
|
||||||
|
{
|
||||||
|
const TRiga_scadenze& scad = riga.rata(rata);
|
||||||
|
if (scad.exist(nrigp))
|
||||||
|
{
|
||||||
|
const TRectype & pag = scad.row(nrigp);
|
||||||
|
const TImporto imp(sez, pag.get_real(valuta ? PAGSCA_IMPORTOVAL : PAGSCA_IMPORTO));
|
||||||
|
TDate data(scad.get(SCAD_DATASCAD));
|
||||||
|
const int lasts = scad.last();
|
||||||
|
|
||||||
|
found_pag = TRUE;
|
||||||
|
for (int p = scad.first(); p <= lasts; p = scad.succ(p))
|
||||||
|
{
|
||||||
|
if (p != nrigp)
|
||||||
|
{
|
||||||
|
const TRiga_partite & prow = partita().riga(p);
|
||||||
|
const int tp = prow.get_int(PART_TIPOPAG);
|
||||||
|
if (tp >= 2 && tp <= 7)
|
||||||
|
{
|
||||||
|
const TDate dataprow = prow.get(PART_DATAPAG);
|
||||||
|
if (dataprow < datapag)
|
||||||
|
{
|
||||||
|
data = datapag;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (rischio && data > data_rischio && data <= data_scad)
|
||||||
|
{
|
||||||
|
esposto += imp;
|
||||||
|
sbf = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (data > data_scad)
|
||||||
|
esposto += imp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found_pag)
|
||||||
|
{
|
||||||
|
const TImporto imp(importo(valuta, 0x1));
|
||||||
|
if (rischio && datapag > data_rischio && datapag <= data_scad)
|
||||||
|
{
|
||||||
|
esposto += imp;
|
||||||
|
sbf = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (datapag > data_scad)
|
||||||
|
esposto += imp;
|
||||||
|
}
|
||||||
|
return esposto;
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TPartita
|
// TPartita
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -1211,7 +1285,8 @@ bool TPartita::esiste(int nriga, int nrata, int nrigp) const
|
|||||||
return _unassigned.exist(nrigp);
|
return _unassigned.exist(nrigp);
|
||||||
|
|
||||||
const bool esiste_riga = _part.exist(nriga);
|
const bool esiste_riga = _part.exist(nriga);
|
||||||
if (!esiste_riga || nrata <= 0) // Riga non esistente o rata nulla
|
if (!esiste_riga || nrata <=
|
||||||
|
0) // Riga non esistente o rata nulla
|
||||||
return esiste_riga;
|
return esiste_riga;
|
||||||
|
|
||||||
const TRiga_partite& r = riga(nriga);
|
const TRiga_partite& r = riga(nriga);
|
||||||
|
@ -62,8 +62,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Valuta
|
// Valuta ///////////////////////////////////////////////////////////
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
class TValuta : public TSortable
|
class TValuta : public TSortable
|
||||||
{
|
{
|
||||||
@ -203,6 +202,7 @@ public:
|
|||||||
|
|
||||||
char sezione() const { return get_char(PART_SEZ); }
|
char sezione() const { return get_char(PART_SEZ); }
|
||||||
TImporto importo(bool valuta, int mode = 0xF) const;
|
TImporto importo(bool valuta, int mode = 0xF) const;
|
||||||
|
TImporto esposto(bool valuta, const TDate & data_scad, const TDate & data_rischio, bool & sbf) const;
|
||||||
|
|
||||||
bool in_valuta() const;
|
bool in_valuta() const;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user