Patch level : 12.0 826
Files correlati : cg2.exe cg2FPPRO.msk Commento : - Lasciata la possibilita' di collegare documenti anche senza F1 senza riporto dei dati - Aggiunti altri tipi documento per causale accettate per F1
This commit is contained in:
parent
d3d81d215e
commit
7ee01f73ca
@ -123,11 +123,11 @@ TMask* TPrimanota_application::load_mask(int n)
|
|||||||
ism.set_handler(309, sheet_clifo_handler);
|
ism.set_handler(309, sheet_clifo_handler);
|
||||||
ism.set_handler(CG_RATEO, sheet_rateo_handler);
|
ism.set_handler(CG_RATEO, sheet_rateo_handler);
|
||||||
ism.set_handler(CG_RISCONTO, sheet_risconto_handler);
|
ism.set_handler(CG_RISCONTO, sheet_risconto_handler);
|
||||||
if (!has_f1_db(m))
|
if (!has_module(FPAUT))
|
||||||
{
|
{
|
||||||
if (m->find_by_id(F_COLFPPRO) != NULL)
|
if (m->find_by_id(F_COLFPPRO) != NULL)
|
||||||
m->hide(F_COLFPPRO);
|
m->hide(F_COLFPPRO);
|
||||||
if(m->find_by_id(DLG_LINK) != NULL)
|
if (m->find_by_id(DLG_LINK) != NULL)
|
||||||
m->disable(DLG_LINK);
|
m->disable(DLG_LINK);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1634,14 +1634,14 @@ void TPrimanota_application::set_has_f1_db(TMask* m)
|
|||||||
if (m->find_by_id(F_DATAREG) != NULL && !m->get(F_DATAREG).empty())
|
if (m->find_by_id(F_DATAREG) != NULL && !m->get(F_DATAREG).empty())
|
||||||
{
|
{
|
||||||
if (TDate(m->get(F_DATAREG)) >= TDate(fp_settings().get_data_start_fatt()))
|
if (TDate(m->get(F_DATAREG)) >= TDate(fp_settings().get_data_start_fatt()))
|
||||||
_isfp = has_module(F1AUT) && !fp_settings().get_db_indirizzo().empty();
|
_isf1 = has_module(F1AUT) && !fp_settings().get_db_indirizzo().empty();
|
||||||
else
|
else
|
||||||
_isfp = false;
|
_isf1 = false;
|
||||||
_is_set_fpcheck = true;
|
_is_set_fpcheck = true;
|
||||||
}
|
}
|
||||||
else if (!_is_set_fpcheck)
|
else if (!_is_set_fpcheck)
|
||||||
{
|
{
|
||||||
_isfp = false;
|
_isf1 = false;
|
||||||
_is_set_fpcheck = true;
|
_is_set_fpcheck = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1649,7 +1649,7 @@ void TPrimanota_application::set_has_f1_db(TMask* m)
|
|||||||
bool TPrimanota_application::has_f1_db(TMask* m)
|
bool TPrimanota_application::has_f1_db(TMask* m)
|
||||||
{
|
{
|
||||||
set_has_f1_db(m);
|
set_has_f1_db(m);
|
||||||
return _isfp;
|
return _isf1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TPrimanota_application::remove()
|
bool TPrimanota_application::remove()
|
||||||
@ -2426,7 +2426,7 @@ int TPrimanota_application::save_fppro()
|
|||||||
else return pro_notsaved; // In altre modalita' esco senza fare nulla sul db
|
else return pro_notsaved; // In altre modalita' esco senza fare nulla sul db
|
||||||
}
|
}
|
||||||
|
|
||||||
// Controllo che sto registrando un documento FA Fattura di Acquisto o NC Acquisto
|
// Controllo che sto registrando un documento d'acquisto
|
||||||
if (!check_causale(msk.get(F_CODCAUS)))
|
if (!check_causale(msk.get(F_CODCAUS)))
|
||||||
return pro_notsaved;
|
return pro_notsaved;
|
||||||
|
|
||||||
|
@ -2263,7 +2263,7 @@ bool TPrimanota_application::caus_query_handler(TMask_field& f, KEY key)
|
|||||||
void TPrimanota_application::check_fppro_fields(TMask& m)
|
void TPrimanota_application::check_fppro_fields(TMask& m)
|
||||||
{
|
{
|
||||||
const bool after_data = TDate(m.get(F_DATAREG)) >= TDate(fp_settings().get_data_start_fatt());
|
const bool after_data = TDate(m.get(F_DATAREG)) >= TDate(fp_settings().get_data_start_fatt());
|
||||||
if (!check_causale(m.get(F_CODCAUS)) || !app().has_f1_db(&m) || !after_data)
|
if (!check_causale(m.get(F_CODCAUS)) || !app().has_module(FPAUT) || !after_data)
|
||||||
{
|
{
|
||||||
if(m.find_by_id(DLG_LINK) != NULL)
|
if(m.find_by_id(DLG_LINK) != NULL)
|
||||||
m.disable(DLG_LINK);
|
m.disable(DLG_LINK);
|
||||||
@ -3850,7 +3850,7 @@ bool TPrimanota_application::quadratura_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();
|
TMask& cg_msk = f.mask();
|
||||||
if (!app().get_isfp() || key != K_SPACE && key != K_TAB || !check_causale(f.mask().get(F_CODCAUS)))
|
if (!app().has_module(FPAUT) || key != K_SPACE && key != K_TAB || !check_causale(cg_msk.get(F_CODCAUS)))
|
||||||
return true;
|
return true;
|
||||||
auto msk = std::make_shared<TPro_msk>(cg_msk);
|
auto msk = std::make_shared<TPro_msk>(cg_msk);
|
||||||
app()._pro_mask = msk;
|
app()._pro_mask = msk;
|
||||||
@ -3858,12 +3858,15 @@ bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
|||||||
if (msk->load_fppro_mask(msk.get()))
|
if (msk->load_fppro_mask(msk.get()))
|
||||||
{
|
{
|
||||||
msk->run();
|
msk->run();
|
||||||
// Riporto dati FPPRO su maschera Prima Nota
|
// Riporto dati FPPRO su maschera Prima Nota (solo se hai F1)
|
||||||
cg_msk.set(F_NUMDOCEXT, msk->get_numdoc());
|
// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
|
||||||
cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
|
if(app().has_f1_db(&cg_msk))
|
||||||
cg_msk.set(F_DATADOC, msk->get_datadoc());
|
{
|
||||||
cg_msk.set(F_TOTALE, msk->get_totdoc());
|
cg_msk.set(F_NUMDOCEXT, msk->get_numdoc());
|
||||||
//cg_msk.set(F_PROTFPPRO, msk->get_protocollo());
|
cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
|
||||||
|
cg_msk.set(F_DATADOC, msk->get_datadoc());
|
||||||
|
cg_msk.set(F_TOTALE, msk->get_totdoc());
|
||||||
|
}
|
||||||
cg_msk.set(F_PROKEY, msk->get_fpprokeys());
|
cg_msk.set(F_PROKEY, msk->get_fpprokeys());
|
||||||
is_collegato(cg_msk.field(F_COLFPPRO));
|
is_collegato(cg_msk.field(F_COLFPPRO));
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ class TPrimanota_application : public TRelation_application
|
|||||||
TEsercizi_contabili _esercizi; // Tabella degli esercizi contabili
|
TEsercizi_contabili _esercizi; // Tabella degli esercizi contabili
|
||||||
|
|
||||||
TAssoc_array _colori; // Colori delle righe
|
TAssoc_array _colori; // Colori delle righe
|
||||||
bool _isfp;
|
bool _isf1;
|
||||||
shared_ptr<TPro_msk> _pro_mask;
|
shared_ptr<TPro_msk> _pro_mask;
|
||||||
bool _is_set_fpcheck;
|
bool _is_set_fpcheck;
|
||||||
int _last_date;
|
int _last_date;
|
||||||
@ -365,7 +365,7 @@ public:
|
|||||||
static char row_type(const TToken_string& s);
|
static char row_type(const TToken_string& s);
|
||||||
static bool iva_notify(TSheet_field& s, int r, KEY key);
|
static bool iva_notify(TSheet_field& s, int r, KEY key);
|
||||||
static bool cg_notify(TSheet_field& s, int r, KEY key);
|
static bool cg_notify(TSheet_field& s, int r, KEY key);
|
||||||
bool get_isfp() const { return _isfp; }
|
bool get_isf1() const { return _isf1; }
|
||||||
int get_lastdate() { return _last_date; }
|
int get_lastdate() { return _last_date; }
|
||||||
|
|
||||||
TMask * mask(CGMaskType type) { return _msk[type]; }
|
TMask * mask(CGMaskType type) { return _msk[type]; }
|
||||||
|
@ -10,7 +10,7 @@ END
|
|||||||
|
|
||||||
BUTTON DLG_LINK 2 2
|
BUTTON DLG_LINK 2 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 1 "Riporta Dati"
|
PROMPT 3 1 "Collega Documento"
|
||||||
PICTURE TOOL_LINK
|
PICTURE TOOL_LINK
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ END
|
|||||||
|
|
||||||
TEXT F_SHEET_TEXT
|
TEXT F_SHEET_TEXT
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 6 "@BSelezionare la fattura, quindi premere 'Riporta Dati'"
|
PROMPT 0 6 "@BSelezionare la fattura, quindi premere 'Collega Documento'"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_SHOWALL
|
BOOLEAN F_SHOWALL
|
||||||
|
@ -271,26 +271,38 @@ void set_periodprec(bool flag)
|
|||||||
ini_set_bool(CONFIG_DITTA, FILE_SECTION, "flag_periodprec", flag);
|
ini_set_bool(CONFIG_DITTA, FILE_SECTION, "flag_periodprec", flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool check_causale(const TString& cod_caus)
|
bool check_causale(const TString& cod_caus, bool acq)
|
||||||
{
|
{
|
||||||
return check_causale(cod_caus, "FA") || check_causale(cod_caus, "NC");
|
return
|
||||||
|
check_causale(cod_caus, "FA", acq) ||
|
||||||
|
check_causale(cod_caus, "BD", acq) ||
|
||||||
|
check_causale(cod_caus, "AF", acq) ||
|
||||||
|
check_causale(cod_caus, "FF", acq) ||
|
||||||
|
check_causale(cod_caus, "NC", acq) ||
|
||||||
|
check_causale(cod_caus, "ND", acq);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool check_causale(const TString& cod_caus, const TString& tipo_doc)
|
bool check_causale(const TString& cod_caus, const TString& tipo_doc, bool acq)
|
||||||
{
|
{
|
||||||
TCausale caus(cod_caus);
|
const TCausale caus(cod_caus);
|
||||||
|
|
||||||
if(tipo_doc == "FA")
|
if(tipo_doc == "FA" || tipo_doc == "BD" || tipo_doc == "AF" || tipo_doc == "FF")
|
||||||
return caus.tipo_doc() == "FA";
|
return caus.tipo_doc() == tipo_doc;
|
||||||
|
|
||||||
if (tipo_doc == "NC")
|
if (tipo_doc == "NC" || tipo_doc == "ND")
|
||||||
{
|
{
|
||||||
bool nc;
|
bool nota;
|
||||||
bool nc_acq = false;
|
bool nota_iva = false;
|
||||||
if ((nc = caus.tipo_doc() == "NC"))
|
if ((nota = caus.tipo_doc() == tipo_doc))
|
||||||
nc_acq = caus.reg().tipo() == iva_acquisti;
|
{
|
||||||
return nc && nc_acq;
|
if (acq)
|
||||||
|
nota_iva = caus.reg().tipo() == iva_acquisti;
|
||||||
|
else
|
||||||
|
nota_iva = caus.reg().tipo() == iva_vendite;
|
||||||
|
}
|
||||||
|
return nota && nota_iva;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,8 +107,8 @@ void set_dataendreg(const TString& date);
|
|||||||
void set_periodprec(bool flag);
|
void set_periodprec(bool flag);
|
||||||
|
|
||||||
// Controlla se il "cod_caus" e' per Fatture d'acquisto o Note Credito d'Acquisto
|
// Controlla se il "cod_caus" e' per Fatture d'acquisto o Note Credito d'Acquisto
|
||||||
bool check_causale(const TString& cod_caus);
|
bool check_causale(const TString& cod_caus, bool acq = true);
|
||||||
// Controlla se il "cod_caus" ha come "tipo_doc" FA o NC (di acquisto)
|
// 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);
|
bool check_causale(const TString& cod_caus, const TString& tipo_doc, bool acq = true);
|
||||||
void run_cont_ini(bool liq);
|
void run_cont_ini(bool liq);
|
||||||
#endif
|
#endif
|
Loading…
x
Reference in New Issue
Block a user