Files correlati : ve6.exe Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 979 git-svn-id: svn://10.65.10.50/trunk@15623 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			325 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			325 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| // 771290.cpp - Quadro H
 | |
| #include <execp.h>
 | |
| #include <relapp.h>
 | |
| #include <tabutil.h>    
 | |
| 
 | |
| #include "771290.h"
 | |
| #include "771295.h"
 | |
| #include "77lib.h"  
 | |
| #include "774200.h"
 | |
| #include <nditte.h>
 | |
| 
 | |
| class TQuadro_H_app : public TRelation_application
 | |
| {
 | |
|   TRelation       * _rel;
 | |
|   TMask           * _msk; 
 | |
|   TRiporti        _rip;
 | |
|   
 | |
|   int     _mode;              // Modo maschera corrente
 | |
|   long    _codditta;
 | |
|   int     _anno;
 | |
|   TString _ente;
 | |
|   bool    _registra;   
 | |
|      
 | |
| protected:
 | |
|   virtual bool user_create();
 | |
|   virtual bool user_destroy();   
 | |
|   virtual int  rewrite(const TMask& m);
 | |
|   virtual int  write  (const TMask& m);  
 | |
|   virtual bool remove();
 | |
|   
 | |
|   virtual TRelation*   get_relation() const { return _rel; }
 | |
|   virtual TMask*       get_mask(int mode);
 | |
|   virtual bool         changing_mask(int mode) {return FALSE; }
 | |
|   
 | |
| //  void init_mask(TMask&);
 | |
|   virtual void init_query_mode(TMask&);
 | |
|   virtual void init_modify_mode(TMask&);
 | |
|   virtual void init_insert_mode(TMask&);
 | |
|   virtual void init_query_insert_mode(TMask&);
 | |
|   virtual void on_config_change();
 | |
|   
 | |
| public:
 | |
|   bool almeno_un_dettaglio(TMask&);
 | |
|   void refresh(TMask& m);
 | |
|   static bool generazione (TMask_field& f , KEY k);
 | |
|   static bool dettaglio   (TMask_field& f , KEY k);
 | |
|   static bool desc_ente   (TMask_field& f , KEY k);  
 | |
|   static bool codditta_hnd(TMask_field& f , KEY k);
 | |
|   TQuadro_H_app() {}
 | |
| };
 | |
| 
 | |
| 
 | |
| HIDDEN TQuadro_H_app& app() { return (TQuadro_H_app&) main_app(); }
 | |
|                                           
 | |
| bool TQuadro_H_app::codditta_hnd(TMask_field& f, KEY k)
 | |
| {
 | |
|   if (k == K_TAB && !(f.mask().is_running()) )
 | |
|   {
 | |
|     TString16 codditta; codditta << get_firm_770();
 | |
|     if (codditta != "0")        
 | |
|     {
 | |
|       f.set(codditta);
 | |
|       f.check();
 | |
|     }
 | |
|   }   
 | |
| 
 | |
|   return TRUE;                                           
 | |
| }         
 | |
|                                 
 | |
| void TQuadro_H_app::refresh(TMask& m)
 | |
| {
 | |
|   TEdit_field& datore = _msk->efield(F_DAT);
 | |
|   TEdit_field& lavora = _msk->efield(F_LAV);
 | |
|                       
 | |
|   //datore.check();
 | |
|   //lavora.check();                    
 | |
|   datore.autoload(*_rel);
 | |
|   lavora.autoload(*_rel);
 | |
| 
 | |
|   if (almeno_un_dettaglio(m))
 | |
|     m.enable (F_BTG_GENERA);
 | |
|   else
 | |
|     m.disable(F_BTG_GENERA);
 | |
|     
 | |
|   m.enable (F_BTG_DETTAGLIO);
 | |
| }
 | |
| 
 | |
| bool TQuadro_H_app::generazione(TMask_field& f , KEY k)
 | |
