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