Files correlati : pr0.exe pr1.exe pr1500a.msk Ricompilazione Demo : [ ] Commento : bug 0000137 Implementare la gestione multilingua git-svn-id: svn://10.65.10.50/trunk@12099 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			134 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| // Programma di gestione agenti
 | |
| 
 | |
| #include <relapp.h>
 | |
| 
 | |
| #include "pr0.h"
 | |
| #include "pr0500a.h"
 | |
| 
 | |
| #include "agenti.h"
 | |
| 
 | |
| class TGestione_agenti_app:public TRelation_application
 | |
| {
 | |
|   TMask     *_msk;
 | |
|   TRelation *_rel;
 | |
|   
 | |
| protected:
 | |
|   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; }
 | |
|   static bool percfat_handler(TMask_field& f, KEY k);
 | |
|   static bool codcapo_handler(TMask_field& f, KEY k);
 | |
|   static bool seqalt_handler(TMask_field& f, KEY k);
 | |
|   static bool codalt_handler(TMask_field& f, KEY k);
 | |
| public:
 | |
|   // @cmember Disabilita la verifica del modulo in chiave
 | |
|   virtual bool check_autorization() const 
 | |
|   {return FALSE;}
 | |
|   TGestione_agenti_app()  {};
 | |
|   ~TGestione_agenti_app() {};  
 | |
| };
 | |
| 
 | |
| static inline TGestione_agenti_app& app() { return (TGestione_agenti_app&) main_app(); }
 | |
| 
 | |
| bool TGestione_agenti_app::percfat_handler(TMask_field& f, KEY k)
 | |
| {
 | |
|   if (f.to_check(k,TRUE))
 | |
|   {
 | |
|     const real p = CENTO - real(f.get());
 | |
|     f.mask().set(F_PERCPAG,p);
 | |
|   }
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| bool TGestione_agenti_app::codcapo_handler(TMask_field& f, KEY k)
 | |
| {
 | |
|   if (f.to_check(k) && k == K_ENTER) // Solo prima che prema il pulsante di registrazione
 | |
|   {
 | |
|     TLocalisamfile agenti(LF_AGENTI);
 | |
|     TRecfield agente(agenti.curr(),AGE_CODAGE);
 | |
|     TRecfield capo(agenti.curr(),AGE_CODCAPO);
 | |
|     const TString& ag = f.mask().get(F_CODAGE);
 | |
|     TString ca = f.get();
 | |
|     agente = ca;
 | |
|     while (agenti.read() == NOERR)
 | |
|     {
 | |
|       ca = capo;
 | |
|       if (ca == ag)
 | |
|         break;
 | |
|       if (ca.empty())
 | |
|         break;
 | |
|       agente = ca;
 | |
|     }
 | |
|     if (agenti.good() && ca == ag)
 | |
|       return f.error_box(TR("Il codice del capozona inserito non e' valido, in quanto e' stato rilevato nella catena un codice capozona corrispondente al presente codice agente."));
 | |
|   }
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| bool TGestione_agenti_app::seqalt_handler(TMask_field& f, KEY k)
 | |
| {
 | |
|   if (f.to_check(k) && k == K_ENTER) // Solo prima che prema il pulsante di registrazione
 | |
|   {
 | |
|     if (f.get() == "A")
 | |
|     {
 | |
|       TMask& m = f.mask();
 | |
|       if (m.get(F_SEQRIC1) == "A" || m.get(F_SEQRIC2) == "A" ||
 | |
|           m.get(F_SEQRIC3) == "A" || m.get(F_SEQRIC4) == "A")
 | |
|         return f.error_box(TR("La percentuale definita nell'agente non puo' essere usata nella indicazione "
 | |
|                            "di percentuale aggiuntiva se gia' utilizzata nella sequenza di ricerca della percentuale di provvigione"));
 | |
|     }
 | |
|   }
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| bool TGestione_agenti_app::codalt_handler(TMask_field& f, KEY k)
 | |
| {
 | |
|   if (f.to_check(k) && k == K_ENTER) // Solo prima che prema il pulsante di registrazione
 | |
|   {
 | |
|     TString16 cod = f.get();
 | |
|     if (cod.not_empty())
 | |
|     {
 | |
|       TMask& m = f.mask();
 | |
|       if (m.get(F_CODRICPR1) == cod || m.get(F_CODRICPR2) == cod ||
 | |
|           m.get(F_CODRICPR3) == cod || m.get(F_CODRICPR4) == cod)
 | |
|         return f.error_box(FR("L'archivio provvigioni %s definito nella indicazione di percentuale aggiuntiva non puo' essere utilizzato "
 | |
|                            "se gia' impostato nella sequenza di ricerca della percentuale di provvigione"), (const char*)cod);
 | |
|      }
 | |
|   }
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| bool TGestione_agenti_app::user_create()
 | |
| {
 | |
| 	open_files(LF_AGENTI, LF_PROVV, LF_PERCPROV, 0);
 | |
|   _msk = new TMask("pr0500a") ;
 | |
|   _rel = new TRelation(LF_AGENTI);
 | |
|   _msk->set_handler(F_CODCAPO,codcapo_handler);
 | |
|   _msk->set_handler(F_SEQALT1,seqalt_handler);
 | |
|   _msk->set_handler(F_SEQALT2,seqalt_handler);
 | |
|   _msk->set_handler(F_SEQALT3,seqalt_handler);
 | |
|   _msk->set_handler(F_SEQALT4,seqalt_handler);
 | |
|   _msk->set_handler(F_CODALTPR1,codalt_handler);
 | |
|   _msk->set_handler(F_CODALTPR2,codalt_handler);
 | |
|   _msk->set_handler(F_CODALTPR3,codalt_handler);
 | |
|   _msk->set_handler(F_CODALTPR4,codalt_handler);
 | |
|   _msk->set_handler(F_PERCFATT,percfat_handler);
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| bool TGestione_agenti_app::user_destroy()
 | |
| {
 | |
|   delete _msk;
 | |
|   delete _rel;
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| int pr0500(int argc, char** argv)
 | |
| {
 | |
|   TGestione_agenti_app a;
 | |
|   a.run(argc,argv, TR("Gestione agenti"));
 | |
|   return 0;
 | |
| }
 |