Patch level : 12.0 nopatch

Files correlati     : ve
Commento:
Update fido clienti
This commit is contained in:
smen 2022-02-07 18:06:30 +01:00
parent 496ce96167
commit b66b440fd0
5 changed files with 53 additions and 30 deletions

View File

@ -25,6 +25,8 @@ void TListaFido_app::main_loop()
((TButton_tool&)m.field(DLG_PREVIEW)).set_exit_key(K_VISUALIZE);
((TButton_tool&)m.field(DLG_PRINT)).set_exit_key(K_PRINT);
m.show(F_DADATA, ini_get_bool(CONFIG_STUDIO, "Main", "MYGOD"));
m.set(F_ADATA, today);
m.set(F_GIORNIRISK, ini_get_int(CONFIG_DITTA, "ve", "FIDO_RISKDAYS"));
KEY k;
@ -61,11 +63,16 @@ void TListaFido_app::main_loop()
recset->set_var("#CODFR", cod_fr);
recset->set_var("#CODTO", cod_to);
TDate dal = m.get_date(F_DADATA);
TDate al = m.get_date(F_ADATA);
const TDate dal = m.get_date(F_DADATA);
const TDate al = m.get_date(F_ADATA);
const TDate data_scad = m.get_date(F_DATASCAD);
const int risk_day = m.get_int(F_GIORNIRISK);
report.set_datafidodal(dal);
report.set_datafidoal(al);
report.set_datadal(dal);
report.set_dataal(al);
report.set_datascad(data_scad);
report.set_giornirisk(risk_day);
book.add(report);
if (book.pages() > 0)
if (k == K_VISUALIZE)

View File

@ -5,5 +5,7 @@
#define F_DADATA 105
#define F_ADATA 106
#define F_REPORT 107
#define F_CONFIDO 108
#define F_DATASCAD 107
#define F_GIORNIRISK 108
#define F_REPORT 109
#define F_CONFIDO 110

View File

@ -77,18 +77,30 @@ END
DATE F_DADATA
BEGIN
PROMPT 2 7 "Da data"
PROMPT 2 7 "Da data limite operazione "
FLAGS "H"
END
DATE F_ADATA
BEGIN
PROMPT 30 7 "Alla data "
PROMPT 3 9 "A data limite operazione "
MESSAGE COPY,F_DATASCAD
END
DATE F_DATASCAD
BEGIN
PROMPT 2 11 "Data limite scaduto "
END
NUMBER F_GIORNIRISK 3
BEGIN
PROMPT 2 13 "Giorni calcolo rischio "
GROUP 1
END
BOOLEAN F_CONFIDO
BEGIN
PROMPT 2 9 "Includi clienti con fido 0 "
PROMPT 2 15 "Includi clienti con fido 0 "
END
STRING F_REPORT 50

View File

