Patch level : 12.0 920
Files correlati : fp0.exe Commento : - Corretta esportazione informazioni dichiarazioni d'intento - Corretta data di registrazione con data ricezione o con una specificata (f1)
This commit is contained in:
parent
5e2122e112
commit
0dfeffddb3
@ -69,8 +69,8 @@ protected:
|
|||||||
// Tasto aggiorna: aggiorna cliente che non corrisponde.
|
// Tasto aggiorna: aggiorna cliente che non corrisponde.
|
||||||
bool aggiorna_forn();
|
bool aggiorna_forn();
|
||||||
void salva_for() const;
|
void salva_for() const;
|
||||||
void clean_ini(const TString& filename) const;
|
static void clean_ini(const TString& filename);
|
||||||
void run_cg0(const TString& filename) const;
|
static void run_cg0(const TString& filename);
|
||||||
void elenco_prots_sel(TString& string) const;
|
void elenco_prots_sel(TString& string) const;
|
||||||
|
|
||||||
static vector<iva>& get_righe_iva(TToken_string& keys);
|
static vector<iva>& get_righe_iva(TToken_string& keys);
|
||||||
@ -89,7 +89,7 @@ protected:
|
|||||||
void fattsel(int dlg, TField_event& e);
|
void fattsel(int dlg, TField_event& e);
|
||||||
// Non permette la selezione multipla delle righe
|
// Non permette la selezione multipla delle righe
|
||||||
void sel() const;
|
void sel() const;
|
||||||
bool on_key(KEY key);
|
bool on_key(KEY key) override;
|
||||||
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 check_buttons(int p) const;
|
void check_buttons(int p) const;
|
||||||
void next_page(int p) override;
|
void next_page(int p) override;
|
||||||
@ -102,12 +102,13 @@ protected:
|
|||||||
// 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() const;
|
void init() const;
|
||||||
|
void save_all() const;
|
||||||
public:
|
public:
|
||||||
TString& get_fattsel() const;
|
TString& get_fattsel() const;
|
||||||
|
|
||||||
static void auto_assoc();
|
static void auto_assoc();
|
||||||
TPassive_mask(bool f1);
|
TPassive_mask(bool f1);
|
||||||
|
~TPassive_mask() { save_all(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TPassive_mask::clifo_handler(TMask_field& f, KEY key)
|
bool TPassive_mask::clifo_handler(TMask_field& f, KEY key)
|
||||||
@ -450,8 +451,6 @@ void TPassive_mask::auto_assoc()
|
|||||||
{
|
{
|
||||||
TToken_string key("",';');
|
TToken_string key("",';');
|
||||||
key.add(fp_db().sq_get("KEYPROG")); key.add(fp_db().sq_get("KEYHEAD")); key.add(fp_db().sq_get("KEYFATT"));
|
key.add(fp_db().sq_get("KEYPROG")); key.add(fp_db().sq_get("KEYHEAD")); key.add(fp_db().sq_get("KEYFATT"));
|
||||||
if (TString(key.get(0)) == "fNuBh" && TString(key.get(1)) == "05094400966" && TString(key.get(2)) == "TD012019-07-22609")
|
|
||||||
bool simo = true;
|
|
||||||
|
|
||||||
clifo.zero();
|
clifo.zero();
|
||||||
clifo.put(CLI_TIPOCF, "F");
|
clifo.put(CLI_TIPOCF, "F");
|
||||||
@ -547,6 +546,11 @@ void TPassive_mask::init() const
|
|||||||
aggiungi_prot();
|
aggiungi_prot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TPassive_mask::save_all() const
|
||||||
|
{
|
||||||
|
ini_set_bool(CONFIG_DITTA, PARA_FP, "F_USEDATARIC", get_bool(F_USEDATARIC));
|
||||||
|
}
|
||||||
|
|
||||||
bool TPassive_mask::causfa_handler(TMask_field& f, KEY k)
|
bool TPassive_mask::causfa_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (k == K_TAB && f.focusdirty())
|
if (k == K_TAB && f.focusdirty())
|
||||||
@ -620,7 +624,7 @@ void TPassive_mask::salva_for() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPassive_mask::clean_ini(const TString& filename) const
|
void TPassive_mask::clean_ini(const TString& filename)
|
||||||
{
|
{
|
||||||
static TString remove_string;
|
static TString remove_string;
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
@ -631,7 +635,7 @@ void TPassive_mask::clean_ini(const TString& filename) const
|
|||||||
remove_files(remove_string, false);
|
remove_files(remove_string, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPassive_mask::run_cg0(const TString& filename) const
|
void TPassive_mask::run_cg0(const TString& filename)
|
||||||
{
|
{
|
||||||
static TString run_string;
|
static TString run_string;
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
@ -642,6 +646,11 @@ void TPassive_mask::run_cg0(const TString& filename) const
|
|||||||
TExternal_app(run_string).run();
|
TExternal_app(run_string).run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_tipomov_nc(const TString& codcaus)
|
||||||
|
{
|
||||||
|
return TCausale(codcaus).tipomov() == tm_nota_credito;
|
||||||
|
}
|
||||||
|
|
||||||
int TPassive_mask::prepara_contab() const
|
int TPassive_mask::prepara_contab() const
|
||||||
{
|
{
|
||||||
const int err = check_err();
|
const int err = check_err();
|
||||||
@ -685,7 +694,13 @@ int TPassive_mask::prepara_contab() const
|
|||||||
contab_ini.set_paragraph(LF_MOV); // [23]
|
contab_ini.set_paragraph(LF_MOV); // [23]
|
||||||
contab_ini.set("CODCAUS", codcaus);
|
contab_ini.set("CODCAUS", codcaus);
|
||||||
contab_ini.set("CODCF", row->get(sf.cid2index(S_FORNITORE)));
|
contab_ini.set("CODCF", row->get(sf.cid2index(S_FORNITORE)));
|
||||||
contab_ini.set("DATACOMP", TDate(TODAY));
|
TDate datareg;
|
||||||
|
if (get_bool(F_USEDATARIC))
|
||||||
|
datareg = TDate(row->get(sf.cid2index(S_DATARIC)));
|
||||||
|
else
|
||||||
|
datareg = !get(F_DATAREGDIF).empty() ? TDate(get(F_DATAREGDIF)) : TDate(TODAY);
|
||||||
|
contab_ini.set("DATAREG", datareg);
|
||||||
|
contab_ini.set("DATACOMP", datareg);
|
||||||
contab_ini.set("DATADOC", row->get(sf.cid2index(S_DATADOC)));
|
contab_ini.set("DATADOC", row->get(sf.cid2index(S_DATADOC)));
|
||||||
contab_ini.set("NUMDOCEXT", row->get(sf.cid2index(S_NDOC)));
|
contab_ini.set("NUMDOCEXT", row->get(sf.cid2index(S_NDOC)));
|
||||||
contab_ini.set("NUMDOC", TString(row->get(sf.cid2index(S_NDOC))).right(7));
|
contab_ini.set("NUMDOC", TString(row->get(sf.cid2index(S_NDOC))).right(7));
|
||||||
@ -715,7 +730,7 @@ int TPassive_mask::prepara_contab() const
|
|||||||
int i = 1;
|
int i = 1;
|
||||||
for (auto it = riva.begin(); it != riva.end(); ++it)
|
for (auto it = riva.begin(); it != riva.end(); ++it)
|
||||||
{
|
{
|
||||||
contab_ini.set_paragraph(LF_RMOVIVA, i);
|
contab_ini.set_paragraph(LF_RMOVIVA, i); // [25]
|
||||||
contab_ini.set("IMPONIBILE", abs(it->imponibile).string());
|
contab_ini.set("IMPONIBILE", abs(it->imponibile).string());
|
||||||
contab_ini.set("IMPOSTA", abs(it->imposta).string());
|
contab_ini.set("IMPOSTA", abs(it->imposta).string());
|
||||||
contab_ini.set("PERCIVA", it->aliquota.string());
|
contab_ini.set("PERCIVA", it->aliquota.string());
|
||||||
@ -735,14 +750,33 @@ int TPassive_mask::prepara_contab() const
|
|||||||
for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
|
for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
|
||||||
{
|
{
|
||||||
const int riga = real(fp_db().sq_get("RIGA")).integer();
|
const int riga = real(fp_db().sq_get("RIGA")).integer();
|
||||||
contab_ini.set_paragraph(LF_SCADENZE, riga); // Setto il paragrafo con riga scad
|
contab_ini.set_paragraph(LF_SCADENZE, riga); // Setto il paragrafo con riga scad [29]
|
||||||
contab_ini.set("DATASCAD", fp_db().sq_get_date("DATA"));
|
contab_ini.set("DATASCAD", fp_db().sq_get_date("DATA"));
|
||||||
contab_ini.set("IMPORTO", fp_db().sq_get("IMPORTO"));
|
contab_ini.set("IMPORTO", fp_db().sq_get("IMPORTO"));
|
||||||
contab_ini.set("NRATA", riga);
|
contab_ini.set("NRATA", riga);
|
||||||
contab_ini.set("NRIGA", "1");
|
contab_ini.set("NRIGA", "1");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(check_causale(codcaus, "NC", true) && is_tipomov_nc(codcaus))
|
||||||
|
{
|
||||||
|
contab_ini.set_paragraph(LF_MOV); // Aggiungo i riferimenti al documento se nota credito: GESTISCO DA CG PER IMPOSTARE PARTITE/SCADENZIARIO
|
||||||
|
where_q.cut(0) << "WHERE PD_KEYPRGINVIO = '" << keys.get(0) << "'";
|
||||||
|
where_q << " AND PD_KEYHEADERFATT = '" << keys.get() << "'";
|
||||||
|
where_q << " AND PD_KEYBODYFATT = '" << keys.get() << "'";
|
||||||
|
query.cut(0) << "SELECT PD_RIFNUMLINEA AS NUMLINEA, PD_IDDOC AS DOC, PD_DATADOC AS DATADOC\nFROM PAA1400F\n" << where_q;
|
||||||
|
fp_db().sq_set_exec(query, false);
|
||||||
|
bool ok = fp_db().sq_next();
|
||||||
|
for(int j = 0; ok; ok = fp_db().sq_next(), j++)
|
||||||
|
{
|
||||||
|
contab_ini.set(TString("NUMLINEA(") << j << ")", fp_db().sq_get("NUMLINEA"));
|
||||||
|
contab_ini.set(TString("DOC(") << j << ")", fp_db().sq_get("DOC"));
|
||||||
|
contab_ini.set(TString("DATADOC(") << j << ")", fp_db().sq_get("DATADOC"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
row->add("", 0);
|
row->add("", 0);
|
||||||
|
break; // Chiudo subito tanto se ne può selezionare solo una alla volta
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -936,7 +970,7 @@ void TPassive_mask::new_forn()
|
|||||||
query << "' AND PU_KEYHEADERFATT = '" << keys.get();
|
query << "' AND PU_KEYHEADERFATT = '" << keys.get();
|
||||||
query << "' AND PU_KEYBODYFATT = '" << keys.get() << "'";
|
query << "' AND PU_KEYBODYFATT = '" << keys.get() << "'";
|
||||||
fp_db().sq_set_exec(query);
|
fp_db().sq_set_exec(query);
|
||||||
TString pec = fp_db().sq_get("PEC");
|
const TString pec = fp_db().sq_get("PEC");
|
||||||
|
|
||||||
TString num; num.format("%04d", nr);
|
TString num; num.format("%04d", nr);
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
@ -1053,7 +1087,7 @@ bool TPassive_mask::aggiorna_forn()
|
|||||||
row->add("", 0);
|
row->add("", 0);
|
||||||
}
|
}
|
||||||
if (count)
|
if (count)
|
||||||
run_cg0(newf);
|
run_cg0(newf);
|
||||||
auto_assoc();
|
auto_assoc();
|
||||||
_filter_changed = true;
|
_filter_changed = true;
|
||||||
next_page(1000);
|
next_page(1000);
|
||||||
@ -1218,6 +1252,17 @@ bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
|||||||
field(F_PARIVA).enable(en);
|
field(F_PARIVA).enable(en);
|
||||||
field(F_CODFISC).enable(en);
|
field(F_CODFISC).enable(en);
|
||||||
}
|
}
|
||||||
|
case F_USEDATARIC:
|
||||||
|
if (e == fe_init)
|
||||||
|
set(F_USEDATARIC, ini_get_bool(CONFIG_DITTA, PARA_FP, "F_USEDATARIC", true) ? "X" : "");
|
||||||
|
if(e == fe_init || e == fe_modify)
|
||||||
|
{
|
||||||
|
const bool use = get_bool(F_USEDATARIC);
|
||||||
|
field(F_DATAREGDIF).enable(!use);
|
||||||
|
if (!use && get(F_DATAREGDIF).empty())
|
||||||
|
set(F_DATAREGDIF, TDate(TODAY));
|
||||||
|
}
|
||||||
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
if (o.dlg() >= F_ASSOC && o.dlg() <= F_CONTABIL)
|
if (o.dlg() >= F_ASSOC && o.dlg() <= F_CONTABIL)
|
||||||
@ -1331,4 +1376,4 @@ int fp0400(int argc, char * argv[])
|
|||||||
TPassive_app fpas;
|
TPassive_app fpas;
|
||||||
fpas.run(argc, argv, TR("Fatturazione F.P."));
|
fpas.run(argc, argv, TR("Fatturazione F.P."));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -12,13 +12,16 @@
|
|||||||
#define F_GROUPCON 511
|
#define F_GROUPCON 511
|
||||||
#define F_GROUPCON2 512
|
#define F_GROUPCON2 512
|
||||||
#define F_PERIODPREC 513
|
#define F_PERIODPREC 513
|
||||||
#define F_GROUPCAU 514
|
#define F_USEDATARIC 514
|
||||||
#define F_ENABLEFORN 515
|
#define F_DATAREGDIF 515
|
||||||
#define F_FORNITORE 516
|
#define F_GROUPCAU 516
|
||||||
#define F_RAGSOC 517
|
#define F_ENABLEFORN 517
|
||||||
#define F_STATOPAIV 518
|
#define F_FORNITORE 518
|
||||||
#define F_PARIVA 519
|
#define F_RAGSOC 519
|
||||||
#define F_CODFISC 520
|
#define F_STATOPAIV 520
|
||||||
|
#define F_PARIVA 521
|
||||||
|
#define F_CODFISC 522
|
||||||
|
|
||||||
|
|
||||||
#define END_MASK 599
|
#define END_MASK 599
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ BEGIN
|
|||||||
MODULE F1
|
MODULE F1
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX F_GROUPCON2 59 3
|
GROUPBOX F_GROUPCON2 59 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 33 16 "@BContabilizzazione automatica:"
|
PROMPT 33 16 "@BContabilizzazione automatica:"
|
||||||
END
|
END
|
||||||
@ -232,6 +232,18 @@ BEGIN
|
|||||||
MODULE F1
|
MODULE F1
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_USEDATARIC
|
||||||
|
BEGIN
|
||||||
|
PROMPT 34 18 "Utilizza data di ricezione per la registrazione"
|
||||||
|
MODULE F1
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATAREGDIF
|
||||||
|
BEGIN
|
||||||
|
PROMPT 34 19 "Data diversa da quella di ricezione"
|
||||||
|
MODULE F1
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Elenco Fatture" 0 2 0 0
|
PAGE "Elenco Fatture" 0 2 0 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user