| {
 | |
|   if (k == K_SPACE) 
 | |
|   {
 | |
|     TString appname = "775 -1";
 | |
|     TToken_string body;
 | |
| 
 | |
|     body.add(app()._codditta);
 | |
|     body.add(app()._anno);
 | |
|     body.add(app()._ente);
 | |
|     
 | |
|     TMessage msg (appname,"",(const char*) body);
 | |
|     
 | |
|     TMailbox mb;
 | |
|     mb.send(msg);
 | |
|     
 | |
|     TLocalisamfile& quaH = app().get_relation()->lfile();
 | |
|                  
 | |
|     quaH.setkey(1);
 | |
|     quaH.zero();
 | |
|     quaH.put("CODDITTA", app()._codditta);
 | |
|     quaH.put("H1ANNO",   app()._anno);
 | |
|     quaH.put("H1ENTE",   app()._ente);                 
 | |
|     quaH.read(_isequal,_unlock);
 | |
|     TExternal_app a(appname);
 | |
|     a.run();
 | |
|     quaH.read(_iscurr,_lock);
 | |
|     f.mask().set_focus();
 | |
|     app().refresh(f.mask());
 | |
|   }               
 | |
|   
 | |
|   return TRUE;
 | |
| } 
 | |
|          
 | |
| bool TQuadro_H_app::dettaglio(TMask_field& f , KEY k)
 | |
| {
 | |
|   if (k == K_SPACE) 
 | |
|   {
 | |
|     TString appname = "771mod -4";
 | |
|     TToken_string body;
 | |
| 
 | |
|     body << F_DATAVERS << "|";
 | |
|     body << F_ANNO << "=" << f.mask().get(F_H1ANNO) << "|";
 | |
|     body << F_CODDITTA << "=" << f.mask().get(F_CODDITTA) << "|";
 | |
|     body << F_ENTE << "=" << f.mask().get(F_ENTE);
 | |
|     
 | |
|     TMessage msg (appname,MSG_FS,(const char*) body);
 | |
|     
 | |
|     TMailbox mb;
 | |
|     mb.send(msg);
 | |
|     
 | |
|     TLocalisamfile& quaH = app().get_relation()->lfile();
 | |
|                  
 | |
|     quaH.setkey(1);
 | |
|     quaH.zero();
 | |
|     quaH.put("CODDITTA", app()._codditta);
 | |
|     quaH.put("H1ANNO",   app()._anno);
 | |
|     quaH.put("H1ENTE",   app()._ente);                 
 | |
|     quaH.read(_isequal,_unlock);
 | |
|     TExternal_app a(appname);
 | |
|     a.run();
 | |
|     quaH.read(_iscurr,_lock);
 | |
|     f.mask().set_focus();
 | |
|     app().refresh(f.mask());
 | |
|   }               
 | |
|   
 | |
|   return TRUE;
 | |
| } 
 | |
|  
 | |
| bool TQuadro_H_app::desc_ente(TMask_field& f, KEY k)
 | |
| {
 | |
|   if (k == K_TAB && f.to_check(k) && f.mask().is_running())
 | |
|   { 
 | |
|     TTable ente ("%ENT");
 | |
|     TString descrizione;
 | |
|     
 | |
|     TString codice = f.get();
 | |
|     
 | |
|     ente.zero();
 | |
|     ente.put("CODTAB", codice);
 | |
|     if (ente.read() == NOERR)
 | |
|     {
 | |
|       descrizione = ente.get("S0");
 | |
|       f.mask().set(F_DESCENTE, descrizione);  
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       descrizione = "";
 | |
|       f.mask().set(F_DESCENTE, descrizione);  
 | |
|       return f.warning_box("Valore non presente in tabella Enti previdenziali");
 | |
|     }  
 | |
|     
 | |
|   }                                        
 | |
|                                           
 | |
|   return TRUE;  
 | |
| }
 | |
| 
 | |
| void TQuadro_H_app::on_config_change()
 | |
| {
 | |
|   TConfig conf(CONFIG_STUDIO);
 | |
|   _anno = (int) conf.get_long(ANNO_SEL);
 | |
| } 
 | |
| 
 | |
| TMask* TQuadro_H_app::get_mask(int mode)
 | |
| {
 | |
|   return _msk;
 | |
| }
 | |
| 
 | |
| bool TQuadro_H_app::almeno_un_dettaglio(TMask& m)
 | |
| {        
 | |
|   TLocalisamfile dett (LF_DETH);
 | |
|   
 | |
|   dett.setkey(1);
 | |
|   dett.zero();
 | |
|   dett.put("CODDITTA", _codditta);
 | |
|   dett.put("ANNO",     _anno);
 | |
|   dett.put("ENTE",     _ente);
 | |
|   for (dett.read();!dett.eof();dett.next())
 | |
|   {
 | |
|     long    codditta = dett.get_long("CODDITTA");
 | |
|     int     anno     = dett.get_int ("ANNO");
 | |
|     TString ente     = dett.get     ("ENTE");
 | |
|     
 | |
|     if (_codditta == codditta && _anno == anno && _ente == ente)
 | |
|       return TRUE;
 | |
|   }
 | |
|     
 | |
|   return FALSE;
 | |
| }
 | |
