Files correlati : Ricompilazione Demo : [ ] Commento : Eliminati include inutili git-svn-id: svn://10.65.10.50/trunk@18504 c028cbd2-c16b-5b4b-a496-9718f37d4682
192 lines
4.2 KiB
C++
Executable File
192 lines
4.2 KiB
C++
Executable File
#include <confapp.h>
|
|
|
|
#include "lvlib.h"
|
|
#include "../ci/cilib.h"
|
|
|
|
#include "lv0300a.h"
|
|
|
|
class TConf_lavanderie_mask : public TAlmanac_mask
|
|
{
|
|
TLavanderie_calendar _cal; // array di TBit_array. Ognuno di essi č lungo 366 e rappresenta i flag di presenza documenti per ogni giorno dell'anno. Ogni page della maschera ha bisogno di un bitarray diverso
|
|
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
// ereditato da TAlmanac_mask
|
|
virtual bool is_date_void(int currpage, const TDate& cdate);
|
|
virtual void change_year(int newyear);
|
|
const TLavanderie_calendar & calendario() const { return _cal; }
|
|
|
|
// metodi di accesso
|
|
void update_current_calendar(int year);
|
|
|
|
// apertura del foglio interno di gestione dei documenti
|
|
virtual void open_day_mask(const TDate & date);
|
|
|
|
// Costruttore
|
|
TConf_lavanderie_mask(const char* name);
|
|
// Distruttore
|
|
~TConf_lavanderie_mask() { }
|
|
};
|
|
|
|
bool TConf_lavanderie_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
switch (o.dlg())
|
|
{
|
|
case DLG_OK:
|
|
default:
|
|
TAlmanac_mask::on_field_event(o, e, jolly);
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool TConf_lavanderie_mask::is_date_void(int currpage, const TDate& cdate)
|
|
{
|
|
return _cal.is_holiday(cdate);
|
|
}
|
|
|
|
void TConf_lavanderie_mask::change_year(int newyear)
|
|
{
|
|
_cal.write();
|
|
_cal.read(newyear);
|
|
}
|
|
|
|
void TConf_lavanderie_mask::open_day_mask(const TDate & date)
|
|
{
|
|
TDate d(date);
|
|
|
|
if (!d.ok())
|
|
d = almanac().selected_date();
|
|
const bool holiday = _cal.is_holiday(d) ? false : true;
|
|
|
|
_cal.set_holiday(d, holiday);
|
|
almanac().force_update();
|
|
}
|
|
|
|
void TConf_lavanderie_mask::update_current_calendar(int year)
|
|
{
|
|
change_year(year);
|
|
}
|
|
|
|
TConf_lavanderie_mask::TConf_lavanderie_mask(const char* name)
|
|
: TAlmanac_mask(name), _cal(TDate(TODAY).year())
|
|
{
|
|
activate_almanac(F_ALMANAC, "");
|
|
_cal.read();
|
|
}
|
|
|
|
class TConf_Lavanderie : public TConfig_application
|
|
{
|
|
TConf_lavanderie_mask * _mask;
|
|
|
|
protected:
|
|
virtual void load_mask();
|
|
virtual TMask* get_mask() {return _mask;}
|
|
virtual TMask* create_mask(const TFilename & f);
|
|
virtual void save_mask(bool tosave) ;
|
|
virtual bool user_create( );
|
|
|
|
public:
|
|
TConf_Lavanderie() : TConfig_application( CONFIG_DITTA ), _mask(NULL) {}
|
|
virtual ~TConf_Lavanderie( ){ }
|
|
};
|
|
|
|
TMask* TConf_Lavanderie::create_mask(const TFilename & f)
|
|
{
|
|
if (_mask == NULL)
|
|
_mask = new TConf_lavanderie_mask(f);
|
|
return _mask;
|
|
}
|
|
|
|
bool TConf_Lavanderie::user_create( )
|
|
{
|
|
TConfig conf(CONFIG_DITTA );
|
|
conf.set( "EdMask", "lv0300a", "lv" );
|
|
return true;
|
|
}
|
|
|
|
void TConf_Lavanderie::load_mask()
|
|
{
|
|
TMask* m = get_mask();
|
|
if (m != NULL)
|
|
{
|
|
TConfig_application::load_mask();
|
|
FOR_EACH_MASK_SHEET((*m), i, s)
|
|
{
|
|
s->destroy();
|
|
TMask& sm=s->sheet_mask();
|
|
|
|
bool found=true;
|
|
for (int r=0; found ;r++)
|
|
{
|
|
FOR_EACH_MASK_FIELD(sm,j,f)
|
|
{
|
|
const TFieldref* fr=f->field();
|
|
if(fr!=NULL)
|
|
{
|
|
const TString& value=get_config()->get(fr->name(),NULL,r);
|
|
if (value.empty() && f->dlg()==101 )
|
|
{
|
|
found=false;
|
|
break;
|
|
}
|
|
s->row(r).add(value,s->cid2index(f->dlg()));
|
|
}
|
|
}
|
|
if (found)
|
|
s->check_row(r, 1);
|
|
}
|
|
s->force_update();
|
|
}
|
|
}
|
|
}
|
|
|
|
void TConf_Lavanderie::save_mask(bool tosave)
|
|
{
|
|
TConfig* cnf = get_config();
|
|
if (!tosave || cnf == NULL)
|
|
return;
|
|
|
|
TConfig_application::save_mask(tosave);
|
|
|
|
TAssoc_array& v = cnf->list_variables("lv");
|
|
FOR_EACH_ASSOC_STRING(v, h, k, str)
|
|
{
|
|
const TFixed_string name = k;
|
|
if (name.find('(') > 0 && !name.starts_with("CAL"))
|
|
v.remove(name);
|
|
}
|
|
|
|
TConf_lavanderie_mask & m = (TConf_lavanderie_mask &) *get_mask();
|
|
|
|
FOR_EACH_MASK_SHEET(m, i, s)
|
|
{
|
|
TMask& sm=s->sheet_mask();
|
|
FOR_EACH_SHEET_ROW(*s,j,row)
|
|
{
|
|
FOR_EACH_MASK_FIELD(sm,k,f)
|
|
{
|
|
const TFieldref* fr = f->field();
|
|
if (fr!=NULL)
|
|
{
|
|
const char* value=row->get(s->cid2index(f->dlg()));
|
|
cnf->set(fr->name(),value, NULL,true,j);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
cnf->set_paragraph("");
|
|
m.calendario().write();
|
|
cnf->set_paragraph("lv");
|
|
}
|
|
|
|
int lv0300(int argc, char* argv[])
|
|
{
|
|
TConf_Lavanderie appc;
|
|
appc.run(argc, argv, TR("Parametri Lavanderie industriali"));
|
|
return 0;
|
|
} |