Patch level : 12.0 748
Files correlati : cg Commento : Aggiunto salvataggio di prima nota in FPPRO
This commit is contained in:
parent
56746e985e
commit
090a1f7e65
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
// Campi su maschera
|
// Campi su maschera
|
||||||
#include "cg2100.h"
|
#include "cg2100.h"
|
||||||
|
#include "tsdb.h"
|
||||||
|
#include "../fp/fplib.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Dati incasso immediato
|
// Dati incasso immediato
|
||||||
@ -2164,6 +2166,7 @@ bool TPrimanota_application::save(bool check_dirty)
|
|||||||
_swap_mask = false;
|
_swap_mask = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
save_fppro();
|
||||||
return TRelation_application::save(check_dirty);
|
return TRelation_application::save(check_dirty);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2277,6 +2280,86 @@ void TPrimanota_application::mask2ini(const TMask& msk, TConfig& ini)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TPrimanota_application::save_fppro() const
|
||||||
|
{
|
||||||
|
const KEY last = curr_mask().last_key();
|
||||||
|
if (last == K_ESC || last == K_QUIT || last == K_F9) // Salto se sto uscendo
|
||||||
|
return true;
|
||||||
|
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
||||||
|
if (fp_settings().get_db_indirizzo().empty() || fp_settings().is_f8())
|
||||||
|
return true; // Salto il salvataggio in FPPRO
|
||||||
|
|
||||||
|
TMask& msk = curr_mask();
|
||||||
|
|
||||||
|
const TDate data_operazione(msk.get(F_DATAREG));
|
||||||
|
const TDate data_documento(msk.get(F_DATADOC));
|
||||||
|
const TString& numero_docext = msk.get(F_NUMDOCEXT);
|
||||||
|
const TString& numero_doc = msk.get(F_NUMDOC);
|
||||||
|
const TString& codfisc = msk.get(F_COFI);
|
||||||
|
const TString& stato_piva = msk.get(F_STATOPAIV);
|
||||||
|
const TString& piva = msk.get(F_PIVA);
|
||||||
|
const TString& tot_doc = msk.get(F_TOTALE);
|
||||||
|
|
||||||
|
TString id_fornitore;
|
||||||
|
|
||||||
|
if (!piva.empty())
|
||||||
|
{
|
||||||
|
id_fornitore << " (P2_FISCIVAPAESE = ";
|
||||||
|
if (!stato_piva.empty())
|
||||||
|
id_fornitore << "\'" << stato_piva << "\'";
|
||||||
|
else
|
||||||
|
id_fornitore << "\'IT\'";
|
||||||
|
id_fornitore << " AND P2_FISCIVACOD = \'" << piva << "\'";
|
||||||
|
}
|
||||||
|
if(!codfisc.empty())
|
||||||
|
{
|
||||||
|
if (!id_fornitore.empty())
|
||||||
|
id_fornitore << " OR ";
|
||||||
|
id_fornitore << " P2_CODFISCALE = \'" << codfisc << "\'";
|
||||||
|
}
|
||||||
|
if(!id_fornitore.empty())
|
||||||
|
id_fornitore << ")";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
error_box("Attenzione non è stata inserita ne la partita iva ne il cod.fisc del fornitore:\nimpossibile associarlo in FPPRO");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
TString query;
|
||||||
|
query << "SELECT PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, PQ_IMPTOTDOC, PZ_NUMERO, PZ_NUMREGCONT, P2_FISCIVAPAESE, P2_FISCIVACOD, P2_CODFISCALE, PZ_KEYPRGINVIO, PZ_KEYHEADERFATT, PZ_KEYBODYFATT\n" <<
|
||||||
|
"FROM PAA0200F\n" << "JOIN FPPRO00F\n" << " ON P2_KEYPRGINVIO = PZ_KEYPRGINVIO AND P2_KEYHEADERFATT = PZ_KEYHEADERFATT AND P2_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
|
||||||
|
"JOIN PAA0100F\n" << " ON P2_KEYPRGINVIO = P1_KEYPRGINVIO AND P2_KEYHEADERFATT = P1_KEYHEADERFATT AND P2_KEYBODYFATT = P1_KEYBODYFATT\n" <<
|
||||||
|
"JOIN PAA2700F\n" << "ON P2_KEYPRGINVIO = PQ_KEYPRGINVIO AND P2_KEYHEADERFATT = PQ_KEYHEADERFATT AND P2_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
|
||||||
|
"WHERE " << id_fornitore << " AND PZ_DATA = \'" << data_documento.date2ansi() << "\' AND PQ_IMPTOTDOC = \'" << tot_doc << "\' AND PZ_NUMERO = \'" << (!numero_docext.empty() ? numero_docext : numero_doc) << "\' ;";
|
||||||
|
fp_db().sq_set_exec(query);
|
||||||
|
|
||||||
|
const TDate& dataoraric = fp_db().sq_get_date("P1_DATAORARIC"); // Devo controllare che la data operazione sia maggiore della data ric
|
||||||
|
if (dataoraric.empty())
|
||||||
|
{
|
||||||
|
message_box("Attenzione non è stato possibile indentificare\nil documento con una fattura in FPPRO");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(data_operazione < TDate(dataoraric))
|
||||||
|
{
|
||||||
|
error_box("Attenzione non è possibile registrare una fattura\ncon data operazione minore della data di ricezione.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const TString keyprginvio = fp_db().sq_get("PZ_KEYPRGINVIO");
|
||||||
|
const TString keyheaderfatt = fp_db().sq_get("PZ_KEYHEADERFATT");
|
||||||
|
const TString keybodyfatt = fp_db().sq_get("PZ_KEYBODYFATT");
|
||||||
|
const int numregcont = msk.get_int(F_NUMREG);
|
||||||
|
const int clifor = msk.get_int(F_CODCLIFOR);
|
||||||
|
|
||||||
|
TString update_query;
|
||||||
|
update_query << "UPDATE FPPRO00F\n" <<
|
||||||
|
"SET PZ_TIPOCF = 'F', PZ_CLIFOR = \'" << clifor << "\', PZ_DATACONT = \'" << TDate(TODAY).date2ansi() << "\', PZ_NUMREGCONT = \'" << numregcont << "\', PZ_DATAREGCONT = \'" << data_operazione.date2ansi() << "\'\n" <<
|
||||||
|
"WHERE PZ_KEYPRGINVIO = \'" << keyprginvio << "\' AND PZ_KEYHEADERFATT = \'" << keyheaderfatt << "\' AND PZ_KEYBODYFATT = \'" << keybodyfatt << "\';";
|
||||||
|
|
||||||
|
fp_db().sq_set_exec(update_query);
|
||||||
|
return fp_db().sq_commit();
|
||||||
|
}
|
||||||
|
|
||||||
bool TPrimanota_application::link_cesp(const TMask& msk, const char* action)
|
bool TPrimanota_application::link_cesp(const TMask& msk, const char* action)
|
||||||
{
|
{
|
||||||
// Controlla autorizzazione
|
// Controlla autorizzazione
|
||||||
|
@ -181,6 +181,7 @@ protected: // TApplication
|
|||||||
void dump_fatt(TConfig& ini, TPartita & game, int rigafatt, int pref = 0);
|
void dump_fatt(TConfig& ini, TPartita & game, int rigafatt, int pref = 0);
|
||||||
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);
|
||||||
|
bool save_fppro() const;
|
||||||
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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user