campo-sirio/ca/ca0700.cpp
luca 962492b999 Patch level :10.0 324
Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
gestione intelligente dei moduli CA-CM in base all'autorizzazione sulla chiave


git-svn-id: svn://10.65.10.50/trunk@18963 c028cbd2-c16b-5b4b-a496-9718f37d4682
2009-05-29 13:04:17 +00:00

77 lines
1.9 KiB
C++
Executable File

// gestione files Contabilita' Analitica: FASI
#include <execp.h>
#include <relapp.h>
#include "calib01.h"
#include "calibmsk.h"
#include "ca0700a.h"
////////////////////////////////////////////////////////////////////////
//MASCHERA
////////////////////////////////////////////////////////////////////////
class TFsc_anal_msk : public TSimple_anal_msk
{
protected:
virtual int get_logicnum() const { return LF_FASI; }
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TFsc_anal_msk() { read("ca0700a"); }
};
bool TFsc_anal_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
const short id = o.dlg();
if (id > F_KEY4 && id <= F_KEY4+4)
{
const int level = id - F_KEY4 - 1;
return ca_test_multilevel_field(efield(id), level);
}
return TSimple_anal_msk::on_field_event(o, e, jolly);
}
////////////////////////////////////////////////////////////////////////
//APPLICAZIONE
////////////////////////////////////////////////////////////////////////
// applicazione per la gestione delle fasi
class TFsc_app : public TAnal_app
{
bool _has_filter;
protected:
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
virtual bool filtered() const;
virtual TSimple_anal_msk* create_mask() const { return new TFsc_anal_msk; }
virtual bool user_create();
};
bool TFsc_app::filtered() const
{
if (_has_filter)
return true;
return TAnal_app::filtered();
}
bool TFsc_app::user_create()
{
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_FASI);
if (mci.levels() <= 0)
return error_box(TR("Le fasi non sono state configurate"));
//eventuali filtri per utente
_has_filter = cache().get("%AUC", user(), "S0").full();
return TAnal_app::user_create();
}
int ca0700(int argc, char* argv[])
{
TFsc_app a;
a.run(argc, argv, TR("Fasi"));
return 0;
}