diff --git a/src/f9/f181.dir b/src/f9/f181.dir index eb9b5fda4..36986120b 100644 --- a/src/f9/f181.dir +++ b/src/f9/f181.dir @@ -1,3 +1,3 @@ 181 0 -$docf9|3|6|132|0|Associazione doc cartacei / mov per f9||| +$docf9|0|0|133|0|Assoc.doc cartacei rev.charge mov per f9||| diff --git a/src/f9/f181.trr b/src/f9/f181.trr index f091adde1..e2a7d0255 100644 --- a/src/f9/f181.trr +++ b/src/f9/f181.trr @@ -1,10 +1,11 @@ 181 -4 +5 NUMREG|3|7|0|Numero di registrazione associato +NRIG|2|1|0|Progressivo file FILENAME|1|100|0|Nome del file (senza indirizzo) LOADDATE|5|8|0|Data caricamento USER|1|16|0|Utente che ha caricato il file 3 -NUMREG| -FILENAME| +NUMREG+NRIG| +FILENAME|X FILENAME+NUMREG|X diff --git a/src/f9/f90300.cpp b/src/f9/f90300.cpp index 0ea21d435..2422f7006 100644 --- a/src/f9/f90300.cpp +++ b/src/f9/f90300.cpp @@ -22,8 +22,6 @@ class TImport_msk : public TAutomask { friend class TGestione_doc_cartacei_f9_msk; -// map> _annessi; - bool on_field_event(TOperable_field& o, TField_event e, long jolly) override; static bool catdocann_handler(TMask_field& field, KEY key); @@ -45,10 +43,7 @@ bool TImport_msk::on_field_event(TOperable_field& o, TField_event e, long jolly) { case F_ISANNESSO: if (e == fe_modify) - { - const bool on = o.mask().get_bool(F_ISANNESSO); - o.mask().enable(F_CATDOCANN, on); - } + o.mask().enable(F_CATDOCANN, o.mask().get_bool(F_ISANNESSO)); break; case F_IMPNUMREG: if(e == fe_modify) @@ -62,25 +57,23 @@ bool TImport_msk::on_field_event(TOperable_field& o, TField_event e, long jolly) set(F_CATDOCANN, ""); } else - { - message_box("Questo tipo di registrazione non corrisponde a nessuna delle categorie documentali inserite."); - set(F_CATANNPADRE, ""); - set(F_CATDOCANN, ""); - } + if (o.mask().get_bool(F_ISANNESSO)) + { + message_box("Questo tipo di registrazione non corrisponde a nessuna delle categorie documentali inserite."); + set(F_CATANNPADRE, ""); + set(F_CATDOCANN, ""); + } } default: break; } return true; } -bool TImport_msk::catdocann_handler(TMask_field& field, KEY key) +bool TImport_msk::catdocann_handler(TMask_field& f, KEY key) { - static const char* msg_notexist = "Non esistono tipologie di annessi per questa categoria documentale."; - static const char* msg_inspadre = "Questa registrazione non e' riconosciuta in nessuna categoria documentale.\nImpossible inserire un annesso.\n" - "Si prega di inserire prima una cat. documentale che comprenda questo tipo di registrazione\naggiungendo anche eventuali tipologie di annessi."; - TImport_msk& msk = (TImport_msk&)field.mask(); + TImport_msk& msk = (TImport_msk&)f.mask(); - if (key == K_TAB && field.dirty() && field.full()) + if (f.running_check(key) && f.full()) { if (msk.get(F_CATANNPADRE).full()) { @@ -92,23 +85,17 @@ bool TImport_msk::catdocann_handler(TMask_field& field, KEY key) bool ok = false; FOR_EACH_ARRAY_ITEM(names_ann, nr, ann) { - if (field.get() == (*(TToken_string*)ann).get(0)) + if (f.get() == (*(TToken_string*)ann).get(0)) ok = true; } if (!ok) - { - msk.error_box("La categoria inserita e' inesistente"); - field.set(""); - } + return f.error_box("La categoria inserita e' inesistente"); } else - warning_box(msg_notexist); + f.warning_box(TR("Non esistono tipologie di annessi per questa categoria documentale.")); } else - { - warning_box(msg_inspadre); - field.set(""); - } + f.warning_box(TR("Questa registrazione non e' riconosciuta in nessuna categoria documentale.\nImpossible inserire un annesso.\nSi prega di inserire prima una cat. documentale che comprenda questo tipo di registrazione\naggiungendo anche eventuali tipologie di annessi.")); } if (key == K_F9) { @@ -117,7 +104,7 @@ bool TImport_msk::catdocann_handler(TMask_field& field, KEY key) if (catdoc_padre.full()) { TCategorie_doc cd; - TArray_sheet * annessi = cd.get_sheet_ann(msk.get(F_CATANNPADRE)); + TArray_sheet * annessi = cd.get_sheet_ann(catdoc_padre); if (annessi && annessi->items() > 0) { @@ -131,55 +118,53 @@ bool TImport_msk::catdocann_handler(TMask_field& field, KEY key) if (ann->opcee() != "RC") msk.set(F_CATDOCANN, ann->catdoc()); else - warning_box("Impossibile importare un annesso cartaceo per un prospetto integrativo per Reverse Charge."); + f.warning_box("Impossibile importare un annesso cartaceo per un prospetto integrativo per Reverse Charge."); } else - warning_box("Errore nell'acquisire la categoria annesso"); + f.warning_box("Errore nell'acquisire la categoria annesso"); } } else - warning_box(msg_notexist); + f.warning_box(TR("Non esistono tipologie di annessi per questa categoria documentale.")); } else - warning_box(msg_inspadre); + f.warning_box(TR("Questa registrazione non e' riconosciuta in nessuna categoria documentale.\nImpossible inserire un annesso.\nSi prega di inserire prima una cat. documentale che comprenda questo tipo di registrazione\naggiungendo anche eventuali tipologie di annessi.")); } return true; } -bool TImport_msk::catannpadre_handler(TMask_field& field, KEY key) +bool TImport_msk::catannpadre_handler(TMask_field& f, KEY key) { TCategorie_doc cd; - TImport_msk& msk = (TImport_msk&)field.mask(); + TImport_msk& msk = (TImport_msk&)f.mask(); - if (key == K_TAB && field.dirty() && field.full()) + if (f.running_check(key) && f.full()) { TString_array * name_cats = cd.get_name_catdocs(); - const bool ok = name_cats->find(field.get()) >= 0; + const bool ok = name_cats->find(f.get()) >= 0; if (!ok) - { - msk.error_box("La categoria inserita e' inesistente"); - field.set(""); - } + return f.error_box("La categoria inserita e' inesistente"); } if (key == K_F9) { - field.set(select_catdoc()); - msk.set(F_CATDOCANN, ""); + f.set(select_catdoc()); + msk.reset(F_CATDOCANN); } return true; } -bool TImport_msk::ok_handler(TMask_field& field, KEY key) +bool TImport_msk::ok_handler(TMask_field& f, KEY key) { - field.mask().send_key(K_ENTER, DLG_OK); + f.mask().send_key(K_ENTER, DLG_OK); return true; } const char* TImport_msk::select_catdoc() { TArray_sheet * catdocs = TCategorie_doc().get_sheet_catdocs(); + if (catdocs->run() == K_ENTER) return catdocs->row().get(0); return ""; @@ -201,36 +186,14 @@ TImport_msk::TImport_msk(): TAutomask("f90300b") TMask::set_handler(F_CATDOCANN, catdocann_handler); } - - - /////////////////////////////////////////////////////////////////////////////// // TGestione_doc_cartacei_f9_msk /////////////////////////////////////////////////////////////////////////////// class TGestione_doc_cartacei_f9_msk : public TAutomask { -/* struct doc_cart_t - { - TString filename; - TString loaddate; - TString numreg; - TString user; - }; - struct ann_cart_t - { - TString numreg; - TString filename; - TString catdocpad; - TString catdocann; - TString loaddate; - TString user; - }; */ const TString& _addr_cart; // Indirizzo cartella doc. cartacei F9 -// TMask * _config_msk; TString_array _extensions; - // TAssoc_array _list_file; // doc_cart_t - // TAssoc_array _list_ann; // ann_cart_t bool on_field_event(TOperable_field& o, TField_event e, long jolly) override; @@ -258,7 +221,7 @@ public: bool TGestione_doc_cartacei_f9_msk::on_field_event(TOperable_field& o, TField_event e, long jolly) { - if(e == se_query_add || e == se_query_del || e == se_query_modify) + if (e == se_query_add || e == se_query_del || e == se_query_modify) // porco cane return false; switch (o.dlg()) @@ -294,7 +257,7 @@ void TGestione_doc_cartacei_f9_msk::check_addr_cart() const TFilename f(_addr_cart); if (f.full() && !f.exist()) { - warning_box("Cartella documenti cartacei non trovata.\nSalvare nuovamente le impostazioni."); + warning_box(TR("Cartella documenti cartacei non trovata.\nSalvare nuovamente le impostazioni.")); open_config_win(); } } @@ -322,7 +285,9 @@ void TGestione_doc_cartacei_f9_msk::check_deleted() bool TGestione_doc_cartacei_f9_msk::check_file_exist(const TString& file) const { TFilename path(_addr_cart); - path.slash_terminate() << file; + + path = path.make_absolute_path(); + path.add(file); return path.exist(); } @@ -396,8 +361,7 @@ void TGestione_doc_cartacei_f9_msk::edit_ann() { f9ann.put(F9A_CATDOCPAD, win.get(F_CATANNPADRE)); f9ann.put(F9A_CATDOCANN, win.get(F_CATDOCANN)); - f9ann.write(); - f9ann.rewrite(); + f9ann.write_rewrite(); } else { @@ -405,8 +369,7 @@ void TGestione_doc_cartacei_f9_msk::edit_ann() f9ann.put(F9A_NUMREG, win.get(F_IMPNUMREG)); f9ann.put(F9A_CATDOCPAD, win.get(F_CATANNPADRE)); f9ann.put(F9A_CATDOCANN, win.get(F_CATDOCANN)); - f9ann.write(); - f9ann.rewrite(); + f9ann.write_rewrite(); } message_box("Annesso modificato!"); } @@ -422,7 +385,10 @@ void TGestione_doc_cartacei_f9_msk::edit_file() TLocalisamfile f9docs(LF_F9DOCS); const char* numreg = row.get(2); const char* filename = row.get(1); + int nrig = row.get_int(3); + f9docs.put(F9C_NUMREG, numreg); + f9docs.put(F9C_NUMREG, nrig); f9docs.read(); win.set_fields(TF9_doccart::get_full_path_file_cartaceo(filename), numreg); @@ -432,6 +398,7 @@ void TGestione_doc_cartacei_f9_msk::edit_file() { f9docs.remove(); f9docs.put(F9C_NUMREG, win.get(F_IMPNUMREG)); + f9docs.put(F9C_NRIG, win.get(F_IMPNUMREG)); f9docs.write(); f9docs.rewrite(); message_box("Documento modificato!"); @@ -524,12 +491,24 @@ void TGestione_doc_cartacei_f9_msk::fill_docs() const TRectype & mov = cache().get(LF_MOV, numreg); const bool not_exist = !check_file_exist(namefile); + if (files.get_int(F9C_NRIG) == 0) + { + TRectype rec(files.curr()); + + if (rec.remove() == NOERR) + { + files.put(F9C_NRIG, 1); + files.write(); + } + } + if (not_exist) file_err.add(namefile, numreg); const int row = sf.set_row_cell(F_FILENAME, namefile); sf.set_row_cell(F_NUMREG, numreg, row); + sf.set_row_cell(F_NRIG, files.get_int(F9C_NRIG), row); sf.set_row_cell(F_DATAMOV, mov.get_date(MOV_DATAREG), row); sf.set_row_cell(F_CAUS, mov.get(MOV_CODCAUS), row); @@ -687,21 +666,21 @@ void TGestione_doc_cartacei_f9_msk::open_import_win() { if (load_file(f, numreg, is_annesso, catannpadre, catdocann)) { - message_box("File caricato."); + message_box(TR("File caricato.")); fill(); } } else - warning_box("Se il documento e' un annesso, si prega di inserire le\ninformazioni per la categoria documentale dell'annesso."); + warning_box(TR("Se il documento e' un annesso, si prega di inserire le\ninformazioni per la categoria documentale dell'annesso.")); } else - warning_box("Si prega di inserire il numero di registrazione."); + warning_box(TR("Si prega di inserire il numero di registrazione.")); } else - warning_box("Questo file e' in un formato non accettato."); + warning_box(TR("Questo file e' in un formato non accettato.")); } else - warning_box("Si prega di inserire il nome del file."); + warning_box(TR("Si prega di inserire il nome del file.")); } fill(); } @@ -737,9 +716,6 @@ TGestione_doc_cartacei_f9_msk::TGestione_doc_cartacei_f9_msk(): TAutomask("f9030 fill(); } - - - /////////////////////////////////////////////////////////////////////////////// // TGestione_doc_cartacei_f9_app /////////////////////////////////////////////////////////////////////////////// @@ -749,14 +725,12 @@ class TGestione_doc_cartacei_f9_app : public TSkeleton_application void main_loop() override { TGestione_doc_cartacei_f9_msk msk; + while (msk.run() == K_ENTER) - { } + {} } }; - - - int f90300(const int argc, char* argv[]) { TGestione_doc_cartacei_f9_app app; diff --git a/src/f9/f90300a.h b/src/f9/f90300a.h index f2ccaf765..2ad224a1f 100644 --- a/src/f9/f90300a.h +++ b/src/f9/f90300a.h @@ -10,13 +10,14 @@ #define F_SEL 101 #define F_FILENAME 102 #define F_NUMREG 103 -#define F_DATAMOV 104 -#define F_CAUS 105 -#define F_NUMDOC 106 -#define F_NPROTOCOL 107 -#define F_DESCRMOV 108 -#define F_DATACARIC 109 -#define F_INFO 110 +#define F_NRIG 104 +#define F_DATAMOV 105 +#define F_CAUS 106 +#define F_NUMDOC 107 +#define F_NPROTOCOL 108 +#define F_DESCRMOV 109 +#define F_DATACARIC 110 +#define F_INFO 111 // Sheet S_ANNESSI diff --git a/src/f9/f90300a.uml b/src/f9/f90300a.uml index eb89463d1..b9c4a7233 100644 --- a/src/f9/f90300a.uml +++ b/src/f9/f90300a.uml @@ -71,6 +71,7 @@ BEGIN ITEM "" ITEM "Nome File@25" ITEM "Movimento\nContabile N.@7" + ITEM "Progressivo" ITEM "Data\nMovimento@10" ITEM "Causale@7" ITEM "Num. Doc.@7" @@ -100,12 +101,9 @@ BEGIN ITEM "Data\nCaricamento@10" ITEM "Info (Errori)@25" END - ENDPAGE ENDMASK - - PAGE "DOC CARTACEO" -1 -1 78 13 BOOLEAN F_SEL @@ -140,6 +138,11 @@ BEGIN FLAG "U" END +NUMBER F_NRIG 1 +BEGIN + PROMPT 32 3 "Progressivo" +END + DATE F_DATAMOV BEGIN PROMPT 0 4 "Data movimento" diff --git a/src/f9/f90300b.h b/src/f9/f90300b.h index 3e58018ac..70f079aee 100644 --- a/src/f9/f90300b.h +++ b/src/f9/f90300b.h @@ -1,6 +1,7 @@ #define F_IMPADDRGROUP 101 #define F_IMPADDRESS 102 #define F_IMPNUMREG 103 -#define F_ISANNESSO 104 -#define F_CATANNPADRE 105 -#define F_CATDOCANN 106 +#define F_IMPNRIG 104 +#define F_ISANNESSO 105 +#define F_CATANNPADRE 106 +#define F_CATDOCANN 107 diff --git a/src/f9/f90300b.uml b/src/f9/f90300b.uml index bd221a798..dcbc9b2d4 100644 --- a/src/f9/f90300b.uml +++ b/src/f9/f90300b.uml @@ -36,6 +36,13 @@ BEGIN FLAG "U" END +NUMBER F_IMPNRIG 1 +BEGIN + PROMPT 34 3 "Progressivo" + FLAGS "D" +END + + BOOLEAN F_ISANNESSO BEGIN PROMPT 2 4 "Annesso"