Patch level : 12.0 758
Files correlati : cg2100 Commento : Riordinato e sistemato codice
This commit is contained in:
parent
f9fcbbbc0f
commit
215a96b16c
@ -1567,17 +1567,18 @@ int TPrimanota_application::rewrite(const TMask& m)
|
|||||||
void TPrimanota_application::clean_fppro() const
|
void TPrimanota_application::clean_fppro() const
|
||||||
{
|
{
|
||||||
TMask& msk = curr_mask();
|
TMask& msk = curr_mask();
|
||||||
const KEY last = msk.last_key();
|
const KEY last_key = msk.last_key();
|
||||||
|
|
||||||
if (_mode != MODE_MOD)
|
// Controlli: solo in mod modifica; che abbia fp (no F8); che non sono in salvataggio
|
||||||
return;
|
if (_mode != MODE_MOD
|
||||||
if (!fexist("fp0.exe") || fp_settings().get_db_indirizzo().empty() || fp_settings().is_f8())
|
&& !is_fp()
|
||||||
return; // Salto il salvataggio in FPPRO
|
&& last_key != 127 && last_key != K_SAVE)
|
||||||
if (last != 127 && last != K_SAVE) // Salto se non sto eliminando
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
TString query;
|
|
||||||
const TString& numreg = msk.get(F_NUMREG);
|
const TString& numreg = msk.get(F_NUMREG);
|
||||||
|
// Levo riferimento registrazione da FPPRO
|
||||||
|
// Aggiorno database rimettendo i valori predefiniti in numregcont e dataregcont
|
||||||
|
TString query;
|
||||||
query << "UPDATE FPPRO00F\n" <<
|
query << "UPDATE FPPRO00F\n" <<
|
||||||
"SET PZ_NUMREGCONT = 0, PZ_DATAREGCONT = '2001-01-01'\n" <<
|
"SET PZ_NUMREGCONT = 0, PZ_DATAREGCONT = '2001-01-01'\n" <<
|
||||||
"WHERE PZ_NUMREGCONT = '" << numreg << "'";
|
"WHERE PZ_NUMREGCONT = '" << numreg << "'";
|
||||||
@ -1585,6 +1586,11 @@ void TPrimanota_application::clean_fppro() const
|
|||||||
fp_db().sq_commit();
|
fp_db().sq_commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TPrimanota_application::is_fp()
|
||||||
|
{
|
||||||
|
return fexist("fp0.exe") && !fp_settings().get_db_indirizzo().empty() && !fp_settings().is_f8();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TPrimanota_application::remove()
|
bool TPrimanota_application::remove()
|
||||||
{
|
{
|
||||||
@ -2209,9 +2215,11 @@ bool TPrimanota_application::save(bool check_dirty)
|
|||||||
const int fp_code = save_fppro();
|
const int fp_code = save_fppro();
|
||||||
const bool saved = TRelation_application::save(check_dirty);
|
const bool saved = TRelation_application::save(check_dirty);
|
||||||
|
|
||||||
if (saved && fp_code > 0 && !save_dbmov())
|
// Controllo se la registrazione ha avuto effetto anche su FPPRO allora salvo riferimento sul mov
|
||||||
|
if (saved)
|
||||||
{
|
{
|
||||||
message_box(TString("ATTENZIONE:") << " non è stato possibile salvare i riferimenti del documento in ingresso per questo movimento.\n" <<
|
if(fp_code > 0 && !save_dbmov())
|
||||||
|
message_box(TString("ATTENZIONE:") << " non è stato possibile salvare i riferimenti del documento in ingresso per questo movimento.\n" <<
|
||||||
"Movimento registrato senza collegamento ai documenti in ingresso.");
|
"Movimento registrato senza collegamento ai documenti in ingresso.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2334,16 +2342,21 @@ int TPrimanota_application::save_fppro() const
|
|||||||
const KEY last = msk.last_key();
|
const KEY last = msk.last_key();
|
||||||
|
|
||||||
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
||||||
if (!fexist("fp0.exe") || fp_settings().get_db_indirizzo().empty() || fp_settings().is_f8())
|
if (!is_fp())
|
||||||
return pro_nofp; // Salto il salvataggio in FPPRO
|
return pro_nofp;
|
||||||
if (!fp_db().sq_is_connect())
|
if (!fp_db().sq_is_connect())
|
||||||
{
|
{
|
||||||
message_box("Attenzione connesione al database non riuscita.\nImpossibile collegarsi ai documenti in entrata.");
|
message_box("Attenzione connesione al database non riuscita.\nImpossibile collegarsi ai documenti in entrata.");
|
||||||
return pro_nofp;
|
return pro_nofp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Anzitutto guardo la modalita' in cui sono
|
||||||
|
// Se in modalita' inserimento continuo normalmente
|
||||||
if (_mode != MODE_INS)
|
if (_mode != MODE_INS)
|
||||||
{
|
{
|
||||||
|
// Se in modalita' modifica e sto salvando
|
||||||
|
// Guardo se quel documento corrisponde a un doc in FPPRO
|
||||||
|
// Lancio messaggio di avvertimento pulisco su db e proseguo col salvataggio del documento modificato
|
||||||
if(_mode == MODE_MOD && last == K_SAVE)
|
if(_mode == MODE_MOD && last == K_SAVE)
|
||||||
{
|
{
|
||||||
TString query;
|
TString query;
|
||||||
@ -2352,12 +2365,13 @@ int TPrimanota_application::save_fppro() const
|
|||||||
if (fp_db().sq_get_int("COUNT") != 0)
|
if (fp_db().sq_get_int("COUNT") != 0)
|
||||||
{
|
{
|
||||||
message_box(TString("Attenzione!") << " E' stato modificato un movimento già collegato a un documento in ingresso.");
|
message_box(TString("Attenzione!") << " E' stato modificato un movimento già collegato a un documento in ingresso.");
|
||||||
clean_fppro();
|
clean_fppro(); // Pulisco db
|
||||||
msk.set(F_PROKEY, "");
|
msk.set(F_PROKEY, "");
|
||||||
msk.set(F_PROTFPPRO, "");
|
msk.set(F_PROTFPPRO, "");
|
||||||
save_dbmov();
|
save_dbmov(); // Svuoto riferimento doc ingresso sul mov
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// In altre modalita' esco senza fare nulla sul db
|
||||||
else return pro_notsaved;
|
else return pro_notsaved;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2365,13 +2379,9 @@ int TPrimanota_application::save_fppro() const
|
|||||||
TLocalisamfile clifo(LF_CAUSALI);
|
TLocalisamfile clifo(LF_CAUSALI);
|
||||||
clifo.setkey(1);
|
clifo.setkey(1);
|
||||||
clifo.put("CODCAUS", msk.get(F_CODCAUS));
|
clifo.put("CODCAUS", msk.get(F_CODCAUS));
|
||||||
if (clifo.read() != NOERR)
|
if (clifo.read() != NOERR && clifo.get("TIPODOC") != "FA")
|
||||||
return pro_notsaved;
|
return pro_notsaved;
|
||||||
if (clifo.get("TIPODOC") != "FA")
|
if (last != K_SAVE) { // Se sto uscendo avvertimento di non salvataggio e salto
|
||||||
return pro_notsaved;
|
|
||||||
|
|
||||||
|
|
||||||
if (last != K_SAVE) { // Salto se sto uscendo
|
|
||||||
message_box("La registrazione del movimento non verrà salvata sul database.");
|
message_box("La registrazione del movimento non verrà salvata sul database.");
|
||||||
return pro_notsaved;
|
return pro_notsaved;
|
||||||
}
|
}
|
||||||
@ -2420,7 +2430,7 @@ int TPrimanota_application::save_fppro() const
|
|||||||
const int n = fp_db().sq_items();
|
const int n = fp_db().sq_items();
|
||||||
if (n != 1)
|
if (n != 1)
|
||||||
{
|
{
|
||||||
message_box("Attenzione non è stato possibile indentificare\nil documento con una specifica fattura in ingresso");
|
message_box("Attenzione non è stato possibile indentificare\nil documento con una specifica fattura in ingresso.\nSi prega di riportare i dati dei documenti selezionandolo con l'apposito sistema di aggancio alle fatture di ingresso");
|
||||||
return pro_notsaved;
|
return pro_notsaved;
|
||||||
}
|
}
|
||||||
const int numreg = fp_db().sq_get_int("PZ_NUMREGCONT");
|
const int numreg = fp_db().sq_get_int("PZ_NUMREGCONT");
|
||||||
|
@ -3453,13 +3453,10 @@ bool TPrimanota_application::protiva_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
TMask& cg_msk = f.mask();
|
if (!is_fp() && key != 32 && key != 9)
|
||||||
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
|
||||||
if (!(fexist("fp0.exe") && !fp_settings().get_db_indirizzo().empty() && !fp_settings().is_f8()))
|
|
||||||
return true;
|
|
||||||
if (key != 32 && key != 9)
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
TMask& cg_msk = f.mask();
|
||||||
TMask* msk = new TMask("cgFPPRO");
|
TMask* msk = new TMask("cgFPPRO");
|
||||||
msk->set_handler(DLG_CONFIG, fppro_handler);
|
msk->set_handler(DLG_CONFIG, fppro_handler);
|
||||||
msk->set_handler(DLG_LINK, fppro_ok_handler);
|
msk->set_handler(DLG_LINK, fppro_ok_handler);
|
||||||
@ -3862,11 +3859,10 @@ bool TPrimanota_application::quadratura_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
bool TPrimanota_application::load_fppro_mask(TMask* msk, KEY k)
|
bool TPrimanota_application::load_fppro_mask(TMask* msk, KEY k)
|
||||||
{
|
{
|
||||||
if (k != 32)
|
|
||||||
return false;
|
|
||||||
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
||||||
if (!fexist("fp0.exe") || fp_settings().get_db_indirizzo().empty() || fp_settings().is_f8())
|
if (k != 32
|
||||||
return false; // Salto il salvataggio in FPPRO
|
&& !is_fp())
|
||||||
|
return false;
|
||||||
if (!fp_db().sq_is_connect())
|
if (!fp_db().sq_is_connect())
|
||||||
{
|
{
|
||||||
message_box("Attenzione connessione al database non riuscita.\nImpossibile collegarsi ai documenti in entrata.");
|
message_box("Attenzione connessione al database non riuscita.\nImpossibile collegarsi ai documenti in entrata.");
|
||||||
|
@ -169,9 +169,13 @@ class TPrimanota_application : public TRelation_application
|
|||||||
|
|
||||||
static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
|
static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
|
||||||
|
|
||||||
static bool fppro_handler(TMask_field& f, KEY k); // Carica spread fppro
|
// Handlers per aggancio FPPRO
|
||||||
static bool fppro_ok_handler(TMask_field& f, KEY k); // Riporta doc FPPRO in testata
|
// Bottone per maschera FPPRO
|
||||||
static bool fppro_mask(TMask_field& f, KEY key);
|
static bool fppro_mask(TMask_field& f, KEY key);
|
||||||
|
// Bottone carica documenti in maschera FPPRO
|
||||||
|
static bool fppro_handler(TMask_field& f, KEY k);
|
||||||
|
// Bottone riporta doc FPPRO in testata Prima Nota
|
||||||
|
static bool fppro_ok_handler(TMask_field& f, KEY k);
|
||||||
|
|
||||||
void reset_sheet_row(TSheet_field& s, int n);
|
void reset_sheet_row(TSheet_field& s, int n);
|
||||||
int crea_somma_spese(TImporto& imp);
|
int crea_somma_spese(TImporto& imp);
|
||||||
@ -187,10 +191,16 @@ protected: // TApplication
|
|||||||
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
|
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
|
||||||
virtual void mask2ini(const TMask& msk, TConfig& ini);
|
virtual void mask2ini(const TMask& msk, TConfig& ini);
|
||||||
|
|
||||||
|
// Metodi per aggancio FPPRO (solo su operazioni di Fattura di Acquisto)
|
||||||
|
// Carica documenti FPPRO sulla maschera
|
||||||
static bool load_fppro_mask(TMask* msk, KEY k = 32);
|
static bool load_fppro_mask(TMask* msk, KEY k = 32);
|
||||||
|
// Salvo dati fornitore e registrazione contabile sul db FPPRO
|
||||||
int save_fppro() const;
|
int save_fppro() const;
|
||||||
// Salva sul movimento il riferimento al documento in FPPRO
|
// Salva sul movimento il riferimento al documento in FPPRO
|
||||||
bool save_dbmov() const;
|
bool save_dbmov() const;
|
||||||
|
// Pulisce il mov e db dai firerimenti FPPRO (in MODE_MOD per edit/delete)
|
||||||
|
void clean_fppro() const;
|
||||||
|
static bool is_fp();
|
||||||
virtual bool save(bool check_dirty);
|
virtual bool save(bool check_dirty);
|
||||||
|
|
||||||
bool get_mask_swap_file(TFilename& name) const;
|
bool get_mask_swap_file(TFilename& name) const;
|
||||||
@ -212,7 +222,6 @@ protected: // TRelation_application
|
|||||||
virtual int read(TMask& m);
|
virtual int read(TMask& m);
|
||||||
virtual int write(const TMask& m);
|
virtual int write(const TMask& m);
|
||||||
virtual int rewrite(const TMask& m);
|
virtual int rewrite(const TMask& m);
|
||||||
void clean_fppro() const;
|
|
||||||
virtual bool remove();
|
virtual bool remove();
|
||||||
virtual void write_enable(bool) {}
|
virtual void write_enable(bool) {}
|
||||||
virtual bool protected_record(TRectype& rec);
|
virtual bool protected_record(TRectype& rec);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user