Files correlati : cg0.exe Ricompilazione Demo : [ ] Commento : Bug 0001785: Anagrafica clienti (cg0) Abilitare i campi data di nascita comune di nascita e stao di nascita anche per i clienti Bug 0001790: Programma di gestione occasionali Aggiungere questo programma con i campi del file occasionali. git-svn-id: svn://10.65.10.50/branches/R_10_00@21774 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			105 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <recarray.h>
 | 
						|
#include <relapp.h>
 | 
						|
 | 
						|
#include "cg0.h"
 | 
						|
#include "cg0700a.h"
 | 
						|
 | 
						|
#include <pconti.h>
 | 
						|
#include <saldi.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <validate.h>
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
// TCheck_PIVA_mask
 | 
						|
///////////////////////////////////////////////////////////
 | 
						|
 | 
						|
class TOccas_mask : public TAutomask
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
 | 
						|
public:
 | 
						|
  TOccas_mask() : TAutomask("cg0700a") { }
 | 
						|
};
 | 
						|
bool TOccas_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
						|
{
 | 
						|
  switch (o.dlg())
 | 
						|
  {
 | 
						|
  case O_COFI:
 | 
						|
    if (e == fe_modify)
 | 
						|
    {
 | 
						|
			TMask& m = o.mask();
 | 
						|
	    TString16 cofi = m.get(O_COFI);
 | 
						|
			if (cofi.blank())
 | 
						|
				cofi = m.get(O_CODICE);
 | 
						|
 | 
						|
			if (cf_check(m.get(O_STATONAS), cofi))
 | 
						|
			{
 | 
						|
				int giorno = atoi(cofi.mid(9,2));
 | 
						|
				m.set(O_SESSO, giorno > 40 ? "F" : "M");
 | 
						|
 | 
						|
				if (m.field(O_COMUNENAS).empty())
 | 
						|
					m.set(O_COMUNENAS, cofi.mid(11,4), 0x2);
 | 
						|
 | 
						|
				if (m.field(O_DATANAS).empty())
 | 
						|
				{
 | 
						|
					const TFixed_string mesi("ABCDEHLMPRST");
 | 
						|
					const int mese = mesi.find(cofi[8])+1;
 | 
						|
					int anno = atoi(cofi.mid(6,2));
 | 
						|
					if (giorno > 0 && mese > 0 && anno > 0)
 | 
						|
					{
 | 
						|
						giorno %= 40;
 | 
						|
						anno += anno < 5 ? 2000 : 1900;
 | 
						|
						m.set(O_DATANAS, TDate(giorno, mese, anno));
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
    }
 | 
						|
	  break;
 | 
						|
  default: break;
 | 
						|
  }
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
class TOccasionali_app : public TRelation_application
 | 
						|
{
 | 
						|
  TOccas_mask * _msk;
 | 
						|
  TRelation *_rel;
 | 
						|
 | 
						|
  bool user_create();
 | 
						|
  bool user_destroy();
 | 
						|
  virtual TMask* get_mask(int mode) {return _msk;}
 | 
						|
  virtual bool changing_mask(int mode) {return FALSE;}
 | 
						|
 | 
						|
public:
 | 
						|
  // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
 | 
						|
  virtual bool check_autorization() const { return false; }
 | 
						|
  virtual TRelation* get_relation() const {return _rel;}
 | 
						|
};
 | 
						|
 | 
						|
HIDDEN inline TOccasionali_app& app() { return (TOccasionali_app&) main_app();}
 | 
						|
 | 
						|
bool TOccasionali_app::user_create()
 | 
						|
{
 | 
						|
  open_files(LF_OCCAS, 0);
 | 
						|
 | 
						|
	_rel = new TRelation(LF_OCCAS);
 | 
						|
  _msk = new TOccas_mask() ;
 | 
						|
	
 | 
						|
	return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TOccasionali_app::user_destroy()
 | 
						|
{
 | 
						|
	delete _rel;
 | 
						|
  delete _msk;
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
int cg0700(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TOccasionali_app a ;
 | 
						|
  a.run(argc, argv, TR("Clienti/Fornitori Occasionali"));
 | 
						|
  return 0;
 | 
						|
}
 |