Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione P@rtners 2.0 patch 349 git-svn-id: svn://10.65.10.50/trunk@10573 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			131 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #include <relapp.h>
 | |
| 
 | |
| #include "ba4.h"
 | |
| #include "ba4600.h"
 | |
| 
 | |
| class TSoci_application : public TRelation_application
 | |
| {
 | |
|   TMask* _msk;
 | |
|   TRelation* _rel;
 | |
| 
 | |
|   virtual bool user_create() ;                         
 | |
|   virtual bool user_destroy() ;                        
 | |
|   virtual TMask* get_mask(int mode) { return _msk;}
 | |
|   virtual bool changing_mask(int mode) { return FALSE;}
 | |
|   virtual TRelation* get_relation() const { return _rel;}
 | |
| 
 | |
| public:
 | |
|   TSoci_application() {}
 | |
|   virtual ~TSoci_application() {}
 | |
|   virtual void init_query_mode(TMask& m) ;
 | |
|   virtual void init_query_insert_mode(TMask& m) ;
 | |
|   virtual void init_modify_mode(TMask& m) ;
 | |
|   virtual void init_insert_mode(TMask& m) { init_modify_mode(m) ; }
 | |
|   virtual int rewrite(const TMask& m);
 | |
|   virtual int write(const TMask& m);
 | |
|   virtual bool remove();
 | |
|   virtual void update_ap_socio(const TMask& m);
 | |
| };
 | |
| 
 | |
| void TSoci_application::init_query_mode(TMask& m)
 | |
| {
 | |
|   m.show(FLD_SC1_CODANAGRSOH);
 | |
|   m.hide(FLD_SC1_CODANAGRSO);
 | |
|   m.set(FLD_SC1_CODANAGR_ANAGR_RAGSOC, "");
 | |
|   m.enable(FLD_SC1_CODANAGR_ANAGR_RAGSOC);
 | |
|   set_search_field(FLD_SC1_CODANAGRSOH);
 | |
| }
 | |
| 
 | |
| 
 | |
| void TSoci_application::init_query_insert_mode(TMask& m)
 | |
| {
 | |
|   m.show(FLD_SC1_CODANAGRSO);
 | |
|   m.hide(FLD_SC1_CODANAGRSOH);
 | |
|   m.set(FLD_SC1_CODANAGR_ANAGR_RAGSOC, "");
 | |
|   set_search_field(FLD_SC1_CODANAGRSO);
 | |
| }
 | |
| 
 | |
| void TSoci_application::init_modify_mode(TMask& m)
 | |
| {
 | |
|   m.disable(FLD_SC1_CODANAGR_ANAGR_RAGSOC);
 | |
| }
 | |
| 
 | |
| void TSoci_application::update_ap_socio(const TMask& m)
 | |
| {
 | |
|   int err = NOERR;
 | |
|   const char ap = (m.get(FLD_SC1_ANNO)[0] == 'A') ? 'P' : 'A';
 | |
| 
 | |
|   if (yesno_box(FR("Aggiornare il socio anche per l' anno %s?"), ap == 'A' ? TR("in corso") : TR("precedente")))
 | |
|   {
 | |
|     _rel->save_status();
 | |
|     m.autosave(*_rel);
 | |
|     _rel->lfile().put("ATTPREC", ap);
 | |
|     const bool was =_rel->read(_isequal, _lock) == NOERR;
 | |
|     m.autosave(*_rel);
 | |
|     _rel->lfile().put("ATTPREC", ap);
 | |
|     if (was) err = _rel->rewrite();
 | |
|     else err = _rel->write();
 | |
|     if (err != NOERR)
 | |
|       error_box(FR("Aggiornamento socio anno %s - Errore : %d"), ap == 'A' ? TR("in corso") : TR("precedente"), err); 
 | |
|     _rel->restore_status();
 | |
|   }               
 | |
| }
 | |
| 
 | |
| int TSoci_application::write(const TMask& m)
 | |
| {
 | |
|   const int err = TRelation_application::write(m);
 | |
|   if (err == NOERR)
 | |
|     update_ap_socio(m);
 | |
|   return err;
 | |
| }
 | |
| 
 | |
| int TSoci_application::rewrite(const TMask& m)
 | |
| {
 | |
|   const int err = TRelation_application::rewrite(m);
 | |
|   if (err == NOERR)
 | |
|     update_ap_socio(m);
 | |
|   return err;
 | |
| }
 | |
| 
 | |
| bool TSoci_application::remove()
 | |
| {          
 | |
|   const char ap = (curr_mask().get(FLD_SC1_ANNO)[0] == 'A') ? 'P' : 'A';
 | |
| 
 | |
|   if (yesno_box(FR("Cancellare il socio anche per l' anno %s?"), ap == 'A' ? TR("in corso") : TR("precedente")))
 | |
|   {
 | |
|     _rel->save_status();
 | |
|     _rel->lfile().put("ATTPREC", ap);
 | |
|     if (_rel->read(_isequal, _lock) == NOERR)
 | |
|     {
 | |
|       const int err = _rel->remove();
 | |
|       if (err != NOERR)
 | |
|         error_box(FR("Cancellazione socio anno %s - Errore : %d"), ap == 'A' ? TR("in corso") : TR("precedente"), err); 
 | |
|     }
 | |
|     _rel->restore_status();
 | |
|   }
 | |
|   return TRelation_application::remove();
 | |
| }
 | |
| 
 | |
| bool TSoci_application::user_create() 
 | |
| {
 | |
|   open_files(LF_SOCI, LF_ANAG, LF_NDITTE, 0) ;
 | |
| 	_rel = new TRelation(LF_SOCI) ;
 | |
|   _msk = new TMask("ba4600a") ;
 | |
|   set_search_field(FLD_SC1_CODANAGRSOH);
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| bool TSoci_application::user_destroy() 
 | |
| {
 | |
|   delete _msk;
 | |
|   delete _rel;
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| int ba4600(int argc, char* argv[])
 | |
| {
 | |
|   TSoci_application a;
 | |
|   a.run(argc, argv, TR("Anagrafica Soci"));
 | |
|   return 0;
 | |
| }
 |