Patch level : 12.0 768
Files correlati : cg2100 Commento : - Aggiunta chiusura automatica maschera fppro - Disattivata multiselezione fattura dallo sheet dell fppro
This commit is contained in:
parent
02dfce1628
commit
0aa4b26fb2
@ -123,7 +123,7 @@ TMask* TPrimanota_application::load_mask(int n)
|
||||
ism.set_handler(309, sheet_clifo_handler);
|
||||
ism.set_handler(CG_RATEO, sheet_rateo_handler);
|
||||
ism.set_handler(CG_RISCONTO, sheet_risconto_handler);
|
||||
if (!(fexist("fp0.exe") && !fp_settings().get_db_indirizzo().empty() && !fp_settings().is_f8()))
|
||||
if (!is_fp())
|
||||
m->hide(F_PROTFPPRO);
|
||||
else
|
||||
{
|
||||
|
@ -3451,38 +3451,6 @@ bool TPrimanota_application::protiva_handler(TMask_field& f, KEY key)
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||
{
|
||||
if (!is_fp() || key != K_SPACE && key != K_TAB)
|
||||
return true;
|
||||
|
||||
TMask& cg_msk = f.mask();
|
||||
TMask* msk = new TMask("cg2fppro");
|
||||
msk->set_handler(DLG_CONFIG, fppro_handler);
|
||||
msk->set_handler(DLG_LINK, fppro_ok_handler);
|
||||
msk->set(F_CODCLIFORS, cg_msk.get(F_CODCLIFOR));
|
||||
msk->set(F_COFIS, cg_msk.get(F_COFI));
|
||||
msk->set(F_STATOPAIVS, cg_msk.get(F_STATOPAIV));
|
||||
msk->set(F_PIVAS, cg_msk.get(F_PIVA));
|
||||
|
||||
if(load_fppro_mask(msk))
|
||||
{
|
||||
msk->run();
|
||||
// Riporto dati FPPRO su maschera Prima Nota
|
||||
cg_msk.set(F_NUMDOCEXT, msk->get(F_NUMEROI));
|
||||
cg_msk.set(F_NUMDOC, TString(msk->get(F_NUMEROI)).right(7));
|
||||
cg_msk.set(F_DATADOC, msk->get(F_DATAI));
|
||||
cg_msk.set(F_TOTALE, msk->get(F_TOTDOCI));
|
||||
cg_msk.set(F_PROTFPPRO, msk->get(F_PROTFPPROI));
|
||||
cg_msk.set(F_PROKEY, msk->get(F_FPPROKEYSI));
|
||||
cg_msk.set(F_ANNORIF, cg_msk.get(F_ANNOIVA));
|
||||
}
|
||||
|
||||
delete msk;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Handler of the F_RITFIS
|
||||
// Certified 100%
|
||||
bool TPrimanota_application::ritfis_handler(TMask_field& f, KEY key)
|
||||
@ -3857,8 +3825,35 @@ bool TPrimanota_application::quadratura_handler(TMask_field& f, KEY key)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPrimanota_application::load_fppro_mask(TMask* msk, KEY k)
|
||||
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||
{
|
||||
if (!is_fp() || key != K_SPACE && key != K_TAB)
|
||||
return true;
|
||||
|
||||
TMask& cg_msk = f.mask();
|
||||
auto msk = std::make_shared<TPro_msk>(cg_msk);
|
||||
|
||||
//load_list(msk, key);
|
||||
//if(load_fppro_mask(msk))
|
||||
if (msk->load_fppro_mask(msk.get()))
|
||||
{
|
||||
msk->run();
|
||||
// Riporto dati FPPRO su maschera Prima Nota
|
||||
cg_msk.set(F_NUMDOCEXT, msk->get(F_NUMEROI));
|
||||
cg_msk.set(F_NUMDOC, TString(msk->get(F_NUMEROI)).right(7));
|
||||
cg_msk.set(F_DATADOC, msk->get(F_DATAI));
|
||||
cg_msk.set(F_TOTALE, msk->get(F_TOTDOCI));
|
||||
cg_msk.set(F_PROTFPPRO, msk->get(F_PROTFPPROI));
|
||||
cg_msk.set(F_PROKEY, msk->get(F_FPPROKEYSI));
|
||||
cg_msk.set(F_ANNORIF, cg_msk.get(F_ANNOIVA));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPro_msk::load_fppro_mask(TMask* msk, KEY k)
|
||||
{
|
||||
|
||||
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
||||
if (k != 32 || !is_fp())
|
||||
return false;
|
||||
@ -3932,14 +3927,14 @@ bool TPrimanota_application::load_fppro_mask(TMask* msk, KEY k)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPrimanota_application::fppro_handler(TMask_field& f, KEY k)
|
||||
bool TPro_msk::fppro_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask& msk = f.mask();
|
||||
const bool load = load_fppro_mask(&msk, k);
|
||||
return load;
|
||||
}
|
||||
|
||||
bool TPrimanota_application::fppro_ok_handler(TMask_field& f, KEY k)
|
||||
bool TPro_msk::fppro_ok_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k != 32)
|
||||
return true;
|
||||
@ -3969,10 +3964,48 @@ bool TPrimanota_application::fppro_ok_handler(TMask_field& f, KEY k)
|
||||
row->add("", 0);
|
||||
}
|
||||
sf.force_update();
|
||||
if(ok)
|
||||
message_box("Dati caricati.\nChiudere la maschera per tornare alla prima nota.");
|
||||
else
|
||||
if(!ok)
|
||||
message_box("Nessun documento selezionato.");
|
||||
//msk.stop_run(20334);
|
||||
msk.stop_run(20334);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
void TPro_msk::fppro_selfatt() const
|
||||
{
|
||||
const TMask& mask = *this;
|
||||
TSheet_field& sf = mask.sfield(F_SHEETFPPROS);
|
||||
sf.hide();
|
||||
FOR_EACH_SHEET_ROW(sf, nr, row)
|
||||
{
|
||||
if (*row->get(0) == 'X')
|
||||
row->add("", 0);
|
||||
}
|
||||
sf.force_update();
|
||||
sf.show();
|
||||
}
|
||||
|
||||
bool TPro_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
if (o.dlg() == F_SELFPPROS)
|
||||
{
|
||||
if(e == fe_modify)
|
||||
fppro_selfatt();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPro_msk::is_fp()
|
||||
{
|
||||
return fexist("fp0.exe") && !fp_settings().get_db_indirizzo().empty() && !fp_settings().is_f8();
|
||||
}
|
||||
|
||||
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(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));
|
||||
}
|
||||
|
@ -32,6 +32,10 @@
|
||||
#ifndef __CG2100_H
|
||||
#include "cg2100.h"
|
||||
#endif
|
||||
|
||||
#include <automask.h>
|
||||
|
||||
class TPro_msk;
|
||||
class TDati_mov_auto;
|
||||
|
||||
enum CGMaskType { _query = 0, _no_iva = 1, _iva = 2, _occas = 3};
|
||||
@ -172,11 +176,9 @@ class TPrimanota_application : public TRelation_application
|
||||
// Handlers per aggancio FPPRO
|
||||
// Bottone per maschera FPPRO
|
||||
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);
|
||||
|
||||
static void fppromask_set_handl(TMask* msk);
|
||||
static void load_list(TMask* msk, KEY k);
|
||||
|
||||
void reset_sheet_row(TSheet_field& s, int n);
|
||||
int crea_somma_spese(TImporto& imp);
|
||||
void update_saldo_riga(int r);
|
||||
@ -192,8 +194,6 @@ protected: // TApplication
|
||||
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);
|
||||
// Salvo dati fornitore e registrazione contabile sul db FPPRO
|
||||
int save_fppro() const;
|
||||
// Salva sul movimento il riferimento al documento in FPPRO
|
||||
@ -368,6 +368,25 @@ public:
|
||||
virtual ~TPrimanota_application() { }
|
||||
};
|
||||
|
||||
class TPro_msk : public TAutomask
|
||||
{
|
||||
TMask& _parent_mask;
|
||||
// Handlers per aggancio FPPRO
|
||||
// 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);
|
||||
// Non permette la selezione multipla
|
||||
void fppro_selfatt() const;
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||
public:
|
||||
static bool is_fp();
|
||||
// Carica documenti FPPRO sulla maschera
|
||||
static bool load_fppro_mask(TMask* msk, KEY k = 32);
|
||||
TPro_msk() = delete;
|
||||
TPro_msk(TMask& cg_msk);
|
||||
};
|
||||
|
||||
#ifndef __EXTRA__
|
||||
inline TPrimanota_application& app()
|
||||
{ return (TPrimanota_application&)main_app(); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user