Merge branch 'R_10_00' of http://10.65.20.17:7990/scm/campo/campo into R_10_00

This commit is contained in:
Mattia Tollari 2019-02-22 15:35:58 +01:00
commit 66107eaf2e
10 changed files with 271 additions and 76 deletions

7
cd/test/fp0706.txt Normal file
View File

@ -0,0 +1,7 @@
fp0.exe
fp0100a.msk
- Aggiunto piccolo controllo preventivo durante l'esportazione degli XML
- Aggiunto flag per non rendere il controllo bloccante
- Sistemata banca di appoggio
- Aggiunta gestione casse professionali

20
cd/test/fp0706a.ini Normal file
View File

@ -0,0 +1,20 @@
[Main]
Demo=0
[fp1]
File(0) = fp0.exe|X
File(1) = fp0100a.msk|X
Patch = 0706
Versione = 21511200
[fp]
Data = 21-02-2019
Descrizione = Fattura Elettronica
Dischi = 1
Moduli = cg,ve
OEM =
Patch = 706
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/fp0706a1.zip Normal file

Binary file not shown.

3
cd/test/fp0708.txt Normal file
View File

@ -0,0 +1,3 @@
fp0.exe
fp0100a.msk
fp0400a.msk

21
cd/test/fp0708a.ini Normal file
View File

@ -0,0 +1,21 @@
[Main]
Demo=0
[fp1]
File(0) = fp0.exe|X
File(1) = fp0100a.msk|X
File(4) = fp0400a.msk|X
Patch = 0708
Versione = 21511200
[fp]
Data = 22-02-2019
Descrizione = Fattura Elettronica
Dischi = 1
Moduli = cg,ve
OEM =
Patch = 708
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/fp0708a1.zip Normal file

Binary file not shown.

View File

@ -214,7 +214,7 @@ void TPA_mask::fill()
row.add(rec.get("20." CLI_RAGSOC).as_string()); row.add(rec.get("20." CLI_RAGSOC).as_string());
TString rif = get_dest_sdi(rec.get(CFV_TIPOCF).as_string()[0], rec.get(CFV_CODCF).as_int()); TString rif = get_dest_sdi(rec.get(CFV_TIPOCF).as_string()[0], rec.get(CFV_CODCF).as_int());
// Se è ancora vuoto potrebbe essere estero // Se è ancora vuoto potrebbe essere estero
if(rif.empty()) if(rif.empty())
{ {
// Segno la riga errata // Segno la riga errata
@ -254,7 +254,7 @@ void TPA_mask::fill()
docs.show(); docs.show();
if (fat_no_cod > 0) if (fat_no_cod > 0)
warning_box("Sono state trovate una o più fatture senza codice destinatario nè pec"); warning_box("Sono state trovate una o più fatture senza codice destinatario né pec");
} }
void TPA_mask::set_filter_changed() void TPA_mask::set_filter_changed()
@ -369,7 +369,7 @@ bool TPA_mask::check_not_empty()
TString msg; TString msg;
if (sheet.empty()) if (sheet.empty())
msg = "La tabella dei movimenti è vuota, vuoi caricarla con i filtri selezionati?"; msg = "La tabella dei movimenti è vuota, vuoi caricarla con i filtri selezionati?";
else if (_filter_changed) else if (_filter_changed)
msg = "I filtri sono stati cambiati, vuoi ricaricare la tabella con i nuovi filtri selezionati?"; msg = "I filtri sono stati cambiati, vuoi ricaricare la tabella con i nuovi filtri selezionati?";
@ -445,14 +445,14 @@ void TPA_mask::set_err_paf()
TString query = "UPDATE PAF0100F SET P1_GESTIONE = 'E' WHERE P1_KEYHEADERFATT = '"; query << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';"; TString query = "UPDATE PAF0100F SET P1_GESTIONE = 'E' WHERE P1_KEYHEADERFATT = '"; query << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';";
if(!fp_db().sq_set_exec(query)) if(!fp_db().sq_set_exec(query))
{ {
TString err = "Impossibile salvare la fattura "; err << anno << " " << codnum << " " << ndoc << "\nVerrà saltata."; TString err = "Impossibile salvare la fattura "; err << anno << " " << codnum << " " << ndoc << "\nVerrà saltata.";
error_box(err); error_box(err);
} }
} }
else else
{ {
TString err = "Impossibile trovare la fattura "; err << anno << " " << codnum << " " << ndoc << "\nVerrà saltata."; TString err = "Impossibile trovare la fattura "; err << anno << " " << codnum << " " << ndoc << "\nVerrà saltata.";
error_box(err); error_box(err);
} }
} }
@ -461,7 +461,7 @@ void TPA_mask::set_err_paf()
} }
// Mi sposto nella prima pagina, setto il flag di dirty sul filtro e mi risposto // Mi sposto nella prima pagina, setto il flag di dirty sul filtro e mi risposto
// Lo faccio perchè eliminando la riga direttamente e chiamando la force_update() si crea un bug che cliccando sulla prima riga viene mostrata quella che c'era prima della eliminazione // Lo faccio perché eliminando la riga direttamente e chiamando la force_update() si crea un bug che cliccando sulla prima riga viene mostrata quella che c'era prima della eliminazione
TAutomask::next_page(0); TAutomask::next_page(0);
set_focus_field(F_DATAINI); set_focus_field(F_DATAINI);
_filter_changed = true; _filter_changed = true;
@ -525,7 +525,7 @@ void TDoc2Paf::main_loop()
ndocs++; ndocs++;
else else
{ {
if (!yesno_box("L'ultima fattura non è stata esportata, continuare?")) if (!yesno_box("L'ultima fattura non è stata esportata, continuare?"))
break; break;
} }
} }

