Files correlati : lv2.exe Ricompilazione Demo : [ ] Commento : Fatturazione 02 e velocizzazione calcolo consegnato mensile git-svn-id: svn://10.65.10.50/trunk@19909 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			199 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			199 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <confapp.h>
 | 
						|
#include <modaut.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);
 | 
						|
		const bool l2 = has_module(L2AUT);
 | 
						|
 | 
						|
		if (!l2)
 | 
						|
			_mask->hide(-1);
 | 
						|
	}
 | 
						|
	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;
 | 
						|
} |