Patch level : 12.0 786
Files correlati : cg2100 Commento : - Spostato bottone Fatture SDI - Modificata query elenco fatture FPPRO per: - ricerca default codice fornitore; - query per salvataggio verifica fattura - query con data - Corretto caricamento chiavi db sbagliato: prendeva sempre lo stesso (ultimo) - Aggiunta possibilita di ricerca per p. iva - Aggiunto filtro data documento - Caricamento automatico alla pressione dei flag - Aggiunto controllo tipo documento Nota Credito di Acquisto
This commit is contained in:
parent
329e124d07
commit
5ef0686517
@ -124,13 +124,14 @@ TMask* TPrimanota_application::load_mask(int n)
|
||||
ism.set_handler(CG_RATEO, sheet_rateo_handler);
|
||||
ism.set_handler(CG_RISCONTO, sheet_risconto_handler);
|
||||
if (!is_fp(m))
|
||||
m->hide(F_PROTFPPRO);
|
||||
else
|
||||
{
|
||||
m->add_button_tool(DLG_LINK, "Fatture SDI", TOOL_ELABORA);
|
||||
m->set_handler(DLG_LINK, fppro_mask);
|
||||
m->hide(F_PROTFPPRO);
|
||||
if(m->find_by_id(DLG_LINK) != NULL)
|
||||
m->disable(DLG_LINK);
|
||||
}
|
||||
|
||||
else
|
||||
if (m->find_by_id(DLG_LINK) != NULL)
|
||||
m->set_handler(DLG_LINK, fppro_mask);
|
||||
|
||||
if (_quadratura)
|
||||
m->set_handler(F_ADJUST_IVA, quadratura_handler);
|
||||
@ -1572,7 +1573,7 @@ void TPrimanota_application::clean_fppro()
|
||||
// Controlli: solo in mod modifica; che abbia fp (no F8); che non sono in salvataggio
|
||||
if (_mode != MODE_MOD
|
||||
|| !is_fp(&msk)
|
||||
|| last_key != 127 && last_key != K_SAVE)
|
||||
|| last_key != K_DEL && last_key != K_SAVE)
|
||||
return;
|
||||
|
||||
const TString& numreg = msk.get(F_NUMREG);
|
||||
@ -2380,11 +2381,8 @@ int TPrimanota_application::save_fppro()
|
||||
else return pro_notsaved;
|
||||
}
|
||||
|
||||
// Controllo che sto registrando un documento FA Fattura di Acquisto
|
||||
TLocalisamfile clifo(LF_CAUSALI);
|
||||
clifo.setkey(1);
|
||||
clifo.put("CODCAUS", msk.get(F_CODCAUS));
|
||||
if (clifo.read() != NOERR || clifo.get("TIPODOC") != "FA")
|
||||
// Controllo che sto registrando un documento FA Fattura di Acquisto o NC Acquisto
|
||||
if (!TPro_msk::check_causale(msk.get(F_CODCAUS)))
|
||||
return pro_notsaved;
|
||||
if (last != K_SAVE) { // Se sto uscendo avvertimento di non salvataggio e salto
|
||||
message_box("La registrazione del movimento non verrà salvata sul database.");
|
||||
@ -2395,48 +2393,25 @@ int TPrimanota_application::save_fppro()
|
||||
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& codforn = msk.get(F_CODCLIFOR);
|
||||
const TString& stato_piva = msk.get(F_STATOPAIV);
|
||||
const TString& piva = msk.get(F_PIVA);
|
||||
const TString& tot_doc = msk.get(F_TOTALE);
|
||||
TToken_string fppro_keys(msk.get(F_PROKEY), ';');
|
||||
const TString& keyprginvio = fppro_keys.get();
|
||||
const TString& keyheaderfatt = fppro_keys.get();
|
||||
const TString& keybodyfatt = fppro_keys.get();
|
||||
|
||||
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 pro_notsaved;
|
||||
}
|
||||
|
||||
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) << "\' ;";
|
||||
TString where_str;
|
||||
where_str << " (PZ_DATA = \'" << data_documento.date2ansi() << "\' AND PQ_IMPTOTDOC = \'" << tot_doc << "\' AND PZ_NUMERO = \'" << (!numero_docext.empty() ? numero_docext : numero_doc) << "\') ";
|
||||
TString& query = TPro_msk::query_fppro(keyprginvio, keyheaderfatt, keybodyfatt, where_str);
|
||||
|
||||
fp_db().sq_set_exec(query);
|
||||
const int n = fp_db().sq_items();
|
||||
if (n != 1)
|
||||
{
|
||||
message_box(TString("Attenzione,") << "al movimento non è stato abbinato nessun documento elettronico.\n" <<
|
||||
"Per conserntire una corretta archiviazione sostitutiva si consiglia di non confermare la registrazione e di procedere\n" <<
|
||||
message_box(TString("Attenzione, ") << "al movimento non è stato abbinato nessun documento elettronico.\n" <<
|
||||
"Per consentire una corretta archiviazione sostitutiva si consiglia di non confermare la registrazione e di procedere\n" <<
|
||||
"all'identificazione del fornitore tramite il monitor fatture passive.\n" <<
|
||||
"In caso di documento escluso dalla fatturazione elettronica ignorate questo messaggio.");
|
||||
return pro_notsaved;
|
||||
@ -2456,9 +2431,9 @@ int TPrimanota_application::save_fppro()
|
||||
return pro_notsaved;
|
||||
}
|
||||
|
||||
const TString keyprginvio = fp_db().sq_get("PZ_KEYPRGINVIO");
|
||||
/*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 TString keybodyfatt = fp_db().sq_get("PZ_KEYBODYFATT");*/
|
||||
const int numregcont = msk.get_int(F_NUMREG);
|
||||
const int clifor = msk.get_int(F_CODCLIFOR);
|
||||
|
||||
|
@ -201,25 +201,31 @@
|
||||
#define F_COFIS 603
|
||||
#define F_STATOPAIVS 604
|
||||
#define F_PIVAS 605
|
||||
#define F_SHEETFPPROS 606
|
||||
#define F_RAGSOCS 606
|
||||
#define F_ENABSEARCH 607
|
||||
#define F_ENABDATE 608
|
||||
#define F_DATESEARCH 609
|
||||
#define F_SHEETFPPROS 610
|
||||
|
||||
#define F_NUMEROI 607
|
||||
#define F_DATAI 608
|
||||
#define F_TOTDOCI 609
|
||||
#define F_PROTFPPROI 610
|
||||
#define F_FPPROKEYSI 611
|
||||
#define F_SHEET_TEXT 612
|
||||
#define F_SHOWALL 613
|
||||
#define F_NUMEROI 611
|
||||
#define F_DATAI 612
|
||||
#define F_TOTDOCI 613
|
||||
#define F_PROTFPPROI 614
|
||||
#define F_FPPROKEYSI 615
|
||||
#define F_SHEET_TEXT 616
|
||||
#define F_SHOWALL 617
|
||||
|
||||
#define F_SELFPPROS 101
|
||||
#define F_DATAORARICS 102
|
||||
#define F_DATAS 103
|
||||
#define F_IMPTOTDOCS 104
|
||||
#define F_NUMEROS 105
|
||||
#define F_FISCIVAPAESES 106
|
||||
#define F_FISCIVACODS 107
|
||||
#define F_CODFISCALES 108
|
||||
#define F_TIPOPROTS 109
|
||||
#define F_PROGRESSS 110
|
||||
#define F_TIPODOCS 102
|
||||
#define F_DATAORARICS 103
|
||||
#define F_DATAS 104
|
||||
#define F_IMPTOTDOCS 105
|
||||
#define F_NUMEROS 106
|
||||
#define F_FISCIVAPAESES 107
|
||||
#define F_FISCIVACODS 108
|
||||
#define F_CODFISCALES 109
|
||||
#define F_TIPOPROTS 110
|
||||
#define F_PROGRESSS 111
|
||||
#define F_KEYFPPROS 112
|
||||
|
||||
#endif
|
||||
|
@ -2,8 +2,17 @@
|
||||
#include "cg21sld.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_LINK 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Fatture SDI"
|
||||
PICTURE TOOL_ELABORA
|
||||
MODULE FP
|
||||
END
|
||||
|
||||
#include <relapbar.h>
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Testata" -1 -1 77 20
|
||||
@ -597,7 +606,7 @@ END
|
||||
|
||||
STRING F_PROTFPPRO 18
|
||||
BEGIN
|
||||
PROMPT 1 17 "Codice Protocollo FPPRO "
|
||||
PROMPT 1 18 "Codice Protocollo FPPRO "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
@ -2259,18 +2259,21 @@ bool TPrimanota_application::caus_query_handler(TMask_field& f, KEY key)
|
||||
return true;
|
||||
}
|
||||
|
||||
#define TIPO_REG_ACQ 2
|
||||
|
||||
void TPrimanota_application::check_fppro_fields(TMask& m)
|
||||
{
|
||||
if(m.get(F_TIPODOC) != "FA" && m.find_by_id(F_PROTFPPRO) != NULL)
|
||||
if (!TPro_msk::check_causale(m.get(F_CODCAUS)) && m.find_by_id(F_PROTFPPRO) != NULL)
|
||||
{
|
||||
m.hide(F_PROTFPPRO);
|
||||
m.disable(DLG_LINK);
|
||||
}
|
||||
else if(m.get(F_TIPODOC) == "FA" && m.find_by_id(F_PROTFPPRO) != NULL && m.field(F_PROTFPPRO).hidden())
|
||||
{
|
||||
m.show(F_PROTFPPRO);
|
||||
m.enable(DLG_LINK);
|
||||
}
|
||||
else
|
||||
if (TPro_msk::check_causale(m.get(F_CODCAUS)) && m.find_by_id(F_PROTFPPRO) != NULL && m.field(F_PROTFPPRO).hidden())
|
||||
{
|
||||
m.show(F_PROTFPPRO);
|
||||
m.enable(DLG_LINK);
|
||||
}
|
||||
}
|
||||
|
||||
// Handler of the F_CODCAUS field on the modify mask
|
||||
@ -3842,7 +3845,7 @@ bool TPrimanota_application::quadratura_handler(TMask_field& f, KEY key)
|
||||
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& cg_msk = f.mask();
|
||||
if (!app().get_isfp() || key != K_SPACE && key != K_TAB || f.mask().get(F_TIPODOC) != "FA")
|
||||
if (!app().get_isfp() || key != K_SPACE && key != K_TAB || !TPro_msk::check_causale(f.mask().get(F_CODCAUS)))
|
||||
return true;
|
||||
auto msk = std::make_shared<TPro_msk>(cg_msk);
|
||||
|
||||
@ -3877,38 +3880,25 @@ bool TPro_msk::load_fppro_mask(TMask* msk, KEY k)
|
||||
const int forn = msk->get_int(F_CODCLIFORS);
|
||||
if (forn == 0)
|
||||
{
|
||||
message_box("Inserire prima il fornitore");
|
||||
return false;
|
||||
msk->set(F_ENABSEARCH, "X");
|
||||
abilita_piva(msk);
|
||||
//message_box("Inserire prima il fornitore");
|
||||
//return false;
|
||||
}
|
||||
|
||||
const TString& codfisc = msk->get(F_COFIS);
|
||||
const TString& stato_piva = msk->get(F_STATOPAIVS);
|
||||
const TString& piva = msk->get(F_PIVAS);
|
||||
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 << ")";
|
||||
TString query;
|
||||
query << "SELECT PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, PQ_IMPTOTDOC, PZ_NUMERO, PZ_NUMREGCONT, PZ_TIPOPROT, PZ_NUMPROT, 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 << "\n" <<
|
||||
"ORDER BY P1_DATAORARIC ASC;";
|
||||
TString date = "";
|
||||
if (msk->get_bool(F_ENABDATE))
|
||||
date = TDate(msk->get_date(F_DATESEARCH));
|
||||
if(!msk->get_bool(F_ENABSEARCH))
|
||||
query = query_fppro(msk->get(F_CODCLIFORS), date);
|
||||
else
|
||||
query = query_fppro(stato_piva, piva, date);
|
||||
|
||||
|
||||
fp_db().sq_set_exec(query, false);
|
||||
|
||||
TSheet_field& sf = msk->sfield(F_SHEETFPPROS);
|
||||
@ -3923,6 +3913,7 @@ bool TPro_msk::load_fppro_mask(TMask* msk, KEY k)
|
||||
continue;
|
||||
TToken_string& row = sf.row(-1);
|
||||
row.add("", 0);
|
||||
row.add(fp_db().sq_get("P7_TIPODOC"));
|
||||
row.add(TDate(fp_db().sq_get_date("P1_DATAORARIC")));
|
||||
row.add(TDate(fp_db().sq_get_date("PZ_DATA")));
|
||||
row.add(fp_db().sq_get("PQ_IMPTOTDOC"));
|
||||
@ -3932,6 +3923,9 @@ bool TPro_msk::load_fppro_mask(TMask* msk, KEY k)
|
||||
row.add(fp_db().sq_get("P2_CODFISCALE"));
|
||||
row.add(fp_db().sq_get("PZ_TIPOPROT"));
|
||||
row.add(fp_db().sq_get("PZ_NUMPROT"));
|
||||
TString fppro_keys;
|
||||
fppro_keys << fp_db().sq_get("PZ_KEYPRGINVIO") << ";" << fp_db().sq_get("PZ_KEYHEADERFATT") << ";" << fp_db().sq_get("PZ_KEYBODYFATT");
|
||||
row.add(fppro_keys);
|
||||
}
|
||||
sf.force_update();
|
||||
sf.show();
|
||||
@ -3960,13 +3954,12 @@ bool TPro_msk::fppro_ok_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if(!loaded && *row->get(0) == 'X')
|
||||
{
|
||||
msk.set(F_NUMEROI, row->get(4));
|
||||
msk.set(F_DATAI, row->get(2));
|
||||
msk.set(F_TOTDOCI, row->get(3));
|
||||
TString protocollo; protocollo << TDate(row->get(1)).year() << "-" << row->get(8) << "/" << row->get(9);
|
||||
msk.set(F_NUMEROI, row->get(5));
|
||||
msk.set(F_DATAI, row->get(3));
|
||||
msk.set(F_TOTDOCI, row->get(4));
|
||||
TString protocollo; protocollo << TDate(row->get(2)).year() << "-" << row->get(9) << "/" << row->get(10);
|
||||
msk.set(F_PROTFPPROI, protocollo);
|
||||
TString key_prot; key_prot << fp_db().sq_get("PZ_KEYPRGINVIO") << ";" << fp_db().sq_get("PZ_KEYHEADERFATT") << ";" << fp_db().sq_get("PZ_KEYBODYFATT");
|
||||
msk.set(F_FPPROKEYSI, key_prot);
|
||||
msk.set(F_FPPROKEYSI, row->get(11));
|
||||
loaded = true;
|
||||
ok = true;
|
||||
break;
|
||||
@ -3981,6 +3974,43 @@ bool TPro_msk::fppro_ok_handler(TMask_field& f, KEY k)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPro_msk::piva_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask& msk = f.mask();
|
||||
bool ok = true;
|
||||
if(k == K_TAB && f.active() && f.focusdirty())
|
||||
{
|
||||
ok = load_fppro_mask(&msk, 32);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TPro_msk::date_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask& msk = f.mask();
|
||||
bool ok = true;
|
||||
if (k == K_TAB && f.active() && f.focusdirty())
|
||||
{
|
||||
ok = load_fppro_mask(&msk, 32);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TPro_msk::check_causale(const TString& cod_caus)
|
||||
{
|
||||
bool nc = false;
|
||||
bool nc_acq = false;
|
||||
bool fa = false;
|
||||
TCausale caus(cod_caus);
|
||||
|
||||
if ((nc = caus.tipo_doc() == "NC"))
|
||||
nc_acq = caus.reg().tipo() == TIPO_REG_ACQ;
|
||||
|
||||
fa = caus.tipo_doc() == "FA";
|
||||
|
||||
return fa || nc && nc_acq;
|
||||
}
|
||||
|
||||
void TPro_msk::fppro_selfatt() const
|
||||
{
|
||||
const TMask& mask = *this;
|
||||
@ -3997,21 +4027,130 @@ void TPro_msk::fppro_selfatt() const
|
||||
|
||||
bool TPro_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
if (o.dlg() == F_SELFPPROS)
|
||||
switch (o.dlg())
|
||||
{
|
||||
if(e == fe_modify)
|
||||
case F_SELFPPROS:
|
||||
if (e == fe_modify)
|
||||
fppro_selfatt();
|
||||
break;
|
||||
case F_SHOWALL:
|
||||
if (e == fe_modify)
|
||||
load_fppro_mask(this, 32);
|
||||
break;
|
||||
case F_ENABSEARCH:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
abilita_piva(this);
|
||||
load_fppro_mask(this);
|
||||
}
|
||||
break;
|
||||
case F_ENABDATE:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
field(F_DATESEARCH).show(o.mask().get_bool(F_ENABDATE));
|
||||
if (!o.mask().get_bool(F_ENABDATE))
|
||||
load_fppro_mask(this);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
TString& TPro_msk::query_fppro(const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt,
|
||||
const TString& where_str)
|
||||
{
|
||||
return query_fppro("", "", "", where_str, "", keyprginvio, keyheaderfatt, keybodyfatt, false, false);
|
||||
}
|
||||
|
||||
TString& TPro_msk::query_fppro(const TString& codforn, const TString& date)
|
||||
{
|
||||
return query_fppro(codforn, "", "", "", date, "", "", "", true, false);
|
||||
}
|
||||
|
||||
TString& TPro_msk::query_fppro(const TString& stato_piva, const TString& piva, const TString& date)
|
||||
{
|
||||
return query_fppro("", stato_piva, piva, "", date, "", "", "", true, true);
|
||||
}
|
||||
|
||||
TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva, const TString& piva, const TString& where_str, const TString& date, const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, bool order, bool piva_research)
|
||||
{
|
||||
TString id_fornitore;
|
||||
TString keys;
|
||||
if(piva_research && !piva.empty())
|
||||
{
|
||||
id_fornitore << " (P2_FISCIVAPAESE = ";
|
||||
if (!stato_piva.empty())
|
||||
id_fornitore << "\'" << stato_piva << "\'";
|
||||
else
|
||||
id_fornitore << "\'IT\'";
|
||||
id_fornitore << " AND P2_FISCIVACOD = \'" << piva << "\') ";
|
||||
}
|
||||
else
|
||||
{
|
||||
if(codforn.empty() && !keyprginvio.empty() && !keyheaderfatt.empty() && !keybodyfatt.empty())
|
||||
{
|
||||
keys << " (PZ_KEYPRGINVIO = '" << keyprginvio << "' AND PZ_KEYHEADERFATT = '" << keyheaderfatt << "' AND PZ_KEYBODYFATT = '" << keybodyfatt << "') ";
|
||||
}
|
||||
if(!codforn.empty())
|
||||
id_fornitore << " (PZ_CLIFOR = '" << codforn << "') ";
|
||||
}
|
||||
|
||||
return true;
|
||||
static TString query;
|
||||
query.cut(0) << "SELECT PZ_CLIFOR, PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, P7_TIPODOC, PQ_IMPTOTDOC, PZ_NUMERO, PZ_NUMREGCONT, PZ_TIPOPROT, PZ_NUMPROT, 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" <<
|
||||
"JOIN PAA0700F\n" << "ON P7_KEYPRGINVIO = PQ_KEYPRGINVIO AND P7_KEYHEADERFATT = PQ_KEYHEADERFATT AND P7_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
|
||||
"WHERE ";
|
||||
|
||||
if (!id_fornitore.empty())
|
||||
{
|
||||
query << id_fornitore << " ";
|
||||
if (!date.empty())
|
||||
query << " AND PZ_DATA = '" << TDate(date).date2ansi() << "' ";
|
||||
if (order)
|
||||
query << "\nORDER BY P1_DATAORARIC ASC";
|
||||
query << ";";
|
||||
}
|
||||
else if(!keys.empty())
|
||||
{
|
||||
query << keys;
|
||||
if (!where_str.empty())
|
||||
query << " AND " << where_str;
|
||||
query << ";";
|
||||
}
|
||||
else
|
||||
query.cut(0);
|
||||
|
||||
return query;
|
||||
}
|
||||
|
||||
void TPro_msk::abilita_piva(TMask* msk)
|
||||
{
|
||||
if (msk->get_bool(F_ENABSEARCH))
|
||||
{
|
||||
msk->enable(F_PIVAS);
|
||||
msk->enable(F_STATOPAIVS);
|
||||
}
|
||||
else
|
||||
{
|
||||
msk->enable(F_PIVAS, false);
|
||||
msk->enable(F_STATOPAIVS, false);
|
||||
}
|
||||
}
|
||||
|
||||
TPro_msk::TPro_msk(TMask& cg_msk) : TAutomask("cg2fppro"), _parent_mask(cg_msk)
|
||||
{
|
||||
TMask::set_handler(DLG_CONFIG, fppro_handler);
|
||||
TMask::set_handler(DLG_LINK, fppro_ok_handler);
|
||||
TMask::set_handler(F_PIVAS, piva_handler);
|
||||
TMask::set_handler(F_DATESEARCH, date_handler);
|
||||
TMask::set(F_CODCLIFORS, cg_msk.get(F_CODCLIFOR));
|
||||
TMask::set(F_COFIS, cg_msk.get(F_COFI));
|
||||
TMask::set(F_STATOPAIVS, cg_msk.get(F_STATOPAIV));
|
||||
TMask::set(F_PIVAS, cg_msk.get(F_PIVA));
|
||||
TMask::set(F_RAGSOCS, cg_msk.get(F_RAGSOCCF));
|
||||
set(F_DATESEARCH, TDate(TODAY));
|
||||
}
|
||||
|
@ -380,13 +380,21 @@ class TPro_msk : public TAutomask
|
||||
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);
|
||||
static bool piva_handler(TMask_field& f, KEY k);
|
||||
static bool date_handler(TMask_field& f, KEY k);
|
||||
// Non permette la selezione multipla
|
||||
void fppro_selfatt() const;
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||
public:
|
||||
static TString& query_fppro(const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, const TString& where_str);
|
||||
static TString& query_fppro(const TString& codforn, const TString& date);
|
||||
static TString& query_fppro(const TString& stato_piva, const TString& piva, const TString& date);
|
||||
static TString& query_fppro(const TString& codforn, const TString& stato_piva, const TString& piva, const TString& where_str, const TString& date, const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, bool order = true, bool piva_research = false);
|
||||
static void abilita_piva(TMask* msk);
|
||||
//bool is_fp();
|
||||
// Carica documenti FPPRO sulla maschera
|
||||
static bool load_fppro_mask(TMask* msk, KEY k = 32);
|
||||
static bool check_causale(const TString& cod_caus);
|
||||
TPro_msk() = delete;
|
||||
TPro_msk(TMask& cg_msk);
|
||||
};
|
||||
|
@ -49,20 +49,43 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_RAGSOCS 50
|
||||
BEGIN
|
||||
PROMPT 0 3 "Rag. Soc."
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_ENABSEARCH
|
||||
BEGIN
|
||||
PROMPT 0 4 "Effettua ricerca per P.IVA/Disabilita ricerca per cod. Fornitore"
|
||||
END
|
||||
|
||||
BOOLEAN F_ENABDATE
|
||||
BEGIN
|
||||
PROMPT 0 5 "Abilita filtro per data"
|
||||
END
|
||||
|
||||
DATE F_DATESEARCH
|
||||
BEGIN
|
||||
PROMPT 35 5 "Data documento"
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
TEXT F_SHEET_TEXT
|
||||
BEGIN
|
||||
PROMPT 0 4 "@BSelezionare la fattura, quindi premere 'Riporta Dati'"
|
||||
PROMPT 0 6 "@BSelezionare la fattura, quindi premere 'Riporta Dati'"
|
||||
END
|
||||
|
||||
BOOLEAN F_SHOWALL
|
||||
BEGIN
|
||||
PROMPT 0 5 "Mostra anche fatture già registrate"
|
||||
PROMPT 0 7 "Mostra anche fatture già registrate"
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEETFPPROS 0 15
|
||||
BEGIN
|
||||
PROMPT 0 6 ""
|
||||
PROMPT 0 8 ""
|
||||
ITEM " "
|
||||
ITEM "Tipo Doc@7"
|
||||
ITEM "Data Ricezione"
|
||||
ITEM "Data Doc."
|
||||
ITEM "Importo Totale"
|
||||
@ -72,6 +95,7 @@ BEGIN
|
||||
ITEM "Cod. Fiscale"
|
||||
ITEM "Tipo Protocollo\nin ingresso"
|
||||
ITEM "Progressivo di ingresso"
|
||||
ITEM "Chiave FPPRO@H"
|
||||
END
|
||||
|
||||
STRING F_NUMEROI 20
|
||||
@ -117,6 +141,12 @@ BEGIN
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
STRING F_TIPODOCS 4
|
||||
BEGIN
|
||||
PROMPT 10 0 "TIPODOC"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE F_DATAS
|
||||
BEGIN
|
||||
PROMPT 1 1 "DATA"
|
||||
@ -171,6 +201,12 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_KEYFPPROS 80
|
||||
BEGIN
|
||||
PROMPT 1 10 "CHIAVE FPPRO"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
TOOLBAR "Documento" 0 0 0 2
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user