campo-sirio/ci/cilib.h
guy 1b64d55829 Nuova rilevazione ore
git-svn-id: svn://10.65.10.50/branches/R_10_00@22882 c028cbd2-c16b-5b4b-a496-9718f37d4682
2013-07-26 15:43:33 +00:00

271 lines
9.6 KiB
C++
Executable File

#ifndef __CILIB_H
#define __CILIB_H
#ifndef __AUTOMASK_H
#include <automask.h>
#endif
#ifndef __VELIB_H
#include <../ve/velib.h>
#endif
#ifndef __TABMOD_H
#include <tabmod.h>
#endif
///////////////////////////////////////////////////////////
// TAlmanac_field
///////////////////////////////////////////////////////////
// @doc EXTERNAL
// @class TAlmanac_field | Windowed Field per la gestione di un calendario
//
// @base public | TWindowed_field
class TAlmanac_field : public TWindowed_field
{
// @author:(INTERNAL) Brugno
// @access Protected Member
// @cmember:(INTERNAL) Parametro di visualizzazione: Separazione tra le celle del calenbdario
int _padding;
// @cmember:(INTERNAL) Parametro di visualizzazione: flag di visulizzazione del nome del mese
bool _showmonthname;
// @access Protected Member
// @cmember:(INTERNAL) Variabile interna: Data correntemente selezionato nel calendario
TDate _selecteddate;
TDate _dateinsert;
TField_window * _image;
// @access Protected Member
protected:
// override da TWindowed_field
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
void adjust_selected_day();
// @access Public Member
public:
// @cmember Gestione del giorno correntemente selezionato: restituisce la data selezionata
const TDate& selected_date() const { return _selecteddate; }
// @cmember Gestione del giorno correntemente selezionato: restituisce il giorno selezionato
int selected_day() { return _selecteddate.day(); }
// @cmember Gestione del giorno correntemente selezionato: restituisce il giorno selezionato
int selected_month() { return _selecteddate.month(); }
// @cmember Gestione del giorno correntemente selezionato: restituisce true se il giorno selezionato è uguale al parametro
bool is_selected(int tday) { return (tday==selected_day()); }
// @cmember Gestione del giorno correntemente selezionato: setta il giorno selezionato al valore specificato
void set_selected_day(int nday);
// @cmember Gestione del giorno correntemente selezionato: avanza il giorno selezionato del valore relativo specificato
void move_selected_day(int ddays);
// @cmember Gestione del giorno correntemente selezionato: setta il mese selezionato al valore specificato
void set_selected_month(int nmonth);
// @cmember Gestione del giorno correntemente selezionato: avanza il mese selezionato del valore relativo specificato
void move_selected_month(int dmonths);
// @cmember Gestione del giorno correntemente selezionato: restituisce l'anno selezionato
int selected_year() { return _selecteddate.year(); }
// @cmember Gestione del giorno correntemente selezionato: setta l'anno selezionato al valore specificato
void set_selected_year(int nyear);
// @cmember Gestione del giorno correntemente selezionato: setta il giorno selezionato
void set_selected_date(const TDate& sdate) { _selecteddate = sdate; }
void force_update(bool update_image = false);
// @access Public Member
public:
// @cmember Gestione dei parametri di visulizzazione: setta il flag di visulizzazione dei mesi
void set_show_month_name(bool on = true) { _showmonthname = on; }
// @cmember Gestione dei parametri di visulizzazione: setta lo spazio fra le celle del calendario
void set_padding(int p) { _padding = p; }
// @cmember Gestione dei parametri di visulizzazione: ritorna il flag di visulizzazione dei mesi
bool show_month_name() const { return _showmonthname; }
// @cmember Gestione dei parametri di visulizzazione: ritorna lo spazio fra le celle del calendario
int padding() const { return _padding; }
// @access Public Member
public:
bool is_date_void(int currpage, const TDate& cdate);
// @cmember Gestione selezione: Setta la prima data dell'anno con l'inserimento attivo
void set_insert_date(const TDate & d) { _dateinsert = d; }
bool can_insert(const TDate &d) const { return d >= _dateinsert; }
void create(short id, const RCT& rct, WINDOW parent); // Internal use only
// @access Public Member
public:
// @cmember Costruttore
TAlmanac_field(TMask* m) : TWindowed_field(m),_showmonthname(true), _selecteddate(TODAY), _dateinsert(botime), _padding(2), _image(NULL) {}
// @cmember Distruttore
virtual ~TAlmanac_field() { }
};
///////////////////////////////////////////////////////////
// TAlmanac_mask
///////////////////////////////////////////////////////////
// @doc EXTERNAL
// @class TAlmanac_mask | Maschera generica per la gestione di un calendario
//
// @base public | TAutomask
class TAlmanac_mask : public TAutomask
{
// @author:(INTERNAL) Brugno
// @cmember:(INTERNAL) Puntatori ai campi calendario
TPointer_array _almanacs;
// @access Protected Member
protected:
// override da TAutomask
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
virtual void set_focus();
// @access Public Member
public:
// shortcut per l'accesso all'almanacco della pagina corrente
TAlmanac_field& almanac(byte page = -1) const ;
// override da TAutomask
virtual TMask_field* parse_field(TScanner& scanner);
// @cmember Gestione calendari: Attiva l'almanacco sulla pagina specificata per la data specificata
int activate_almanac(short id, const char* title);
// @cmember Gestione calendari: Cambia l'anno su tutti i calendari
void set_year(int newyear);
// @cmember Gestione calendari: Ritorna il giorno selezionato nella pagina corrente
const TDate& selected_day() const;
// @cmember Gestione eventi calendario: Controlla la presenza di documenti nella data attiva
virtual bool is_date_void(int currpage, const TDate& cdate);
// @cmember Gestione eventi calendario: Controlla la presenza di documenti nella data attiva
virtual void change_year(int newyear);
// @cmember Chiama la maschera o lo sheet legato al gioro selezionato
virtual void open_day_mask(const TDate & date = botime) { }
// @cmember Costruttore
TAlmanac_mask(const char * name);
// @cmember Distruttore
virtual ~TAlmanac_mask() { }
};
////////////////////////////
//// TRISOATT_KEY ////
////////////////////////////
//Classe TRisoatt_key
class TRisoatt_key : public TString80
{
public:
TRisoatt_key & operator =(const TRisoatt_key& roakey) { return *this; }
const TString& codlist() const;
const char tipo() const;
const TString& cod() const;
const int anno() const;
const TString& mese() const;
const TString& giorno() const;
const TString& tpora() const;
const TString& data() const;
//costruttore
TRisoatt_key(const char* codlist, const char risoatt, const char* codice, const int anno, const char* mese, const char * giorno, const char* tpora);
TRisoatt_key(const char* codlist, const char risoatt, const char* codice, const TDate & data, const char* tpora);
TRisoatt_key(const char* roakey);
};
////////////////////////
//// TRISOATT ////
////////////////////////
//Classe TRisoatt
class TRisoatt : public TRectype
{
private:
bool read(const TRisoatt_key& chiave);
public:
TRisoatt & operator =(const TRisoatt& ris) { return *this; }
const TString& chiave() const;
const TString& descr() const;
const real valuni() const;
const real valunipr() const;
//costruttore
TRisoatt(const TRectype& r);
TRisoatt(const TRisoatt_key& chiave);
virtual ~TRisoatt() {}
};
////////////////////////
//// TRISOATT ////
////////////////////////
//Classe TRisoatt
class TDisp_risoatt : public TRectype
{
public:
TDisp_risoatt & operator =(const TDisp_risoatt& ris) { return *this; }
const TString& chiave() const;
const long id() const;
const real ore_prev() const;
const real ore_cons() const;
void set_id(long id);
//costruttore
TDisp_risoatt(const TRectype& r);
virtual ~TDisp_risoatt() {}
};
////////////////////////////////
//// TRILEVAMENTO_ORE ////
////////////////////////////////
//Classe TRilevamento_ore
class TRilevamento_ore : public TRectype
{
private:
public:
int read(const char tipo, const long id, TReclock lock = _nolock);
int read(const char tipo, const TDate & giorno, const char tipora, const char* codice, const char* tpora, const char* codcosto, const char* codcms, const char* codfase, TReclock lock = _nolock);
int remove();
void update_id();
int write_rewrite();
int rewrite_write();
const TRilevamento_ore & operator =(const TRilevamento_ore & rilore) { TRectype::operator =(rilore); return *this; }
TRilevamento_ore(const TRectype& rec);
TRilevamento_ore(const TRilevamento_ore& rilore);
TRilevamento_ore(const char tipo, const long id);
TRilevamento_ore(const char tipo, const TDate & giorno, const char tipora, const char* codice, const char* tpora, const char* codcosto, const char* codcms, const char* codfase);
TRilevamento_ore();
};
///////////////////////////
//// TDoc_cache ////
///////////////////////////
long date2ndoc(const TDate& data);
//classe TDoc_cache
class TDoc_cache : public TCache
{
protected:
virtual void discarding(const THash_object* obj);
virtual TObject* key2obj(const char* key);
public:
TDocumento& doc(const TDoc_key& kdoc);
TDocumento& doc(const TRectype& rec) { return doc(TDoc_key(rec)); }
TDocumento& new_doc(TDoc_key& kdoc);
TDocumento& new_doc(const TRectype& rec) { return new_doc(TDoc_key(rec)); }
TDoc_cache() : TCache(1883) {}
};
#endif