| 
 | |
| void TQuadro_H_app::init_insert_mode(TMask& m)
 | |
| {
 | |
|   m.show(F_ENTE);
 | |
|   m.hide(F_ENTEBIS);
 | |
| 
 | |
|   m.disable(F_BTG_GENERA);
 | |
|   m.disable(F_BTG_DETTAGLIO);
 | |
| }
 | |
|                                
 | |
| void TQuadro_H_app::init_query_mode(TMask& m)
 | |
| { 
 | |
|   on_config_change();
 | |
|   m.set(F_H1ANNO, _anno);
 | |
| //  m.field(F_H1ANNO).set_dirty(FALSE);
 | |
|   m.disable(F_BTG_GENERA);
 | |
|   m.disable(F_BTG_DETTAGLIO);
 | |
|   m.show(F_ENTE);
 | |
|   m.hide(F_ENTEBIS);
 | |
| }                                             
 | |
| 
 | |
| void TQuadro_H_app::init_query_insert_mode(TMask& m)
 | |
| {                        
 | |
|   m.set(F_H1ANNO, _anno);
 | |
|   
 | |
|   m.hide(F_ENTE);
 | |
|   m.show(F_ENTEBIS);
 | |
| 
 | |
|   m.disable(F_BTG_GENERA);
 | |
|   m.disable(F_BTG_DETTAGLIO);
 | |
| }
 | |
| 
 | |
| void TQuadro_H_app::init_modify_mode(TMask& m)
 | |
| {                               
 | |
| 
 | |
|   _codditta = m.get_long(F_CODDITTA);
 | |
|   _anno     = m.get_int (F_H1ANNO);
 | |
|   _ente     = m.get     (F_ENTE);
 | |
|   
 | |
|   if (almeno_un_dettaglio(m))
 | |
|     m.enable (F_BTG_GENERA);
 | |
|   else
 | |
|     m.disable(F_BTG_GENERA);
 | |
|     
 | |
|   m.enable (F_BTG_DETTAGLIO);
 | |
|   
 | |
|   m.show(F_ENTE);
 | |
|   m.hide(F_ENTEBIS);
 | |
| }
 | |
| 
 | |
| int TQuadro_H_app::rewrite(const TMask& m)
 | |
| {
 | |
|   m.autosave(*_rel);
 | |
|   _registra = TRUE;
 | |
|   return _rel->rewrite();
 | |
| }
 | |
| 
 | |
| int TQuadro_H_app::write(const TMask& m)
 | |
| {
 | |
|   m.autosave(*_rel);
 | |
|   _registra = TRUE;
 | |
|   return _rel->write();
 | |
| }
 | |
| 
 | |
| bool TQuadro_H_app::remove()
 | |
| {
 | |
|   _registra = TRUE;
 | |
|   return TRelation_application::remove();
 | |
| }
 | |
| 
 | |
| bool TQuadro_H_app::user_create()
 | |
| {
 | |
|   _rel = new TRelation (LF_QUAH);
 | |
|   _msk = new TMask("771290a");
 | |
|   
 | |
|   set_search_field(F_H1ANNO);
 | |
|   _msk->set_handler (F_CODDITTA,       codditta_hnd);
 | |
|   _msk->set_handler (F_BTG_GENERA,     generazione);        
 | |
|   _msk->set_handler (F_BTG_DETTAGLIO,  dettaglio);        
 | |
|   _msk->set_handler (F_ENTE,           desc_ente);
 | |
|   _msk->set_handler (F_ENTEBIS,        desc_ente);  
 | |
|   
 | |
|   _registra = FALSE;
 | |
|   
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| bool TQuadro_H_app::user_destroy()
 | |
| {                   
 | |
|   if (_registra)
 | |
| // 20.12.95 l'anno deve essere quello dei parametri
 | |
| //    _rip.set("H",_anno); 
 | |
|     _rip.set("H");
 | |
|     
 | |
|   delete _msk;
 | |
|   delete _rel;
 | |
| 
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| int m71290(int argc, char* argv[])
 | |
| {
 | |
|   TQuadro_H_app a;
 | |
|   a.run(argc, argv, "Quadro H");
 | |
|   return 0;
 | |
| }
 | |
| 
 | |
| 
 |