Patch level : 12.00 1292

Files correlati     : sc0.exe
Commento            :

Programma di esportazione partite per scadenza
This commit is contained in:
Alessandro Bonazzi 2023-10-19 18:53:47 +02:00
parent 3f80ca4c5d
commit 6aebf24c50
2 changed files with 62 additions and 4 deletions

View File

@ -363,7 +363,7 @@ TImporto TPartita::importo_pagsca(const TRectype& pag, bool val, int mode) const
}
// Calcola il totale dei pagamenti alla data (eventualmente in valuta)
TImporto TRiga_scadenze::importo_pagato_al(bool val, const TDate& al, int mode) const
TImporto TRiga_scadenze::importo_pagato_al(bool val, const TDate& al, int mode, bool datareg) const
{
CHECKD(mode > 0x0 && mode <= 0xFF, "Bad importo_pagato mode ", mode);
TPartita& game = partita();
@ -380,7 +380,7 @@ TImporto TRiga_scadenze::importo_pagato_al(bool val, const TDate& al, int mode)
{
const TRiga_partite & sum = game.riga(rigap); // Riga partite
datapag = sum.get_date(PART_DATAPAG);
datapag = datareg ? sum.get_date(PART_DATAREG) : sum.get_date(PART_DATAPAG);
if (datapag <= al)
totale += game.importo_pagsca(pag, val, mode);
}
@ -556,6 +556,14 @@ TImporto TRiga_scadenze::importo_pagato(bool val, int mode) const
return totale.normalize();
}
TImporto TRiga_scadenze::residuo_al(bool val, const TDate& al, int mode, bool datareg) const
{
TImporto res = importo(val);
res -= importo_pagato_al(val, al, mode, datareg);
return res;
}
// Calcola l'importo da pagare (eventualmente in valuta)
TImporto TRiga_scadenze::importo(bool val) const
{
@ -2475,7 +2483,6 @@ real TPartita::calcola_scaduto_al(bool valuta, const TDate& al) const
}
return ZERO;
}
// Calcola il totale dei pagamenti non assegnati (eventualmente in valuta)
TImporto TPartita::importo_pagato_unassigned(bool val, int mode) const
{
@ -2522,6 +2529,55 @@ TImporto TPartita::importo_pagato_unassigned(bool val, int mode) const
return totale.normalize();
}
TImporto TPartita::importo_pagato_unassigned_al(bool val, const TDate& al, int mode, bool datareg) const
{
CHECKD(mode > 0x0 && mode <= 0xF, "Bad importo_pagato mode ", mode);
const bool in_val = in_valuta();
const char* imp_field = (val && in_val) ? PAGSCA_IMPORTOVAL : PAGSCA_IMPORTO;
TImporto totale;
const int last_row = _unassigned.last_row();
for (int p = _unassigned.first_row(); p <= last_row; p = _unassigned.succ_row(p))
{
const TRectype& pag = _unassigned.row(p); // Riga pagamento
const TRiga_partite& sum = riga(pag.get_int(PAGSCA_NRIGP)); // Riga partite
const char sez = sum.sezione();
TDate datapag = datareg ? sum.get_date(PART_DATAREG) : sum.get_date(PART_DATAPAG);
if (datapag <= al)
{
if (mode & 0x1)
totale += TImporto(sez, pag.get_real(imp_field));
if (!in_val && (mode & 0x8)) // Le ritenute non esistono nei pagamenti in valuta
{
totale += TImporto(sez, pag.get_real(PAGSCA_RITENUTE));
totale += TImporto(sum.sezione_ritsoc(), pag.get_real(PAGSCA_RITSOC));
}
if (mode & 0x2) // Voglio anche gli abbuoni
{
real abb(pag.get_real(PAGSCA_ABBUONI));
if (in_val && !val) // Gli abbuoni sono sempre in valuta e quindi
{ // devono essere convertiti opportunamente
const TExchange cmb(sum);
TCurrency cur(abb, cmb);
cur.change_to_firm_val();
abb = cur.get_num();
}
totale += TImporto(sez, abb);
}
if (in_val && !val && (mode & 0x4)) // Voglio anche le differenze cambio
{ // Esse esistono solo nei pagamenti in valuta
const TImporto diffcam(sez, pag.get_real(PAGSCA_DIFFCAM));
totale += diffcam;
}
}
}
return totale.normalize();
}
// Controlla se esistono pagamenti riferiti alla riga nrigp
bool TPartita::utilizzata(int nrigp) const
{

View File

@ -146,7 +146,8 @@ public:
TRiga_partite& riga() const { return *_riga; } // Riga partite
TImporto importo_pagato(bool val, int mode = 0xF) const;
TImporto importo_pagato_al(bool val, const TDate& al, int mode = 0xF) const;
TImporto importo_pagato_al(bool val, const TDate& al, int mode = 0xF, bool datareg = false) const;
TImporto residuo_al(bool val, const TDate& al, int mode = 0xF, bool datareg = false) const;
TImporto importo(bool val) const;
TImporto residuo(bool val, int mode = 0xF) const; // Differenza delle due funzioni precedenti
TImporto esposto_al(bool valuta, const TDate & al, const TDate & data_scad, const TDate & data_rischio, bool & sbf) const;
@ -316,6 +317,7 @@ public:
TImporto calcola_saldo_al(bool valuta, const TDate& al, const TDate& data_scaduto, const TDate& data_rischio) const;
real calcola_scaduto_al(bool valuta, const TDate& al = botime) const;
TImporto importo_pagato_unassigned(bool val, int mode = 0xF) const;
TImporto importo_pagato_unassigned_al (bool val, const TDate& al, int mode = 0xF, bool datareg = false) const;
TImporto importo_pagsca(const TRectype& pag, bool val = false, int mode = 0xF) const; // low level
bool modifica_pagamento(const TRectype& new_pag, const TValuta& valuta,