Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.2 patch 1092 git-svn-id: svn://10.65.10.50/trunk@16293 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			266 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			266 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #include <confapp.h>
 | |
| #include <msksheet.h>
 | |
| #include <progind.h>
 | |
| #include <recset.h>
 | |
| #include <recarray.h>
 | |
| #include <relation.h>
 | |
| 
 | |
| #include "../include/attiv.h"
 | |
| #include "../include/mov.h"
 | |
| #include "../cg/cglib01.h"
 | |
| #include "tcconf.h"
 | |
| 
 | |
| class TTS_confditta : public TConfig_application
 | |
| {
 | |
|   char _current;
 | |
| 
 | |
|   static bool check_fields(TMask_field& f, KEY k);
 | |
|   // @cmember:(INTERNAL) Salva i parametri dalla maschera
 | |
|   virtual void save_mask(bool tosave);
 | |
|   virtual void load_mask();
 | |
| public:
 | |
|   // @cmember Disabilita la verifica del modulo in chiave
 | |
|   virtual bool check_autorization() const  { return FALSE; }
 | |
| 
 | |
|   virtual bool preprocess_config (TMask& mask, TConfig& config);
 | |
|   virtual bool postprocess_config (TMask& mask, TConfig& config);
 | |
|   virtual bool user_create( );
 | |
|   virtual bool user_destroy( );
 | |
| 
 | |
|   TTS_confditta() : TConfig_application( CONFIG_DITTA ){ }
 | |
|   virtual ~TTS_confditta( ){ }
 | |
| };
 | |
| 
 | |
| bool sh_notify(TSheet_field& s, int r, KEY k)
 | |
| {
 | |
| 	if (k == K_TAB)
 | |
| 	{
 | |
| 	  TMask& m = s.mask();
 | |
| 		const bool use_pcn = m.get_bool(F_USECMPCN);
 | |
| 		const int r = s.selected();
 | |
| 		TMask & mr = s.sheet_mask();
 | |
| 		TToken_string & row = s.row(r);
 | |
| 		
 | |
| 		row.add(use_pcn ? "X" : " ", 4);
 | |
| 		s.check_row(r);
 | |
| 	}
 | |
| 	return true;
 | |
| }
 | |
| 
 | |
| bool TTS_confditta::check_fields(TMask_field& f, KEY k)
 | |
