Patch level : 10.0 934

Files correlati     : sc2.exe sc2100a.msk
Ricompilazione Demo : [ ]
Commento            :
0001749: Stampa E/C : se nota di credito non viene considerata nella colonna scaduto
Stampa E/C : se nota di credito non viene considerata nella colonna scaduto


git-svn-id: svn://10.65.10.50/branches/R_10_00@21653 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2011-02-16 14:40:57 +00:00
parent 7e9848fc44
commit 1737696f00
4 changed files with 40 additions and 17 deletions

View File

@ -14,6 +14,5 @@ int main(int argc,char** argv)
case 5: sc2600(argc,argv); break; // Stampa Prospetto Scadenze
default: sc2100(argc,argv); break; // Stampa Estratti conto
}
exit(0);
return 0;
}

View File

@ -71,6 +71,7 @@ class TEC_form : public TForm
word _total_rows; // Numero di righe usate per i totali
word _maxtot; // Numero massimo di totali da stampare
bool _stampa_saldo; // Stampa il saldo di ogni partita
bool _note_scadenti; // Considera scadute le note di credito non assegnate
protected:
void init_header(const TMask& m);
@ -95,6 +96,7 @@ public:
const TDate& data_limite_scaduto() const { return _dls; }
int giorni_rischio() const { return _giorni_rischio; }
const TDate& data_inizio_rischio() const { return _dir; }
bool note_scadenti() const { return _note_scadenti; }
const TString& lingua() const { return _lingua; }
bool in_valuta() const { return _in_valuta; }
@ -410,7 +412,7 @@ protected:
TImporto* importo_riga_scaduto_ptr(int n) const { return (TImporto*)_scaduto.objptr(n); }
TImporto& importo_riga_scaduto(int n);
bool is_unassigned(const TRiga_partite& row) const;
TImporto importo(const TPartita& game, const TRectype& pag, bool valuta) const;
static TPartita* _sort_game;
@ -442,7 +444,7 @@ TImporto TEC_array::importo(const TPartita& game, const TRectype& pag, bool valu
if (!fat_val)
{
imp.valore() += pag.get_real(PAGSCA_RITENUTE); // Sommo le ritenute se sono il lire
imp.valore() += pag.get_real(PAGSCA_RITENUTE); // Sommo le ritenute se sono il Euro
const TImporto ritsoc(sum.sezione_ritsoc(), pag.get_real(PAGSCA_RITSOC));
imp += ritsoc;
}
@ -450,11 +452,11 @@ TImporto TEC_array::importo(const TPartita& game, const TRectype& pag, bool valu
if (pag.get_char(PAGSCA_ACCSAL) == 'S') // Se il pagamento ha abbuoni o differenze cambio
{
real abb(pag.get(PAGSCA_ABBUONI));
if (!valuta && fat_val) // Se voglio gli abbuoni in lire ma la fattura non lo e'
if (!valuta && fat_val) // Se voglio gli abbuoni in Euro ma la fattura non lo e'
{
const TValuta val(sum); // Leggo il cambio dalla riga di partita
val.val2lit(abb); // Converto in lire gli abbuoni
abb += pag.get_real(PAGSCA_DIFFCAM); // Sommo l'eventuale differenza cambio (gia' in lire)
abb += pag.get_real(PAGSCA_DIFFCAM); // Sommo l'eventuale differenza cambio (gia' in Euro)
}
imp.valore() += abb; // Sommo il tutto all'importo base (sez e' uguale per tutti i valori)
}
@ -562,6 +564,14 @@ real TEC_array::calcola_scaduto(const TRiga_scadenze& rata, bool valuta)
return scaduto_rata.valore();
}
// Determina se una riga pagamento o nota di credito non è associata ad alcuna rata
bool TEC_array::is_unassigned(const TRiga_partite& row) const
{
const TPartita& game = row.partita();
const int riga = row.get_int(PART_NRIGA);
return game.esiste(TPartita::UNASSIGNED, TPartita::UNASSIGNED, riga);
}
TEC_row& TEC_array::new_row(const TRiga_partite& row, const TDate& data,
const TImporto& imp, int n)
{
@ -583,7 +593,7 @@ void TEC_array::add_row(const TRiga_partite& row)
if (main_app().has_module(CAAUT))
{
const TString & numregcg = row.get(PART_NREG);
const TString& numregcg = row.get(PART_NREG);
const long numreg = atol(_anal.decode(numregcg));
if (numreg > 0)
@ -594,8 +604,7 @@ void TEC_array::add_row(const TRiga_partite& row)
for (int i = 1; i <= nrows; i++)
{
const TString80 s(anal_mov.row_code(i));
const TString80 s = anal_mov.row_code(i);
if (s.full() && codanal.find(s) < 0)
{
if (codanal.full())
@ -648,6 +657,7 @@ void TEC_array::add_row(const TRiga_partite& row)
const TImporto impval(row.importo(true, 0x1)); // Importo pulito senza nient'altro
riga.importo_valuta(-impval.valore());
}
riga.codici_analitica(codanal);
const int tipo_pag = row.get_int(PART_TIPOPAG);
const tipo_movimento tipo_mov = row.tipo();
@ -671,7 +681,17 @@ void TEC_array::add_row(const TRiga_partite& row)
riga.esposto(esposto.valore());
}
}
riga.codici_analitica(codanal);
if (tipo_mov == tm_nota_credito && form().note_scadenti())
{
const TDate& dls = form().data_limite_scaduto();
if (data_pag <= dls && is_unassigned(row))
{
const int nriga = row.get_int(PART_NRIGA);
const TImporto imp = row.importo(in_valuta, 0x1); // Importo pulito senza nient'altro
importo_riga_scaduto(nriga) += imp;
}
}
const TImporto abbuoni(row.importo(in_valuta, 0x2));
if (!abbuoni.is_zero())
@ -964,8 +984,7 @@ void TEC_form::print_total(int riga, const THash_object& o)
// Sostituisce magic-names nei prompt
TString80 s;
int i;
for (i = 0; i < MAXID; i++)
for (int i = 0; i < MAXID; i++)
{
TForm_item& desc_field = foot.find_field(f_id[i]);
if (desc_field.shown())
@ -1048,7 +1067,7 @@ void TEC_form::print_total(int riga, const THash_object& o)
foot.update();
// Ripristina prompt originari
for (i = 0; i < MAXID; i++)
for (int i = 0; i < MAXID; i++)
{
const TString* p = (const TString*)prompt.objptr(i);
if (p)
@ -1271,8 +1290,7 @@ void TEC_form::set_agente(const TString& codag)
if (good)
{
TString ag;
ag << codag << ' ';
ag << cache().get(LF_AGENTI, codag, AGE_RAGSOC);
ag << codag << ' ' << cache().get(LF_AGENTI, codag, AGE_RAGSOC);
if (printing())
{
@ -1281,7 +1299,7 @@ void TEC_form::set_agente(const TString& codag)
else
{
_recordset->new_rec();
_recordset->set("Descrizione", TVariant(ag));
_recordset->set("Descrizione", ag);
_recordset->new_rec();
}
}
@ -1303,6 +1321,7 @@ TEC_form::TEC_form(const TEC_mask& m, bool gesval, bool excel)
_dls = m.get(F_DATALIMSC);
_giorni_rischio = m.get_int(F_GIORISCH);
_dir = _dls; _dir -= _giorni_rischio;
_note_scadenti = m.get_bool(F_NC_SCAD);
TForm_item& flags = find_field('H', last_page, PEC_FLAGS);
@ -1315,7 +1334,6 @@ TEC_form::TEC_form(const TEC_mask& m, bool gesval, bool excel)
if (oem == 0 && main_app().has_module(CAAUT))
{
TForm_item& codanal = _form->find_field('B', odd_page, PEC_ANALITICA);
codanal.show();
}

View File

@ -6,6 +6,7 @@
#define F_CODPROF 103
#define F_LINPROF 104
#define F_DESPROF 105
#define F_NC_SCAD 106
#define F_DATALIMOP 110
#define F_DATALIMSC 111
#define F_GIORISCH 112

View File

@ -96,10 +96,15 @@ END
NUMBER F_GIORISCH 3
BEGIN
PROMPT 2 6 "Giorni calcolo rischio "
PROMPT 49 5 "Giorni calcolo rischio "
GROUP 1
END
BOOLEAN F_NC_SCAD
BEGIN
PROMPT 2 6 "Considera scadute le note di credito non associate ad alcuna rata"
END
BOOLEAN F_STAMPCHIU
BEGIN
PROMPT 2 7 "Stampa partite chiuse"