From 957d697dc9a8dbf514479058db73e1f31de04b8c Mon Sep 17 00:00:00 2001 From: Simone Palacino Date: Thu, 2 Jul 2020 17:26:42 +0200 Subject: [PATCH] Patch level : 12.0 972 Files correlati : f90.exe d181.des f181.dir/.trr f9ProspIntegr.rep masks f90104.sql Commento : - Rimosso controllo vendite in ogni caso. Incompatibilita' con diverse situazioni tra cui note di credito interne che non sono fatture elettroniche. - Rimosso flag check vendite e il suo utilizzo nel codice. - Aggiornamento stato estrazione solo dopo scrittura f9iva. - Migliorata e resa piu' sicura query per iva aggiungendo tipi diversi e controllo lunghezza colonna. - Corretti nomi campi, che venivano invertiti IVA_ANNPROT e IVA_NUMPROT. - Aggiunto controllo in apertura controllo estrazione solo se il pacchetto e' in errore diag. gest. - Spostata in una classe separata la maschera per l'apertura del pacchetto (Apri estr.). - Corretta modifica f9wa rimaneva vuoto il record in alcuni casi. - Aggiunta possibilita' di esclusione movimenti dall'Apri estr. - Aggiunto controllo esistenza categorie documentali, caricamento cat. doc. di default e controllo tipi documento duplicati. - Aggiunta colonna a F9DRT in caso mancasse (Dovuta a creazione da fp). - Aggiunta funzione provvisoria per calcolo somma imponibili e imposte da rmoviva. - Aggiunto filtro datadoc per sheet fatture elettorniche (FPPRO) nel controllo estrazione: precarica automaticamente minimo e massimo secondo i movimenti in errore, e aggiunti i cambi nella finestra di ordinamento per impostare le date a mano. - Modificato messaggio dopo importazione categorie di default. --- src/f9/f90100.cpp | 98 +++++++++++++++++++++++++++------------------- src/f9/f90100.h | 3 ++ src/f9/f90100b.h | 3 ++ src/f9/f90200.cpp | 74 +++++++++++++++++----------------- src/f9/f90400.cpp | 56 +++++++++++++++----------- src/f9/f9lib01.cpp | 6 +-- src/f9/f9lib01.h | 4 +- src/f9/f9lib02.cpp | 2 +- 8 files changed, 139 insertions(+), 107 deletions(-) diff --git a/src/f9/f90100.cpp b/src/f9/f90100.cpp index 60140a74e..3355767c9 100644 --- a/src/f9/f90100.cpp +++ b/src/f9/f90100.cpp @@ -162,7 +162,7 @@ int TEstrai_mask::estrai() int numreg = recset_get_int(mov, MOV_NUMREG); TToken_string elab_f9(recset_get_string(mov, MOV_ELABF9), ';'); // Stringa del campo elaborazione f9 nel file mov - const bool escluso = !(elab_f9.items() == 3 && elab_f9.get(2)[0] != 'X' || elab_f9.empty()); + const bool escluso = !(elab_f9.items() == 3 && elab_f9.get(2)[0] != 'X' || elab_f9.empty()); const TCausale caus(recset_get_string(mov, MOV_CODCAUS, 3), TDate(recset_get_string(mov, MOV_DATAREG)).year()); const bool stampato = recset_get_bool(mov, MOV_REGST); const TString& numdoc = recset_get_string(mov, MOV_NUMDOC); @@ -178,17 +178,17 @@ int TEstrai_mask::estrai() // Creo il movimento da inserire movimento_t t; t.err = false; - t.numreg = recset_get_int(mov, MOV_NUMREG); - t.datareg = recset_get_date(mov, MOV_DATAREG); - t.datadoc = recset_get_date(mov, MOV_DATADOC); - t.codcaus = recset_get_string(mov, MOV_CODCAUS, 3); - t.meseliq = recset_get_int(mov, MOV_MESELIQ); - t.numdoc = recset_get_string(mov, MOV_NUMDOC); - t.tot = recset_get_real(mov, MOV_TOTDOC) + recset_get_real(mov, MOV_RITFIS) + recset_get_real(mov, MOV_RITSOC); - t.codcf = recset_get_int(mov, MOV_CODCF); + t.numreg = recset_get_int (mov, MOV_NUMREG); + t.datareg = recset_get_date (mov, MOV_DATAREG); + t.datadoc = recset_get_date (mov, MOV_DATADOC); + t.codcaus = recset_get_string (mov, MOV_CODCAUS, 3); + t.meseliq = recset_get_int (mov, MOV_MESELIQ); + t.numdoc = recset_get_string (mov, MOV_NUMDOC); + t.tot = recset_get_real (mov, MOV_TOTDOC) + recset_get_real(mov, MOV_RITFIS) + recset_get_real(mov, MOV_RITSOC); + t.codcf = recset_get_int (mov, MOV_CODCF); t.ragsoc = clifo.read() == NOERR ? clifo.get(CLI_RAGSOC) : " "; t.reg_protiva = TString(recset_get_string(mov, MOV_REG)) << "/" << recset_get_string(mov, MOV_PROTIVA); - t.descr = recset_get_string(mov, MOV_DESCR); + t.descr = recset_get_string (mov, MOV_DESCR); if (escluso) { t.estratto = false; @@ -265,12 +265,12 @@ bool TEstrai_mask::estrai_handler(TMask_field& f, KEY key) return true; } -void TEstrai_mask::enable_fields(bool en) +void TEstrai_mask::enable_fields(const bool en) { - enable(ES_DATAINI, en); - enable(ES_DATAEND, en); + enable(ES_DATAINI, en); + enable(ES_DATAEND, en); enable(ES_FLAGPROV, en); - enable(ES_TIPODOC, en); + enable(ES_TIPODOC, en); } bool TEstrai_mask::enable_handler(TMask_field& f, KEY key) @@ -307,19 +307,19 @@ TEstrai_mask::TEstrai_mask() : TMask("Estrazione", 1, 60, 16), _estrazione(nullp add_button_tool(DLG_NULL, "", 0); add_button_tool(DLG_QUIT, "Esci", TOOL_QUIT); - add_groupbox(ES_DATEGROUP, 0, "Inserire periodo per estrazione:", 1, 0, 59, 3, ""); - add_date(ES_DATAINI, 0, "dal", 4, 1, ""); - add_date(ES_DATAEND, 0, " al", 33, 1, ""); - add_groupbox(ES_FLAGGROUP, 0, "Selezionare tipo di estrazione:", 1, 3, 28, 3, ""); - add_list(ES_FLAGPROV, 0, "Flag provvisorio", 2, 4, 1, "", "P|D", "Provvisorio|Definitivo"); - add_groupbox(ES_TIPOGROUP, 0, "Selezionare documenti da estrarre:", 32, 3, 28, 3, ""); - add_list(ES_TIPODOC, 0, "Tipi documento", 33, 4, 1, "", "A|V", "Acquisti|Vendite"); - add_groupbox(ES_DESCGROUP, 0, "Inserire descrizione estrazione:", 1, 6, 59, 3, ""); - add_string(ES_DESCR, 0, "Descrizione", 2, 7, 250, "", 40); + add_groupbox(ES_DATEGROUP, 0, "Inserire periodo per estrazione:", 1, 0, 59, 3, ""); + add_date (ES_DATAINI, 0, "dal", 4, 1, ""); + add_date (ES_DATAEND, 0, " al", 33, 1, ""); + add_groupbox(ES_FLAGGROUP, 0, "Selezionare tipo di estrazione:", 1, 3, 28, 3, ""); + add_list (ES_FLAGPROV, 0, "Flag provvisorio", 2, 4, 1, "", "P|D", "Provvisorio|Definitivo"); + add_groupbox(ES_TIPOGROUP, 0, "Selezionare documenti da estrarre:", 32, 3, 28, 3, ""); + add_list (ES_TIPODOC, 0, "Tipi documento", 33, 4, 1, "", "A|V", "Acquisti|Vendite"); + add_groupbox(ES_DESCGROUP, 0, "Inserire descrizione estrazione:", 1, 6, 59, 3, ""); + add_string (ES_DESCR, 0, "Descrizione", 2, 7, 250, "", 40); TMask::set_handler(DLG_ELABORA, estrai_handler); - TMask::set_handler(ES_DATAINI, dataini_handler); - TMask::set_handler(ES_DATAEND, dataend_handler); + TMask::set_handler(ES_DATAINI, dataini_handler); + TMask::set_handler(ES_DATAEND, dataend_handler); TDate dt(TODAY); dt.set_day(1); dt.set_month(1); set(ES_DATAINI, dt); @@ -719,11 +719,10 @@ void TControllo_mask::conferma_esclusi() const vector& TControllo_mask::import_error_list() { - static vector controllo_mov; - controllo_mov.clear(); + _controllo_mov.clear(); TF9_dberr dberr; - _tipo_doc_err = TF9_dberr::get_errori(_cod_soc, _id_estr, controllo_mov); - return controllo_mov; + _tipo_doc_err = TF9_dberr::get_errori(_cod_soc, _id_estr, _controllo_mov); + return _controllo_mov; } void TControllo_mask::fill() @@ -732,7 +731,8 @@ void TControllo_mask::fill() sf.hide(); sf.destroy(); _movs = !_is_escluso ? import_error_list() : f9_app()._esclusi; // Prendo da _esclusi se sto aprendo il controllo dalla maschera degli esclusi - + _datada = EOTIME; + _dataa = 0L; for (auto it = _movs.begin(); it != _movs.end(); ++it) { TToken_string& row = sf.row(-1); @@ -740,6 +740,11 @@ void TControllo_mask::fill() { row = *it; row[0] = (char&)" "; + TDate d = row.get(3); + if (d < _datada) + _datada = d; + if (d > _dataa) + _dataa = d; /*if (!_is_escluso && _tipo_doc_err == 'A' || _is_escluso && f9_app().get_tipoiva_escl() == iva_acquisti) row.add("", cid2index(F_CESCLUDI)); else @@ -780,7 +785,7 @@ void TControllo_mask::fill_fppro_sheet() const "JOIN PAA0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" << "JOIN PAA0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n" << "JOIN FPPRO00F ON PQ_KEYPRGINVIO = PZ_KEYPRGINVIO AND PQ_KEYHEADERFATT = PZ_KEYHEADERFATT AND PQ_KEYBODYFATT = PZ_KEYBODYFATT\n" << - "WHERE PZ_NUMREGCONT = '0' AND PZ_DATAREGCONT = '2001-01-01'\n" << + "WHERE PZ_NUMREGCONT = '0' AND PZ_DATAREGCONT = '2001-01-01' AND P7_DATA >= '" << _datada.date2ansi() << "' AND P7_DATA <= '" << _dataa.date2ansi() << "'\n" << "ORDER BY " << order << " " << (_verso == 'A' ? "ASC" : "DESC") << "\n"; fp_db().sq_set_exec(query, false); @@ -807,21 +812,28 @@ TMask& TControllo_mask::get_win_order() if (m == nullptr) { - m = new TMask("Configurazione Archiviazione Sostitutiva", 1, 60, 10); + m = new TMask("Configurazione Archiviazione Sostitutiva", 1, 60, 16); // TOOLBAR m->add_button_tool(DLG_OK, "Conferma", TOOL_OK); m->add_button_tool(DLG_NULL, "", 0); m->add_button_tool(DLG_QUIT, "Esci", TOOL_QUIT); // Ordinatori - m->add_radio(F_ORDER, 0, "Ordina per:", 1, 0, 59, "D|N|F|R|P", "DATA|NUMDOC|FORNITORE|RAGSOC|PIVA", "Z"); - m->add_radio(F_VERSO, 0, "Verso:", 1, 3, 59, "A|D", "Crescente|Decrescente", "Z"); + m->add_radio(F_ORDER, 0, "@BOrdina per:", 1, 0, 59, "D|N|F|R|P", "DATA|NUMDOC|FORNITORE|RAGSOC|PIVA", "Z"); + m->add_radio(F_VERSO, 0, "@BVerso:", 1, 3, 59, "A|D", "Crescente|Decrescente", "Z"); + + // Filtro date + m->add_groupbox (F_ORDDATAG, 0, "@BFiltra per data documento", 1, 6, 59, 3); + m->add_date (F_ORDDATADA, 0, "dal", 2, 7); + m->add_date (F_ORDDATAA, 0, " al", 22, 7); //m->set_handler(DLG_OK, save_conf_handler); _ordin = ini_get_string(CONFIG_DITTA, INI_PAR_MOD, "ORDINAM", "D")[0]; - _verso = ini_get_string(CONFIG_DITTA, INI_PAR_MOD, "VERSO", "A")[0]; - m->set(F_ORDER, &_ordin); - m->set(F_VERSO, &_verso); + _verso = ini_get_string(CONFIG_DITTA, INI_PAR_MOD, "VERSO", "A")[0]; + m->set(F_ORDER, &_ordin); + m->set(F_VERSO, &_verso); + m->set(F_ORDDATADA, _datada); + m->set(F_ORDDATAA, _dataa); } return *m; } @@ -829,11 +841,15 @@ TMask& TControllo_mask::get_win_order() void TControllo_mask::open_win_order() { TMask& m = get_win_order(); + m.set(F_ORDDATADA, _datada); + m.set(F_ORDDATAA, _dataa); m.run(); - _ordin = m.get(F_ORDER)[0]; - _verso = m.get(F_VERSO)[0]; - ini_set_string(CONFIG_DITTA, INI_PAR_MOD, "ORDINAM", &_ordin); - ini_set_string(CONFIG_DITTA, INI_PAR_MOD, "VERSO", &_verso); + _ordin = m.get(F_ORDER)[0]; + _verso = m.get(F_VERSO)[0]; + _datada = m.get_date(F_ORDDATADA); + _dataa = m.get_date(F_ORDDATAA); + ini_set_string(CONFIG_DITTA, INI_PAR_MOD, "ORDINAM", &_ordin); + ini_set_string(CONFIG_DITTA, INI_PAR_MOD, "VERSO", &_verso); } TToken_string* TControllo_mask::selected_mov() diff --git a/src/f9/f90100.h b/src/f9/f90100.h index f592c7018..7754e7996 100644 --- a/src/f9/f90100.h +++ b/src/f9/f90100.h @@ -165,6 +165,7 @@ public: class TControllo_mask : public TAutomask { + vector _controllo_mov; // Usare import_error_list(). char _ordin; char _verso; int _selected_mov; @@ -174,6 +175,8 @@ class TControllo_mask : public TAutomask TString _id_estr; char _tipo_doc_err{}; vector _movs; + TDate _datada; + TDate _dataa; void associa(); void conferma_esclusi() const; diff --git a/src/f9/f90100b.h b/src/f9/f90100b.h index 559ffe0a6..ebb2f15be 100644 --- a/src/f9/f90100b.h +++ b/src/f9/f90100b.h @@ -13,6 +13,9 @@ // Cambi maschera ordinamento sheet FPPRO #define F_ORDER 301 #define F_VERSO 302 +#define F_ORDDATAG 303 +#define F_ORDDATADA 304 +#define F_ORDDATAA 305 #define F_CSEL 101 #define F_CNUMREG 102 diff --git a/src/f9/f90200.cpp b/src/f9/f90200.cpp index 8b1527a22..269bcb96c 100644 --- a/src/f9/f90200.cpp +++ b/src/f9/f90200.cpp @@ -10,41 +10,35 @@ TString escape(const char* str); +class TNew_annesso_msk : public TMask +{ +public: + void edit_mode(const bool edit = true) { enable(101, !edit); } + + void fill_field(const TString& nome_ann, const TString& descr, const TString& tipo_ann, const bool obblig) + { set(101, nome_ann); set(102, descr); set(103, tipo_ann); set(104, obblig); } + + TNew_annesso_msk(const char* title) : TMask(title, 1, 78, 13) + { + add_button_tool (DLG_OK, "~Conferma", TOOL_OK); + add_button_tool (DLG_NULL, "", 0); + add_button_tool (DLG_CANCEL, "~Annulla", TOOL_CANCEL); + add_string (101, 0, "Nome tipo annesso:", 1, 1, 10); + add_string (102, 0, "Descrizione: ", 1, 2, 30); + add_list (103, 0, "Tipologia annesso:", 1, 3, 21, "", "DC|RC", "Annesso Cartaceo|Prospetto Rev. Charge"); + add_boolean (104, 0, "Obbligatorio: ", 1, 4); + } +}; + /////////////////////////////////////////////////////////////// // TF9_categorie_doc_msk /////////////////////////////////////////////////////////////// class TF9_categorie_doc_msk : public TAutomask { - class TNew_annesso_msk : public TMask - { - public: - void edit_mode(const bool edit = true) - { - enable(101, !edit); - } - - void fill_field(const TString& nome_ann, const TString& descr, const TString& tipo_ann, const bool obblig) - { - set(101, nome_ann); - set(102, descr); - set(103, tipo_ann); - set(104, obblig); - } - - TNew_annesso_msk(const char* title) : TMask(title, 1, 78, 13) - { - add_button_tool(DLG_OK, "~Conferma", TOOL_OK); - add_button_tool(DLG_NULL, "", 0); - add_button_tool(DLG_CANCEL, "~Annulla", TOOL_CANCEL); - add_string (101, 0, "Nome tipo annesso:", 1, 1, 10); - add_string (102, 0, "Descrizione: ", 1, 2, 30); - add_list (103, 0, "Tipologia annesso:", 1, 3, 21, "", "DC|RC", "Annesso Cartaceo|Prospetto Rev. Charge"); - add_boolean (104, 0, "Obbligatorio: ", 1, 4); - } - }; std::shared_ptr _annessi_sheet; TRecord_categorie _categorie_doc; + bool _mod_precaricate; bool on_field_event(TOperable_field& o, TField_event e, long jolly) override; bool on_key(KEY key) override; @@ -61,7 +55,9 @@ class TF9_categorie_doc_msk : public TAutomask public: static void correct_spell_catdoc(TString& catdoc); - TF9_categorie_doc_msk() : TAutomask("f90200a") { load_table(); } + explicit TF9_categorie_doc_msk(bool precarica) + : TAutomask("f90200a"), _mod_precaricate(precarica) + { load_table(); } }; bool TF9_categorie_doc_msk::on_field_event(TOperable_field& o, TField_event e, long jolly) @@ -164,8 +160,10 @@ void TF9_categorie_doc_msk::check_duplicate_tipodoc() const } } } - if (!dup.empty()) + if (!dup.empty() && !_mod_precaricate) warning_box("Ci sono molteplici categorie con lo stesso tipo documento.\nPer una corretta assegnazione della categoria doc. si consiglia\ndi specificare il tipo di causale o rimuovere i duplicati."); + if (_mod_precaricate) + message_box("Si prega di completare la tabella per la riga di fattura acquisti\nreverse charge andando a inserire il corrispondente codice causale."); } void TF9_categorie_doc_msk::delete_annesso(const TString& catdoc_padre) @@ -308,10 +306,9 @@ void TF9_categorie_doc_msk::correct_spell_catdoc(TString& catdoc) class TF9_categorie_doc : public TSkeleton_application { TString _log; - void add_error_log(TString& query); - static void precarica_tabella_default(); - void main_loop() override; - + void add_error_log(TString& query); + static bool precarica_tabella_default(); + void main_loop() override; public: TF9_categorie_doc() = default; }; @@ -322,11 +319,11 @@ void TF9_categorie_doc::add_error_log(TString& query) _log << "\n" << query << "\n" << fp_db().sq_get_text_error() << "\n" << fp_db().sq_get_string_error(); } -void TF9_categorie_doc::precarica_tabella_default() +bool TF9_categorie_doc::precarica_tabella_default() { TCategorie_doc preload; if (preload.get_array_rows().items() == 0 || - noyes_box("Attenzione questa procedura cancellera' le categorie documentali gia' presenti\ne carichera' quelle di default. Continuare?")) + noyes_box("Attenzione questa procedura cancellera' le categorie documentali gia' presenti\ne carichera' quelle di default. Si desidera continuare?")) { preload.remove_all(); preload.reload(); @@ -339,15 +336,18 @@ void TF9_categorie_doc::precarica_tabella_default() preload.add_categoria("BOLLADOGAC", "Bolla doganale", "FTA", "TD01", "", "BD"); preload.add_annesso("FATTREV", "INTREVC", "Prosp. integr. rev.ch.", "RC", true); + return true; } + return false; } void TF9_categorie_doc::main_loop() { + bool precarica = false; if(argc() > 2 && argv()[2][0] == '-' && argv()[2][1] == 'd') - precarica_tabella_default(); + precarica = precarica_tabella_default(); - TF9_categorie_doc_msk msk; // Il costruttore carica subito la tabella... + TF9_categorie_doc_msk msk(precarica); // Il costruttore carica subito la tabella... while(msk.run() == K_ENTER) { TSheet_field& sf = msk.sfield(S_CLASSDOC); diff --git a/src/f9/f90400.cpp b/src/f9/f90400.cpp index 39a12c6bf..95f27b258 100644 --- a/src/f9/f90400.cpp +++ b/src/f9/f90400.cpp @@ -146,33 +146,37 @@ void TF9_test_app::main_loop() } } - TF9_doccart doccart; - TString old_numreg; old_numreg << 95752; - TFilename doc; - TString_array list_annessi; - vector vect_annessi; - //TFilename f_doc; f_doc << "asd"; - //bool annesso; - //bool doc_ae = doccart.doc_already_exists(f_doc, old_numreg, annesso); - bool movdoc = doccart.mov2doc(old_numreg, doc); - TString msg("Error retriving filename from reg n. "); msg << old_numreg; - CHECK(movdoc && TString(doc.name()) == "ve1300_F01_0000000011_0002237.pdf", (const char*)msg); + if (false) + { + TF9_doccart doccart; + TString old_numreg; old_numreg << 95752; + TFilename doc; + TString_array list_annessi; + vector vect_annessi; + //TFilename f_doc; f_doc << "asd"; + //bool annesso; + //bool doc_ae = doccart.doc_already_exists(f_doc, old_numreg, annesso); + bool movdoc = doccart.mov2doc(old_numreg, doc); + TString msg("Error retriving filename from reg n. "); msg << old_numreg; + CHECK(movdoc && TString(doc.name()) == "ve1300_F01_0000000011_0002237.pdf", (const char*)msg); - old_numreg.cut(0) << 95222; // Doppio annesso - bool movann = doccart.mov2listann(old_numreg, list_annessi); - //CHECK(movann && list_annessi.items() == 2, "Error retriving list annessi from numreg %s", (const char*)old_numreg); - bool movannvect = doccart.mov2listann_vect(old_numreg, vect_annessi); - //CHECK(movannvect && vect_annessi.size() == 2, "Error retriving vector annessi from numreg %s", (const char*)old_numreg); + old_numreg.cut(0) << 95222; // Doppio annesso + bool movann = doccart.mov2listann(old_numreg, list_annessi); + //CHECK(movann && list_annessi.items() == 2, "Error retriving list annessi from numreg %s", (const char*)old_numreg); + bool movannvect = doccart.mov2listann_vect(old_numreg, vect_annessi); + //CHECK(movannvect && vect_annessi.size() == 2, "Error retriving vector annessi from numreg %s", (const char*)old_numreg); - /*TCategorie_doc::annesso annesso; - annesso.catdoc = "INTEGREV"; - annesso.catdocpadre = "FATTREV"; - annesso.descr = "Integrazione Rev. Charge"; - annesso.opcee = "RC"; - annesso.obblig = true; - TEstrazione::make_prosp_int_revc(96951, annesso);*/ + /*TCategorie_doc::annesso annesso; + annesso.catdoc = "INTEGREV"; + annesso.catdocpadre = "FATTREV"; + annesso.descr = "Integrazione Rev. Charge"; + annesso.opcee = "RC"; + annesso.obblig = true; + TEstrazione::make_prosp_int_revc(96951, annesso);*/ + } + if(false) { TF9Prospetto_integr prosp; if (prosp("96951", "96952")) @@ -188,6 +192,12 @@ void TF9_test_app::main_loop() } } + TCategorie_doc::annesso annesso; + if(categorie_doc().get_ann("INTREVC", annesso)) + TEstrazione::make_prosp_int_revc(153480, annesso); + + + message_box("TESTS COMPLETELY SUCCESSFUL"); } diff --git a/src/f9/f9lib01.cpp b/src/f9/f9lib01.cpp index fb0c08c12..0df540779 100644 --- a/src/f9/f9lib01.cpp +++ b/src/f9/f9lib01.cpp @@ -1365,12 +1365,12 @@ void TCategorie_doc::del_annesso(const TString& catdoc, const char* catdoc_ann) } } -bool TCategorie_doc::get_ann(const TString& catann, annesso& annesso) +bool TCategorie_doc::get_ann(const TString& catann, _Out_ annesso& _Annesso_out) { - const map::iterator it = _rows_annessi.find(catann); + const map::iterator it = _rows_annessi.find(catann); if (it != _rows_annessi.end()) { - annesso = it->second; + _Annesso_out = it->second; return true; } return false; diff --git a/src/f9/f9lib01.h b/src/f9/f9lib01.h index 4d5893f08..04d173154 100644 --- a/src/f9/f9lib01.h +++ b/src/f9/f9lib01.h @@ -180,7 +180,7 @@ public: void add_categoria(const TString& catdoc, const TString& descr, const TString& class_sost, const TString& caus_sost, const TString& causcont, const TString& tipocaus); void del_annesso(const TString& catdoc, const char* catdoc_ann); - bool get_ann(const TString& catann, annesso& annesso); + bool get_ann(const TString& catann, _Out_ annesso& _Annesso_out); TString_array get_array_ann(const TString& catdoc); TString_array get_array_rows(bool traduci = false); std::shared_ptr get_classe_doc(const TString& catdoc); @@ -541,7 +541,7 @@ class TProspetto_recset final : public TSQL_recordset void precarica_tabelle(); public: - void get_sum_imponibile_imposta(const char* numreg_ven, real& s_imponibili, real& s_imposte); + static void get_sum_imponibile_imposta(const char* numreg_ven, real& s_imponibili, real& s_imposte); TProspetto_recset(const char* numreg_acq, const char* numreg_ven); ~TProspetto_recset(); diff --git a/src/f9/f9lib02.cpp b/src/f9/f9lib02.cpp index e2b68e9f0..3bb0fd67d 100644 --- a/src/f9/f9lib02.cpp +++ b/src/f9/f9lib02.cpp @@ -524,7 +524,7 @@ bool TF9Prospetto_integr::operator()(const char* numreg_acq, const char* numreg_ TProspetto_recset* _prosp_rs = new TProspetto_recset(numreg_acq, numreg_ven); _items = _prosp_rs->items(); - _rep.set_recordset(&*_prosp_rs); + _rep.set_recordset(_prosp_rs); _book.add(_rep); } else