| {
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| void TTS_confditta::load_mask()
 | |
| {
 | |
|   TMask* mask = get_mask();
 | |
|   
 | |
| 	if (mask != NULL)
 | |
| 	{
 | |
| 		TConfig_application::load_mask();
 | |
| 		TConfig& config = *get_config();
 | |
| 		TSheet_field& sa = mask->sfield(F_SHEET_ATTIV);
 | |
| 		TAssoc_array ditte;
 | |
| 		const bool use_pcn = config.get_bool("TSUSECMPCN");
 | |
| 		int i = 0;
 | |
| 		
 | |
| 		for (i = 0; config.exist("TSDATT", i); i++)
 | |
| 		{
 | |
| 			const TString8 att(config.get("TSDATT", NULL, i));
 | |
| 			const TString8 ditta(config.get("TSDDITTA", NULL, i));
 | |
| 
 | |
| 			if (att.full())
 | |
| 				ditte.add(att, ditta);
 | |
| 			TToken_string& row = sa.row(i);
 | |
| 			
 | |
| 			row.add(att);
 | |
| 			
 | |
| 			const TString & descr = cache().get("%AIS", att, "S0");
 | |
| 			
 | |
| 			row.add(descr);
 | |
| 			row.add(ditta);
 | |
| 			sa.check_row(i);
 | |
| 		}
 | |
| 
 | |
| 		TString query;
 | |
| 		const long firm = mask->get_long(F_CODDITTA);
 | |
| 
 | |
| 		query.format("USE %d SELECT ATTPREV!=\"X\"\nFROM  CODDITTA=%ld\nTO CODDITTA=%ld\n", LF_ATTIV, firm, firm);
 | |
| 		TISAM_recordset attrec(query);
 | |
| 
 | |
| 		for (bool ok = attrec.move_first(); ok; ok = attrec.move_next())
 | |
| 
 | |
| 		{
 | |
| 			const TString8 codatt = attrec.get(ATT_CODATT).as_string();
 | |
| 			if (ditte.objptr(codatt) == NULL)
 | |
| 			{
 | |
| 				TToken_string& row = sa.row(i);
 | |
| 
 | |
| 				row.add(codatt);
 | |
| 				
 | |
| 				const TString & descr = cache().get("%AIS", codatt, "S0");
 | |
| 				
 | |
| 				row.add(descr);
 | |
| 				row.add("");
 | |
| 				sa.check_row(i);
 | |
| 			}
 | |
| 		}
 | |
| 		
 | |
| 		TSheet_field& si = mask->sfield(F_SHEET_IVA);
 | |
| 
 | |
| 		si.set_notify(sh_notify);
 | |
| 		
 | |
| 		for (i = 0; config.exist("TSGIVA", i); i++)
 | |
| 		{
 | |
| 			TToken_string& row = si.row(i);
 | |
| 			row.add(config.get("TSGIVA", NULL, i));
 | |
| 			row.add(config.get("TSCIVA", NULL, i));
 | |
| 			row.add(config.get("TSSIVA", NULL, i));
 | |
| 			row.add(use_pcn ? "X" : " ", 4);
 | |
| 			si.check_row(i);
 | |
| 		}
 | |
| 		
 | |
| 		TSheet_field& sr = mask->sfield(F_SHEET_RIT);
 | |
| 		
 | |
| 		sr.set_notify(sh_notify);
 | |
| 
 | |
| 		for (i = 0; config.exist("TSGRIT", i); i++)
 | |
| 		{
 | |
| 			TToken_string& row = sr.row(i);
 | |
| 			row.add(config.get("TSGRIT", NULL, i));
 | |
| 			row.add(config.get("TSCRIT", NULL, i));
 | |
| 			row.add(config.get("TSSRIT", NULL, i));
 | |
| 			row.add(use_pcn ? "X" : " ", 4);
 | |
| 			sr.check_row(i);
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void TTS_confditta::save_mask(bool tosave)
 | |
| {
 | |
| 	if (tosave)
 | |
| 	{
 | |
| 		const TMask & m = *get_mask();
 | |
| 
 | |
| 		if (m.get_bool(F_RIPRISTINO))
 | |
| 		{
 | |
| 			const TDate from(m.get(F_ULTINVIO));
 | |
| 			TEsercizi_contabili esc;
 | |
| 			const TEsercizio & e = esc.esercizio(esc.date2esc(from));
 | |
| 			const TDate to(e.fine());
 | |
| 
 | |
| 			TString query = "USE MOV KEY 2 SELECT INVIATO==\"X\"";           
 | |
| 
 | |
| 			query << "\nFROM DATAREG=#DATA_DA";      
 | |
| 			query << "\nTO DATAREG=#DATA_AL";      
 | |
| 	
 | |
| 			TISAM_recordset mov(query);
 | |
| 			
 | |
| 			mov.set_var("#DATA_DA", TVariant(from));
 | |
| 			mov.set_var("#DATA_AL", TVariant(to));
 | |
| 
 | |
| 	    if (mov.items() >0L)
 | |
| 			{
 | |
| 				TProgind pi(mov.items(), TR("Ripristino movimenti"), true, true);
 | |
| 				TLocalisamfile cgmov(LF_MOV);
 | |
| 			
 | |
| 				for (bool ok = mov.move_first(); ok; ok = mov.move_next())
 | |
| 				{
 | |
| 					if (!pi.addstatus(1))
 | |
| 						break;
 | |
| 					const long numreg = mov.get(MOV_NUMREG).as_int();
 | |
| 
 | |
| 					cgmov.put(MOV_NUMREG, numreg);
 | |
| 					if (cgmov.read(_isequal, _lock) == NOERR)
 | |
| 					{
 | |
| 						cgmov.zero(MOV_INVIATO);
 | |
| 						cgmov.rewrite();
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		TConfig& config = *get_config();
 | |
| 		int i = 0;
 | |
| 	  
 | |
| 		for (i = 0; config.exist("TSGIVA", i); i++)
 | |
| 		{
 | |
| 		  config.remove("TSDATT", i);
 | |
| 		  config.remove("TSDITTA", i);
 | |
| 		}
 | |
| 		
 | |
| 		TSheet_field& sa = m.sfield(F_SHEET_ATTIV);
 | |
| 
 | |
| 		FOR_EACH_SHEET_ROW(sa, jd, rowd)
 | |
| 		{
 | |
| 			config.set("TSDATT", rowd->get(0), NULL, true, jd);	
 | |
| 			config.set("TSDDITTA", rowd->get(2), NULL, true, jd);	
 | |
| 		}
 | |
| 
 | |
| 		for (i = 0; config.exist("TSGIVA", i); i++)
 | |
| 		{
 | |
| 		  config.remove("TSGIVA", i);
 | |
| 		  config.remove("TSCIVA", i);
 | |
| 		  config.remove("TSSIVA", i);
 | |
| 		}
 | |
| 		
 | |
| 		TSheet_field& si = m.sfield(F_SHEET_IVA);
 | |
| 	  
 | |
| 		FOR_EACH_SHEET_ROW(si, j, row)
 | |
| 		{
 | |
| 			config.set("TSGIVA", row->get(0), NULL, true, j);	
 | |
| 			config.set("TSCIVA", row->get(1), NULL, true, j);	
 | |
| 			config.set("TSSIVA", row->get(2), NULL, true, j);	
 | |
| 		}
 | |
| 
 | |
| 		for (i = 0; config.exist("TSGRIT", i); i++)
 | |
| 		{
 | |
| 		  config.remove("TSGRIT", i);
 | |
| 		  config.remove("TSCRIT", i);
 | |
| 		  config.remove("TSSRIT", i);
 | |
| 		}
 | |
| 
 | |
| 		TSheet_field& sr = m.sfield(F_SHEET_RIT);
 | |
| 	  
 | |
| 		FOR_EACH_SHEET_ROW(sr, jr, rowr)
 | |
| 		{
 | |
| 			config.set("TSGRIT", rowr->get(0), NULL, true, jr);	
 | |
| 			config.set("TSCRIT", rowr->get(1), NULL, true, jr);	
 | |
| 			config.set("TSSRIT", rowr->get(2), NULL, true, jr);	
 | |
| 		}
 | |
| 	}
 | |
| 	TConfig_application::save_mask(tosave);
 | |
| }
 | |
| 
 | |
| bool TTS_confditta::preprocess_config (TMask& mask, TConfig& config)
 | |
| {
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| bool TTS_confditta::postprocess_config (TMask& mask, TConfig& config)
 | |
| {
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| 
 | |
| bool TTS_confditta::user_create( )
 | |
| {
 | |
| 	TConfig conf(CONFIG_DITTA);
 | |
| 
 | |
|   conf.set( "EdMask", "tc0300a", "tc");
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| bool TTS_confditta::user_destroy( )
 | |
| {
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| int tc0300(int argc, char* argv[])
 | |
| {
 | |
|   TTS_confditta appc;
 | |
|   appc.run(argc, argv, TR("Parametri ditta TeamSystem"));
 | |
|   return 0;
 | |
| }
 |