diff --git a/src/ba/ba1700.cpp b/src/ba/ba1700.cpp index a5b8c354f..b62bdac42 100755 --- a/src/ba/ba1700.cpp +++ b/src/ba/ba1700.cpp @@ -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[]) diff --git a/src/ve/ve1800.cpp b/src/ve/ve1800.cpp index 179b9cc7c..62c101f5e 100644 --- a/src/ve/ve1800.cpp +++ b/src/ve/ve1800.cpp @@ -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) diff --git a/src/ve/ve1800a.h b/src/ve/ve1800a.h index 114fe65ec..a3aac20e4 100644 --- a/src/ve/ve1800a.h +++ b/src/ve/ve1800a.h @@ -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 diff --git a/src/ve/ve1800a.uml b/src/ve/ve1800a.uml index 8dcceafab..ce2319083 100644 --- a/src/ve/ve1800a.uml +++ b/src/ve/ve1800a.uml @@ -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 diff --git a/src/ve/velib07.cpp b/src/ve/velib07.cpp index c76fff1d3..32f42d0b8 100755 --- a/src/ve/velib07.cpp +++ b/src/ve/velib07.cpp @@ -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); diff --git a/src/ve/velib07.h b/src/ve/velib07.h index fc3106d10..2783b6e35 100755 --- a/src/ve/velib07.h +++ b/src/ve/velib07.h @@ -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