Patch level : 12.0 700
Files correlati : fp Commento : - Corretta visualizzazione monitor passive - Aggiunta pagina elenco errori per fornitori non agganciati
This commit is contained in:
parent
d9bd2f7519
commit
92cf15f42f
@ -8,8 +8,9 @@ int main(int argc, char** argv)
|
|||||||
|
|
||||||
switch (r)
|
switch (r)
|
||||||
{
|
{
|
||||||
case 2: rt = fp0300(argc, argv); break; // Gestione fatture attive (PAA, Ex Fattura PA)
|
|
||||||
case 1: rt = fp0200(argc, argv); break; // Inserimento massivo PEC e Cod Sdi clifo
|
case 1: rt = fp0200(argc, argv); break; // Inserimento massivo PEC e Cod Sdi clifo
|
||||||
|
case 2: rt = fp0300(argc, argv); break; // Gestione fatture attive (PAA, Ex Fattura PA)
|
||||||
|
case 3: rt = fp0400(argc, argv); break; // Monitor fatture passive
|
||||||
default: rt = fp0100(argc, argv); break; // Configurazione
|
default: rt = fp0100(argc, argv); break; // Configurazione
|
||||||
}
|
}
|
||||||
return rt;
|
return rt;
|
||||||
|
@ -4,5 +4,6 @@
|
|||||||
int fp0100(int argc, char* argv[]);
|
int fp0100(int argc, char* argv[]);
|
||||||
int fp0200(int argc, char* argv[]);
|
int fp0200(int argc, char* argv[]);
|
||||||
int fp0300(int argc, char* argv[]);
|
int fp0300(int argc, char* argv[]);
|
||||||
|
int fp0400(int argc, char* argv[]);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -10,6 +10,16 @@
|
|||||||
#include "fp0400a.h"
|
#include "fp0400a.h"
|
||||||
#include "fplib.h"
|
#include "fplib.h"
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
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_forn = -5, // Non trovato forn.con p.iva
|
||||||
|
err_match_db = -3, // Salvato in db ma non corrisponde a un fornitore
|
||||||
|
saved_db = 0, // Salvato già in db FPPRO
|
||||||
|
found_piva = 2, // Lo trovo con p.iva
|
||||||
|
found_cf = 4, // Non ho p.iva lo trovo con cod.fisc
|
||||||
|
};
|
||||||
|
|
||||||
class TPassive_mask : public TAutomask
|
class TPassive_mask : public TAutomask
|
||||||
{
|
{
|
||||||
@ -19,11 +29,15 @@ protected:
|
|||||||
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;
|
||||||
void fill();
|
void fill();
|
||||||
|
static int find_fornitore(TLocalisamfile& clifo);
|
||||||
|
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 init();
|
void init();
|
||||||
|
|
||||||
void load_all_fields();
|
void load_all_fields();
|
||||||
|
|
||||||
bool _filter_changed;
|
bool _filter_changed;
|
||||||
|
void salva_for();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void save_all_fields() const;
|
void save_all_fields() const;
|
||||||
@ -52,91 +66,186 @@ void TPassive_mask::next_page(int p)
|
|||||||
|
|
||||||
void TPassive_mask::fill()
|
void TPassive_mask::fill()
|
||||||
{
|
{
|
||||||
TSheet_field& sf = sfield(F_DOCS);
|
TSheet_field& sf = sfield(F_DOCS);
|
||||||
//TString_array& sht = sf.rows_array();
|
TSheet_field& sf_err = sfield(F_ERR);
|
||||||
|
TString query;
|
||||||
|
TLocalisamfile clifo(LF_CLIFO);
|
||||||
|
|
||||||
|
const TDate dal = get(F_DATAINI);
|
||||||
|
const TDate al = get(F_DATAEND);
|
||||||
|
|
||||||
sf.hide();
|
sf.hide();
|
||||||
sf.destroy();
|
sf.destroy();
|
||||||
|
sf_err.hide();
|
||||||
|
sf_err.destroy();
|
||||||
|
|
||||||
const TDate dal = get(F_DATAINI);
|
query << "SELECT YEAR(P7_DATA) AS ANNO, P7_TIPODOC AS [TIPO_SDI], P7_NUMERO AS [NUM_DOC], " <<
|
||||||
const TDate al = get(F_DATAEND);
|
"P7_DATA AS [DATA_DOC], PQ_IMPTOTDOC AS [TOT_DOC], P2_ANADENOMIN AS [RAG_SOC], P2_ANANOME AS NOME, " <<
|
||||||
|
"P2_ANACOGNOME AS COGNOME, P2_FISCIVACOD AS [P_IVA], P2_CODFISCALE AS [COD_FISC], P2_FISCIVAPAESE AS [COD_PAESE],\n" <<
|
||||||
TString query;
|
"COUNT(PP_ATTACHMENT) AS ATTACHMENT, P1_CODDEST AS [COD_SDI], PU_PEC AS PEC, P1_KEYPRGINVIO AS KEYPROG, P1_KEYHEADERFATT AS KEYHEAD, P1_KEYBODYFATT AS KEYFATT, " <<
|
||||||
|
"PZ_TIPOPROT AS [TIPO_PROT], PZ_NUMPROT AS [NUM_PROT], PZ_ANNOPROT AS [ANNO_PROT], PZ_TIPOCF AS [TIPO_CF], PZ_CLIFOR AS [COD_CLIFOR]\n" <<
|
||||||
query << "SELECT YEAR(P7_DATA) as ANNO, P7_TIPODOC as [TIPO_SDI], P7_NUMERO as [NUM_DOC], " <<
|
|
||||||
"P7_DATA as [DATA_DOC], PQ_IMPTOTDOC as [TOT_DOC], P2_ANADENOMIN AS [RAG_SOC], P2_ANANOME AS NOME, " <<
|
|
||||||
"P2_ANACOGNOME AS COGNOME, P2_FISCIVACOD AS [P_IVA], P2_CODFISCALE AS [COD_FISC], P2_FISCIVAPAESE AS [COD_PAESE], PP_ATTACHMENT ATTACHMENT, P1_CODDEST as [COD_SDI], PU_PEC AS PEC\n" <<
|
|
||||||
"FROM PAA0100F PAA01\n" <<
|
"FROM PAA0100F PAA01\n" <<
|
||||||
"JOIN PAA0200F PAA02 ON P1_KEYPRGINVIO = P2_KEYPRGINVIO and P1_KEYHEADERFATT = P2_KEYHEADERFATT and P1_KEYBODYFATT = P2_KEYBODYFATT\n" <<
|
"JOIN PAA0200F PAA02 ON P1_KEYPRGINVIO = P2_KEYPRGINVIO and P1_KEYHEADERFATT = P2_KEYHEADERFATT and P1_KEYBODYFATT = P2_KEYBODYFATT\n" <<
|
||||||
"JOIN PAA0700F PAA07 ON P1_KEYPRGINVIO = P7_KEYPRGINVIO and P1_KEYHEADERFATT = P7_KEYHEADERFATT and P1_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
"JOIN PAA0700F PAA07 ON P1_KEYPRGINVIO = P7_KEYPRGINVIO and P1_KEYHEADERFATT = P7_KEYHEADERFATT and P1_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
||||||
"JOIN PAA2700F PAA27 ON P1_KEYPRGINVIO = PQ_KEYPRGINVIO and P1_KEYHEADERFATT = PQ_KEYHEADERFATT and P1_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
|
"JOIN PAA2700F PAA27 ON P1_KEYPRGINVIO = PQ_KEYPRGINVIO and P1_KEYHEADERFATT = PQ_KEYHEADERFATT and P1_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
|
||||||
"LEFT JOIN PAA2600F PAA26 ON P1_KEYPRGINVIO = PP_KEYPRGINVIO and P1_KEYHEADERFATT = PP_KEYHEADERFATT and P1_KEYBODYFATT = PP_KEYBODYFATT\n" <<
|
"LEFT JOIN PAA2600F PAA26 ON P1_KEYPRGINVIO = PP_KEYPRGINVIO and P1_KEYHEADERFATT = PP_KEYHEADERFATT and P1_KEYBODYFATT = PP_KEYBODYFATT\n" <<
|
||||||
"LEFT JOIN PAA3200F PAA32 ON P1_KEYPRGINVIO = PU_KEYPRGINVIO and PU_KEYHEADERFATT = PU_KEYHEADERFATT and P1_KEYBODYFATT = PU_KEYBODYFATT\n" <<
|
"LEFT JOIN PAA3200F PAA32 ON P1_KEYPRGINVIO = PU_KEYPRGINVIO and P1_KEYHEADERFATT = PU_KEYHEADERFATT and P1_KEYBODYFATT = PU_KEYBODYFATT\n" <<
|
||||||
"WHERE P7_DATA >= \'" << dal.date2ansi() << "\' AND P7_DATA <= \'" << al.date2ansi() << "\'";
|
"LEFT JOIN FPPRO00F FPPRO ON P1_KEYPRGINVIO = PZ_KEYPRGINVIO and P1_KEYHEADERFATT = PZ_KEYHEADERFATT and P1_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
|
||||||
|
"WHERE P7_DATA >= \'" << dal.date2ansi() << "\' AND P7_DATA <= \'" << al.date2ansi() << "\'\n" <<
|
||||||
|
"GROUP BY YEAR(P7_DATA), P7_TIPODOC, P7_NUMERO, P7_DATA, PQ_IMPTOTDOC, P2_ANADENOMIN, P2_ANANOME, P2_ANACOGNOME, P2_FISCIVACOD, P2_CODFISCALE, P2_FISCIVAPAESE,\n" <<
|
||||||
|
"P1_CODDEST, PU_PEC, P1_KEYPRGINVIO, P1_KEYHEADERFATT, P1_KEYBODYFATT, PZ_TIPOPROT, PZ_NUMPROT, PZ_ANNOPROT, PZ_TIPOCF, PZ_CLIFOR";
|
||||||
fp_db().sq_set_exec(query, false);
|
fp_db().sq_set_exec(query, false);
|
||||||
|
|
||||||
//TProgress_monitor pi(fp_db().sq_items(), nullptr);
|
|
||||||
|
|
||||||
TLocalisamfile clifo(LF_CLIFO);
|
|
||||||
|
|
||||||
while(fp_db().sq_next())
|
while(fp_db().sq_next())
|
||||||
//for(bool ok = ; ok; ok = s.sq_next())
|
|
||||||
{
|
{
|
||||||
clifo.zero();
|
aggiungi_riga(clifo, sf, sf_err);
|
||||||
clifo.put(CLI_TIPOCF, 'F');
|
|
||||||
TToken_string& row = sf.row(-1);
|
|
||||||
TString denom = fp_db().sq_get("RAG_SOC");
|
|
||||||
if (denom.blank()) {
|
|
||||||
denom = fp_db().sq_get("NOME");
|
|
||||||
denom.trim();
|
|
||||||
denom << " " << fp_db().sq_get("COGNOME");
|
|
||||||
denom.trim();
|
|
||||||
}
|
|
||||||
TString id_fisc = fp_db().sq_get("COGNOME");
|
|
||||||
|
|
||||||
row.add(fp_db().sq_get_int("ANNO"), 0);
|
|
||||||
row.add(fp_db().sq_get("TIPO_SDI"));
|
|
||||||
row.add(fp_db().sq_get("NUM_DOC"));
|
|
||||||
row.add(fp_db().sq_get("DATA_DOC"));
|
|
||||||
row.add(fp_db().sq_get("TOT_DOC"));
|
|
||||||
// Cerco se il fornitore è presente in Campo
|
|
||||||
|
|
||||||
if (fp_db().sq_get("P_IVA") == "01903590154")
|
|
||||||
bool tolla = true;
|
|
||||||
|
|
||||||
|
|
||||||
if(fp_db().sq_get("COD_PAESE").full() && fp_db().sq_get("P_IVA").full())
|
|
||||||
{
|
|
||||||
clifo.setkey(5);
|
|
||||||
clifo.put(CLI_STATOPAIV, fp_db().sq_get("COD_PAESE"));
|
|
||||||
clifo.put(CLI_PAIV, fp_db().sq_get("P_IVA"));
|
|
||||||
if(clifo.read() == NOERR)
|
|
||||||
row.add(clifo.get(CLI_CODCF));
|
|
||||||
else if (fp_db().sq_get("COD_PAESE") == "IT")
|
|
||||||
{
|
|
||||||
clifo.put(CLI_PAIV, fp_db().sq_get("P_IVA"));
|
|
||||||
clifo.put(CLI_STATOPAIV, "");
|
|
||||||
if (clifo.read() == NOERR)
|
|
||||||
row.add(clifo.get(CLI_CODCF));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(fp_db().sq_get("COD_FISC").full())
|
|
||||||
{
|
|
||||||
clifo.setkey(4);
|
|
||||||
clifo.put(CLI_COFI, fp_db().sq_get("COD_FISC"));
|
|
||||||
if (clifo.read() == NOERR)
|
|
||||||
row.add(clifo.get(CLI_CODCF));
|
|
||||||
}
|
|
||||||
row.add(denom, sf.cid2index(S_RAGSOC));
|
|
||||||
|
|
||||||
row.add(fp_db().sq_get("COD_PAESE") << fp_db().sq_get("P_IVA"));
|
|
||||||
row.add(fp_db().sq_get("COD_FISC"));
|
|
||||||
TString appo = fp_db().sq_get("ATTACHMENT");
|
|
||||||
row.add( appo.blank() ? "" : "X" );
|
|
||||||
row.add(fp_db().sq_get("COD_SDI").blank() ? fp_db().sq_get("PEC") : fp_db().sq_get("COD_SDI"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sf.force_update();
|
sf.force_update();
|
||||||
sf.show();
|
sf.show();
|
||||||
|
sf_err.force_update();
|
||||||
|
sf_err.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TSheet_field& sf_err)
|
||||||
|
{
|
||||||
|
int forn_code = -1;
|
||||||
|
TString denom = fp_db().sq_get("RAG_SOC");
|
||||||
|
const TString paa_codfisc = fp_db().sq_get("COD_FISC");
|
||||||
|
const TString paa_piva = fp_db().sq_get("P_IVA");
|
||||||
|
const TString paa_codpaese = fp_db().sq_get("COD_PAESE");
|
||||||
|
const TString paa_codsdi = fp_db().sq_get("COD_SDI");
|
||||||
|
|
||||||
|
TToken_string& row = sf.row(-1);
|
||||||
|
|
||||||
|
clifo.zero();
|
||||||
|
clifo.put(CLI_TIPOCF, 'F');
|
||||||
|
|
||||||
|
if (denom.blank()) {
|
||||||
|
denom = fp_db().sq_get("NOME");
|
||||||
|
denom << " " << fp_db().sq_get("COGNOME");
|
||||||
|
}
|
||||||
|
denom.cut(50);
|
||||||
|
|
||||||
|
row.add(fp_db().sq_get_int("ANNO"), 1);
|
||||||
|
row.add(fp_db().sq_get("TIPO_SDI"));
|
||||||
|
row.add(fp_db().sq_get("NUM_DOC"));
|
||||||
|
row.add(fp_db().sq_get("DATA_DOC"));
|
||||||
|
row.add(fp_db().sq_get("TOT_DOC"));
|
||||||
|
|
||||||
|
// Dopo aver fatto le ricerche se lo trovo aggiungo se no coloro la cella
|
||||||
|
forn_code = find_fornitore(clifo);
|
||||||
|
|
||||||
|
if(forn_code >= 0)
|
||||||
|
{
|
||||||
|
row.add(clifo.get(CLI_CODCF));
|
||||||
|
row.add(clifo.get(CLI_RAGSOC));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//sf.set_back_and_fore_color(COLOR_RED, COLOR_WHITE, 2, sf.cid2index(S_FORNITORE));
|
||||||
|
//sf.set_back_and_fore_color(COLOR_RED, COLOR_WHITE, 2, sf.cid2index(S_RAGSOC));
|
||||||
|
add_row_err_forn(forn_code, sf_err, denom);
|
||||||
|
}
|
||||||
|
|
||||||
|
row.add(paa_codpaese, sf.cid2index(S_STATOPAIV));
|
||||||
|
row.add(paa_piva);
|
||||||
|
row.add(paa_codfisc);
|
||||||
|
|
||||||
|
row.add(fp_db().sq_get("ATTACHMENT").blank() ? "" : "X");
|
||||||
|
row.add(paa_codsdi.blank() ? fp_db().sq_get("PEC") : paa_codsdi);
|
||||||
|
row.add(denom);
|
||||||
|
row.add(fp_db().sq_get("TIPO_PROT") << fp_db().sq_get("NUM_PROT") << "/" << fp_db().sq_get("ANNO_PROT"));
|
||||||
|
TString key_prot; key_prot << fp_db().sq_get("KEYPROG") << ";" << fp_db().sq_get("KEYHEAD") << ";" << fp_db().sq_get("KEYFATT");
|
||||||
|
row.add(key_prot);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPassive_mask::add_row_err_forn(int forn_code, TSheet_field& sf_err, TString& denom)
|
||||||
|
{
|
||||||
|
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("P_IVA"));
|
||||||
|
row_err.add(fp_db().sq_get("COD_FISC"));
|
||||||
|
row_err.add(denom);
|
||||||
|
|
||||||
|
switch (forn_code){
|
||||||
|
case err_match_db:
|
||||||
|
row_err.add("Salvato in db ma non corrisponde a un fornitore.");
|
||||||
|
break;
|
||||||
|
case no_forn:
|
||||||
|
row_err.add("Non trovato fornitore con per quella P.IVA.");
|
||||||
|
break;
|
||||||
|
case no_match_cf:
|
||||||
|
row_err.add("Trovato fornitore ma il codice fiscale non corrisponde.");
|
||||||
|
break;
|
||||||
|
case no_cf:
|
||||||
|
row_err.add("Non trovato fornitore con quel codice fiscale (senza la P.IVA).");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
row_err.add("Errore durante identificazione fornitore.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int TPassive_mask::find_fornitore(TLocalisamfile& clifo)
|
||||||
|
{
|
||||||
|
TString paa_codfisc = fp_db().sq_get("COD_FISC");
|
||||||
|
TString paa_piva = fp_db().sq_get("P_IVA");
|
||||||
|
TString paa_codpaese = fp_db().sq_get("COD_PAESE");
|
||||||
|
const TString fppro_tipocf = fp_db().sq_get("TIPO_CF");
|
||||||
|
TString fppro_codcf = fp_db().sq_get("COD_CLIFOR");
|
||||||
|
|
||||||
|
// Cerco se il fornitore è presente in Campo
|
||||||
|
int found_clifo = -1;
|
||||||
|
|
||||||
|
if (fppro_codcf == "17")
|
||||||
|
bool simo = true;
|
||||||
|
|
||||||
|
TString piva;
|
||||||
|
// Leggo dall FPPRO se è già stato salvato il fornitore
|
||||||
|
// Se è già salvato nell FPPRO ricerco in Campo col codice fornitore (chiave 1)
|
||||||
|
if (fppro_tipocf == "F" && !fppro_codcf.blank())
|
||||||
|
{
|
||||||
|
clifo.setkey(1);
|
||||||
|
clifo.put(CLI_CODCF, fppro_codcf);
|
||||||
|
// Se trovo dall FPPRO setto a 0
|
||||||
|
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
|
||||||
|
{
|
||||||
|
if (piva == "01903590154")
|
||||||
|
bool simo = true;
|
||||||
|
clifo.setkey(5);
|
||||||
|
clifo.put(CLI_STATOPAIV, paa_codpaese);
|
||||||
|
clifo.put(CLI_PAIV, paa_piva);
|
||||||
|
clifo.read() == NOERR ? found_clifo = 2 : found_clifo = -1; // Se trovo con partita iva setto a 2
|
||||||
|
|
||||||
|
if (found_clifo != 2 && paa_codpaese == "IT") // Se non l'ho trovato potrebbe essere italiano e ha codice paese blank
|
||||||
|
{
|
||||||
|
clifo.put(CLI_PAIV, paa_piva);
|
||||||
|
clifo.put(CLI_STATOPAIV, "");
|
||||||
|
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
|
||||||
|
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
|
||||||
|
found_clifo = 2;
|
||||||
|
else
|
||||||
|
found_clifo = -15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Altrimenti lo cerco con chiave 4, se ho il codice fiscale o ho il cod fisc e l'ho trovato con p iva
|
||||||
|
else if (paa_codfisc.full())
|
||||||
|
{
|
||||||
|
clifo.setkey(4);
|
||||||
|
clifo.put(CLI_COFI, paa_codfisc);
|
||||||
|
clifo.read() == NOERR ? found_clifo = 4 : found_clifo = -14; // Se il cod fisc corrisponde setto a 2
|
||||||
|
}
|
||||||
|
|
||||||
|
return found_clifo;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPassive_mask::init()
|
void TPassive_mask::init()
|
||||||
@ -147,10 +256,51 @@ void TPassive_mask::load_all_fields()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TPassive_mask::salva_for()
|
||||||
|
{
|
||||||
|
if(fp_db().sq_is_connect())
|
||||||
|
{
|
||||||
|
TString q_update; // Query per update
|
||||||
|
TSheet_field& sf = sfield(F_DOCS);
|
||||||
|
TLocalisamfile clifo(LF_CLIFO); // Leggo in Campo per controllare che il codice cliente non sia errato
|
||||||
|
|
||||||
|
FOR_EACH_SHEET_ROW(sf, nr, row)
|
||||||
|
{
|
||||||
|
if (row->starts_with("X") && strcmp(clifo.get(CLI_CODCF), "17") == 0)
|
||||||
|
bool simo = true;
|
||||||
|
TString cod_forn = row->get(sf.cid2index(S_FORNITORE));
|
||||||
|
if(row->starts_with("X") && cod_forn != "")
|
||||||
|
{
|
||||||
|
clifo.zero();
|
||||||
|
clifo.setkey(1);
|
||||||
|
clifo.put(CLI_TIPOCF, "F");
|
||||||
|
clifo.put(CLI_CODCF, cod_forn);
|
||||||
|
if(clifo.read() == NOERR)
|
||||||
|
{
|
||||||
|
q_update = "";
|
||||||
|
TToken_string key(row->get(sf.cid2index(S_PROKEY)), ';');
|
||||||
|
TString clifo_cofi = clifo.get(CLI_COFI);
|
||||||
|
TString clifo_paiv = clifo.get(CLI_PAIV);
|
||||||
|
if (clifo_cofi != "" && strcmp(row->get(sf.cid2index(S_CODFISC)), clifo_cofi) == 0 || clifo_paiv != "" && strcmp(row->get(sf.cid2index(S_PARIVA)), clifo_paiv) == 0)
|
||||||
|
{
|
||||||
|
q_update << "UPDATE FPPRO00F SET PZ_TIPOCF = 'F', PZ_CLIFOR = '" << row->get(sf.cid2index(S_FORNITORE)) << "' WHERE PZ_KEYPRGINVIO = '" << key.get(0) << "' AND PZ_KEYHEADERFATT = '" << key.get(1) << "' AND PZ_KEYBODYFATT = '" << key.get(2) << "'";
|
||||||
|
fp_db().sq_set_exec(q_update, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fp_db().sq_commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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())
|
||||||
{
|
{
|
||||||
|
case DLG_SAVEREC:
|
||||||
|
if (e == fe_button)
|
||||||
|
salva_for();
|
||||||
|
break;
|
||||||
case F_DATAINI:
|
case F_DATAINI:
|
||||||
if (e == fe_init)
|
if (e == fe_init)
|
||||||
o.set(ini_get_string(CONFIG_DITTA, "fp", "LastXML", "01-01-2019"));
|
o.set(ini_get_string(CONFIG_DITTA, "fp", "LastXML", "01-01-2019"));
|
||||||
|
@ -1,32 +1,41 @@
|
|||||||
#define START_MASK 401
|
#define START_MASK 401
|
||||||
#define F_DATAINI 401
|
#define F_DATAINI 401
|
||||||
#define F_DATAEND 402
|
#define F_DATAEND 402
|
||||||
|
#define F_SAVEFOR 403
|
||||||
#define END_MASK 499
|
#define END_MASK 499
|
||||||
|
|
||||||
|
|
||||||
#define F_DOCUMENTI_TIPO 301
|
//#define F_DOCUMENTI_TIPO 301
|
||||||
|
|
||||||
//#define S_SELCODNUM 101
|
//#define S_SELCODNUM 101
|
||||||
//#define S_TIPODOCSEL 102
|
//#define S_TIPODOCSEL 102
|
||||||
//#define S_DASTATO 103
|
//#define S_DASTATO 103
|
||||||
//#define S_ASTATO 104
|
//#define S_ASTATO 104
|
||||||
//#define S_TIPODOCSDI 105
|
//#define S_TIPODOCSDI 105
|
||||||
|
|
||||||
#define F_DOCS 201
|
#define F_DOCS 201
|
||||||
|
|
||||||
//#define S_SELECTED 101
|
|
||||||
#define S_ANNO 101
|
|
||||||
#define S_CODSDI 102
|
|
||||||
#define S_NDOC 103
|
|
||||||
#define S_DATADOC 104
|
|
||||||
#define S_TOTDOC 105
|
|
||||||
#define S_CLIENTE 106
|
|
||||||
#define S_RAGSOC 107
|
|
||||||
#define S_PARIVA 108
|
|
||||||
#define S_CODFISC 109
|
|
||||||
#define S_ATTACH 110
|
|
||||||
#define S_COFI 111
|
|
||||||
|
|
||||||
|
#define S_SELECTED 101
|
||||||
|
#define S_ANNO 102
|
||||||
|
#define S_CODSDI 103
|
||||||
|
#define S_NDOC 104
|
||||||
|
#define S_DATADOC 105
|
||||||
|
#define S_TOTDOC 106
|
||||||
|
#define S_FORNITORE 107
|
||||||
|
#define S_RAGSOC 108
|
||||||
|
#define S_STATOPAIV 109
|
||||||
|
#define S_PARIVA 110
|
||||||
|
#define S_CODFISC 111
|
||||||
|
#define S_ATTACH 112
|
||||||
|
#define S_COFI 113
|
||||||
|
#define S_RAGXML 114
|
||||||
|
#define S_NPROT 115
|
||||||
|
#define S_PROKEY 116
|
||||||
|
|
||||||
|
|
||||||
|
#define F_ERR 301
|
||||||
|
|
||||||
|
#define S_STATOERR 101
|
||||||
|
#define S_PIVAERR 102
|
||||||
|
#define S_CODFIERR 103
|
||||||
|
#define S_RAGSERR 104
|
||||||
|
#define S_DESCERR 105
|
@ -8,18 +8,11 @@ BEGIN
|
|||||||
PICTURE TOOL_MULTISEL
|
PICTURE TOOL_MULTISEL
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 2 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 1 "Elabora"
|
|
||||||
PICTURE TOOL_ELABORA
|
|
||||||
FLAGS "D"
|
|
||||||
END
|
|
||||||
|
|
||||||
BUTTON DLG_SAVEREC 2 2
|
BUTTON DLG_SAVEREC 2 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Elimina"
|
PROMPT 1 1 "Salva Fornitori"
|
||||||
PICTURE TOOL_WARNING
|
PICTURE TOOL_ELABORA
|
||||||
FLAGS "D"
|
FLAGS ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_FINDREC 2 2
|
BUTTON DLG_FINDREC 2 2
|
||||||
@ -57,6 +50,7 @@ PAGE "Elenco Fatture" 0 2 0 0
|
|||||||
SPREADSHEET F_DOCS
|
SPREADSHEET F_DOCS
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 2 ""
|
PROMPT 0 2 ""
|
||||||
|
ITEM ""
|
||||||
ITEM "Anno"
|
ITEM "Anno"
|
||||||
ITEM "Tipo SDI@4"
|
ITEM "Tipo SDI@4"
|
||||||
ITEM "Num.\nDoc.@11"
|
ITEM "Num.\nDoc.@11"
|
||||||
@ -64,10 +58,28 @@ BEGIN
|
|||||||
ITEM "Totale\nDoc."
|
ITEM "Totale\nDoc."
|
||||||
ITEM "Fornitore"
|
ITEM "Fornitore"
|
||||||
ITEM "Ragione Sociale@50"
|
ITEM "Ragione Sociale@50"
|
||||||
|
ITEM "Stato P.IVA@2"
|
||||||
ITEM "P. IVA@16"
|
ITEM "P. IVA@16"
|
||||||
ITEM "Cod. Fiscale@16"
|
ITEM "Cod. Fiscale@16"
|
||||||
ITEM "Allegati"
|
ITEM "Allegati"
|
||||||
ITEM "Codice destinatario@20"
|
ITEM "Codice destinatario@20"
|
||||||
|
ITEM "Rag. Soc. (XML)@50"
|
||||||
|
ITEM "Numero Protocollo"
|
||||||
|
ITEM "Chiave Prot.@80"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Errore Fornitori" 0 2 0 0
|
||||||
|
|
||||||
|
SPREADSHEET F_ERR
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 2 ""
|
||||||
|
ITEM "Stato\nP.IVA@5"
|
||||||
|
ITEM "P. IVA@16"
|
||||||
|
ITEM "Cod. Fiscale@16"
|
||||||
|
ITEM "Rag. Soc. (XML)@50"
|
||||||
|
ITEM "Descrizione @100"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -76,6 +88,12 @@ ENDMASK
|
|||||||
|
|
||||||
PAGE "Documento" -1 -1 78 9
|
PAGE "Documento" -1 -1 78 9
|
||||||
|
|
||||||
|
BOOLEAN S_SELECTED
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 8 ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER S_ANNO 4
|
NUMBER S_ANNO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Anno "
|
PROMPT 1 2 "Anno "
|
||||||
@ -113,28 +131,96 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER S_CLIENTE 6
|
NUMBER S_FORNITORE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Fornitore "
|
PROMPT 1 4 "Fornitore "
|
||||||
FLAGS "D"
|
FIELD CODCF
|
||||||
|
FLAGS "GR"
|
||||||
|
KEY 1
|
||||||
|
USE LF_CLIFO
|
||||||
|
INPUT TIPOCF "F" SELECT
|
||||||
|
INPUT CODCF S_FORNITORE
|
||||||
|
DISPLAY "Codice@6R" CODCF
|
||||||
|
DISPLAY "Sospeso@C" SOSPESO
|
||||||
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice fiscale@16" COFI
|
||||||
|
DISPLAY "Partita IVA@11" PAIV
|
||||||
|
OUTPUT S_FORNITORE CODCF
|
||||||
|
OUTPUT S_RAGSOC RAGSOC
|
||||||
|
HELP "Codice relativo al cliente o fornitore"
|
||||||
|
MESSAGE COPY,2@
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_RAGSOC 50
|
STRING S_RAGSOC 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 21 4 ""
|
PROMPT 21 4 ""
|
||||||
FLAGS "D"
|
KEY 2
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT RAGSOC S_RAGSOC
|
||||||
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
|
DISPLAY "Sospeso@C" SOSPESO
|
||||||
|
DISPLAY "Codice@R" CODCF
|
||||||
|
DISPLAY "Codice fiscale@16" COFI
|
||||||
|
DISPLAY "Partita IVA@11" PAIV
|
||||||
|
COPY OUTPUT S_FORNITORE
|
||||||
|
HELP "Prima parte della ragione sociale o cognome"
|
||||||
|
MESSAGE COPY,3@
|
||||||
|
WARNING "Manca la ragione sociale"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING S_STATOPAIV 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 ""
|
||||||
|
HELP "Codice ISO dello stato"
|
||||||
|
FLAGS "U"
|
||||||
|
USE %SCE
|
||||||
|
INPUT CODTAB S_STATOPAIV
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT S_STATOPAIV CODTAB
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
STRING S_PARIVA 50 20
|
STRING S_PARIVA 50 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 ""
|
PROMPT 1 5 ""
|
||||||
FLAGS "D"
|
KEY 5
|
||||||
|
USE LF_CLIFO KEY 5
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT STATOPAIV F_STATOPAIV
|
||||||
|
INPUT PAIV S_PAIV
|
||||||
|
DISPLAY "ISO@3" STATOPAIV
|
||||||
|
DISPLAY "Partita IVA@11" PAIV
|
||||||
|
DISPLAY "Sospeso" SOSPESO
|
||||||
|
DISPLAY "Codice@R" CODCF
|
||||||
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice fiscale@16" COFI
|
||||||
|
COPY OUTPUT S_FORNITORE
|
||||||
|
HELP "Partita IVA del cliente/fornitore"
|
||||||
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_CODFISC 50 20
|
STRING S_CODFISC 50 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 ""
|
PROMPT 1 5 ""
|
||||||
FLAGS "D"
|
FLAGS "U"
|
||||||
|
KEY 4
|
||||||
|
USE LF_CLIFO KEY 4
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT COFI F_COFI
|
||||||
|
DISPLAY "Codice fiscale@16" COFI
|
||||||
|
DISPLAY "Sospeso" SOSPESO
|
||||||
|
DISPLAY "Codice@R" CODCF
|
||||||
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
|
DISPLAY "Partita IVA@11" PAIV
|
||||||
|
COPY OUTPUT S_FORNITORE
|
||||||
|
HELP "Codice fiscale del cliente/fornitore"
|
||||||
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_COFI 20
|
STRING S_COFI 20
|
||||||
@ -149,6 +235,27 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING S_RAGXML 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 21 4 ""
|
||||||
|
FLAG "D"
|
||||||
|
HELP "Ragione sociale scritta nell'xml"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_NPROT 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 ""
|
||||||
|
HELP "Numero Protocollo"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_PROKEY 80
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 ""
|
||||||
|
HELP "Numero Protocollo"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
@ -171,5 +278,41 @@ BEGIN
|
|||||||
PROMPT 1 1 ""
|
PROMPT 1 1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
PAGE "Riga Errore" -1 -1 69 14
|
||||||
|
|
||||||
|
STRING S_STATOERR 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 21 4 ""
|
||||||
|
FLAG "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_PIVAERR 50 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 21 4 ""
|
||||||
|
FLAG "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CODFIERR 50 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 21 4 ""
|
||||||
|
FLAG "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_RAGSERR 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 21 4 ""
|
||||||
|
FLAG "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_DESCERR 100
|
||||||
|
BEGIN
|
||||||
|
PROMPT 21 4 ""
|
||||||
|
FLAG "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
ENDMASK
|
ENDMASK
|
@ -6,3 +6,4 @@ Flags = ""
|
|||||||
Item_01 = "Configurazione", "fp0 -0", ""+
|
Item_01 = "Configurazione", "fp0 -0", ""+
|
||||||
Item_02 = "Invio fatture", "fp0 -2", ""
|
Item_02 = "Invio fatture", "fp0 -2", ""
|
||||||
Item_03 = "Inserimento riferimenti C/F", "fp0 -1", ""
|
Item_03 = "Inserimento riferimenti C/F", "fp0 -1", ""
|
||||||
|
Item_04 = "Monitor Fatture Passive", "fp0 -3", ""
|
Loading…
x
Reference in New Issue
Block a user