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
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
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

View File

@ -22,8 +22,6 @@ class TImport_msk : public TAutomask
{
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;
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;

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"