@ -402,8 +402,11 @@ bool TDocument_report::load(const char* name)
}
}
}
set_datafidodal(botime);
set_datafidoal(today);
set_datadal(botime);
set_datadal(today);
set_datascad(today);
set_giornirisk(10);
return ok;
}
@ -740,11 +743,11 @@ bool TDocument_report::msg_fido(TVariant_stack& stack)
int selector = stack.pop().as_int();
if (selector & 1)
//value += calcola_saldo_contabile('C', codcf, _data_fido_al);
value += calcola_saldo_contabile('C', codcf, _data_al);
if (selector & 2)
value += calcola_esposto_da_saldaconto('C', codcf, _data_fido_dal ,_data_fido_al, _riskdays);
value += calcola_esposto_da_saldaconto('C', codcf, _data_dal ,_data_al, _data_scad , _risk_days);
if(selector & 4)
//value += calcola_fido_da_documenti('C', codcf, _data_fido_al, EMPTY_STRING);
value += calcola_fido_da_documenti('C', codcf, _data_al, EMPTY_STRING);
curr_field()->set(TVariant(value>0 ? value : ""));
return true;
@ -772,8 +775,8 @@ bool TDocument_report::execute_usr_word(unsigned int opcode, TVariant_stack& sta
case 2: msg_parent_row(stack); break;
case 3: msg_riepilogo_iva(stack); break;
case 4: msg_fido(stack); break;
case 5: curr_field()->set(TVariant(_data_fido_dal.stringa())); break;
case 6: curr_field()->set(TVariant(_data_fido_al.stringa())); break;
case 5: curr_field()->set(TVariant(_data_dal.stringa())); break;
case 6: curr_field()->set(TVariant(_data_al.stringa())); break;
default: break;
}
@ -785,7 +788,6 @@ bool TDocument_report::execute_usr_word(unsigned int opcode, TVariant_stack& sta
TDocument_report::TDocument_report()
{
_riskdays = ini_get_int(CONFIG_DITTA, "VE", "FIDO_RISKDAYS");
}
/////////////////////////////////////////
@ -871,7 +873,7 @@ static TImporto get_importo(const TISAM_recordset& partite, const char* sezione,
}
static real calcola_esposto_da_saldaconto (const char tipocf, const long codcf,const TDate& from, const TDate& to, const int riskdays)
static real calcola_esposto_da_saldaconto (const char tipocf, const long codcf,const TDate& from, const TDate& to, const TDate& data_scad, const int riskdays)
{
// //data considerante i giorni di rischio ammessi dall'utonto
TDate data_sbf = to;
@ -901,8 +903,6 @@ static real calcola_esposto_da_saldaconto (const char tipocf, const long codcf,c
key.add(anno);
key.add(npart);
if (anno == 2021 && (atoi(npart) > 2000))
int i = 1;
if (!parts.is_key(key))
parts.add(key, new TPartita(bill, anno, npart));
}
@ -914,9 +914,7 @@ static real calcola_esposto_da_saldaconto (const char tipocf, const long codcf,c
{
const TPartita & p = (const TPartita &)*o;
if (p.anno() == 2021 && atoi(p.numero()) > 2000)
int i = 1;
esposto += p.esposto(false, to, data_sbf, is_esposto);
esposto += p.esposto(false, data_scad, data_sbf, is_esposto);
}
//la normalizzazione del totale delle partite va fatta in base al fatto che si parli di 'C'liente o 'F'ornitore
const char sezione_finale = (tipocf == 'C') ? 'A' : 'D';
@ -1007,7 +1005,7 @@ real calcola_fido_cliente (long codcf, const TDate& datacalc, const TDoc_key& ig
//PRIMA PARTE: controlla i movimenti
//real saldo_contabile = calcola_saldo_contabile('C', codcf, datacalc);
//SECONDA PARTE: controlla il saldaconto
real esposto_saldaconto = calcola_esposto_da_saldaconto('C', codcf, botime, datacalc, 10); // 10 giorni ?
real esposto_saldaconto = calcola_esposto_da_saldaconto('C', codcf, botime, datacalc, datacalc, 10); // 10 giorni ?
//TERZA PARTE: controlla i documenti
//real tot_documenti = calcola_fido_da_documenti('C',codcf, datacalc, ignore);

View File

@ -108,9 +108,10 @@ public:
class TDocument_report : public TReport
{
size_t _first_msg;
TDate _data_fido_dal;
TDate _data_fido_al;
int _riskdays;
TDate _data_dal;
TDate _data_al;
TDate _data_scad;
int _risk_days;
protected:
virtual size_t get_usr_words(TString_array& words) const;
@ -128,8 +129,11 @@ protected:
public:
virtual bool set_recordset(const TString& query);
virtual bool set_recordset(TRecordset * set) { return TReport::set_recordset(set);}
void set_datafidoal(const TDate& data) { _data_fido_al = data.ok() ? data : today; }
void set_datafidodal(const TDate& data) { _data_fido_dal = data.ok() ? data : botime; }
void set_dataal(const TDate& data) { _data_al = data.ok() ? data : today; }
void set_datadal(const TDate& data) { _data_dal = data.ok() ? data : botime; }
void set_datascad(const TDate& data) { _data_scad = data.ok() ? data : today; }
void set_giornirisk(const int risk_day) { _risk_days = risk_day < 0 ? 0 : risk_day; }
bool load(const char* name);
TDocument_report();
};
@ -141,7 +145,7 @@ public:
//metodo per il calcolo del fido cliente
real calcola_fido_cliente (long codcf, const TDate& datacalc, const TDoc_key& ignore);
real calcola_saldo_contabile(const char tipocf, const long codcf, const TDate& datacalc);
real calcola_esposto_da_saldaconto(const char tipocf, const long codcf, const TDate& from, const TDate& to, const int riskdays);
real calcola_esposto_da_saldaconto(const char tipocf, const long codcf, const TDate& from, const TDate& to, const TDate& data_scad, const int riskdays);
real calcola_fido_da_documenti(const char tipocf, const long codcf, const TDate& datacalc, const TDoc_key& ignore);
#endif