Patch level : 12.0 nopatch

Files correlati     : ve, ba
Commento:
Aggiornamento velib07
This commit is contained in:
smen 2022-02-01 17:28:47 +01:00
parent e8872bc29e
commit 6c6a159c78
6 changed files with 69 additions and 37 deletions

View File

@ -1942,23 +1942,33 @@ void TInstaller::convert_archives()
bool conv = true;
if (is_power_station())
conv = yesno_box(TR("Si desidera convertire gli archivi ora?"));
TRACE("Da convertire ", conv ? "si" : "no");
if (conv)
{
TRACE("backup");
_m->backup();
// Lancia conversione: ba1 -0 -C -uADMIN
TExternal_app conversion("ba1 -0 -C");
TRACE("Conversione");
conversion.run();
TRACE("Fine Conversione");
}
}
void TInstaller::main_loop()
{
TRACE("Avvio conversione");
_m->run();
TRACE("Chiusura conversione");
TRACE("Aggiornato %s", _m->run_conversion()? "si" : "no");
TRACE("Stazione %d %s", _m->station_type(), _m->station_type() < 3 ? "si" : "no");
if (_m->run_conversion() && _m->station_type() < 3) // Almeno un trr installato e non e' client->conversione ammessa
{
convert_archives();
}
TRACE("Lancio menu");
//controlla se ha lanciato setup.exe prima di chiudersi; se non lo ha fatto -> e' a fine installazione..
//..normale (moduli non SY) e quindi lancia ba0.exe
const bool setup_launched = _m->setup_run();
@ -1968,6 +1978,7 @@ void TInstaller::main_loop()
TExternal_app ba0("ba0.exe");
ba0.run(true, true, false); // run asynchronous and not iconized!
}
TRACE("Fine");
}
int ba1700(int argc, char* argv[])

View File

