Merge branch 'R_10_00' of http://10.65.20.17:7990/scm/campo/campo into R_10_00
This commit is contained in:
commit
66107eaf2e
7
cd/test/fp0706.txt
Normal file
7
cd/test/fp0706.txt
Normal 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
20
cd/test/fp0706a.ini
Normal 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
BIN
cd/test/fp0706a1.zip
Normal file
Binary file not shown.
3
cd/test/fp0708.txt
Normal file
3
cd/test/fp0708.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fp0.exe
|
||||||
|
fp0100a.msk
|
||||||
|
fp0400a.msk
|
21
cd/test/fp0708a.ini
Normal file
21
cd/test/fp0708a.ini
Normal 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
BIN
cd/test/fp0708a1.zip
Normal file
Binary file not shown.
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@
|
|||||||
#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
|
||||||
{
|
{
|
||||||
@ -17,7 +19,7 @@ enum
|
|||||||
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)
|
||||||
|
@ -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
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user