Patch level : 10.0 NO PATCH
Files correlati : tc2 e tabelle Ricompilazione Demo : [ ] Commento : Aggiunti i programmi tc2 - Trasefrimento ipsoa git-svn-id: svn://10.65.10.50/branches/R_10_00@21107 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									7cc06c1ce1
								
							
						
					
					
						commit
						96cd5b4c1b
					
				
							
								
								
									
										27
									
								
								tc/tc2.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								tc/tc2.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#include <xvt.h>
 | 
			
		||||
 | 
			
		||||
#include "tc2.h"
 | 
			
		||||
 | 
			
		||||
int main(int argc, char** argv)
 | 
			
		||||
{
 | 
			
		||||
  const int op = argc < 2 ? 0 : argv[1][1]-'0';
 | 
			
		||||
  switch (op)
 | 
			
		||||
  {
 | 
			
		||||
//    case  1: tc2200(argc,argv); break;
 | 
			
		||||
   case  2: tc2300(argc,argv); break;  // parametri ditta
 | 
			
		||||
//		case	3: tc2400(argc,argv); break;
 | 
			
		||||
		case	4: tc2500(argc,argv); break;	//gestore tabelle multirel
 | 
			
		||||
		case	5: tc2600(argc,argv); break;  //importazione PCon, Cuas, CodIVA
 | 
			
		||||
		case	6: tc2700(argc,argv); break;	//esportazione contabilita' a TeamSystem
 | 
			
		||||
		case	7: tc2800(argc,argv); break;	// Riclassificazione conti TeamSystem
 | 
			
		||||
		case	8: tc2900(argc,argv); break;	// COnverione archivi CAMPO
 | 
			
		||||
    default: ; tc2100(argc,argv); break;
 | 
			
		||||
  }
 | 
			
		||||
  exit(0);
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										26
									
								
								tc/tc2.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								tc/tc2.h
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,26 @@
 | 
			
		||||
#ifndef __tc2_H
 | 
			
		||||
#define __tc2_H
 | 
			
		||||
 | 
			
		||||
int tc2100(int argc, char* argv[]);
 | 
			
		||||
int tc2300(int argc, char* argv[]);
 | 
			
		||||
int tc2500(int argc, char* argv[]);
 | 
			
		||||
int tc2600(int argc, char* argv[]);
 | 
			
		||||
int tc2700(int argc, char* argv[]);
 | 
			
		||||
int tc2800(int argc, char* argv[]);
 | 
			
		||||
int tc2900(int argc, char* argv[]);
 | 
			
		||||
 | 
			
		||||
#endif // __tc2_H
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										55
									
								
								tc/tc2100.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										55
									
								
								tc/tc2100.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,55 @@
 | 
			
		||||
#include "tc2.h"
 | 
			
		||||
 | 
			
		||||
// gestione tabelle Zucchetti
 | 
			
		||||
#include <modaut.h>
 | 
			
		||||
#include <modtbapp.h>
 | 
			
		||||
#include <tabutil.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// applicazione per la gestione delle tabelle di magazzino
 | 
			
		||||
class Tab_app_teamsystem : public TTable_module_application
 | 
			
		||||
{
 | 
			
		||||
  
 | 
			
		||||
protected:  // TRelation_application
 | 
			
		||||
  virtual bool user_create() ;
 | 
			
		||||
  
 | 
			
		||||
public:
 | 
			
		||||
	Tab_app_teamsystem() {}
 | 
			
		||||
  virtual ~Tab_app_teamsystem() {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
HIDDEN inline Tab_app_teamsystem& app() { return (Tab_app_teamsystem&)main_app(); }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool Tab_app_teamsystem::user_create()
 | 
			
		||||
{
 | 
			
		||||
  /*
 | 
			
		||||
    la Tab_application::user_create() apre la maschera TMask in modo automatico
 | 
			
		||||
    basandosi sul parametro passato sulla linea di comando e sulla convenzione
 | 
			
		||||
    nome = "BATB"+parametro;
 | 
			
		||||
    ORA:
 | 
			
		||||
      - questa convenzione cambierà per separare i programmi (e le maschere)
 | 
			
		||||
          dei vari pacchetti
 | 
			
		||||
          In tal caso ridefinire il metodo virtual mask_name()
 | 
			
		||||
      - secondo il nuovo stile, gli handler vanno posti in maschere derivate
 | 
			
		||||
        dalla TMask (TMask_tabzucc, TMask_tabcau, ecc), pertanto occorre che 
 | 
			
		||||
        la maschera aperta sia del tipo corretto 
 | 
			
		||||
        per questo motivo la maschera viene creata dalla user_create()
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
  bool ok = TTable_module_application::user_create();
 | 
			
		||||
  
 | 
			
		||||
  if (ok) 
 | 
			
		||||
  {
 | 
			
		||||
    //TMask& mask = *set_mask();
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int tc2100(int argc, char **argv) 
 | 
			
		||||
{
 | 
			
		||||
	Tab_app_teamsystem a;
 | 
			
		||||
  a.run(argc, argv, TR("Tabella"));
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										265
									
								
								tc/tc2300.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										265
									
								
								tc/tc2300.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,265 @@
 | 
			
		||||
#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", "tc2300a", "tc");
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTS_confditta::user_destroy( )
 | 
			
		||||
{
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int tc2300(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  TTS_confditta appc;
 | 
			
		||||
  appc.run(argc, argv, TR("Parametri ditta TeamSystem"));
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										93
									
								
								tc/tc2500.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										93
									
								
								tc/tc2500.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,93 @@
 | 
			
		||||
#include <tabapp.h>
 | 
			
		||||
 | 
			
		||||
#include "tc2.h"
 | 
			
		||||
#include "tcts.h"
 | 
			
		||||
 | 
			
		||||
class TTeamSystem_multirel_app : public TMultirel_application
 | 
			
		||||
{
 | 
			
		||||
  bool _use_tab;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
	virtual void set_descr(TMask & m, const TString & desc);
 | 
			
		||||
	virtual void get_mask_name(TString& tabname) const;
 | 
			
		||||
	//magico metodo per impedire la navigazione su tabelle diverse da quella corrente del cursore
 | 
			
		||||
	virtual bool has_filtered_cursor() const { return true; }
 | 
			
		||||
  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);
 | 
			
		||||
  virtual bool user_create();
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  
 | 
			
		||||
	TTeamSystem_multirel_app() : _use_tab(true) {}
 | 
			
		||||
  virtual ~TTeamSystem_multirel_app() {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void TTeamSystem_multirel_app::set_descr(TMask & m, const TString & desc)
 | 
			
		||||
{
 | 
			
		||||
	m.set(F_DESC, desc);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TTeamSystem_multirel_app::get_mask_name(TString& tabname) const
 | 
			
		||||
{
 | 
			
		||||
	TMultirel_application::get_mask_name(tabname);
 | 
			
		||||
	tabname.overwrite("ts", 2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void  TTeamSystem_multirel_app::init_query_mode(TMask& m)
 | 
			
		||||
{
 | 
			
		||||
	TMultirel_application::init_query_mode(m);
 | 
			
		||||
	m.show(-1);
 | 
			
		||||
	m.hide(-2);
 | 
			
		||||
	m.enable(-3, _use_tab);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void  TTeamSystem_multirel_app::init_query_insert_mode(TMask& m)
 | 
			
		||||
{
 | 
			
		||||
	TMultirel_application::init_query_insert_mode(m);
 | 
			
		||||
	m.show(-1, !_use_tab);
 | 
			
		||||
	m.show(-2, _use_tab);
 | 
			
		||||
	m.enable(-3, _use_tab);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void  TTeamSystem_multirel_app::init_modify_mode(TMask& m)
 | 
			
		||||
{
 | 
			
		||||
	TMultirel_application::init_modify_mode(m);
 | 
			
		||||
	m.show(-1);
 | 
			
		||||
	m.disable(-1);
 | 
			
		||||
	m.hide(-2);
 | 
			
		||||
	m.disable(-3);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void  TTeamSystem_multirel_app::init_insert_mode(TMask& m)
 | 
			
		||||
{
 | 
			
		||||
	TMultirel_application::init_insert_mode(m);
 | 
			
		||||
	m.show(-1);
 | 
			
		||||
	m.disable(-1);
 | 
			
		||||
	m.hide(-2);
 | 
			
		||||
	m.disable(-3);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTeamSystem_multirel_app::user_create()
 | 
			
		||||
{
 | 
			
		||||
	bool ok = TMultirel_application::user_create();
 | 
			
		||||
 | 
			
		||||
	if (ok)
 | 
			
		||||
	{
 | 
			
		||||
		TConfig config(CONFIG_DITTA);
 | 
			
		||||
		_use_tab = config.get_bool("TSUSECMTAB");
 | 
			
		||||
		TMask & m = *get_mask();
 | 
			
		||||
 | 
			
		||||
		m.show(-10, _use_tab);
 | 
			
		||||
		m.show(-20, !_use_tab);
 | 
			
		||||
		set_search_field(F_CODTAB);
 | 
			
		||||
	}
 | 
			
		||||
	return ok;
 | 
			
		||||
}
 | 
			
		||||
int tc2500(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  TTeamSystem_multirel_app a;
 | 
			
		||||
  a.run(argc, argv, TR("Tabella"));
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										375
									
								
								tc/tc2600.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										375
									
								
								tc/tc2600.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,375 @@
 | 
			
		||||
#include <applicat.h>
 | 
			
		||||
#include <automask.h>
 | 
			
		||||
#include <progind.h>
 | 
			
		||||
#include <reputils.h>
 | 
			
		||||
#include <utility.h>
 | 
			
		||||
#include <textset.h>
 | 
			
		||||
#include <reprint.h>
 | 
			
		||||
#include <scanner.h>
 | 
			
		||||
 | 
			
		||||
#include "tc2.h"
 | 
			
		||||
#include "tc2600a.h"
 | 
			
		||||
#include "tabmod.h"
 | 
			
		||||
 | 
			
		||||
                                      ///////////////////////////////////////////////
 | 
			
		||||
                                      //// CLASSI DERIVATE PER IMPORTAZIONE DATI ////
 | 
			
		||||
                                      ///////////////////////////////////////////////  
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////
 | 
			
		||||
//	Recordset specifici per i dati da trasferire
 | 
			
		||||
/////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
//Piano dei conti
 | 
			
		||||
class TImporta_pconto_recordset : public TCSV_recordset
 | 
			
		||||
{
 | 
			
		||||
  public:
 | 
			
		||||
    TImporta_pconto_recordset(const char * fileName);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
TImporta_pconto_recordset::TImporta_pconto_recordset(const char * fileName)
 | 
			
		||||
                          : TCSV_recordset("CSV(\"|\")")
 | 
			
		||||
{
 | 
			
		||||
	load_file(fileName);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
                                      ///////////////////////////////////////////////
 | 
			
		||||
                                      ////      DEFINIZIONE CLASSE TAutomask     ////
 | 
			
		||||
                                      ///////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
class TImportaTS_mask : public TAutomask
 | 
			
		||||
{
 | 
			
		||||
protected:
 | 
			
		||||
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  TImportaTS_mask();
 | 
			
		||||
};
 | 
			
		||||
  
 | 
			
		||||
TImportaTS_mask::TImportaTS_mask() :TAutomask ("tc2600a")
 | 
			
		||||
{
 | 
			
		||||
}  
 | 
			
		||||
 | 
			
		||||
bool TImportaTS_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
 | 
			
		||||
{ 
 | 
			
		||||
	switch (f.dlg())
 | 
			
		||||
	{
 | 
			
		||||
		//giochetto per avere la lista dei files validi nella directory di trasferimento!
 | 
			
		||||
		case F_PCONTI:
 | 
			
		||||
			if (e == fe_button)
 | 
			
		||||
			{
 | 
			
		||||
				TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"), 
 | 
			
		||||
                           "File@32");
 | 
			
		||||
				TFilename path = get(F_PATH);
 | 
			
		||||
				path.add("*.txt");	//files delle testate
 | 
			
		||||
				list_files(path, as.rows_array());
 | 
			
		||||
				TFilename name;
 | 
			
		||||
				FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
 | 
			
		||||
				{
 | 
			
		||||
					name = *row;
 | 
			
		||||
					*row = name.name();
 | 
			
		||||
				}
 | 
			
		||||
				if (as.run() == K_ENTER)
 | 
			
		||||
				{
 | 
			
		||||
					f.set(as.row(as.selected()));
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
      break;
 | 
			
		||||
    case F_CAUSALI:
 | 
			
		||||
      if (e == fe_button)
 | 
			
		||||
			{
 | 
			
		||||
				TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"), 
 | 
			
		||||
                           "File@32");
 | 
			
		||||
				TFilename path = get(F_PATH);
 | 
			
		||||
				path.add("*.txt");	//files delle testate
 | 
			
		||||
				list_files(path, as.rows_array());
 | 
			
		||||
				TFilename name;
 | 
			
		||||
				FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
 | 
			
		||||
				{
 | 
			
		||||
					name = *row;
 | 
			
		||||
					*row = name.name();
 | 
			
		||||
				}
 | 
			
		||||
				if (as.run() == K_ENTER)
 | 
			
		||||
				{
 | 
			
		||||
					f.set(as.row(as.selected()));
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
    case F_CODIVA:
 | 
			
		||||
      if (e == fe_button)
 | 
			
		||||
			{
 | 
			
		||||
				TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"), 
 | 
			
		||||
                           "File@32");
 | 
			
		||||
				TFilename path = get(F_PATH);
 | 
			
		||||
				path.add("*.txt");	//files delle testate
 | 
			
		||||
				list_files(path, as.rows_array());
 | 
			
		||||
				TFilename name;
 | 
			
		||||
				FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
 | 
			
		||||
				{
 | 
			
		||||
					name = *row;
 | 
			
		||||
					*row = name.name();
 | 
			
		||||
				}
 | 
			
		||||
				if (as.run() == K_ENTER)
 | 
			
		||||
				{
 | 
			
		||||
					f.set(as.row(as.selected()));
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
      break;
 | 
			
		||||
		default:
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////
 | 
			
		||||
// TSkeleton_application
 | 
			
		||||
///////////////////////////////////////
 | 
			
		||||
class TDocTS : public TSkeleton_application
 | 
			
		||||
{
 | 
			
		||||
	TImportaTS_mask*  				_msk;
 | 
			
		||||
	
 | 
			
		||||
protected:
 | 
			
		||||
  //metodi che fanno gli inserimenti sulle tabelle di campo
 | 
			
		||||
  void upload_pconti (const TFilename& file, TLog_report& log) const;
 | 
			
		||||
  void upload_causali(const TFilename& file, TLog_report& log) const;
 | 
			
		||||
  void upload_codiva (const TFilename& file, TLog_report& log) const;
 | 
			
		||||
  
 | 
			
		||||
public:           
 | 
			
		||||
  virtual bool create();
 | 
			
		||||
  virtual bool destroy();
 | 
			
		||||
  virtual void main_loop();
 | 
			
		||||
  bool transfer();
 | 
			
		||||
 
 | 
			
		||||
  TDocTS() {};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
TDocTS& app() { return (TDocTS&) main_app(); }
 | 
			
		||||
 | 
			
		||||
//funzione che importa il piano dei conto sulla tabella corretta
 | 
			
		||||
void TDocTS::upload_pconti (const TFilename& file, TLog_report& log) const
 | 
			
		||||
{
 | 
			
		||||
  TImporta_pconto_recordset s(file); //crea un recordset con struttura predefinita come indicato nella classe opportuna
 | 
			
		||||
  TModule_table pconti("TCO");
 | 
			
		||||
  TProgind pi(s.items(),"Importazione Piano dei Conti in Corso...",true,true);
 | 
			
		||||
 | 
			
		||||
  for (bool ok=s.move_first();ok;ok=s.move_next())
 | 
			
		||||
  {
 | 
			
		||||
    if (!pi.addstatus(1)) 
 | 
			
		||||
      break;
 | 
			
		||||
    //salto le righe di testata del file
 | 
			
		||||
    //per farlo leggo il gruppo e controllo che sia numerico
 | 
			
		||||
    TString dconto = s.get(1).as_string();
 | 
			
		||||
    if (dconto.blank() || !isdigit(dconto[1]))
 | 
			
		||||
      continue;
 | 
			
		||||
    pconti.zero();
 | 
			
		||||
		
 | 
			
		||||
		TString4 gr = dconto.left(2); //leggo il gruppo
 | 
			
		||||
    TString4 co = dconto.mid(3,2); //leggo il conto
 | 
			
		||||
    TString4 sc = dconto.mid(6,3);   //leggo il sottoconto
 | 
			
		||||
    TString conto = gr; //leggo il gruppo
 | 
			
		||||
    TString desc = s.get(2).as_string(); //leggo la descrizione
 | 
			
		||||
 | 
			
		||||
		conto << ((co.blank() || co == "**") ? "00" : co);
 | 
			
		||||
		conto << ((sc.blank() || sc == "***") ? "000" : sc);
 | 
			
		||||
    pconti.put("CODTAB", conto);  //put del gruppo
 | 
			
		||||
    pconti.put("S0", desc); //put del conto
 | 
			
		||||
 | 
			
		||||
	  int err = pconti.write_rewrite(); //Tenta di aggiungere un record ma se esiste gia' lo aggiorna
 | 
			
		||||
		TString str = "Il Conto ";
 | 
			
		||||
 | 
			
		||||
		str << conto;
 | 
			
		||||
    if (err == NOERR)
 | 
			
		||||
    {
 | 
			
		||||
      str << " è stato inserito";
 | 
			
		||||
      log.log(0,str);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      str << " non è stato inserito, errore " << err;
 | 
			
		||||
      log.log(2,str);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TDocTS::upload_causali(const TFilename& file, TLog_report& log) const
 | 
			
		||||
{
 | 
			
		||||
  TScanner s(file); //legge il file che gli passo riga per riga
 | 
			
		||||
  TString curr = s.line();
 | 
			
		||||
  TModule_table causa("TCA");
 | 
			
		||||
  TProgind pi(fsize(file),"Importazione Causali in Corso...",true,true);
 | 
			
		||||
 | 
			
		||||
  while (s.ok())
 | 
			
		||||
  {
 | 
			
		||||
    if (!pi.addstatus(s.tellg())) 
 | 
			
		||||
      break;
 | 
			
		||||
    causa.zero();
 | 
			
		||||
    curr = s.line();
 | 
			
		||||
 | 
			
		||||
		TString8 cod = curr.mid(1,6);
 | 
			
		||||
    TString desc = curr.mid(7,16);
 | 
			
		||||
    
 | 
			
		||||
    //salto le righe di testata del file
 | 
			
		||||
		cod.trim();
 | 
			
		||||
    if (cod.blank() || !real::is_natural(cod))
 | 
			
		||||
      continue;
 | 
			
		||||
		cod.lpad(3, '0');
 | 
			
		||||
    if (cod.len() > 3)
 | 
			
		||||
    {
 | 
			
		||||
      TString errore = "ERRORE:";
 | 
			
		||||
      
 | 
			
		||||
			errore <<" la causale con codice " << cod << " non può essere inserita (codice max 3 caratteri)";
 | 
			
		||||
      log.log(2,errore);
 | 
			
		||||
    }
 | 
			
		||||
    causa.put("CODTAB",cod);
 | 
			
		||||
    causa.put("S0",desc);
 | 
			
		||||
 | 
			
		||||
		int err = causa.write_rewrite(); //Tenta di aggiungere un record ma se esiste gia' lo aggiorna
 | 
			
		||||
    TString str = "La Causale con codice ";
 | 
			
		||||
 | 
			
		||||
		str << cod;
 | 
			
		||||
    if (err == NOERR)
 | 
			
		||||
    {
 | 
			
		||||
      str << " è stata inserita";
 | 
			
		||||
      log.log(0,str);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      str << " non è stata inserita, errore " << err;
 | 
			
		||||
      log.log(2,str);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
  }
 | 
			
		||||
  return;
 | 
			
		||||
};
 | 
			
		||||
  
 | 
			
		||||
//funzione che importa i codici IVA sulla tabella corretta
 | 
			
		||||
void TDocTS::upload_codiva(const TFilename& file, TLog_report& log) const
 | 
			
		||||
{
 | 
			
		||||
  TScanner s(file); //crea un recordset con struttura predefinita come indicato nella classe opportuna
 | 
			
		||||
  TModule_table iva("TIV"); //instanzio l'ISAM file che lavota sulla tabella IVA
 | 
			
		||||
  TProgind pi(fsize(file),"Importazione Dati IVA in Corso...",true,true);
 | 
			
		||||
 | 
			
		||||
  while(s.ok())
 | 
			
		||||
  {
 | 
			
		||||
    if (!pi.addstatus(s.tellg())) 
 | 
			
		||||
      break;
 | 
			
		||||
    //salto le righe di testata del file
 | 
			
		||||
    iva.zero();
 | 
			
		||||
 | 
			
		||||
		TString curr = s.line();
 | 
			
		||||
    TString8 cod = curr.mid(1,8);
 | 
			
		||||
    TString desc = curr.mid(9,18);
 | 
			
		||||
    
 | 
			
		||||
    //salto le righe di testata del file
 | 
			
		||||
    cod.trim();
 | 
			
		||||
    if (cod.blank() || !real::is_natural(cod))
 | 
			
		||||
      continue;
 | 
			
		||||
		cod.lpad(3, '0');
 | 
			
		||||
    if (cod.len() > 3)
 | 
			
		||||
    {
 | 
			
		||||
      TString errore = "ERRORE:";
 | 
			
		||||
 | 
			
		||||
			errore <<" i dati IVA  con codice " << cod << " non possono essere inseriti (codice max 3 caratteri)";
 | 
			
		||||
      log.log(2,errore);
 | 
			
		||||
    }
 | 
			
		||||
    iva.put("CODTAB",cod);   
 | 
			
		||||
    iva.put("S0",desc);
 | 
			
		||||
    
 | 
			
		||||
    int err = iva.write_rewrite(); //Tenta di aggiungere un record ma se esiste gia' lo aggiorna
 | 
			
		||||
 | 
			
		||||
    TString str = "I dati IVA con codice ";
 | 
			
		||||
 | 
			
		||||
		str << cod;
 | 
			
		||||
    if (err == NOERR)
 | 
			
		||||
    {
 | 
			
		||||
      str << " sono stati inseriti";
 | 
			
		||||
      log.log(0,str);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      str << " non sono stati inseriti, errore " << err;
 | 
			
		||||
      log.log(2,str);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool TDocTS::transfer()
 | 
			
		||||
{
 | 
			
		||||
  TLog_report log("Importazione documenti da TeamSystem");
 | 
			
		||||
    
 | 
			
		||||
  //prelevo il path dei file da caricare dalla maschera
 | 
			
		||||
  TFilename path = _msk->get(F_PATH);
 | 
			
		||||
  
 | 
			
		||||
  const short ids [] = {F_PCONTI,F_CAUSALI,F_CODIVA,0};
 | 
			
		||||
 | 
			
		||||
  //eseguo tutte le importazioni (una alla volta)
 | 
			
		||||
  for (int i = 0; ids[i]; i++)
 | 
			
		||||
  {
 | 
			
		||||
    //prelevo di volta in volta il nome del file giusto dalla maschera:
 | 
			
		||||
    //prima il file Anagrafiche, poi quello delle fatture e poi quello delle ricevute
 | 
			
		||||
    TFilename name = _msk->get(ids[i]);
 | 
			
		||||
        
 | 
			
		||||
    //se sono riuscito a prelevare un nome di file, allora:
 | 
			
		||||
    if (name.full())
 | 
			
		||||
    {
 | 
			
		||||
      //costruisco il nome del file
 | 
			
		||||
      TFilename full = path;
 | 
			
		||||
      full.add(name);
 | 
			
		||||
      
 | 
			
		||||
      //se eiste il file, esegui l'elaborazione corretta
 | 
			
		||||
      if (full.exist())
 | 
			
		||||
      {
 | 
			
		||||
        switch (i)
 | 
			
		||||
        {
 | 
			
		||||
        case 0: upload_pconti (full, log); break;
 | 
			
		||||
        case 1: upload_causali(full, log); break;
 | 
			
		||||
        case 2: upload_codiva (full, log); break;
 | 
			
		||||
        default: break;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  TReport_book buc;
 | 
			
		||||
  
 | 
			
		||||
	buc.add(log);
 | 
			
		||||
  if (buc.pages()>0)
 | 
			
		||||
	  buc.preview(); //visualizzo il log di importazione dei documenti
 | 
			
		||||
  
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TDocTS::create()
 | 
			
		||||
{
 | 
			
		||||
  _msk = new TImportaTS_mask();
 | 
			
		||||
         
 | 
			
		||||
  return TSkeleton_application::create();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TDocTS::destroy()
 | 
			
		||||
{
 | 
			
		||||
	delete _msk;
 | 
			
		||||
  return TApplication::destroy();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TDocTS::main_loop()
 | 
			
		||||
{
 | 
			
		||||
  KEY	tasto;
 | 
			
		||||
	tasto = _msk->run();
 | 
			
		||||
  if (tasto == K_ENTER)
 | 
			
		||||
  {
 | 
			
		||||
		if (transfer())
 | 
			
		||||
		{
 | 
			
		||||
			message_box(TR("Importazione documenti completata"));
 | 
			
		||||
		}
 | 
			
		||||
  }   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int tc2600 (int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  TDocTS main_app;
 | 
			
		||||
  main_app.run(argc, argv, TR("Importazione Tabelle"));
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										83
									
								
								tc/tc2600a.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										83
									
								
								tc/tc2600a.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,83 @@
 | 
			
		||||
#include "tc2600a.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_ELABORA 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -12 -11 "~Elabora"
 | 
			
		||||
  PICTURE BMP_ELABORA
 | 
			
		||||
  MESSAGE EXIT,K_ENTER
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
#include <helpbar.h>
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
TOOLBAR "" 0 -2 0 2
 | 
			
		||||
 | 
			
		||||
STRING DLG_PROFILE 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 9 0 "Profilo "
 | 
			
		||||
  PSELECT
 | 
			
		||||
  FLAGS "H"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Importazione dati da TeamSystem" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 1 "@bDitta corrente"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODDITTA 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 2 "Codice      "
 | 
			
		||||
  FLAGS "FD"
 | 
			
		||||
  USE LF_NDITTE
 | 
			
		||||
  INPUT CODDITTA F_CODDITTA
 | 
			
		||||
  OUTPUT F_RAGSOC RAGSOC
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RAGSOC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 23 2 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 4 "@bSorgente"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_PATH 256 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 5 "Cartella          "
 | 
			
		||||
  DSELECT
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD FileInPath
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_PCONTI 25
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 6 "Piano dei Conti   "
 | 
			
		||||
  FIELD PCONTI
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CAUSALI 25
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 7 "Causali           "
 | 
			
		||||
  FIELD CAUSALI
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODIVA 25
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 8 "Codici IVA        "
 | 
			
		||||
  FIELD CODIVA
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										393
									
								
								tc/tc2700.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										393
									
								
								tc/tc2700.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,393 @@
 | 
			
		||||
#include "tc2.h"
 | 
			
		||||
#include "tc2700.h"
 | 
			
		||||
#include "tc2700a.h"
 | 
			
		||||
 | 
			
		||||
#include <progind.h>
 | 
			
		||||
#include <reprint.h>
 | 
			
		||||
#include <utility.h>
 | 
			
		||||
 | 
			
		||||
#include <anagr.h>
 | 
			
		||||
#include <anafis.h>
 | 
			
		||||
#include <clifo.h>
 | 
			
		||||
#include <comuni.h>
 | 
			
		||||
#include <causali.h>
 | 
			
		||||
#include <nditte.h>
 | 
			
		||||
#include <attiv.h>
 | 
			
		||||
#include <mov.h>
 | 
			
		||||
#include <pconti.h>
 | 
			
		||||
#include <rmov.h>
 | 
			
		||||
#include <rmoviva.h>
 | 
			
		||||
#include <multirel.h>
 | 
			
		||||
 | 
			
		||||
#include "../cg/cglib01.h"
 | 
			
		||||
#include "../cg/cg2103.h"
 | 
			
		||||
 | 
			
		||||
bool TTS_mask::apply_filter(const TRecordset& righe) const
 | 
			
		||||
{
 | 
			
		||||
  const TDate dal = get(F_DATA_DA);
 | 
			
		||||
  const TDate al = get(F_DATA_AL);
 | 
			
		||||
  if (dal.ok() || al.ok())
 | 
			
		||||
  {
 | 
			
		||||
    const TDate scad = righe.get("DATASCAD").as_date();
 | 
			
		||||
    if ((dal.ok() && scad < dal) || (al.ok() && scad > al))
 | 
			
		||||
      return false;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTS_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
			
		||||
{
 | 
			
		||||
  bool ok = true;
 | 
			
		||||
  switch (o.dlg())
 | 
			
		||||
  {
 | 
			
		||||
  case F_DATA_DA:
 | 
			
		||||
  case F_DATA_AL:
 | 
			
		||||
    break;
 | 
			
		||||
  default:
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
  return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TTS_mask::serialize(bool bSave)
 | 
			
		||||
{
 | 
			
		||||
  const char* defpar = "tc";
 | 
			
		||||
  TConfig ini(CONFIG_DITTA, defpar);
 | 
			
		||||
  for (int i = fields()-1; i >= 0; i--)
 | 
			
		||||
  {
 | 
			
		||||
    TMask_field& f = fld(i);
 | 
			
		||||
    const TFieldref* fr = f.field();
 | 
			
		||||
    if (fr != NULL)
 | 
			
		||||
    {
 | 
			
		||||
      if (bSave)
 | 
			
		||||
        fr->write(ini, defpar, f.get());
 | 
			
		||||
      else
 | 
			
		||||
        f.set(fr->read(ini, defpar));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TTS_mask::TTS_mask(const char * maskname) 
 | 
			
		||||
         : TAutomask(maskname), _updating(false), _next_update(0)
 | 
			
		||||
{
 | 
			
		||||
  serialize(false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TTS_mask::~TTS_mask()
 | 
			
		||||
{
 | 
			
		||||
  serialize(true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTS_campo_sender::destroy()
 | 
			
		||||
{
 | 
			
		||||
	delete _mask;
 | 
			
		||||
	return TTS_sender::destroy();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TRecordset & TTS_campo_sender::movrecset()
 | 
			
		||||
{
 | 
			
		||||
	const TMask & m = get_mask();
 | 
			
		||||
	const TDate from = m.get_date(F_DATA_DA);
 | 
			
		||||
	const TDate to = m.get_date(F_DATA_AL);
 | 
			
		||||
	TRecordset * mov = get_recset(LF_MOV);
 | 
			
		||||
 | 
			
		||||
	if (mov == NULL)
 | 
			
		||||
	{
 | 
			
		||||
		TString query = "USE MOV KEY 2 SELECT INVIATO!=\"X\"";           
 | 
			
		||||
 | 
			
		||||
		query << "\nFROM DATAREG=#DATA_DA";      
 | 
			
		||||
		query << "\nTO DATAREG=#DATA_AL";      
 | 
			
		||||
	
 | 
			
		||||
		mov = set_recset(LF_MOV, ::create_recordset(query));
 | 
			
		||||
	}
 | 
			
		||||
	mov->set_var("#DATA_DA", TVariant(from));
 | 
			
		||||
  mov->set_var("#DATA_AL", TVariant(to));
 | 
			
		||||
	return *mov;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TRecordset & TTS_campo_sender::rmovrecset(const TRecordset & mov)
 | 
			
		||||
{
 | 
			
		||||
	TRecordset * rmov = get_recset(LF_RMOV);
 | 
			
		||||
 | 
			
		||||
	if (rmov == NULL)
 | 
			
		||||
		rmov = set_recset(LF_RMOV, ::create_recordset("USE RMOV\nFROM NUMREG=#NUMREG\nTO NUMREG=#NUMREG"));
 | 
			
		||||
 | 
			
		||||
	const TVariant & numreg = mov.get(MOV_NUMREG);
 | 
			
		||||
	
 | 
			
		||||
	if (numreg != rmov->get("#NUMREG"))
 | 
			
		||||
		rmov->set_var("#NUMREG", numreg);
 | 
			
		||||
	return *rmov;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TRecordset & TTS_campo_sender::rivarecset(const TRecordset & mov)
 | 
			
		||||
{
 | 
			
		||||
	TRecordset * rmoviva = get_recset(LF_RMOVIVA);
 | 
			
		||||
 | 
			
		||||
	if (rmoviva == NULL)
 | 
			
		||||
		rmoviva = set_recset(LF_RMOVIVA, ::create_recordset("USE RMOVIVA\nFROM NUMREG=#NUMREG\nTO NUMREG=#NUMREG"));
 | 
			
		||||
 | 
			
		||||
	const TVariant & numreg = mov.get(MOV_NUMREG);
 | 
			
		||||
	
 | 
			
		||||
	if (numreg != rmoviva->get("#NUMREG"))
 | 
			
		||||
		rmoviva->set_var("#NUMREG", numreg);
 | 
			
		||||
	return *rmoviva;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const TRecordset& TTS_campo_sender::clirecset(const char tipocf, const long codcf)
 | 
			
		||||
{
 | 
			
		||||
	TRecordset * clifo = get_recset(LF_CLIFO);
 | 
			
		||||
 | 
			
		||||
	if (clifo == NULL)
 | 
			
		||||
		clifo = set_recset(LF_CLIFO, ::create_recordset("USE CLIFO\nFROM TIPOCF=#TIPOCF CODCF=#CODCF\nTO TIPOCF=#TIPOCF CODCF=#CODCF"));
 | 
			
		||||
	TString4 w; w << tipocf;
 | 
			
		||||
	TVariant t(w);
 | 
			
		||||
 | 
			
		||||
	clifo->set_var("#TIPOCF", t);
 | 
			
		||||
	clifo->set_var("#CODCF", codcf);
 | 
			
		||||
  clifo->move_first();
 | 
			
		||||
	return *clifo;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTS_campo_sender::test_swap(const TRecordset& mov)
 | 
			
		||||
{
 | 
			
		||||
	TRecordset & rmov = rmovrecset(mov);
 | 
			
		||||
	const int anno = mov.get(MOV_ANNOIVA).as_int();
 | 
			
		||||
	TCausale caus(mov.get(MOV_CODCAUS).as_string(), anno);
 | 
			
		||||
	char sez = caus.sezione_clifo();
 | 
			
		||||
  const bool vendite = mov.get(MOV_TIPO).as_string()[0] != 'F';
 | 
			
		||||
  
 | 
			
		||||
  const bool s = vendite ^ (sez == 'D');
 | 
			
		||||
  return s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTS_campo_sender::swap_ritsoc(const TRecordset& mov)
 | 
			
		||||
{
 | 
			
		||||
	TRecordset & rmov = rmovrecset(mov);
 | 
			
		||||
  bool ok = rmov.move_first();
 | 
			
		||||
  const char sez = rmov.get(RMV_SEZIONE).as_string()[0];
 | 
			
		||||
	char sezrit = sez;
 | 
			
		||||
 | 
			
		||||
	for (; ok; ok = rmov.move_next())
 | 
			
		||||
	{
 | 
			
		||||
		const char tiporiga = rmov.get(RMV_ROWTYPE).as_string()[0];
 | 
			
		||||
 | 
			
		||||
		if (tiporiga =='S')
 | 
			
		||||
		{
 | 
			
		||||
		  sezrit = rmov.get(RMV_SEZIONE).as_string()[0];
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
  const bool s = sez != sezrit;
 | 
			
		||||
  return s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTS_campo_sender::mov_regolarizzazione(const TRecordset& mov)
 | 
			
		||||
{
 | 
			
		||||
  const TString& codcaus = mov.get(MOV_CODCAUS).as_string();
 | 
			
		||||
 | 
			
		||||
	return _caus_regolarizzazione.objptr(codcaus) != NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTS_campo_sender::mov_intra(const TRecordset& mov)
 | 
			
		||||
{
 | 
			
		||||
  const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
 | 
			
		||||
	
 | 
			
		||||
	return caus.get_bool(CAU_INTRACOM);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTS_campo_sender::mov_reverse_charge(const TRecordset& mov)
 | 
			
		||||
{
 | 
			
		||||
  const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
 | 
			
		||||
	const int	regsp = caus.get_int(CAU_REGSPIVA);
 | 
			
		||||
 | 
			
		||||
	return regsp == 13 || regsp == 50 || regsp == 51;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTS_campo_sender::regime_agricolo(const TRecordset& mov) const
 | 
			
		||||
{
 | 
			
		||||
	TToken_string key;
 | 
			
		||||
	
 | 
			
		||||
	key.format("%04d%s", mov.get(MOV_ANNOIVA).as_int(), (const char *) mov.get(MOV_REG).as_string());
 | 
			
		||||
 | 
			
		||||
	const TRectype& reg = cache().get("REG", key);
 | 
			
		||||
 | 
			
		||||
	key.cut(0);
 | 
			
		||||
	key.add(prefix().get_codditta());
 | 
			
		||||
	key.add(reg.get("S8"));
 | 
			
		||||
	const TRectype& attiv = cache().get(LF_ATTIV, key);
 | 
			
		||||
	return attiv.get_bool(ATT_REGAGR);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TMask & TTS_campo_sender::get_mask()
 | 
			
		||||
{
 | 
			
		||||
	if (_mask == NULL)
 | 
			
		||||
	{
 | 
			
		||||
		_mask = new TTS_mask(mask_name());
 | 
			
		||||
		TDate to(TODAY);
 | 
			
		||||
		TConfig configtc(CONFIG_DITTA, "tc");
 | 
			
		||||
		const TDate from(configtc.get("TSULTINV"));
 | 
			
		||||
 | 
			
		||||
		if (from.ok())
 | 
			
		||||
			to.addmonth(-1);
 | 
			
		||||
		to.set_end_month();
 | 
			
		||||
		if (to <= from)
 | 
			
		||||
		{
 | 
			
		||||
			to = from;
 | 
			
		||||
			to.addmonth(1);
 | 
			
		||||
			to.set_end_month();
 | 
			
		||||
		}
 | 
			
		||||
		_mask->set(F_DATA_DA, from);
 | 
			
		||||
		_mask->set(F_DATA_AL, to);
 | 
			
		||||
	}
 | 
			
		||||
	return * _mask;
 | 
			
		||||
}
 | 
			
		||||
	
 | 
			
		||||
bool TTS_campo_sender::find_regolarizzazione(TRecordset& mov)
 | 
			
		||||
{
 | 
			
		||||
	bool found = false;
 | 
			
		||||
  
 | 
			
		||||
  const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
 | 
			
		||||
	const TString4 causreg =	caus.get(CAU_CODCAUREG);
 | 
			
		||||
	real totdoc = mov.get(MOV_TOTDOC).as_real();
 | 
			
		||||
	const real ritfis = mov.get(MOV_RITFIS).as_real();
 | 
			
		||||
	const real ritsoc = mov.get(MOV_RITSOC).as_real();
 | 
			
		||||
 | 
			
		||||
	if (ritfis != ZERO)
 | 
			
		||||
		totdoc += ritfis;
 | 
			
		||||
  if (ritsoc != ZERO)
 | 
			
		||||
	{
 | 
			
		||||
		if (swap_ritsoc(mov))                      // Somma ritenute sociali con segno
 | 
			
		||||
			totdoc -= ritsoc;
 | 
			
		||||
	  else
 | 
			
		||||
		  totdoc += ritsoc;                        
 | 
			
		||||
	}
 | 
			
		||||
  if (test_swap(mov))
 | 
			
		||||
		totdoc = -totdoc;
 | 
			
		||||
 | 
			
		||||
	TToken_string key(mov.get(MOV_TIPO).as_string());
 | 
			
		||||
	key.add(mov.get(MOV_CODCF).as_int());
 | 
			
		||||
	const TRectype & cli = cache().get(LF_CLIFO, key);
 | 
			
		||||
	const TString16 paiv = cli.get(CLI_PAIV);
 | 
			
		||||
	const TString16 cf = cli.get(CLI_COFI);
 | 
			
		||||
	TEsercizi_contabili esc;
 | 
			
		||||
	const TEsercizio & e = esc.esercizio(esc.date2esc(mov.get(MOV_DATAREG).as_date()));
 | 
			
		||||
	const TDate to(e.fine());
 | 
			
		||||
 | 
			
		||||
	for (bool ok = mov.move_next(); ok && ! found; ok = mov.move_next())
 | 
			
		||||
	{
 | 
			
		||||
		const TDate dreg = mov.get(MOV_DATAREG).as_date();
 | 
			
		||||
		if (dreg >to)
 | 
			
		||||
			break;
 | 
			
		||||
	  const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
 | 
			
		||||
		const TString4 cod = caus.get(CAU_CODCAUS);
 | 
			
		||||
		
 | 
			
		||||
		found = (causreg.full() && cod == causreg) || (causreg.blank() && (_caus_regolarizzazione.objptr(cod) || caus.get_bool(CAU_SOLOIVA)));
 | 
			
		||||
		found &= (totdoc == mov.get(MOV_TOTDOC).as_real());
 | 
			
		||||
 | 
			
		||||
		key = mov.get(MOV_TIPO).as_string();
 | 
			
		||||
		key.add(mov.get(MOV_CODCF).as_int());
 | 
			
		||||
		const TRectype & clireg = cache().get(LF_CLIFO, key);
 | 
			
		||||
		const TString16 paivreg = clireg.get(CLI_PAIV);
 | 
			
		||||
		const TString16 cfreg = clireg.get(CLI_COFI);
 | 
			
		||||
 | 
			
		||||
		found &= ((paiv.full() && paiv == paivreg) || (paiv.blank() && cf == cfreg));
 | 
			
		||||
		if (found)
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return found;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
long TTS_campo_sender::iva11_reverse(const TRecordset & mov)
 | 
			
		||||
{
 | 
			
		||||
  const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
 | 
			
		||||
 | 
			
		||||
	return caus.get_int(CAU_REGSPIVA);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char * TTS_campo_sender::decode_causale(const TRecordset& mov)
 | 
			
		||||
{
 | 
			
		||||
  const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
 | 
			
		||||
	
 | 
			
		||||
	return caus.get(CAU_DESCR);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TTS_campo_sender::postprocess_movs(TRecordset & mov)
 | 
			
		||||
{
 | 
			
		||||
	if (yesno_box(TR("Confermare il traferimento")))
 | 
			
		||||
	{
 | 
			
		||||
		TConfig configtc(CONFIG_DITTA);
 | 
			
		||||
		TMask & m = get_mask();
 | 
			
		||||
 | 
			
		||||
		configtc.set("TSULTINV", m.get_date(F_DATA_AL));
 | 
			
		||||
 | 
			
		||||
		if (mov.items() > 0L)
 | 
			
		||||
		{
 | 
			
		||||
			TProgind pi(mov.items(), TR("Conferma 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.put(MOV_INVIATO, true);
 | 
			
		||||
					cgmov.rewrite();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool search_reg(const TRelation& rel, void* pJolly)
 | 
			
		||||
{
 | 
			
		||||
	TAssoc_array * _caus_regolarizzazione =	(TAssoc_array *) pJolly;
 | 
			
		||||
	const bool solaiva = rel.lfile().get_bool(CAU_SOLOIVA);
 | 
			
		||||
	const TString codcaus = rel.lfile().get(CAU_CODCAUREG);
 | 
			
		||||
 | 
			
		||||
	if (codcaus.full())
 | 
			
		||||
		_caus_regolarizzazione->add(codcaus, codcaus);
 | 
			
		||||
	
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool TTS_campo_sender::create()
 | 
			
		||||
{
 | 
			
		||||
	TRelation rel(LF_CAUSALI);
 | 
			
		||||
	TCursor c(&rel);
 | 
			
		||||
  bool ok = c.scan(search_reg, &_caus_regolarizzazione, "Ricerca causali di regolarizzazione");
 | 
			
		||||
	
 | 
			
		||||
	TLocalisamfile clifo(LF_CLIFO);
 | 
			
		||||
	bool big_cli_code = false;
 | 
			
		||||
	
 | 
			
		||||
	clifo.put(CLI_TIPOCF, "C");
 | 
			
		||||
	clifo.put(CLI_CODCF, 100000L);
 | 
			
		||||
	if (!((clifo.read(_isgteq) == _iseof) || (clifo.get(CLI_TIPOCF) == "F")))
 | 
			
		||||
		big_cli_code = true;
 | 
			
		||||
	if (!big_cli_code)
 | 
			
		||||
	{
 | 
			
		||||
		clifo.put(CLI_TIPOCF, "F");
 | 
			
		||||
		clifo.put(CLI_CODCF, 100000L);;
 | 
			
		||||
 | 
			
		||||
		if (clifo.read(_isgteq) != _iseof)
 | 
			
		||||
			big_cli_code = true;
 | 
			
		||||
	}
 | 
			
		||||
	if (big_cli_code)
 | 
			
		||||
		riclassifica().add("TSNOHCLI", EMPTY_STRING);
 | 
			
		||||
 | 
			
		||||
	return ok && TTS_sender::create();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int tc2700(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  TTS_campo_sender app;
 | 
			
		||||
  app.run(argc, argv, TR("Invio a TeamSystem"));
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										82
									
								
								tc/tc2700a.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										82
									
								
								tc/tc2700a.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,82 @@
 | 
			
		||||
#include "tc2700a.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_ELABORA 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -12 -11 "~Elabora"
 | 
			
		||||
  PICTURE BMP_ELABORA
 | 
			
		||||
  MESSAGE EXIT,K_ENTER
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
#include <helpbar.h>
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Esportazione movimenti contabilita'" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 1 "@bDitta corrente"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODDITTA 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 2 "Codice      "
 | 
			
		||||
  FLAGS "FD"
 | 
			
		||||
  USE LF_NDITTE
 | 
			
		||||
  INPUT CODDITTA F_CODDITTA
 | 
			
		||||
  OUTPUT F_RAGSOC RAGSOC
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RAGSOC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 23 2 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 4 "Dati da inviare"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_MOVIMENTI
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 5 "Movimenti contabili"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_INTRASTAT
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 6 "Intrastat"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_PATH 256 39
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 8 "Cartella "
 | 
			
		||||
  DSELECT
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD TSDestPath
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FILE 18
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 54 8 "File "
 | 
			
		||||
  FIELD TSDestFile
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DATE F_DATA_DA
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 10 "Data iniz. "
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATE F_DATA_AL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 30 10 "Data fin. "
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										1529
									
								
								tc/tc2701.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1529
									
								
								tc/tc2701.cpp
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										180
									
								
								tc/tc2800.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										180
									
								
								tc/tc2800.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,180 @@
 | 
			
		||||
// gestione files Contabilita' Analitica: CENTRI DI COSTO
 | 
			
		||||
#include <automask.h>
 | 
			
		||||
#include <execp.h>
 | 
			
		||||
#include <relapp.h>
 | 
			
		||||
#include <pconti.h>
 | 
			
		||||
#include <recarray.h>
 | 
			
		||||
 | 
			
		||||
#include "tc2800a.h"
 | 
			
		||||
 | 
			
		||||
////////////////////////////////////////////////////////////////////////
 | 
			
		||||
//MASCHERA
 | 
			
		||||
////////////////////////////////////////////////////////////////////////
 | 
			
		||||
class TTS_ricl_msk : public TAutomask
 | 
			
		||||
{
 | 
			
		||||
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
			
		||||
	
 | 
			
		||||
public:
 | 
			
		||||
  TTS_ricl_msk() : TAutomask("tc2800a") {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool TTS_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly) 
 | 
			
		||||
{
 | 
			
		||||
	switch (o.dlg())
 | 
			
		||||
	{
 | 
			
		||||
	case F_CONTO:
 | 
			
		||||
		break;			
 | 
			
		||||
	default:
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class TTSRiclass_application : public TRelation_application
 | 
			
		||||
 | 
			
		||||
// @author:(INTERNAL) Vari
 | 
			
		||||
// @access:(INTERNAL) Private Member
 | 
			
		||||
{
 | 
			
		||||
  // @cmember:(INTERNAL) Maschera corrente dell'applicazione
 | 
			
		||||
  TMask* _msk;
 | 
			
		||||
  // @cmember:(INTERNAL) Relazione corrente dell'applicazione
 | 
			
		||||
  TRelation* _rel;
 | 
			
		||||
	bool _use_pcn;
 | 
			
		||||
 | 
			
		||||
	// @access Protected Member
 | 
			
		||||
protected:
 | 
			
		||||
  virtual TMask* get_mask(int mode = MODE_QUERY) { CHECK(_msk, "Null mask"); return _msk; }
 | 
			
		||||
  // @cmember Indica se la futura <mf Tab_application::get_mask> ritornera' una maschera diversa
 | 
			
		||||
  //        dalla corrente.
 | 
			
		||||
  virtual bool changing_mask(int mode) { return false; }
 | 
			
		||||
  // @cmember Ritorna la relazione da modificare
 | 
			
		||||
  virtual TRelation* get_relation() const {  CHECK(_rel, "Null relation"); return _rel; }
 | 
			
		||||
  // @cmember Inizializza la maschera per il modo ricerca
 | 
			
		||||
  virtual void init_query_mode(TMask& m);
 | 
			
		||||
  // @cmember Inizializza la maschera per il modo ricerca ed inserimento (chiama <mf TRelation_application::init_query_mode>)
 | 
			
		||||
  virtual void init_query_insert_mode(TMask& m) ;
 | 
			
		||||
  // @cmember Inizializza la maschera per il modo inserimento
 | 
			
		||||
  virtual void  init_insert_mode(TMask& m);
 | 
			
		||||
  // @cmember Inizializza la maschera per il modo modifica
 | 
			
		||||
  virtual void  init_modify_mode(TMask& m);
 | 
			
		||||
  // @cmember Inizializzazione dei dati dell'utente
 | 
			
		||||
  virtual bool user_create() ;
 | 
			
		||||
  // @cmember Distruzione dei dati dell'utente
 | 
			
		||||
  virtual bool user_destroy() ;
 | 
			
		||||
  // @cmember Chiama il programma di stampa
 | 
			
		||||
  virtual void print();
 | 
			
		||||
 | 
			
		||||
// @access Public Member
 | 
			
		||||
public:
 | 
			
		||||
  // @cmember Costruttore
 | 
			
		||||
  TTSRiclass_application() : _msk(NULL), _rel(NULL) { }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // @cmember Distruttore
 | 
			
		||||
  virtual ~TTSRiclass_application() {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void TTSRiclass_application::print()
 | 
			
		||||
{
 | 
			
		||||
  TFilename rep("tctsricl.rep");
 | 
			
		||||
	TString cmd;
 | 
			
		||||
 | 
			
		||||
  rep.custom_path();
 | 
			
		||||
  cmd << "ba8 -4 "<< rep;
 | 
			
		||||
  TExternal_app stampa(cmd);
 | 
			
		||||
  stampa.run();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TTSRiclass_application::init_query_mode(TMask& m) 
 | 
			
		||||
{
 | 
			
		||||
	TRelation_application::init_query_mode(m);
 | 
			
		||||
 | 
			
		||||
	m.show(-1, _use_pcn);
 | 
			
		||||
	m.enable(-1, _use_pcn);
 | 
			
		||||
	m.show(-20, !_use_pcn);
 | 
			
		||||
	m.hide(-2);
 | 
			
		||||
	m.disable(-2);
 | 
			
		||||
	m.disable(-10);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TTSRiclass_application::init_query_insert_mode(TMask& m) 
 | 
			
		||||
{
 | 
			
		||||
	TRelation_application::init_query_insert_mode(m);
 | 
			
		||||
 | 
			
		||||
	m.hide(-1);
 | 
			
		||||
	m.disable(-1);
 | 
			
		||||
	m.show(-20, !_use_pcn);
 | 
			
		||||
	m.show(-2, _use_pcn);
 | 
			
		||||
	m.enable(-2, _use_pcn);
 | 
			
		||||
	m.enable(-10, _use_pcn);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TTSRiclass_application::init_modify_mode(TMask& m)
 | 
			
		||||
{
 | 
			
		||||
	TRelation_application::init_modify_mode(m);
 | 
			
		||||
 | 
			
		||||
	m.show(-1, _use_pcn);
 | 
			
		||||
	m.show(-20, !_use_pcn);
 | 
			
		||||
	m.disable(-1);
 | 
			
		||||
	m.hide(-2);
 | 
			
		||||
	m.disable(-10);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TTSRiclass_application::init_insert_mode(TMask& m)
 | 
			
		||||
{
 | 
			
		||||
	TRelation_application::init_insert_mode(m);
 | 
			
		||||
 | 
			
		||||
	m.show(-1, _use_pcn);
 | 
			
		||||
	m.show(-20, !_use_pcn);
 | 
			
		||||
	m.disable(-1);
 | 
			
		||||
	m.hide(-2);
 | 
			
		||||
	m.disable(-2);
 | 
			
		||||
	m.disable(-10);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTSRiclass_application::user_create()
 | 
			
		||||
{
 | 
			
		||||
  _rel = new TRelation(LF_RICLPDC);
 | 
			
		||||
  _msk = new TTS_ricl_msk;
 | 
			
		||||
  
 | 
			
		||||
	TConfig config(CONFIG_DITTA);
 | 
			
		||||
	_use_pcn = config.get_bool("TSUSECMPCN");
 | 
			
		||||
 | 
			
		||||
	_msk->show(-10, _use_pcn);
 | 
			
		||||
	_msk->show(-20, !_use_pcn);
 | 
			
		||||
	set_search_field(_use_pcn ? F_SOTTOCONTO : F_SOTTOCONTO1);
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  TFilename rep("tctsricl.rep");
 | 
			
		||||
 | 
			
		||||
  if (rep.custom_path()) 
 | 
			
		||||
    enable_menu_item(M_FILE_PRINT);
 | 
			
		||||
  
 | 
			
		||||
  TString title;
 | 
			
		||||
  _msk->get_caption(title);
 | 
			
		||||
  set_title(title);
 | 
			
		||||
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TTSRiclass_application::user_destroy() 
 | 
			
		||||
{
 | 
			
		||||
  if (_msk)
 | 
			
		||||
		delete _msk;
 | 
			
		||||
  if (_rel)
 | 
			
		||||
		delete _rel;
 | 
			
		||||
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int tc2800(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  TTSRiclass_application a;
 | 
			
		||||
 | 
			
		||||
  a.run(argc, argv, TR("Riclassificazione piano dei conti Team System"));
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1357
									
								
								tc/tc2900.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1357
									
								
								tc/tc2900.cpp
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										77
									
								
								tc/tc2900a.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										77
									
								
								tc/tc2900a.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,77 @@
 | 
			
		||||
#include "tc2900a.h"
 | 
			
		||||
 | 
			
		||||
PAGE "Invio a TeamSystem da transfer AS400" -1 -1 78 20
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 1 "@bDitta corrente"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODDITTA 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 2 "Codice      "
 | 
			
		||||
  FLAGS "FD"
 | 
			
		||||
  USE LF_NDITTE
 | 
			
		||||
  INPUT CODDITTA F_CODDITTA
 | 
			
		||||
  OUTPUT F_RAGSOC RAGSOC
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RAGSOC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 23 2 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 4 "Sorgente"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_INPATH 256 39
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 5 "Cartella        "
 | 
			
		||||
  DSELECT
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD TSTAInPath
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_INFILET 18
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 6 "File transfer   "
 | 
			
		||||
  FIELD TSTAInFile
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 8 "Destinazione"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_PATH 256 39
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 9 "Cartella        "
 | 
			
		||||
  DSELECT
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD TSTADestPath
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FILE 18
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 10 "File            "
 | 
			
		||||
  FIELD TSTADestFile
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -12 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -22 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										44
									
								
								tc/tctbi11.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								tc/tctbi11.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
#include "tctbi11.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
#include <relapbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "IVA 11" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Codice IVA 11 TeamSystem"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODTAB 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Codice      "
 | 
			
		||||
  USE &T11
 | 
			
		||||
  INPUT CODTAB F_CODTAB
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  OUTPUT F_CODTAB CODTAB
 | 
			
		||||
  OUTPUT F_DESC S0
 | 
			
		||||
	CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD CODTAB
 | 
			
		||||
	FLAGS "Z"
 | 
			
		||||
  KEY 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 5 "Descrizione "
 | 
			
		||||
  USE &T11 KEY 2
 | 
			
		||||
  INPUT S0 F_DESC
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  COPY OUTPUT F_CODTAB
 | 
			
		||||
  FIELD S0
 | 
			
		||||
  KEY 2
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										45
									
								
								tc/tctbica.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										45
									
								
								tc/tctbica.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,45 @@
 | 
			
		||||
#include "tctbica.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
#include <relapbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Causali" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Codice Causale TeamSystem"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODTAB 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Codice      "
 | 
			
		||||
  USE &TCA
 | 
			
		||||
  INPUT CODTAB F_CODTAB
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  OUTPUT F_CODTAB CODTAB
 | 
			
		||||
  OUTPUT F_DESC S0
 | 
			
		||||
	CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD CODTAB
 | 
			
		||||
  FLAGS "Z"
 | 
			
		||||
  VALIDATE FIXLEN_FUNC 3
 | 
			
		||||
  KEY 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 5 "Descrizione "
 | 
			
		||||
  USE &TCA KEY 2
 | 
			
		||||
  INPUT S0 F_DESC
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  COPY OUTPUT F_CODTAB
 | 
			
		||||
  FIELD S0
 | 
			
		||||
  KEY 2
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										5
									
								
								tc/tctbico.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								tc/tctbico.h
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
#define F_CODTAB     102
 | 
			
		||||
#define F_CODTAB1    103
 | 
			
		||||
#define F_CODTAB2    104
 | 
			
		||||
#define F_DESC       105
 | 
			
		||||
#define F_INDBIL     106
 | 
			
		||||
							
								
								
									
										82
									
								
								tc/tctbico.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										82
									
								
								tc/tctbico.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,82 @@
 | 
			
		||||
#include "tctbico.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
#include <relapbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Conti" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Codice Conto TeamSystem"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODTAB 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Gruppo      "
 | 
			
		||||
  USE &TCO
 | 
			
		||||
  INPUT CODTAB[1,2] F_CODTAB
 | 
			
		||||
  INPUT CODTAB[3,4] F_CODTAB1
 | 
			
		||||
  INPUT CODTAB[5,7] F_CODTAB2
 | 
			
		||||
  DISPLAY "Gruppo" CODTAB[1,2]
 | 
			
		||||
  DISPLAY "Conto" CODTAB[3,4]
 | 
			
		||||
  DISPLAY "Sottoconto" CODTAB[5,7]
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  OUTPUT F_CODTAB CODTAB[1,2]
 | 
			
		||||
  OUTPUT F_CODTAB1 CODTAB[3,4]
 | 
			
		||||
  OUTPUT F_CODTAB2 CODTAB[5,7]
 | 
			
		||||
  OUTPUT F_DESC S0
 | 
			
		||||
	CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD CODTAB[1,2]
 | 
			
		||||
  VALIDATE FIXLEN_FUNC 2
 | 
			
		||||
  KEY 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODTAB1 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 20 2 "Conto "
 | 
			
		||||
  COPY ALL F_CODTAB
 | 
			
		||||
	CHECKTYPE SEARCH
 | 
			
		||||
  FIELD CODTAB[3,4]
 | 
			
		||||
  VALIDATE FIXLEN_FUNC 2
 | 
			
		||||
  KEY 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODTAB2 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 30 2 "Sottoconto "
 | 
			
		||||
  COPY ALL F_CODTAB
 | 
			
		||||
	CHECKTYPE SEARCH
 | 
			
		||||
  FIELD CODTAB[5,7]
 | 
			
		||||
  VALIDATE FIXLEN_FUNC 3
 | 
			
		||||
  KEY 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 5 "Descrizione           "
 | 
			
		||||
  USE &TCO KEY 2
 | 
			
		||||
  INPUT S0 F_DESC
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  COPY OUTPUT F_CODTAB
 | 
			
		||||
  FIELD S0
 | 
			
		||||
  KEY 2
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
LIST F_INDBIL 15
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 7 "Indicatore di bilancio"
 | 
			
		||||
  FIELD I0
 | 
			
		||||
  ITEM "1|Attivita'"
 | 
			
		||||
  ITEM "2|Passivita'"
 | 
			
		||||
  ITEM "3|Costi"
 | 
			
		||||
  ITEM "4|Ricavi"
 | 
			
		||||
  ITEM "5|Conti d'ordine"
 | 
			
		||||
  ITEM "9|Varie"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										44
									
								
								tc/tctbiiva.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								tc/tctbiiva.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
#include "tctbi11.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
#include <relapbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Valute" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Codice Valuta TeamSystem"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODTAB 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Codice      "
 | 
			
		||||
  USE &TVA
 | 
			
		||||
  INPUT CODTAB F_CODTAB
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  OUTPUT F_CODTAB CODTAB
 | 
			
		||||
  OUTPUT F_DESC S0
 | 
			
		||||
	CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD CODTAB
 | 
			
		||||
  VALIDATE FIXLEN_FUNC 3
 | 
			
		||||
  KEY 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 5 "Descrizione "
 | 
			
		||||
  USE &TVA KEY 2
 | 
			
		||||
  INPUT S0 F_DESC
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  COPY OUTPUT F_CODTAB
 | 
			
		||||
  FIELD S0
 | 
			
		||||
  KEY 2
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										44
									
								
								tc/tctbina.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								tc/tctbina.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
#include "tctbipg.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
#include <relapbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Nazioni" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Codice Nazione TeamSystem"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODTAB 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Codice      "
 | 
			
		||||
  USE &TNA
 | 
			
		||||
  INPUT CODTAB F_CODTAB
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  OUTPUT F_CODTAB CODTAB
 | 
			
		||||
  OUTPUT F_DESC S0
 | 
			
		||||
	CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD CODTAB
 | 
			
		||||
  FLAGS "Z"
 | 
			
		||||
  KEY 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 5 "Descrizione "
 | 
			
		||||
  USE &TNA KEY 2
 | 
			
		||||
  INPUT S0 F_DESC
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  COPY OUTPUT F_CODTAB
 | 
			
		||||
  FIELD S0
 | 
			
		||||
  KEY 2
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										44
									
								
								tc/tctbipg.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								tc/tctbipg.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
#include "tctbipg.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
#include <relapbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Condizioni di pagamento" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Codice Pagamento TeamSystem"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODTAB 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Codice      "
 | 
			
		||||
  USE &TPG
 | 
			
		||||
  INPUT CODTAB F_CODTAB
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  OUTPUT F_CODTAB CODTAB
 | 
			
		||||
  OUTPUT F_DESC S0
 | 
			
		||||
	CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD CODTAB
 | 
			
		||||
  FLAGS "Z"
 | 
			
		||||
  KEY 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 5 "Descrizione "
 | 
			
		||||
  USE &TPG KEY 2
 | 
			
		||||
  INPUT S0 F_DESC
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  COPY OUTPUT F_CODTAB
 | 
			
		||||
  FIELD S0
 | 
			
		||||
  KEY 2
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										56
									
								
								tc/tctbire.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										56
									
								
								tc/tctbire.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,56 @@
 | 
			
		||||
#include "tctbire.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
#include <relapbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Registri" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Codice Registro TeamSystem"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
LIST F_TIPO 1 13
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Tipo "
 | 
			
		||||
	ITEM "A|Acquisti"
 | 
			
		||||
	ITEM "C|Corrispettivi"
 | 
			
		||||
	ITEM "V|Vendite"
 | 
			
		||||
  FIELD CODTAB[1,1]
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODTAB 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 25 2 "Codice      "
 | 
			
		||||
  USE &TRE
 | 
			
		||||
  INPUT CODTAB[1,1] F_TIPO
 | 
			
		||||
  INPUT CODTAB[2,3] F_CODTAB
 | 
			
		||||
  DISPLAY "Tipo" CODTAB[1,1]
 | 
			
		||||
  DISPLAY "Codice" CODTAB[2,3]
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  OUTPUT F_TIPO CODTAB[1,1]
 | 
			
		||||
  OUTPUT F_CODTAB CODTAB[2,3]
 | 
			
		||||
  OUTPUT F_DESC S0
 | 
			
		||||
	CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD CODTAB[2,3]
 | 
			
		||||
  VALIDATE FIXLEN_FUNC 2
 | 
			
		||||
  KEY 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 5 "Descrizione "
 | 
			
		||||
  USE &TRE KEY 2
 | 
			
		||||
  INPUT S0 F_DESC
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  COPY OUTPUT F_CODTAB
 | 
			
		||||
  FIELD S0
 | 
			
		||||
  KEY 2
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user