View File

@ -10,14 +10,16 @@
#include "fp0400a.h" #include "fp0400a.h"
#include "fplib.h" #include "fplib.h"
#include "sheet.h" #include "sheet.h"
#include "execp.h"
#include "dongle.h"
enum enum
{ {
no_cf = -14, // Non trovato con cod.fisc. (se non ho nemmeno la p.iva) no_cf = -14, // Non trovato con cod. fisc. (se non ho nemmeno la p.iva)
no_match_cf = -15, // Trovato forn. ma il cod. fisc non corrisponde no_match_cf = -15, // Trovato forn. ma il cod. fisc non corrisponde
no_forn = -5, // Non trovato forn.con p.iva no_forn = -5, // Non trovato forn. con p.iva
err_match_db = -3, // Salvato in db ma non corrisponde a un fornitore err_match_db = -3, // Salvato in db ma non corrisponde a un fornitore
saved_db = 0, // Salvato già in db FPPRO saved_db = 0, // Salvato già in db FPPRO
found_piva = 2, // Lo trovo con p.iva found_piva = 2, // Lo trovo con p.iva
found_cf = 4, // Non ho p.iva lo trovo con cod.fisc found_cf = 4, // Non ho p.iva lo trovo con cod.fisc
}; };
@ -29,6 +31,10 @@ protected:
void set_filter_changed(); void set_filter_changed();
void select_all(int sheet_field); void select_all(int sheet_field);
// Tasto nuovo: apre nuovo fornitore valorizzando già i dati dalla fattura
void new_forn();
// Tasto aggiorna: aggiorna cliente che non corrisponde.
void aggiorna_forn();
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;
void next_page(int p) override; void next_page(int p) override;
// Elenco dei protocolli selezionati // Elenco dei protocolli selezionati
@ -36,15 +42,17 @@ protected:
void fill(); void fill();
static int find_fornitore(TLocalisamfile& clifo); static int find_fornitore(TLocalisamfile& clifo);
static void add_row_err_forn(int forn_code, TSheet_field& sf_err, TString& denom); static void add_row_err_forn(int forn_code, TSheet_field& sf_err, TString& denom);
static void aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TSheet_field& sf_err); void aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TSheet_field& sf_err);
// Aggiunge i protocolli che sono già presenti per le fatture nel db alla tabellina per il filtro // Aggiunge i protocolli che sono già presenti per le fatture nel db alla tabellina per il filtro
void aggiungi_prot() const; void aggiungi_prot() const;
void init(); void init();
void load_all_fields(); void load_all_fields();
TToken_string _forn_code;
TToken_string _list_fatt_err;
bool _filter_changed; bool _filter_changed;
void salva_for(); void salva_for() const;
public: public:
void save_all_fields() const; void save_all_fields() const;
@ -52,6 +60,10 @@ public:
TPassive_mask() : TAutomask("fp0400a"), _filter_changed(true) TPassive_mask() : TAutomask("fp0400a"), _filter_changed(true)
{ {
load_all_fields(); load_all_fields();
_forn_code = "";
_forn_code.separator('|');
_list_fatt_err = "";
_list_fatt_err.separator('|');
} }
}; };
@ -107,7 +119,8 @@ void TPassive_mask::fill()
"ORDER BY PZ_ANNOPROT DESC, PZ_TIPOPROT ASC, PZ_NUMPROT DESC"; "ORDER BY PZ_ANNOPROT DESC, PZ_TIPOPROT ASC, PZ_NUMPROT DESC";
fp_db().sq_set_exec(query, false); fp_db().sq_set_exec(query, false);
_forn_code = "";
_list_fatt_err = "";
while(fp_db().sq_next()) while(fp_db().sq_next())
{ {
aggiungi_riga(clifo, sf, sf_err); aggiungi_riga(clifo, sf, sf_err);
@ -133,7 +146,7 @@ void TPassive_mask::elenco_prots_sel(TString& string) const
elenco.add(row->get()); elenco.add(row->get());
} }
// Creo una stringa da aggiungere alla query per la ricerca col codice protocollo, così fatta: // Creo una stringa da aggiungere alla query per la ricerca col codice protocollo, così fatta:
// " AND PZ_TIPOPROT IN ('a', 'b', 'c')". (con elenco avente "a", "b" e "c" come stringhe) // " AND PZ_TIPOPROT IN ('a', 'b', 'c')". (con elenco avente "a", "b" e "c" come stringhe)
if (elenco.items() > 0) if (elenco.items() > 0)
{ {
@ -175,6 +188,11 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee
// Dopo aver fatto le ricerche se lo trovo lo segno e lo aggiungo, se no coloro la cella // Dopo aver fatto le ricerche se lo trovo lo segno e lo aggiungo, se no coloro la cella
forn_code = find_fornitore(clifo); forn_code = find_fornitore(clifo);
TString forn_str; forn_str << forn_code;
TString nr_row; nr_row << sf.items();
_forn_code.add(forn_str);
_list_fatt_err.add(nr_row);
if (forn_code == 0) row.add("X"); if (forn_code == 0) row.add("X");
else row.add(""); else row.add("");
@ -226,20 +244,20 @@ void TPassive_mask::aggiungi_prot() const
void TPassive_mask::add_row_err_forn(int forn_code, TSheet_field& sf_err, TString& denom) void TPassive_mask::add_row_err_forn(int forn_code, TSheet_field& sf_err, TString& denom)
{ {
TToken_string& row_err = sf_err.row(-1); TToken_string& row_err = sf_err.row(-1);
row_err.add(fp_db().sq_get("COD_PAESE"), 0); row_err.add(fp_db().sq_get("COD_PAESE"), 1);
row_err.add(fp_db().sq_get("P_IVA")); row_err.add(fp_db().sq_get("P_IVA"));
row_err.add(fp_db().sq_get("COD_FISC")); row_err.add(fp_db().sq_get("COD_FISC"));
row_err.add(denom); row_err.add(denom);
switch (forn_code){ switch (forn_code){
case err_match_db: case err_match_db:
row_err.add("Salvato in database ma non corrisponde a un fornitore codificato."); row_err.add("Salvato in database ma non corrisponde a un fornitore codificato. (Nuovo fornitore disabilitato)");
break; break;
case no_forn: case no_forn:
row_err.add("Non trovato fornitore per la P.IVA."); row_err.add("Non trovato fornitore per la P.IVA.");
break; break;
case no_match_cf: case no_match_cf:
row_err.add("Trovato fornitore ma il codice fiscale non corrisponde."); row_err.add("Trovato fornitore ma il codice fiscale non corrisponde. Aggiornare?");
break; break;
case no_cf: case no_cf:
row_err.add("Fornitore senza P. IVA, non trovato il codice fiscale"); row_err.add("Fornitore senza P. IVA, non trovato il codice fiscale");
@ -258,15 +276,15 @@ int TPassive_mask::find_fornitore(TLocalisamfile& clifo)
const TString fppro_tipocf = fp_db().sq_get("TIPO_CF"); const TString fppro_tipocf = fp_db().sq_get("TIPO_CF");
TString fppro_codcf = fp_db().sq_get("COD_CLIFOR"); TString fppro_codcf = fp_db().sq_get("COD_CLIFOR");
// Cerco se il fornitore è presente in Campo // Cerco se il fornitore è presente in Campo
int found_clifo = -1; int found_clifo = -1;
if (fppro_codcf == "17") if (fppro_codcf == "17")
bool simo = true; bool simo = true;
TString piva; TString piva;
// Leggo dall FPPRO se è già stato salvato il fornitore // Leggo dall FPPRO se è già stato salvato il fornitore
// Se è già salvato nell FPPRO ricerco in Campo col codice fornitore (chiave 1) // Se è già salvato nell FPPRO ricerco in Campo col codice fornitore (chiave 1)
if (fppro_tipocf == "F" && !fppro_codcf.blank()) if (fppro_tipocf == "F" && !fppro_codcf.blank())
{ {
clifo.setkey(1); clifo.setkey(1);
@ -274,7 +292,7 @@ int TPassive_mask::find_fornitore(TLocalisamfile& clifo)
// Se trovo dall FPPRO setto a 0 // Se trovo dall FPPRO setto a 0
clifo.read() == NOERR ? found_clifo = 0 : found_clifo = -3; clifo.read() == NOERR ? found_clifo = 0 : found_clifo = -3;
} }
else if (paa_codpaese.full() && (piva = paa_piva).full()) // Se non c'è nell FPPRO ricerco con chiave 5 else if (paa_codpaese.full() && (piva = paa_piva).full()) // Se non c'è nell FPPRO ricerco con chiave 5
{ {
if (piva == "01903590154") if (piva == "01903590154")
bool simo = true; bool simo = true;
@ -289,10 +307,10 @@ int TPassive_mask::find_fornitore(TLocalisamfile& clifo)
clifo.put(CLI_STATOPAIV, ""); clifo.put(CLI_STATOPAIV, "");
clifo.read() == NOERR ? found_clifo = 2 : found_clifo = -5; // Se trovo con partita iva setto a 2 clifo.read() == NOERR ? found_clifo = 2 : found_clifo = -5; // Se trovo con partita iva setto a 2
} }
// Se trovo con p.iva controllo il cod. fisc. e, se c'è da db e se c'è in clienti-fornitori, altrimenti vado avanti // Se trovo con p.iva controllo il cod. fisc. e, se c'è da db e se c'è in clienti-fornitori, altrimenti vado avanti
if (found_clifo == 2 && paa_codfisc.full() && clifo.get(CLI_COFI).full()) if (found_clifo == 2 && paa_codfisc.full() && clifo.get(CLI_COFI).full())
{ {
if (clifo.get(CLI_COFI) == paa_codfisc) // Controllo che il cod fisc (se c'è) corrisponda if (clifo.get(CLI_COFI) == paa_codfisc) // Controllo che il cod fisc (se c'è) corrisponda
found_clifo = 2; found_clifo = 2;
else else
found_clifo = -15; found_clifo = -15;
@ -333,7 +351,7 @@ void TPassive_mask::select_all(int sheet_field)
} }
} }
void TPassive_mask::salva_for() void TPassive_mask::salva_for() const
{ {
if(fp_db().sq_is_connect()) if(fp_db().sq_is_connect())
{ {
@ -374,6 +392,97 @@ void TPassive_mask::salva_for()
} }
} }
void TPassive_mask::new_forn()
{
TSheet_field& sf = sfield(F_ERR);
TString newf = "fpnewf";
FOR_EACH_SHEET_ROW(sf, nr, row)
{
int cod_forn = _forn_code.get_int(nr); // Prendo codice di errore associazione fornitore
int n_row_elenco = _list_fatt_err.get_int(nr); // Prendo che numero di riga a cui mi riferisco in fatture
TSheet_field& f_docs = sfield(F_DOCS); // Prendo SheetField da elenco fatture
TToken_string& row_elenco_fatt = f_docs.row(n_row_elenco); // Prendo riga dall'elenco delle fatture
TToken_string keys(row_elenco_fatt.get(f_docs.cid2index(S_PROKEY)), ';'); // Dalla riga leggo la chiave del db
if (row->starts_with("X") && (cod_forn == no_forn || cod_forn == no_match_cf || cod_forn == no_cf))
{
TString query; query << "SELECT PU_PEC AS PEC\n" <<
"FROM PAA3200F\n" <<
"WHERE PU_KEYPRGINVIO = '" << keys.get();
query << "' AND PU_KEYHEADERFATT = '" << keys.get();
query << "' AND PU_KEYBODYFATT = '" << keys.get() << "'";
fp_db().sq_set_exec(query);
TString pec = fp_db().sq_get("PEC");
TString num; num.format("%04d", nr);
TFilename newf_ini;
TString temp_path = newf_ini.tempdir();
newf_ini.tempdir() << "\\" << newf << num << ".ini";
TConfig forn_conf(newf_ini, "Transaction");
forn_conf.set("Action", "INSERT");
forn_conf.set_paragraph("20");
forn_conf.set("TIPOCF", "F");
forn_conf.set("COFI", row->get(sf.cid2index(S_CODFIERR)));
forn_conf.set("PAIV", row->get(sf.cid2index(S_PIVAERR)));
forn_conf.set("PEC", pec);
forn_conf.set("RAGSOC", row->get(sf.cid2index(S_RAGSERR)));
forn_conf.set("STATOPAIV", row_elenco_fatt.get(sf.cid2index(S_STATOPAIV)));
forn_conf.set_paragraph("17");
forn_conf.set("TIPOCF", "F");
forn_conf.set("RAGGOR", "O");
forn_conf.set("PADESTIN", row_elenco_fatt.get(sf.cid2index(S_CODSDI)));
TExternal_app app(TString("cg0 -1 -i") << temp_path << "\\" << newf << "*" << ".ini" << " /u" << user());
app.run();
row->add("", 0);
}
}
sf.force_update();
}
void TPassive_mask::aggiorna_forn()
{
TSheet_field& sf = sfield(F_ERR);
TString newf = "fpaggf";
FOR_EACH_SHEET_ROW(sf, nr, row)
{
int cod_forn = _forn_code.get_int(nr); // Prendo codice di errore associazione fornitore
int n_row_elenco = _list_fatt_err.get_int(nr); // Prendo che numero di riga a cui mi riferisco in fatture
TSheet_field& f_docs = sfield(F_DOCS); // Prendo SheetField da elenco fatture
TToken_string& row_elenco_fatt = f_docs.row(n_row_elenco); // Prendo riga dall'elenco delle fatture
if (row->starts_with("X") && cod_forn == no_match_cf)
{
TString num; num.format("%04d", nr);
TFilename newf_ini;
TString temp_path = newf_ini.tempdir();
newf_ini.tempdir() << "\\" << newf << num << ".ini";
TConfig forn_conf(newf_ini, "Transaction");
forn_conf.set("Action", "MODIFY");
forn_conf.set_paragraph("20");
forn_conf.set("TIPOCF", "F");
forn_conf.set("COFI", row->get(sf.cid2index(S_CODFIERR)));
forn_conf.set("CODCF", row_elenco_fatt.get(sf.cid2index(S_FORNITORE)));
TExternal_app app(TString("cg0 -1 -i") << temp_path << "\\" << newf << "*" << ".ini" << " /u" << user());
message_box(TString("Sto andando a modificare il codice fiscale del fornitore:\n") << row->get(sf.cid2index(S_RAGSERR)));
app.run();
row->add("", 0);
}
}
sf.force_update();
}
bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
switch (o.dlg()) switch (o.dlg())
@ -397,18 +506,26 @@ bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long joll
case elenco_fe: case elenco_fe:
select_all(F_DOCS); select_all(F_DOCS);
break; break;
case elenco_err:
select_all(F_ERR);
break;
default: break; default: break;
} }
break; break;
case DLG_SAVEREC: case DLG_SAVEREC:
if (e == fe_button) if (e == fe_button)
switch(curr_page()) if(curr_page() == elenco_fe)
{
case elenco_fe:
salva_for(); salva_for();
break; break;
default: break; case DLG_NEWREC:
} if(e == fe_button)
if(curr_page() == elenco_err)
new_forn();
break;
case DLG_RECALC:
if (e == fe_button)
if (curr_page() == elenco_err)
aggiorna_forn();
break; break;
case F_DATAINI: case F_DATAINI:
if (e == fe_init) if (e == fe_init)

View File

@ -10,18 +10,11 @@
#define S_SELCODPROT 101 #define S_SELCODPROT 101
#define S_CODPROT 102 #define S_CODPROT 102
//#define F_DOCUMENTI_TIPO 301
//#define S_SELCODNUM 101
//#define S_TIPODOCSEL 102
//#define S_DASTATO 103
//#define S_ASTATO 104
//#define S_TIPODOCSDI 105
#define F_DOCS 201 #define F_DOCS 201
#define S_SELECTED 101 #define S_SELECTED 101
#define S_ANNO 102 #define S_ANNO 102
#define S_CODSDI 103 #define S_TIPODOCSDI 103
#define S_NDOC 104 #define S_NDOC 104
#define S_DATADOC 105 #define S_DATADOC 105
#define S_TOTDOC 106 #define S_TOTDOC 106
@ -32,7 +25,7 @@
#define S_PARIVA 111 #define S_PARIVA 111
#define S_CODFISC 112 #define S_CODFISC 112
#define S_ATTACH 113 #define S_ATTACH 113
#define S_COFI 114 #define S_CODSDI 114
#define S_RAGXML 115 #define S_RAGXML 115
#define S_NPROT 116 #define S_NPROT 116
#define S_PROKEY 117 #define S_PROKEY 117
@ -40,8 +33,9 @@
#define F_ERR 301 #define F_ERR 301
#define S_STATOERR 101 #define S_SELECTF 101
#define S_PIVAERR 102 #define S_STATOERR 102
#define S_CODFIERR 103 #define S_PIVAERR 103
#define S_RAGSERR 104 #define S_CODFIERR 104
#define S_DESCERR 105 #define S_RAGSERR 105
#define S_DESCERR 106

View File

@ -15,6 +15,19 @@ BEGIN
FLAGS "" FLAGS ""
END END
BUTTON DLG_NEWREC 10 2
BEGIN
PROMPT 1 1 "Nuovo"
PICTURE BMP_NEWREC
PICTURE BMP_NEWRECDN
END
BUTTON DLG_RECALC 10 2
BEGIN
PROMPT -13 -11 "Aggiorna"
PICTURE BMP_RECALC
END
#include <helpbar.h> #include <helpbar.h>
ENDPAGE ENDPAGE
@ -42,7 +55,6 @@ BEGIN
ITEM "Codice\nProtocol.@12" ITEM "Codice\nProtocol.@12"
END END
ENDPAGE ENDPAGE
PAGE "Elenco Fatture" 0 2 0 0 PAGE "Elenco Fatture" 0 2 0 0
@ -76,6 +88,7 @@ PAGE "Errore Fornitori" 0 2 0 0
SPREADSHEET F_ERR SPREADSHEET F_ERR
BEGIN BEGIN
PROMPT 0 2 "" PROMPT 0 2 ""
ITEM "@1"
ITEM "Stato\nP.IVA@5" ITEM "Stato\nP.IVA@5"
ITEM "P. IVA@16" ITEM "P. IVA@16"
ITEM "Cod. Fiscale@16" ITEM "Cod. Fiscale@16"
@ -87,25 +100,41 @@ ENDPAGE
ENDMASK ENDMASK
PAGE "Spread protocol " 0 2 0 0 PAGE "Spread protocol " -1 -1 50 5
BOOLEAN S_SELCODPROT BOOLEAN S_SELCODPROT
BEGIN BEGIN
PROMPT 1 1 "" PROMPT 1 1 "Seleziona Protocollo"
FLAGS "" FLAGS ""
END END
STRING S_CODPROT 12 STRING S_CODPROT 12
BEGIN BEGIN
PROMPT 1 1 "" PROMPT 1 3 "Codice Protocollo"
FLAGS "" FLAGS ""
END END
ENDPAGE
TOOLBAR "Fatture Passive" 0 0 0 2
BUTTON DLG_OK 2 2 BUTTON DLG_OK 2 2
BEGIN BEGIN
PROMPT 1 1 "" PROMPT 1 1 ""
END END
BUTTON DLG_USER 2 2
BEGIN
PROMPT 1 1 "Collega"
PICTURE TOOL_LINK
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 1 1 ""
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK
@ -114,19 +143,19 @@ PAGE "Documento" -1 -1 78 9
BOOLEAN S_SELECTED BOOLEAN S_SELECTED
BEGIN BEGIN
PROMPT 1 8 "" PROMPT 1 0 ""
FLAGS "" FLAGS ""
END END
NUMBER S_ANNO 4 NUMBER S_ANNO 4
BEGIN BEGIN
PROMPT 1 2 "Anno " PROMPT 1 1 "Anno "
FLAGS "D" FLAGS "D"
END END
LIST S_CODSDI 35 LIST S_TIPODOCSDI 35
BEGIN BEGIN
PROMPT 41 2 "Tipo Doc SDI" PROMPT 12 1 "Tipo Doc SDI"
ITEM "TD01|TD01 Fattura" ITEM "TD01|TD01 Fattura"
ITEM "TD02|TD02 Acconto/Anticipo su fattura" ITEM "TD02|TD02 Acconto/Anticipo su fattura"
ITEM "TD03|TD03 Acconto/Anticipo su parcella" ITEM "TD03|TD03 Acconto/Anticipo su parcella"
@ -134,30 +163,30 @@ BEGIN
ITEM "TD05|TD05 Nota di debito" ITEM "TD05|TD05 Nota di debito"
ITEM "TD06|TD06 Parcella" ITEM "TD06|TD06 Parcella"
ITEM "TD20|TD20 Autofattura" ITEM "TD20|TD20 Autofattura"
FLAG "D" FLAGS "D"
END END
NUMBER S_NDOC 11 NUMBER S_NDOC 11
BEGIN BEGIN
PROMPT 1 3 "Numero " PROMPT 1 2 "Numero Doc. "
FLAGS "D" FLAGS "D"
END END
DATE S_DATADOC DATE S_DATADOC
BEGIN BEGIN
PROMPT 21 3 "Data " PROMPT 20 0 "Data Doc. "
FLAGS "D" FLAGS "D"
END END
NUMBER S_TOTDOC 11 3 NUMBER S_TOTDOC 11 3
BEGIN BEGIN
PROMPT 26 3 "Data " PROMPT 26 2 "Totale Doc. "
FLAGS "D" FLAGS "D"
END END
BOOLEAN S_FPPRO BOOLEAN S_FPPRO
BEGIN BEGIN
PROMPT 28 3 "Salvato" PROMPT 1 3 "Salvato in FP-PRO"
FLAGS "D" FLAGS "D"
END END
@ -177,9 +206,9 @@ BEGIN
DISPLAY "Partita IVA@11" PAIV DISPLAY "Partita IVA@11" PAIV
OUTPUT S_FORNITORE CODCF OUTPUT S_FORNITORE CODCF
OUTPUT S_RAGSOC RAGSOC OUTPUT S_RAGSOC RAGSOC
ADD RUN cg0 -1 F S_FORNITORE
HELP "Codice relativo al cliente o fornitore" HELP "Codice relativo al cliente o fornitore"
MESSAGE COPY,2@ MESSAGE COPY,2@
CHECKTYPE REQUIRED
END END
STRING S_RAGSOC 50 STRING S_RAGSOC 50
@ -198,7 +227,6 @@ BEGIN
HELP "Prima parte della ragione sociale o cognome" HELP "Prima parte della ragione sociale o cognome"
MESSAGE COPY,3@ MESSAGE COPY,3@
WARNING "Manca la ragione sociale" WARNING "Manca la ragione sociale"
CHECKTYPE REQUIRED
END END
STRING S_STATOPAIV 2 STRING S_STATOPAIV 2
@ -218,7 +246,7 @@ END
STRING S_PARIVA 50 20 STRING S_PARIVA 50 20
BEGIN BEGIN
PROMPT 1 5 "" PROMPT 10 5 "P. IVA"
KEY 5 KEY 5
USE LF_CLIFO KEY 5 USE LF_CLIFO KEY 5
INPUT TIPOCF "F" INPUT TIPOCF "F"
@ -237,7 +265,7 @@ END
STRING S_CODFISC 50 20 STRING S_CODFISC 50 20
BEGIN BEGIN
PROMPT 1 5 "" PROMPT 1 6 "Cod. Fisc."
FLAGS "U" FLAGS "U"
KEY 4 KEY 4
USE LF_CLIFO KEY 4 USE LF_CLIFO KEY 4
@ -253,40 +281,39 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING S_COFI 20 STRING S_CODSDI 20
BEGIN BEGIN
PROMPT 1 6 "" PROMPT 35 6 "Cod. Destinatario"
FLAGS "D" FLAGS "D"
END END
BOOLEAN S_ATTACH BOOLEAN S_ATTACH
BEGIN BEGIN
PROMPT 1 8 "Documenti in allegato" PROMPT 1 7 "Documenti in allegato"
FLAGS "D" FLAGS "D"
END END
STRING S_RAGXML 50 STRING S_RAGXML 50
BEGIN BEGIN
PROMPT 21 4 "" PROMPT 1 8 ""
FLAG "D" FLAGS "D"
HELP "Ragione sociale scritta nell'xml" HELP "Ragione sociale scritta nell'xml"
END END
STRING S_NPROT 22 STRING S_NPROT 22
BEGIN BEGIN
PROMPT 1 5 "" PROMPT 1 9 "Numero Protocollo"
HELP "Numero Protocollo" HELP "Numero Protocollo"
FLAGS "D" FLAGS "D"
END END
STRING S_PROKEY 80 STRING S_PROKEY 80
BEGIN BEGIN
PROMPT 1 5 "" PROMPT 1 10 "db key"
HELP "Numero Protocollo" HELP "Chiave database"
FLAGS "D" FLAGS "D"
END END
ENDPAGE ENDPAGE
TOOLBAR "Documento" 0 0 0 2 TOOLBAR "Documento" 0 0 0 2
@ -314,34 +341,40 @@ ENDMASK
PAGE "Riga Errore" -1 -1 69 14 PAGE "Riga Errore" -1 -1 69 14
BOOLEAN S_SELECTF
BEGIN
PROMPT 21 4 "Seleziona Fornitore da salvare"
FLAGS ""
END
STRING S_STATOERR 2 STRING S_STATOERR 2
BEGIN BEGIN
PROMPT 21 4 "" PROMPT 21 4 ""
FLAG "D" FLAGS "D"
END END
STRING S_PIVAERR 50 20 STRING S_PIVAERR 50 20
BEGIN BEGIN
PROMPT 21 4 "" PROMPT 21 4 ""
FLAG "D" FLAGS "D"
END END
STRING S_CODFIERR 50 20 STRING S_CODFIERR 50 20
BEGIN BEGIN
PROMPT 21 4 "" PROMPT 21 4 ""
FLAG "D" FLAGS "D"
END END
STRING S_RAGSERR 50 STRING S_RAGSERR 50
BEGIN BEGIN
PROMPT 21 4 "" PROMPT 21 4 ""
FLAG "D" FLAGS "D"
END END
STRING S_DESCERR 100 STRING S_DESCERR 100
BEGIN BEGIN
PROMPT 21 4 "" PROMPT 21 4 ""
FLAG "D" FLAGS "D"
END END