Files correlati : Ricompilazione Demo : [ ] Commento : riportate modifiche dalla 5.0 per stampa bilancio alla data git-svn-id: svn://10.65.10.50/trunk@19054 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| // gestione files Contabilita' Analitica: COMMESSE
 | |
| #include <execp.h>
 | |
| #include <recset.h>
 | |
| #include <relapp.h>
 | |
| 
 | |
| #include "calib01.h"
 | |
| #include "ca0600a.h"
 | |
| #include "commesse.h"
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| //MASCHERA
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| class TCms_anal_msk : public TSimple_anal_msk
 | |
| {
 | |
| protected:
 | |
|   virtual int get_logicnum() const { return LF_COMMESSE; } 
 | |
| 
 | |
| public:
 | |
|   TCms_anal_msk();
 | |
| };
 | |
| 
 | |
| TCms_anal_msk::TCms_anal_msk()
 | |
| {
 | |
|   read("ca0600a");
 | |
|   ca_create_fields(*this, 2, LF_CDC, 1, 1, F_CMS_CDC1, F_CMS_CDCDES1, 0x0, COMMESSE_CODCOSTO);
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| //APPLICAZIONE
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| // applicazione per la gestione delle commesse
 | |
| class TCms_app : public TAnal_app
 | |
| {  
 | |
| 	int _maxlev;
 | |
|   bool _has_filter;
 | |
| 
 | |
| protected:
 | |
|   virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
 | |
| 
 | |
|   virtual bool filtered() const;
 | |
| 
 | |
| 	virtual void init_modify_mode(TMask& mask);
 | |
| 	virtual void init_insert_mode(TMask& mask);
 | |
|   virtual bool protected_record(TRectype& record);
 | |
|   virtual TSimple_anal_msk* create_mask() const { return new TCms_anal_msk; }
 | |
|   virtual bool user_create();
 | |
| };
 | |
| 
 | |
| bool TCms_app::filtered() const
 | |
| {
 | |
|   if (_has_filter)
 | |
|     return true;
 | |
|   return TAnal_app::filtered();
 | |
| }
 | |
| 
 | |
| //non si può eliminare una commessa se essa appare in un saldo analitico dell'anno in corso o dell'anno precedente
 | |
| bool TCms_app::protected_record(TRectype& record)
 | |
| {
 | |
|   TString query;
 | |
|   query << "USE SALDANA\nSELECT COMMESSA==#COMMESSA\nFROM ANNO=#ANNO\n";
 | |
|   const TString commessa = record.get(COMMESSE_CODCMS);
 | |
|   const TDate today(TODAY);
 | |
|   const long anno = today.year();
 | |
| 
 | |
|   TISAM_recordset saldana_recset(query);
 | |
|   saldana_recset.set_var("#COMMESSA", TVariant(commessa));
 | |
|   saldana_recset.set_var("#ANNO", TVariant(anno - 1));
 | |
|   
 | |
|   const long items = saldana_recset.items();
 | |
|   return items > 0;
 | |
| }
 | |
| 
 | |
| void TCms_app::init_modify_mode(TMask& mask)
 | |
| {
 | |
| 	const short id = ((TCms_anal_msk &)mask).get_field_id(_maxlev - 1 , 1);
 | |
| 	mask.enable(-1, mask.get(id).not_empty());
 | |
| 
 | |
|   TAnal_app::init_modify_mode(mask);
 | |
| }
 | |
| 
 | |
| void TCms_app::init_insert_mode(TMask& mask)
 | |
| {
 | |
| 	const short id = ((TCms_anal_msk &)mask).get_field_id(_maxlev - 1, 1);
 | |
| 	mask.enable(-1, mask.get(id).not_empty());
 | |
| 
 | |
|   TAnal_app::init_insert_mode(mask);
 | |
| }
 | |
| 
 | |
| bool TCms_app::user_create()
 | |
| {
 | |
|   const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_COMMESSE);
 | |
| 
 | |
| 	_maxlev = mci.levels();
 | |
|   if (_maxlev <= 0)
 | |
|     return error_box(TR("Le commesse non sono state configurate"));
 | |
| 
 | |
|   //eventuali filtri per utente
 | |
|   _has_filter = cache().get("%AUC", user(), "S0").full();
 | |
| 
 | |
|   return TAnal_app::user_create();
 | |
| }
 | |
| 
 | |
| int ca0600(int argc, char* argv[])
 | |
| {
 | |
|   TCms_app a;
 | |
|   a.run(argc, argv, TR("Commesse"));
 | |
|   return 0;
 | |
| }
 | |
| 
 |