Patch level : 12.0 826
Files correlati : fp0.exe fp0400a.msk Commento : - Rimosso cod. sdi da tabella e esportazione contabiliz. - Rifatta maschera: - Spostato codice caus. cont. in elenco fatt - Tolto cod caus per Nota credito - Sistemata gestione flag e radiobox - Aggiunto controllo cod caus errato per TD01 TD04 - Aggiunta classe per gestione FPPRO - Aggiunti ulteriori dati per importazione nuovo fornitore - Aggiunto a header di MOV "NUMDOCEXT" - Corretto log con num. doc. esteso - Cambiato nome "Codice protocollo" in "Tipo protocollo" - Cambiato nome colonna Salvato FPPRO con Fornitore associato
This commit is contained in:
parent
b2c6451da4
commit
d3d81d215e
164
src/f1/f1lib.cpp
164
src/f1/f1lib.cpp
@ -7,6 +7,160 @@
|
||||
#include "cfven.h"
|
||||
#include "../fp/fp0400a.h"
|
||||
#include "reputils.h"
|
||||
#include "../fp/fplib.h"
|
||||
|
||||
//////////////////////////////////////////////////////////
|
||||
// TFppro
|
||||
//////////////////////////////////////////////////////////
|
||||
|
||||
TFppro& fppro_db()
|
||||
{
|
||||
static TFppro* fppro = nullptr;
|
||||
if (fppro == nullptr)
|
||||
{
|
||||
fppro = new TFppro();
|
||||
}
|
||||
return *fppro;
|
||||
}
|
||||
|
||||
bool TFppro::check_reg(TToken_string& keys, int numreg)
|
||||
{
|
||||
return get_numreg(keys) == numreg;
|
||||
}
|
||||
|
||||
bool TFppro::guess_the_doc(const TLocalisamfile& mov)
|
||||
{
|
||||
// Controllo datadoc - numdoc - totdoc - p.iva
|
||||
TString query;
|
||||
query << "SELECT PQ_KEYPRGINVIO AS KEYPRGINVIO, PQ_KEYHEADERFATT AS KEYHEADERFATT, PQ_KEYBODYFATT AS KEYBODYFATT, P7_DATA AS DATA,\n" <<
|
||||
"\tP7_NUMERO AS NUMDOC, PQ_IMPTOTDOC AS IMPTOTDOC, P2_FISCIVAPAESE AS STATOPIVA, P2_FISCIVACOD AS PIVA FROM PAA2700F\n" <<
|
||||
"JOIN PAA0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n";
|
||||
fp_db().sq_set_exec(query);
|
||||
|
||||
const keys_s keys = { fp_db().sq_get("KEYPRGINVIO"), fp_db().sq_get("KEYHEADERFATT"), fp_db().sq_get("KEYBODYFATT") };
|
||||
const TDate data = fp_db().sq_get_date("DATA");
|
||||
const TString numdoc = fp_db().sq_get("NUMDOC");
|
||||
const real imptotdoc(fp_db().sq_get("IMPTOTDOC"));
|
||||
const TString4 statopiva = fp_db().sq_get("STATOPIVA");
|
||||
const TString piva = fp_db().sq_get("PIVA");
|
||||
|
||||
// Prendo il fornitore del mov per controllare la p.iva
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
clifo.put(CLI_TIPOCF, "F");
|
||||
const TString& codforn = mov.get(MOV_CODCF);
|
||||
clifo.put(CLI_CODCF, codforn);
|
||||
clifo.read();
|
||||
TString cli_statopiva, cli_piva;
|
||||
cli_statopiva << clifo.get(CLI_STATOPAIV);
|
||||
cli_piva << clifo.get(CLI_PAIV);
|
||||
|
||||
bool ok = data == mov.get_date(MOV_DATAREG);
|
||||
ok &= numdoc == mov.get(MOV_NUMDOC) || numdoc == mov.get(MOV_NUMDOCEXT);
|
||||
ok &= imptotdoc == real(mov.get(MOV_TOTDOC));
|
||||
ok &= cli_statopiva.full() && statopiva == cli_statopiva && piva == cli_piva || !cli_statopiva.full() && piva == cli_piva;
|
||||
if (ok)
|
||||
{
|
||||
_keys = keys;
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TFppro::get_keys_fppro()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int TFppro::get_numreg()
|
||||
{
|
||||
if (!_is_set)
|
||||
{
|
||||
if (set_query())
|
||||
return fp_db().sq_get_int("PZ_NUMREGCONT");
|
||||
return -1;
|
||||
}
|
||||
return fp_db().sq_get_int("PZ_NUMREGCONT");
|
||||
}
|
||||
|
||||
int TFppro::get_numreg(TToken_string& keys)
|
||||
{
|
||||
set_keys(keys);
|
||||
return get_numreg();
|
||||
}
|
||||
|
||||
TDate TFppro::get_datareg()
|
||||
{
|
||||
if (!_is_set)
|
||||
{
|
||||
if (set_query())
|
||||
return fp_db().sq_get_date("PZ_DATAREGCONT");
|
||||
return TDate();
|
||||
}
|
||||
return fp_db().sq_get_date("PZ_DATAREGCONT");
|
||||
}
|
||||
|
||||
TDate TFppro::get_datareg(TToken_string& keys)
|
||||
{
|
||||
if (set_keys(keys))
|
||||
return get_datareg();
|
||||
return TDate();
|
||||
}
|
||||
|
||||
bool TFppro::set_keys(TToken_string& keys)
|
||||
{
|
||||
if(keys.items() == 3)
|
||||
{
|
||||
_keys.prginvio = keys.get(0);
|
||||
_keys.headerfatt = keys.get(1);
|
||||
_keys.bodyfatt = keys.get(2);
|
||||
_is_set = false;
|
||||
return _keys_setted = true;
|
||||
}
|
||||
return _keys_setted = false;
|
||||
}
|
||||
|
||||
bool TFppro::set_keys(keys_s keys)
|
||||
{
|
||||
if(*keys.prginvio != 0 && *keys.headerfatt != 0 && *keys.bodyfatt != 0)
|
||||
{
|
||||
_keys = keys;
|
||||
_is_set = false;
|
||||
return _keys_setted = true;
|
||||
}
|
||||
_is_set = false;
|
||||
return _keys_setted = false;
|
||||
}
|
||||
|
||||
TDate TFppro::get_data_first_doc()
|
||||
{
|
||||
TString query;
|
||||
query << "SELECT min(a.DATA) AS DATA \nFROM( \n\tSELECT P7_DATA as DATA \n" <<
|
||||
"\tFROM PAA0700F \n\tUNION \n\tSELECT P7_DATA as DATA \n\tFROM PAF0700F \n) a";
|
||||
fp_db().sq_set_exec(query);
|
||||
return fp_db().sq_get_date("DATA");
|
||||
}
|
||||
|
||||
bool TFppro::set_query()
|
||||
{
|
||||
if (_keys_setted)
|
||||
{
|
||||
_fppro_query.cut(0) << "SELECT * FROM FPPRO00F " << where_str();
|
||||
return _is_set = fp_db().sq_set_exec(_fppro_query);
|
||||
}
|
||||
return _is_set = false;
|
||||
}
|
||||
|
||||
const char* TFppro::where_str() const
|
||||
{
|
||||
TString str;
|
||||
str << " WHERE PZ_KEYPRGINVIO = '" << _keys.prginvio << "' AND PZ_KEYHEADERFATT = '" << _keys.headerfatt << "' AND PZ_KEYBODYFATT = '" << _keys.bodyfatt << "'";
|
||||
return str;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////
|
||||
// TProtocollo
|
||||
//////////////////////////////////////////////////////////
|
||||
|
||||
TString& TProtocollo::prot_in(const int year, const char* tipoprot, const char* progres)
|
||||
{
|
||||
@ -39,14 +193,14 @@ TString& TProtocollo::get_prot() const
|
||||
return prot_in(_year, _tipoprot, _progres);
|
||||
}
|
||||
|
||||
void set_ini_codcaus(const TString& codcaus, const bool nc)
|
||||
void set_ini_codcaus(const TString& codcaus)
|
||||
{
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, nc? F1_CAUSNC : F1_CAUSFA, codcaus);
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, F1_CAUS, codcaus);
|
||||
}
|
||||
|
||||
const char* get_ini_codcaus(const bool nc)
|
||||
const char* get_ini_codcaus()
|
||||
{
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, nc ? F1_CAUSNC : F1_CAUSFA);
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, F1_CAUS);
|
||||
}
|
||||
|
||||
const char* get_codcaus(const char * tipodoc, const char* codcf)
|
||||
@ -74,7 +228,7 @@ const char* get_codcaus(const char * tipodoc, const char* codcf)
|
||||
if (!TString(codcaus).empty())
|
||||
return codcaus;
|
||||
}
|
||||
return get_ini_codcaus(nc);
|
||||
return get_ini_codcaus();
|
||||
}
|
||||
|
||||
bool get_endatareg()
|
||||
|
@ -8,8 +8,7 @@
|
||||
|
||||
#define FILE_CONFIG CONFIG_DITTA
|
||||
#define FILE_SECTION "f1"
|
||||
#define F1_CAUSFA "causfa"
|
||||
#define F1_CAUSNC "causnc"
|
||||
#define F1_CAUS "caus"
|
||||
#define F1_INIREGCONT "cg2CONTAB"
|
||||
#define LOG_MSG 0
|
||||
#define LOG_WARN 1
|
||||
@ -20,9 +19,46 @@ enum err_cont
|
||||
no_codcaus = -1,
|
||||
no_selected = -2,
|
||||
is_already_cont = -3,
|
||||
cancel = -4,
|
||||
is_ready = 0
|
||||
};
|
||||
|
||||
class TFppro : public TObject
|
||||
{
|
||||
struct keys_s
|
||||
{
|
||||
const char* prginvio;
|
||||
const char* headerfatt;
|
||||
const char* bodyfatt;
|
||||
};
|
||||
private:
|
||||
keys_s _keys;
|
||||
bool _guess;
|
||||
bool _keys_setted;
|
||||
bool _is_set;
|
||||
TString _fppro_query;
|
||||
|
||||
public:
|
||||
const char* where_str() const;
|
||||
|
||||
bool check_reg(TToken_string& keys, int numreg);
|
||||
// Se un mov. registrato non e' collegato all'FPPRO cerco di capire qual'e`
|
||||
bool guess_the_doc(const TLocalisamfile& mov);
|
||||
void get_keys_fppro();
|
||||
int get_numreg();
|
||||
int get_numreg(TToken_string& keys);
|
||||
TDate get_datareg();
|
||||
TDate get_datareg(TToken_string& keys);
|
||||
bool set_query();
|
||||
bool set_keys(TToken_string& keys);
|
||||
bool set_keys(keys_s keys);
|
||||
|
||||
static TDate get_data_first_doc();
|
||||
|
||||
TFppro() : _keys({"\0", "\0", "\0" }), _guess(false), _keys_setted(false), _is_set(false) { }
|
||||
|
||||
};
|
||||
|
||||
class TProtocollo : TObject
|
||||
{
|
||||
int _year{};
|
||||
@ -55,14 +91,16 @@ public:
|
||||
bool show_log();
|
||||
};
|
||||
|
||||
const char* get_ini_codcaus(bool nc = false);
|
||||
TFppro& fppro_db();
|
||||
|
||||
const char* get_ini_codcaus();
|
||||
const char* get_codcaus(const char * tipodoc, const char* codcf);
|
||||
bool get_endatareg();
|
||||
TString get_datainireg();
|
||||
TString get_dataendreg();
|
||||
bool get_periodprec();
|
||||
|
||||
void set_ini_codcaus(const TString& codcaus, bool nc = false);
|
||||
void set_ini_codcaus(const TString& codcaus);
|
||||
void set_endatareg(bool enable);
|
||||
void set_datainireg(const TString& date);
|
||||
void set_dataendreg(const TString& date);
|
||||
@ -73,5 +111,4 @@ bool check_causale(const TString& cod_caus);
|
||||
// Controlla se il "cod_caus" ha come "tipo_doc" FA o NC (di acquisto)
|
||||
bool check_causale(const TString& cod_caus, const TString& tipo_doc);
|
||||
void run_cont_ini(bool liq);
|
||||
|
||||
#endif
|
@ -9,6 +9,7 @@
|
||||
#include <map>
|
||||
#include "../f1/f1lib.h"
|
||||
#include "mov.h"
|
||||
#include "comuni.h"
|
||||
|
||||
#define FILTER_NOASS ""
|
||||
#define FILTER_ASS "E"
|
||||
@ -67,7 +68,6 @@ protected:
|
||||
TDate load_data() const;
|
||||
// Handlers
|
||||
static bool causfa_handler(TMask_field& f, KEY k);
|
||||
static bool causnc_handler(TMask_field& f, KEY k);
|
||||
|
||||
void fattsel(int dlg, TField_event& e);
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||
@ -261,7 +261,6 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee
|
||||
row.add(paa_codfisc);
|
||||
|
||||
row.add(fp_db().sq_get("ATTACHMENT") != "0" ? "" : "X");
|
||||
row.add(paa_codsdi.blank() ? fp_db().sq_get("PEC") : paa_codsdi);
|
||||
row.add(denom);
|
||||
row.add(TProtocollo(fp_db().sq_get_int("ANNO_PROT"), fp_db().sq_get("TIPO_PROT"), fp_db().sq_get("NUM_PROT")));
|
||||
TString key_prot; key_prot << fp_db().sq_get("KEYPROG") << ";" << fp_db().sq_get("KEYHEAD") << ";" << fp_db().sq_get("KEYFATT");
|
||||
@ -322,15 +321,9 @@ TString& TPassive_mask::get_fattsel() const
|
||||
{
|
||||
static TString fattsel;
|
||||
fattsel.cut(0);
|
||||
if (get_bool(F_FORNOTASS))
|
||||
return fattsel;
|
||||
if (get_bool(F_FORASS))
|
||||
return fattsel << FILTER_ASS;
|
||||
if (get_bool(F_FORALL))
|
||||
return fattsel << FILTER_ALL;
|
||||
if (get_bool(F_CONTABIL))
|
||||
return fattsel << FILTER_CONT;
|
||||
return fattsel;
|
||||
return fattsel << get(F_ASSOC);
|
||||
}
|
||||
|
||||
int TPassive_mask::find_fornitore(TLocalisamfile& clifo)
|
||||
@ -420,9 +413,9 @@ bool TPassive_mask::causfa_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask& msk = f.mask();
|
||||
const TString& codcaus = msk.get(F_CAUSFA);
|
||||
if (!check_causale(codcaus, "FA"))
|
||||
if (!check_causale(codcaus))
|
||||
{
|
||||
warning_box("Impossibile selezionare questa causale registrazione.\nPrego inserire una causale di Fattura Acquisti");
|
||||
warning_box("Impossibile selezionare questa causale registrazione.\nPrego inserire una causale di Fattura Acquisti \no Nota Credito Acquisto");
|
||||
msk.field(F_CAUSFA).set("");
|
||||
msk.field(F_DESCAUSFA).set("");
|
||||
set_ini_codcaus("");
|
||||
@ -433,28 +426,9 @@ bool TPassive_mask::causfa_handler(TMask_field& f, KEY k)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPassive_mask::causnc_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask& msk = f.mask();
|
||||
const TString& codcaus = msk.get(F_CAUSNC);
|
||||
if (!check_causale(codcaus, "NC"))
|
||||
{
|
||||
warning_box("Impossibile selezionare questa causale registrazione.\nPrego inserire una causale di Nota Credito Acquisti.");
|
||||
msk.field(F_CAUSNC).set("");
|
||||
msk.field(F_DESCAUSNC).set("");
|
||||
set_ini_codcaus("", true);
|
||||
return false;
|
||||
}
|
||||
set_ini_codcaus(codcaus, true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void TPassive_mask::select_all(const int sheet_field)
|
||||
{
|
||||
TSheet_field& docs = sfield(sheet_field);
|
||||
TSheet_field& docs = sfield((short)sheet_field);
|
||||
TString_array& sht = docs.rows_array();
|
||||
const int items = sht.items();
|
||||
|
||||
@ -474,6 +448,7 @@ void TPassive_mask::salva_for() const
|
||||
TSheet_field& sf = sfield(F_DOCS);
|
||||
TLocalisamfile clifo(LF_CLIFO); // Leggo in Campo per controllare che il codice cliente non sia errato
|
||||
|
||||
sf.hide();
|
||||
FOR_EACH_SHEET_ROW(sf, nr, row)
|
||||
{
|
||||
if (row->starts_with("X") && strcmp(clifo.get(CLI_CODCF), "17") == 0)
|
||||
@ -496,7 +471,6 @@ void TPassive_mask::salva_for() const
|
||||
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);
|
||||
row->add("X", sf.cid2index(S_FPPRO));
|
||||
sf.force_update();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -504,6 +478,7 @@ void TPassive_mask::salva_for() const
|
||||
}
|
||||
fp_db().sq_commit();
|
||||
sf.force_update();
|
||||
sf.show();
|
||||
}
|
||||
}
|
||||
|
||||
@ -545,7 +520,13 @@ int TPassive_mask::prepara_contab() const
|
||||
TString codcaus(get_codcaus(row->get(2), row->get(10)));
|
||||
if (codcaus.empty())
|
||||
return no_codcaus;
|
||||
|
||||
TString tipodoc(row->get(sf.cid2index(S_TIPODOCSDI)));
|
||||
if(tipodoc == "TD01" && !check_causale(codcaus, "FA"))
|
||||
if(!yesno_box("Attenzione, per un documento di tipo TD01 e' stata selezionata \nuna causale diversa da Fattura d'Acquisto.\nContinuare?"))
|
||||
return cancel;
|
||||
if(tipodoc == "TD04" && !check_causale(codcaus, "NC"))
|
||||
if(!yesno_box("Attenzione, per un documento di tipo TD04 e' stata selezionata \nuna causale diversa da Nota Credito di Acquisto.\nContinuare?"))
|
||||
return cancel;
|
||||
n_sel++;
|
||||
TString num; num.format("%04d", n);
|
||||
TFilename newf_ini;
|
||||
@ -639,16 +620,16 @@ void TPassive_mask::log_contab()
|
||||
|
||||
if (config.get("Result") == "OK")
|
||||
{
|
||||
numdoc = config.get("NUMDOC", "23");
|
||||
numreg = config.get("NUMREG", "23");
|
||||
protiv = config.get("PROTIVA", "23");
|
||||
numdoc = config.get(MOV_NUMDOCEXT, "23");
|
||||
numreg = config.get(MOV_NUMREG, "23");
|
||||
protiv = config.get(MOV_PROTIVA, "23");
|
||||
doc_saved.insert(doc_saved.end(), numdoc);
|
||||
save_numreg.insert(save_numreg.end(), numreg);
|
||||
save_protiv.insert(save_protiv.end(), protiv);
|
||||
}
|
||||
else if(config.get("Result") == "CANCEL")
|
||||
{
|
||||
numdoc = config.get("NUMDOC", "23");
|
||||
numdoc = config.get(MOV_NUMDOCEXT, "23");
|
||||
doc_canceled.insert(doc_canceled.end(), numdoc);
|
||||
}
|
||||
}
|
||||
@ -706,6 +687,8 @@ void TPassive_mask::contabilizza()
|
||||
case no_selected:
|
||||
message_box("Selezionare almeno un documento.");
|
||||
break;
|
||||
case cancel:
|
||||
next_page(1000);
|
||||
default: break;
|
||||
}
|
||||
if(stato >= 1000)
|
||||
@ -781,10 +764,26 @@ void TPassive_mask::new_forn()
|
||||
forn_conf.set("RAGSOC", row->get(sf.cid2index(S_RAGSERR)));
|
||||
forn_conf.set("STATOPAIV", row_elenco_fatt.get(sf.cid2index(S_STATOPAIV)));
|
||||
|
||||
query.cut(0) << "SELECT P2_SEDEIND, P2_SEDENRCIVICO, P2_SEDECAP, P2_SEDECOMUNE, P2_SEDEPROV, P2_SEDENAZ, " <<
|
||||
"P2_CONTATTITELEF, P2_CONTATTIFAX, P2_CONTATTIMAIL\n" <<
|
||||
"FROM PAA0200F \nWHERE P2_KEYPRGINVIO = '" << keys.get(0) << "' AND P2_KEYHEADERFATT = '" << keys.get(1) << "' AND P2_KEYBODYFATT = '" << keys.get(2) << "'";
|
||||
fp_db().sq_set_exec(query);
|
||||
forn_conf.set("INDCF", fp_db().sq_get("P2_SEDEIND"));
|
||||
forn_conf.set("CIVCF", fp_db().sq_get("P2_SEDENRCIVICO"));
|
||||
forn_conf.set("CAPCF", fp_db().sq_get("P2_SEDECAP"));
|
||||
TLocalisamfile com(LF_COMUNI);
|
||||
com.setkey(2);
|
||||
com.put(COM_DENCOM, fp_db().sq_get("P2_SEDECOMUNE"));
|
||||
com.read();
|
||||
forn_conf.set("COMCF", com.get(COM_COM));
|
||||
forn_conf.set("TEL", fp_db().sq_get("P2_CONTATTITELEF"));
|
||||
forn_conf.set("TELEX", fp_db().sq_get("P2_CONTATTIFAX"));
|
||||
forn_conf.set("PEC", fp_db().sq_get("P2_CONTATTIMAIL"));
|
||||
forn_conf.set("DOCMAIL", fp_db().sq_get("P2_CONTATTIMAIL"));
|
||||
|
||||
forn_conf.set_paragraph("17");
|
||||
forn_conf.set("TIPOCF", "F");
|
||||
forn_conf.set("RAGGOR", "O");
|
||||
forn_conf.set("PADESTIN", row_elenco_fatt.get(sf.cid2index(S_CODSDI)));
|
||||
|
||||
row->add("", 0);
|
||||
}
|
||||
@ -861,18 +860,12 @@ bool TPassive_mask::aggiorna_forn()
|
||||
void TPassive_mask::fattsel(const int dlg, TField_event& e)
|
||||
{
|
||||
if (e == fe_init)
|
||||
{
|
||||
set(F_FORNOTASS, "X");
|
||||
set(F_FORASS, "");
|
||||
set(F_FORALL, "");
|
||||
set(F_CONTABIL, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
set(F_FORNOTASS, dlg == F_FORNOTASS ? "X" : "");
|
||||
set(F_FORASS, dlg == F_FORASS ? "X" : "");
|
||||
set(F_FORALL, dlg == F_FORALL ? "X" : "");
|
||||
set(F_CONTABIL, dlg == F_CONTABIL ? "X" : "");
|
||||
if(dlg == F_CONTABIL)
|
||||
set(F_ASSOC, "A");
|
||||
set(F_CONTABIL, dlg == F_CONTABIL && get_bool(F_CONTABIL)? "X" : " ");
|
||||
}
|
||||
field(F_DATAINI).enable(!get_bool(F_CONTABIL));
|
||||
field(F_DATAEND).enable(!get_bool(F_CONTABIL));
|
||||
@ -960,7 +953,7 @@ bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
if (o.dlg() >= F_FORNOTASS && o.dlg() <= F_CONTABIL)
|
||||
if (o.dlg() >= F_ASSOC && o.dlg() <= F_CONTABIL)
|
||||
if (e == fe_modify || e == fe_init)
|
||||
fattsel(o.dlg(), e);
|
||||
if ((e == fe_modify || e >= se_enter) && jolly == 0)
|
||||
@ -976,6 +969,9 @@ void TPassive_mask::check_buttons(const int p)
|
||||
const bool err_forn = fattsel.empty() || fattsel == FILTER_ALL;
|
||||
|
||||
field(DLG_EXPORT).enable((curr_page() + p == 1 || p == 1001) && _f1 && fattsel != FILTER_CONT);
|
||||
field(F_GROUPCAU).show((curr_page() + p == 1 || p == 1001) && _f1 && fattsel != FILTER_CONT);
|
||||
field(F_CAUSFA).show((curr_page() + p == 1 || p == 1001) && _f1 && fattsel != FILTER_CONT);
|
||||
field(F_DESCAUSFA).show((curr_page() + p == 1 || p == 1001) && _f1 && fattsel != FILTER_CONT);
|
||||
field(DLG_SAVEREC).enable((curr_page() + p == 1 || p == 1001) && (fattsel.empty() || fattsel == FILTER_ASS));
|
||||
if (p >= 1000)
|
||||
{
|
||||
@ -993,7 +989,6 @@ TPassive_mask::TPassive_mask(bool f1) : TAutomask("fp0400a"), _f1(f1), _filter_c
|
||||
{
|
||||
_tmp_dir = _tmp_dir.tempdir();
|
||||
TMask::set_handler(F_CAUSFA, causfa_handler);
|
||||
TMask::set_handler(F_CAUSNC, causnc_handler);
|
||||
}
|
||||
|
||||
|
||||
@ -1018,7 +1013,6 @@ void TPassive_app::load_mask(const TPassive_mask& mask) const
|
||||
if (check_f1())
|
||||
{
|
||||
mask.field(F_CAUSFA).set(get_ini_codcaus());
|
||||
mask.field(F_CAUSNC).set(get_ini_codcaus(true));
|
||||
mask.field(F_DATAINIREG).enable(mask.get_fattsel() == FILTER_CONT);
|
||||
mask.field(F_DATAINIREG).set(get_datainireg());
|
||||
if(mask.field(F_DATAINIREG).get().empty())
|
||||
@ -1033,6 +1027,7 @@ void TPassive_app::load_mask(const TPassive_mask& mask) const
|
||||
else
|
||||
{
|
||||
mask.field(F_GROUPCON).hide();
|
||||
mask.field(F_GROUPCON2).hide();
|
||||
mask.field(F_GROUPCAU).hide();
|
||||
}
|
||||
}
|
||||
@ -1057,6 +1052,7 @@ void TPassive_app::main_loop()
|
||||
{
|
||||
TPassive_mask mask(check_f1());
|
||||
load_mask(mask);
|
||||
mask.first_focus(F_DATAINI);
|
||||
while(mask.run() == K_ENTER)
|
||||
{
|
||||
}
|
||||
|
@ -1,24 +1,20 @@
|
||||
#define START_MASK 501
|
||||
#define F_FORNOTASS 501
|
||||
#define F_FORASS 502
|
||||
#define F_FORALL 503
|
||||
#define F_CONTABIL 504
|
||||
#define F_DATAINI 505
|
||||
#define F_DATAEND 506
|
||||
#define F_DATAINIREG 507
|
||||
#define F_DATAENDREG 508
|
||||
#define F_FATTORD 510
|
||||
#define F_VERSOORD 511
|
||||
#define F_CAUSFA 512
|
||||
#define F_DESCAUSFA 513
|
||||
#define F_CAUSNC 514
|
||||
#define F_DESCAUSNC 515
|
||||
#define F_GROUPCON 516
|
||||
#define F_GROUPCAU 517
|
||||
#define F_PERIODPREC 518
|
||||
#define F_ASSOC 501
|
||||
#define F_CONTABIL 502
|
||||
#define F_DATAINI 503
|
||||
#define F_DATAEND 504
|
||||
#define F_DATAINIREG 505
|
||||
#define F_DATAENDREG 506
|
||||
#define F_FATTORD 507
|
||||
#define F_VERSOORD 508
|
||||
#define F_CAUSFA 509
|
||||
#define F_DESCAUSFA 510
|
||||
#define F_GROUPCON 511
|
||||
#define F_GROUPCON2 512
|
||||
#define F_PERIODPREC 513
|
||||
#define F_GROUPCAU 514
|
||||
#define END_MASK 599
|
||||
|
||||
|
||||
#define F_PROT 401
|
||||
|
||||
|
||||
@ -43,10 +39,9 @@
|
||||
#define S_PARIVA 114
|
||||
#define S_CODFISC 115
|
||||
#define S_ATTACH 116
|
||||
#define S_CODSDI 117
|
||||
#define S_RAGXML 118
|
||||
#define S_NPROT 119
|
||||
#define S_PROKEY 120
|
||||
#define S_RAGXML 117
|
||||
#define S_NPROT 118
|
||||
#define S_PROKEY 119
|
||||
|
||||
|
||||
#define F_ERR 301
|
||||
|
@ -40,48 +40,37 @@ ENDPAGE
|
||||
|
||||
PAGE "Fatture Passive" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 30 7
|
||||
RADIOBUTTON F_ASSOC 20 50
|
||||
BEGIN
|
||||
PROMPT 0 1 "@BFornitori"
|
||||
END
|
||||
|
||||
BOOLEAN F_FORNOTASS
|
||||
BEGIN
|
||||
PROMPT 1 2 "Non Associati"
|
||||
END
|
||||
|
||||
BOOLEAN F_FORASS
|
||||
BEGIN
|
||||
PROMPT 1 3 "Associati"
|
||||
END
|
||||
|
||||
BOOLEAN F_FORALL
|
||||
BEGIN
|
||||
PROMPT 1 4 "Tutti"
|
||||
ITEM "|Non Associate"
|
||||
ITEM "E|Associate"
|
||||
ITEM "A|Tutte"
|
||||
FLAGS "Z"
|
||||
END
|
||||
|
||||
DATE F_DATAINI
|
||||
BEGIN
|
||||
PROMPT 1 5 "Data iniziale"
|
||||
PROMPT 0 4 "Data iniziale"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
DATE F_DATAEND
|
||||
BEGIN
|
||||
PROMPT 1 6 "Data finale "
|
||||
PROMPT 25 4 "Data finale "
|
||||
VALIDATE DATE_CMP_FUNC >= F_DATAINI
|
||||
WARNING "La data finale non può essere minore della data iniziale"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
GROUPBOX F_GROUPCON 30 5
|
||||
GROUPBOX F_GROUPCON 32 5
|
||||
BEGIN
|
||||
PROMPT 0 10 "@BContabilita'"
|
||||
END
|
||||
|
||||
BOOLEAN F_CONTABIL
|
||||
BEGIN
|
||||
PROMPT 1 11 "Contabilizzate"
|
||||
PROMPT 1 11 "Mostra solo doc. registrati"
|
||||
MODULE F1
|
||||
END
|
||||
|
||||
@ -103,7 +92,7 @@ END
|
||||
|
||||
RADIOBUTTON F_FATTORD 20 20
|
||||
BEGIN
|
||||
PROMPT 31 1 "Ordinamento fatture per "
|
||||
PROMPT 52 1 "Ordinamento fatture per "
|
||||
ITEM "|Data Ricezione"
|
||||
ITEM "D|Data Documento"
|
||||
FLAGS ""
|
||||
@ -111,7 +100,7 @@ END
|
||||
|
||||
RADIOBUTTON F_VERSOORD 20 20
|
||||
BEGIN
|
||||
PROMPT 52 1 "Ordinamento:"
|
||||
PROMPT 52 5 "Ordinamento:"
|
||||
ITEM "|Decrescente"
|
||||
ITEM "C|Crescente"
|
||||
FLAGS ""
|
||||
@ -119,19 +108,34 @@ END
|
||||
|
||||
SPREADSHEET F_PROT 25 4
|
||||
BEGIN
|
||||
PROMPT 31 5 "Selezionare o aggiungere un filtro sul Tipo Progressivo"
|
||||
PROMPT 0 5 "Selezionare o aggiungere un filtro sul Tipo Progressivo"
|
||||
ITEM "@1"
|
||||
ITEM "Codice\nProtocol.@12"
|
||||
END
|
||||
|
||||
GROUPBOX F_GROUPCAU 59 8
|
||||
GROUPBOX F_GROUPCON2 59 3
|
||||
BEGIN
|
||||
PROMPT 31 10 "@BParametri di default per Registrazione Contabile:"
|
||||
PROMPT 33 10 "@BContabilizzazione automatica:"
|
||||
END
|
||||
|
||||
BOOLEAN F_PERIODPREC
|
||||
BEGIN
|
||||
PROMPT 34 11 "Selezione automatica liquid. periodo precedente"
|
||||
MODULE F1
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Elenco Fatture" 0 2 0 0
|
||||
|
||||
GROUPBOX F_GROUPCAU 70 4
|
||||
BEGIN
|
||||
PROMPT 0 0 "@BParametri di default per Registrazione Contabile:"
|
||||
END
|
||||
|
||||
STRING F_CAUSFA 3
|
||||
BEGIN
|
||||
PROMPT 32 11 "Causale per Fattura Acquisti (FA) "
|
||||
PROMPT 1 1 "Causale per Contabilizzazione"
|
||||
FLAGS "UZ"
|
||||
FIELD CODCAUS
|
||||
USE LF_CAUSALI
|
||||
@ -154,7 +158,7 @@ END
|
||||
|
||||
STRING F_DESCAUSFA 50
|
||||
BEGIN
|
||||
PROMPT 32 12 ""
|
||||
PROMPT 1 2 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
CHECKTYPE NORMAL
|
||||
INPUT DESCR F_DESCAUSFA
|
||||
@ -171,60 +175,9 @@ BEGIN
|
||||
MODULE F1
|
||||
END
|
||||
|
||||
STRING F_CAUSNC 3
|
||||
SPREADSHEET F_DOCS -1 -1
|
||||
BEGIN
|
||||
PROMPT 32 13 "Causale per Nota Credito Acquisti [TD04]"
|
||||
FLAGS "UZ"
|
||||
FIELD CODCAUS
|
||||
USE LF_CAUSALI
|
||||
INPUT CODCAUS F_CAUSNC
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Tipo" TIPODOC
|
||||
DISPLAY "Registro" REG
|
||||
DISPLAY "SC" TIPOMOV
|
||||
DISPLAY "CA" MOVIND
|
||||
DISPLAY "CE" COLLCESP
|
||||
DISPLAY "770" M770
|
||||
OUTPUT F_CAUSNC CODCAUS
|
||||
OUTPUT F_DESCAUSNC DESCR
|
||||
ADD RUN cg0 -4
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "Causale assente"
|
||||
MODULE F1
|
||||
END
|
||||
|
||||
STRING F_DESCAUSNC 50
|
||||
BEGIN
|
||||
PROMPT 32 14 ""
|
||||
USE LF_CAUSALI KEY 2
|
||||
CHECKTYPE NORMAL
|
||||
INPUT DESCR F_DESCAUSNC
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Tipo" TIPODOC
|
||||
DISPLAY "Registro" REG
|
||||
DISPLAY "SC" TIPOMOV
|
||||
DISPLAY "CA" MOVIND
|
||||
DISPLAY "CE" COLLCESP
|
||||
DISPLAY "770" M770
|
||||
COPY OUTPUT F_CAUSNC
|
||||
ADD RUN cg0 -4
|
||||
MODULE F1
|
||||
END
|
||||
|
||||
BOOLEAN F_PERIODPREC
|
||||
BEGIN
|
||||
PROMPT 33 16 "Selezione automatica liquid. periodo precedente"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Elenco Fatture" 0 2 0 0
|
||||
|
||||
SPREADSHEET F_DOCS
|
||||
BEGIN
|
||||
PROMPT 0 2 ""
|
||||
PROMPT 0 4 ""
|
||||
ITEM ""
|
||||
ITEM "Anno"
|
||||
ITEM "Tipo Doc.\nSDI@6"
|
||||
@ -232,7 +185,7 @@ BEGIN
|
||||
ITEM "Data\nRicezione@8"
|
||||
ITEM "Data\nDoc.@8"
|
||||
ITEM "Totale\nDocumento@12"
|
||||
ITEM "Salvato in\nFP PRO@7"
|
||||
ITEM "Fornitore\nassociato@7"
|
||||
ITEM "Num. Registrazione\ncontabile@12"
|
||||
ITEM "Data Registrazione\ncontabile@12"
|
||||
ITEM "Fornitore@7"
|
||||
@ -241,7 +194,6 @@ BEGIN
|
||||
ITEM "Partita IVA@10"
|
||||
ITEM "Cod. Fiscale@16"
|
||||
ITEM "Allegati@7"
|
||||
ITEM "Codice\ndestinatario@8"
|
||||
ITEM "Ragione Sociale (XML)@50"
|
||||
ITEM "Numero Protocollo (in entrata)\n[anno-tipo prot/progressivo]@22"
|
||||
ITEM "Chiave Prot.@80"
|
||||
@ -276,7 +228,7 @@ END
|
||||
|
||||
STRING S_CODPROT 12
|
||||
BEGIN
|
||||
PROMPT 1 3 "Codice Protocollo"
|
||||
PROMPT 1 3 "Tipo Protocollo"
|
||||
FLAGS ""
|
||||
END
|
||||
|
||||
@ -464,12 +416,6 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING S_CODSDI 20
|
||||
BEGIN
|
||||
PROMPT 35 6 "Cod. Destinatario"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN S_ATTACH
|
||||
BEGIN
|
||||
PROMPT 1 7 "Documenti in allegato"
|
||||
|
@ -10,6 +10,7 @@
|
||||
#define MOV_DATADOC "DATADOC"
|
||||
#define MOV_RITFATT "RITFATT"
|
||||
#define MOV_NUMDOC "NUMDOC"
|
||||
#define MOV_NUMDOCEXT "NUMDOCEXT"
|
||||
#define MOV_MESELIQ "MESELIQ"
|
||||
#define MOV_TIPODOC "TIPODOC"
|
||||
#define MOV_TOTDOC "TOTDOC"
|
||||
@ -57,7 +58,7 @@
|
||||
#define MOV_TNUMREG "TNUMREG"
|
||||
#define MOV_IVALIQ "IVALIQ"
|
||||
#define MOV_KEYFPPRO "KEYFPPRO"
|
||||
#define MOV_PROGFPPRO "PROGFPPRO"
|
||||
#define MOV_DATAELABF9 "DATAELABF9"
|
||||
|
||||
#define NUMREG_PROVVISORIO 999999L
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user