Patch level : 12.0 1198

Files correlati     : f90.exe f90300a.msk f90300b.msk

Commento:
Modificato il tracciato di F9docs e il programma di  documenti cartacei
This commit is contained in:
Alessandro Bonazzi 2022-10-17 22:57:37 +02:00
parent 802c39e23e
commit 0a8e6dbf36
7 changed files with 89 additions and 102 deletions

View File

@ -1,3 +1,3 @@
181 181
0 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|||

View File

@ -1,10 +1,11 @@
181 181
4 5
NUMREG|3|7|0|Numero di registrazione associato NUMREG|3|7|0|Numero di registrazione associato
NRIG|2|1|0|Progressivo file
FILENAME|1|100|0|Nome del file (senza indirizzo) FILENAME|1|100|0|Nome del file (senza indirizzo)
LOADDATE|5|8|0|Data caricamento LOADDATE|5|8|0|Data caricamento
USER|1|16|0|Utente che ha caricato il file USER|1|16|0|Utente che ha caricato il file
3 3
NUMREG| NUMREG+NRIG|
FILENAME| FILENAME|X
FILENAME+NUMREG|X FILENAME+NUMREG|X

View File

@ -22,8 +22,6 @@ class TImport_msk : public TAutomask
{ {
friend class TGestione_doc_cartacei_f9_msk; friend class TGestione_doc_cartacei_f9_msk;
// map<TString, unique_ptr<TArray_sheet>> _annessi;
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override; bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
static bool catdocann_handler(TMask_field& field, KEY key); 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: case F_ISANNESSO:
if (e == fe_modify) if (e == fe_modify)
{ o.mask().enable(F_CATDOCANN, o.mask().get_bool(F_ISANNESSO));
const bool on = o.mask().get_bool(F_ISANNESSO);
o.mask().enable(F_CATDOCANN, on);
}
break; break;
case F_IMPNUMREG: case F_IMPNUMREG:
if(e == fe_modify) 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, ""); set(F_CATDOCANN, "");
} }
else else
{ if (o.mask().get_bool(F_ISANNESSO))
message_box("Questo tipo di registrazione non corrisponde a nessuna delle categorie documentali inserite."); {
set(F_CATANNPADRE, ""); message_box("Questo tipo di registrazione non corrisponde a nessuna delle categorie documentali inserite.");
set(F_CATDOCANN, ""); set(F_CATANNPADRE, "");
} set(F_CATDOCANN, "");
}
} }
default: break; default: break;
} }
return true; 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."; TImport_msk& msk = (TImport_msk&)f.mask();
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();
if (key == K_TAB && field.dirty() && field.full()) if (f.running_check(key) && f.full())
{ {
if (msk.get(F_CATANNPADRE).full()) if (msk.get(F_CATANNPADRE).full())
{ {
@ -92,23 +85,17 @@ bool TImport_msk::catdocann_handler(TMask_field& field, KEY key)
bool ok = false; bool ok = false;
FOR_EACH_ARRAY_ITEM(names_ann, nr, ann) 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; ok = true;
} }
if (!ok) if (!ok)
{ return f.error_box("La categoria inserita e' inesistente");
msk.error_box("La categoria inserita e' inesistente");
field.set("");
}
} }
else else
warning_box(msg_notexist); f.warning_box(TR("Non esistono tipologie di annessi per questa categoria documentale."));
} }
else else
{ 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."));
warning_box(msg_inspadre);
field.set("");
}
} }
if (key == K_F9) if (key == K_F9)
{ {
@ -117,7 +104,7 @@ bool TImport_msk::catdocann_handler(TMask_field& field, KEY key)
if (catdoc_padre.full()) if (catdoc_padre.full())
{ {
TCategorie_doc cd; 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) if (annessi && annessi->items() > 0)
{ {
@ -131,55 +118,53 @@ bool TImport_msk::catdocann_handler(TMask_field& field, KEY key)
if (ann->opcee() != "RC") if (ann->opcee() != "RC")
msk.set(F_CATDOCANN, ann->catdoc()); msk.set(F_CATDOCANN, ann->catdoc());
else 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 else
warning_box("Errore nell'acquisire la categoria annesso"); f.warning_box("Errore nell'acquisire la categoria annesso");
} }
} }
else else
warning_box(msg_notexist); f.warning_box(TR("Non esistono tipologie di annessi per questa categoria documentale."));
} }
else 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; 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; 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(); 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) if (!ok)
{ return f.error_box("La categoria inserita e' inesistente");
msk.error_box("La categoria inserita e' inesistente");
field.set("");
}
} }
if (key == K_F9) if (key == K_F9)
{ {
field.set(select_catdoc()); f.set(select_catdoc());
msk.set(F_CATDOCANN, ""); msk.reset(F_CATDOCANN);
} }
return true; 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; return true;
} }
const char* TImport_msk::select_catdoc() const char* TImport_msk::select_catdoc()
{ {
TArray_sheet * catdocs = TCategorie_doc().get_sheet_catdocs(); TArray_sheet * catdocs = TCategorie_doc().get_sheet_catdocs();
if (catdocs->run() == K_ENTER) if (catdocs->run() == K_ENTER)
return catdocs->row().get(0); return catdocs->row().get(0);
return ""; return "";
@ -201,36 +186,14 @@ TImport_msk::TImport_msk(): TAutomask("f90300b")
TMask::set_handler(F_CATDOCANN, catdocann_handler); TMask::set_handler(F_CATDOCANN, catdocann_handler);
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// TGestione_doc_cartacei_f9_msk // TGestione_doc_cartacei_f9_msk
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
class TGestione_doc_cartacei_f9_msk : public TAutomask 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 const TString& _addr_cart; // Indirizzo cartella doc. cartacei F9
// TMask * _config_msk;
TString_array _extensions; 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; 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) 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; return false;
switch (o.dlg()) switch (o.dlg())
@ -294,7 +257,7 @@ void TGestione_doc_cartacei_f9_msk::check_addr_cart()
const TFilename f(_addr_cart); const TFilename f(_addr_cart);
if (f.full() && !f.exist()) 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(); 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 bool TGestione_doc_cartacei_f9_msk::check_file_exist(const TString& file) const
{ {
TFilename path(_addr_cart); TFilename path(_addr_cart);
path.slash_terminate() << file;
path = path.make_absolute_path();
path.add(file);
return path.exist(); 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_CATDOCPAD, win.get(F_CATANNPADRE));
f9ann.put(F9A_CATDOCANN, win.get(F_CATDOCANN)); f9ann.put(F9A_CATDOCANN, win.get(F_CATDOCANN));
f9ann.write(); f9ann.write_rewrite();
f9ann.rewrite();
} }
else else
{ {
@ -405,8 +369,7 @@ void TGestione_doc_cartacei_f9_msk::edit_ann()
f9ann.put(F9A_NUMREG, win.get(F_IMPNUMREG)); f9ann.put(F9A_NUMREG, win.get(F_IMPNUMREG));
f9ann.put(F9A_CATDOCPAD, win.get(F_CATANNPADRE)); f9ann.put(F9A_CATDOCPAD, win.get(F_CATANNPADRE));
f9ann.put(F9A_CATDOCANN, win.get(F_CATDOCANN)); f9ann.put(F9A_CATDOCANN, win.get(F_CATDOCANN));
f9ann.write(); f9ann.write_rewrite();
f9ann.rewrite();
} }
message_box("Annesso modificato!"); message_box("Annesso modificato!");
} }
@ -422,7 +385,10 @@ void TGestione_doc_cartacei_f9_msk::edit_file()
TLocalisamfile f9docs(LF_F9DOCS); TLocalisamfile f9docs(LF_F9DOCS);
const char* numreg = row.get(2); const char* numreg = row.get(2);
const char* filename = row.get(1); const char* filename = row.get(1);
int nrig = row.get_int(3);
f9docs.put(F9C_NUMREG, numreg); f9docs.put(F9C_NUMREG, numreg);
f9docs.put(F9C_NUMREG, nrig);
f9docs.read(); f9docs.read();
win.set_fields(TF9_doccart::get_full_path_file_cartaceo(filename), numreg); 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.remove();
f9docs.put(F9C_NUMREG, win.get(F_IMPNUMREG)); f9docs.put(F9C_NUMREG, win.get(F_IMPNUMREG));
f9docs.put(F9C_NRIG, win.get(F_IMPNUMREG));
f9docs.write(); f9docs.write();
f9docs.rewrite(); f9docs.rewrite();
message_box("Documento modificato!"); 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 TRectype & mov = cache().get(LF_MOV, numreg);
const bool not_exist = !check_file_exist(namefile); 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) if (not_exist)
file_err.add(namefile, numreg); file_err.add(namefile, numreg);
const int row = sf.set_row_cell(F_FILENAME, namefile); const int row = sf.set_row_cell(F_FILENAME, namefile);
sf.set_row_cell(F_NUMREG, numreg, row); 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_DATAMOV, mov.get_date(MOV_DATAREG), row);
sf.set_row_cell(F_CAUS, mov.get(MOV_CODCAUS), 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)) if (load_file(f, numreg, is_annesso, catannpadre, catdocann))
{ {
message_box("File caricato."); message_box(TR("File caricato."));
fill(); fill();
} }
} }
else 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 else
warning_box("Si prega di inserire il numero di registrazione."); warning_box(TR("Si prega di inserire il numero di registrazione."));
} }
else else
warning_box("Questo file e' in un formato non accettato."); warning_box(TR("Questo file e' in un formato non accettato."));
} }
else else
warning_box("Si prega di inserire il nome del file."); warning_box(TR("Si prega di inserire il nome del file."));
} }
fill(); fill();
} }
@ -737,9 +716,6 @@ TGestione_doc_cartacei_f9_msk::TGestione_doc_cartacei_f9_msk(): TAutomask("f9030
fill(); fill();
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// TGestione_doc_cartacei_f9_app // TGestione_doc_cartacei_f9_app
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -749,14 +725,12 @@ class TGestione_doc_cartacei_f9_app : public TSkeleton_application
void main_loop() override void main_loop() override
{ {
TGestione_doc_cartacei_f9_msk msk; TGestione_doc_cartacei_f9_msk msk;
while (msk.run() == K_ENTER) while (msk.run() == K_ENTER)
{ } {}
} }
}; };
int f90300(const int argc, char* argv[]) int f90300(const int argc, char* argv[])
{ {
TGestione_doc_cartacei_f9_app app; TGestione_doc_cartacei_f9_app app;

View File

@ -10,13 +10,14 @@
#define F_SEL 101 #define F_SEL 101
#define F_FILENAME 102 #define F_FILENAME 102
#define F_NUMREG 103 #define F_NUMREG 103
#define F_DATAMOV 104 #define F_NRIG 104
#define F_CAUS 105 #define F_DATAMOV 105
#define F_NUMDOC 106 #define F_CAUS 106
#define F_NPROTOCOL 107 #define F_NUMDOC 107
#define F_DESCRMOV 108 #define F_NPROTOCOL 108
#define F_DATACARIC 109 #define F_DESCRMOV 109
#define F_INFO 110 #define F_DATACARIC 110
#define F_INFO 111
// Sheet S_ANNESSI // Sheet S_ANNESSI

View File

@ -71,6 +71,7 @@ BEGIN
ITEM "" ITEM ""
ITEM "Nome File@25" ITEM "Nome File@25"
ITEM "Movimento\nContabile N.@7" ITEM "Movimento\nContabile N.@7"
ITEM "Progressivo"
ITEM "Data\nMovimento@10" ITEM "Data\nMovimento@10"
ITEM "Causale@7" ITEM "Causale@7"
ITEM "Num. Doc.@7" ITEM "Num. Doc.@7"
@ -100,12 +101,9 @@ BEGIN
ITEM "Data\nCaricamento@10" ITEM "Data\nCaricamento@10"
ITEM "Info (Errori)@25" ITEM "Info (Errori)@25"
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK
PAGE "DOC CARTACEO" -1 -1 78 13 PAGE "DOC CARTACEO" -1 -1 78 13
BOOLEAN F_SEL BOOLEAN F_SEL
@ -140,6 +138,11 @@ BEGIN
FLAG "U" FLAG "U"
END END
NUMBER F_NRIG 1
BEGIN
PROMPT 32 3 "Progressivo"
END
DATE F_DATAMOV DATE F_DATAMOV
BEGIN BEGIN
PROMPT 0 4 "Data movimento" PROMPT 0 4 "Data movimento"

View File

@ -1,6 +1,7 @@
#define F_IMPADDRGROUP 101 #define F_IMPADDRGROUP 101
#define F_IMPADDRESS 102 #define F_IMPADDRESS 102
#define F_IMPNUMREG 103 #define F_IMPNUMREG 103
#define F_ISANNESSO 104 #define F_IMPNRIG 104
#define F_CATANNPADRE 105 #define F_ISANNESSO 105
#define F_CATDOCANN 106 #define F_CATANNPADRE 106
#define F_CATDOCANN 107

View File

@ -36,6 +36,13 @@ BEGIN
FLAG "U" FLAG "U"
END END
NUMBER F_IMPNRIG 1
BEGIN
PROMPT 34 3 "Progressivo"
FLAGS "D"
END
BOOLEAN F_ISANNESSO BOOLEAN F_ISANNESSO
BEGIN BEGIN
PROMPT 2 4 "Annesso" PROMPT 2 4 "Annesso"