@ -24,6 +24,7 @@ void TListaFido_app::main_loop()
m.set(F_REPORT, "ve18001");
((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"));
KEY k;
@ -60,10 +61,14 @@ 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);
if (dal.ok())
report.set_datafidodal(dal);
if (al.ok())
report.set_datafido(al);
report.set_datafidoal(al);
book.add(report);
if (book.pages() > 0)

View File

@ -3,6 +3,7 @@
#define F_CODTO 103
#define F_RAGSOCTO 104
#define F_ADATA 105
#define F_REPORT 106
#define F_CONFIDO 107
#define F_DADATA 105
#define F_ADATA 106
#define F_REPORT 107
#define F_CONFIDO 108

View File

@ -75,9 +75,15 @@ BEGIN
CHECKTYPE SEARCH
END
DATE F_DADATA
BEGIN
PROMPT 2 7 "Da data"
FLAGS "H"
END
DATE F_ADATA
BEGIN
PROMPT 2 7 "Alla data "
PROMPT 30 7 "Alla data "
END
BOOLEAN F_CONFIDO

View File

@ -402,7 +402,8 @@ bool TDocument_report::load(const char* name)
}
}
}
set_datafido(today);
set_datafidodal(botime);
set_datafidoal(today);
return ok;
}
@ -739,11 +740,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);
value += calcola_saldo_contabile('C', codcf, _data_fido_al);
if (selector & 2)
value += calcola_esposto_da_saldaconto('C', codcf, _data_fido, _riskdays);
value += calcola_esposto_da_saldaconto('C', codcf, _data_fido_dal ,_data_fido_al, _riskdays);
if(selector & 4)
value += calcola_fido_da_documenti('C', codcf, _data_fido, EMPTY_STRING);
value += calcola_fido_da_documenti('C', codcf, _data_fido_al, EMPTY_STRING);
curr_field()->set(TVariant(value>0 ? value : ""));
return true;
@ -872,10 +873,10 @@ 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& datacalc, const int riskdays)
static real calcola_esposto_da_saldaconto (const char tipocf, const long codcf,const TDate& from, const TDate& to, const int riskdays)
{
// //data considerante i giorni di rischio ammessi dall'utonto
TDate data_sbf = datacalc;
TDate data_sbf = to;
TImporto esposto; //importone somma degli importi delle righe del recordset
//estrae le righe partita relative a pagamenti successivi alla data di rischio (e con tipopag >2,<7)
@ -889,31 +890,37 @@ static real calcola_esposto_da_saldaconto (const char tipocf, const long codcf,
data_sbf -= riskdays;
for (bool ok = partite.move_first(); ok; ok = partite.move_next())
{
TImporto importo_riga;
if (partite.get_date(PART_DATADOC)< from)
{
TImporto importo_riga;
//fatture,note di credito,pagamenti
TImporto importo_partita = get_importo(partite, PART_SEZ, PART_IMPORTO);
importo_riga += importo_partita;
const tipo_movimento tipo_mov = (tipo_movimento) partite.get_int(PART_TIPOMOV);
const tipo_pagamento tipo_pag = (tipo_pagamento) partite.get_int(PART_TIPOPAG);
const TDate datapag = partite.get_date(PART_DATAPAG);
//fatture,note di credito,pagamenti
TImporto importo_partita = get_importo(partite, PART_SEZ, PART_IMPORTO);
//pagamenti (tm=3), insoluti (tm=5), pagamenti insoluti(tm=6)
if ((tipo_mov >= tm_pagamento) &&
importo_riga += importo_partita;
const tipo_movimento tipo_mov = (tipo_movimento)partite.get_int(PART_TIPOMOV);
const tipo_pagamento tipo_pag = (tipo_pagamento)partite.get_int(PART_TIPOPAG);
const TDate datapag = partite.get_date(PART_DATAPAG);
//pagamenti (tm=3), insoluti (tm=5), pagamenti insoluti(tm=6)
if ((tipo_mov >= tm_pagamento) &&
(tipo_pag >= tp_tratta && tipo_pag <= tp_rid) &&
((datapag >= data_sbf) && (datapag <= datacalc)))
{
TImporto importo_abbuono = get_importo(partite, PART_SEZABB, PART_ABBUONI);
importo_riga += importo_abbuono;
((datapag >= data_sbf) && (datapag <= to)))
{
TImporto importo_abbuono = get_importo(partite, PART_SEZABB, PART_ABBUONI);
importo_riga += importo_abbuono;
if (!partite.get(PART_CODVAL).is_empty()) // pagamenti in valuta
{
TImporto importo_diff_cambio = get_importo(partite, PART_SEZDIFCAM, PART_DIFFCAM);
importo_riga += importo_diff_cambio;
}
//somma importi presenti sulla riga partita (fatture, pagamenti, insoluti, pagamenti insoluti)
esposto += importo_riga;
}
if (!partite.get(PART_CODVAL).is_empty()) // pagamenti in valuta
{
TImporto importo_diff_cambio = get_importo(partite, PART_SEZDIFCAM, PART_DIFFCAM);
importo_riga += importo_diff_cambio;
}
//somma importi presenti sulla riga partita (fatture, pagamenti, insoluti, pagamenti insoluti)
esposto += importo_riga;
}
}
}
//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';
@ -1004,7 +1011,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, datacalc, 10); // 10 giorni ?
real esposto_saldaconto = calcola_esposto_da_saldaconto('C', codcf, botime, datacalc, 10); // 10 giorni ?
//TERZA PARTE: controlla i documenti
real tot_documenti = calcola_fido_da_documenti('C',codcf, datacalc, ignore);

View File

@ -108,7 +108,8 @@ public:
class TDocument_report : public TReport
{
size_t _first_msg;
TDate _data_fido;
TDate _data_fido_dal;
TDate _data_fido_al;
int _riskdays;
protected:
@ -127,7 +128,8 @@ protected:
public:
virtual bool set_recordset(const TString& query);
virtual bool set_recordset(TRecordset * set) { return TReport::set_recordset(set);}
void set_datafido(const TDate& data) { _data_fido = data.ok() ? data : today; }
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; }
bool load(const char* name);
TDocument_report();
};
@ -139,7 +141,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& datacalc, const int riskdays);
real calcola_esposto_da_saldaconto(const char tipocf, const long codcf, const TDate& from, const TDate& to, const int riskdays);
real calcola_fido_da_documenti(const char tipocf, const long codcf, const TDate& datacalc, const TDoc_key& ignore);
#endif