Patch level : 10.0 854

Files correlati     : tc2.exe
Ricompilazione Demo : [ ]
Commento            :

Tabelle di riclassificlazione per trasferimento a IPSOA


git-svn-id: svn://10.65.10.50/branches/R_10_00@21264 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-12-07 17:00:51 +00:00
parent 3c7ec717e2
commit 6e0819cd50
33 changed files with 982 additions and 2199 deletions

View File

@ -11,9 +11,9 @@
#define F_RIPRISTINO 121
#define F_ULTINVIO 122
#define F_EMCAU 123
#define F_LICVPC1 124
#define F_LICVPC2 125
#define F_LICVPC3 126
#define F_LICVPC4 127
#define F_LICVPC5 128
#define F_LICVPC6 129
#define F_LIVPC1 124
#define F_LIVPC2 125
#define F_LIVPC3 126
#define F_LIVPC4 127
#define F_LIVPC5 128
#define F_LIVPC6 129

View File

@ -7,15 +7,11 @@ 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 2: tc2300(argc,argv); break; // parametri ditta
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;
default: ; tc2100(argc,argv); break;
}
exit(0);
return 0;

View File

@ -1,27 +1,117 @@
#include "tc2.h"
#include "tctbico.h"
// gestione tabelle Zucchetti
#include <modaut.h>
#include <modtbapp.h>
#include <tabutil.h>
///////////////////////////////////////////////////////////
// TConti_mask
///////////////////////////////////////////////////////////
class TConti_mask : public TMask
{
private:
protected:
public:
TConti_mask(const char * maskname);
~TConti_mask();
};
TConti_mask::TConti_mask(const char * maskname)
: TMask(maskname)
{
TString disp;
int fpos = 0;
int pos = 2;
TFilename tmp;
tmp.tempdir();
tmp.add("tmp.msk");
for (int i = 1; i <= 6; i++)
{
const int len = ini_get_int(CONFIG_DITTA, "tc", "IPLIVPC", 0, i);
const short id = F_CODTAB + i;
if (len <= 0)
{
field(id).hide();
field(id).disable();
}
else
{
ofstream out(tmp);
TString prompt = (i == 1) ? "Codice " : "";
TEdit_field & kfld = efield(id);
kfld.set_prompt(prompt);
pos += prompt.len() + 2;
kfld.set_rect(pos, 2, len, 1, len);
pos += len + 2;
TString80 fld("CODTAB[");
fld << ++fpos << ',';
fpos += len -1;
fld << fpos << "]";
kfld.set_field(fld);
out << "US &ICO\n";
if (len > 0)
{
if (i > 1)
out << "CO IN " << id - 1 << '\n';
out << "IN " << fld << ' ' << id << '\n';
disp << "DI \"" << prompt << "@" << max(len, prompt.len()) << "\" " << fld << '\n';
out << disp << "DI \"Descrizione@60\" S0\n";
if (i > 1)
out << "CO OU " << id - 1 << '\n';
out << "OU " << id << ' ' << fld << '\n';
}
out << "EN" << '\n';
out.close();
TScanner scan(tmp);
while (scan.pop() != "EN")
kfld.parse_item(scan);
}
}
ofstream out(tmp);
TEdit_field & dfld = efield(F_DESC);
out << "US &ICO KEY 2\n";
out << "IN S0 " << F_DESC << '\n';
out << "DI \"Descrizione@60\" S0\n" << disp;
out << "CO OU " << F_CODTAB1 << '\n';
out << "EN" << '\n';
out.close();
TScanner scan(tmp);
while (scan.pop() != "EN")
dfld.parse_item(scan);
}
TConti_mask::~TConti_mask()
{
}
// applicazione per la gestione delle tabelle di magazzino
class Tab_app_teamsystem : public TTable_module_application
class Tab_app_IPSOA : public TTable_module_application
{
protected: // TRelation_application
virtual bool user_create() ;
public:
Tab_app_teamsystem() {}
virtual ~Tab_app_teamsystem() {}
Tab_app_IPSOA() {}
virtual ~Tab_app_IPSOA() {}
};
HIDDEN inline Tab_app_teamsystem& app() { return (Tab_app_teamsystem&)main_app(); }
HIDDEN inline Tab_app_IPSOA& app() { return (Tab_app_IPSOA&)main_app(); }
bool Tab_app_teamsystem::user_create()
bool Tab_app_IPSOA::user_create()
{
/*
la Tab_application::user_create() apre la maschera TMask in modo automatico
@ -41,15 +131,18 @@ bool Tab_app_teamsystem::user_create()
if (ok)
{
//TMask& mask = *set_mask();
}
TMask& mask = *get_mask(MODE_QUERY);
TString name = mask.source_file(); name.lower();
if (name.find("ico") >= 0)
set_mask(new TConti_mask(name));
}
return ok;
}
int tc2100(int argc, char **argv)
{
Tab_app_teamsystem a;
Tab_app_IPSOA a;
a.run(argc, argv, TR("Tabella"));
return 0;
}

View File

@ -71,72 +71,58 @@ BEGIN
FIELD IPRCAU
END
//???
NUMBER F_EMCAU 3
BEGIN
PROMPT 42 12 "Caus.TS movim.senza causale "
USE &ICA
INPUT CODTAB F_EMCAU
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@60" S0
OUTPUT F_EMCAU CODTAB
CHECKTYPE REQUIRED
FLAGS "Z"
FIELD IPREMCAU
END
BOOLEAN F_RICLVALUTE
BEGIN
PROMPT 2 14 "Trascodifica valute"
PROMPT 42 12 "Trascodifica valute"
FIELD IPRVAL
END
NUMBER F_LIVPC1 2
BEGIN
PROMPT 2 16 "Lunghezza livelli piano dei conti : 1 "
PROMPT 2 14 "Lunghezza livelli piano dei conti : 1 "
FIELD IPLIVPC[1]
END
NUMBER F_LIVPC2 2
BEGIN
PROMPT 46 16 "2 "
PROMPT 46 14 "2 "
FIELD IPLIVPC[2]
END
NUMBER F_LIVPC3 2
BEGIN
PROMPT 52 16 "3 "
PROMPT 52 14 "3 "
FIELD IPLIVPC[3]
END
NUMBER F_LIVPC3 2
NUMBER F_LIVPC4 2
BEGIN
PROMPT 58 16 "4 "
PROMPT 58 14 "4 "
FIELD IPLIVPC[4]
END
NUMBER F_LIVPC5 2
BEGIN
PROMPT 64 16 "5 "
PROMPT 64 14 "5 "
FIELD IPLIVPC[5]
END
NUMBER F_LIVPC6 2
BEGIN
PROMPT 70 16 "6 "
PROMPT 70 14 "6 "
FIELD IPLIVPC[6]
END
BOOLEAN F_RIPRISTINO
BEGIN
PROMPT 2 18 "Ripristina alla data"
PROMPT 2 16 "Ripristina alla data"
MESSAGE FALSE DISABLE,F_ULTINVIO
MESSAGE TRUE ENABLE,F_ULTINVIO
END
DATE F_ULTINVIO
BEGIN
PROMPT 42 18 "Data ultimo invio "
PROMPT 42 16 "Data ultimo invio "
FIELD TSULTINV
FLAGS "D"
END

View File

@ -1,375 +0,0 @@
#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;
}

View File

@ -1,83 +0,0 @@
#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

View File

@ -22,7 +22,7 @@
#include "../cg/cglib01.h"
#include "../cg/cg2103.h"
bool TTS_mask::apply_filter(const TRecordset& righe) const
bool TIP_mask::apply_filter(const TRecordset& righe) const
{
const TDate dal = get(F_DATA_DA);
const TDate al = get(F_DATA_AL);
@ -35,7 +35,7 @@ bool TTS_mask::apply_filter(const TRecordset& righe) const
return true;
}
bool TTS_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
bool TIP_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
bool ok = true;
switch (o.dlg())
@ -49,7 +49,7 @@ bool TTS_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
return ok;
}
void TTS_mask::serialize(bool bSave)
void TIP_mask::serialize(bool bSave)
{
const char* defpar = "tc";
TConfig ini(CONFIG_DITTA, defpar);
@ -67,24 +67,24 @@ void TTS_mask::serialize(bool bSave)
}
}
TTS_mask::TTS_mask(const char * maskname)
TIP_mask::TIP_mask(const char * maskname)
: TAutomask(maskname), _updating(false), _next_update(0)
{
serialize(false);
}
TTS_mask::~TTS_mask()
TIP_mask::~TIP_mask()
{
serialize(true);
}
bool TTS_campo_sender::destroy()
bool TIP_campo_sender::destroy()
{
delete _mask;
return TTS_sender::destroy();
return TIP_sender::destroy();
}
TRecordset & TTS_campo_sender::movrecset()
TRecordset & TIP_campo_sender::movrecset()
{
const TMask & m = get_mask();
const TDate from = m.get_date(F_DATA_DA);
@ -105,7 +105,7 @@ TRecordset & TTS_campo_sender::movrecset()
return *mov;
}
TRecordset & TTS_campo_sender::rmovrecset(const TRecordset & mov)
TRecordset & TIP_campo_sender::rmovrecset(const TRecordset & mov)
{
TRecordset * rmov = get_recset(LF_RMOV);
@ -119,7 +119,7 @@ TRecordset & TTS_campo_sender::rmovrecset(const TRecordset & mov)
return *rmov;
}
TRecordset & TTS_campo_sender::rivarecset(const TRecordset & mov)
TRecordset & TIP_campo_sender::rivarecset(const TRecordset & mov)
{
TRecordset * rmoviva = get_recset(LF_RMOVIVA);
@ -133,7 +133,7 @@ TRecordset & TTS_campo_sender::rivarecset(const TRecordset & mov)
return *rmoviva;
}
const TRecordset& TTS_campo_sender::clirecset(const char tipocf, const long codcf)
const TRecordset& TIP_campo_sender::clirecset(const char tipocf, const long codcf)
{
TRecordset * clifo = get_recset(LF_CLIFO);
@ -148,7 +148,7 @@ const TRecordset& TTS_campo_sender::clirecset(const char tipocf, const long codc
return *clifo;
}
bool TTS_campo_sender::test_swap(const TRecordset& mov)
bool TIP_campo_sender::test_swap(const TRecordset& mov)
{
TRecordset & rmov = rmovrecset(mov);
const int anno = mov.get(MOV_ANNOIVA).as_int();
@ -160,7 +160,7 @@ bool TTS_campo_sender::test_swap(const TRecordset& mov)
return s;
}
bool TTS_campo_sender::swap_ritsoc(const TRecordset& mov)
bool TIP_campo_sender::swap_ritsoc(const TRecordset& mov)
{
TRecordset & rmov = rmovrecset(mov);
bool ok = rmov.move_first();
@ -182,21 +182,21 @@ bool TTS_campo_sender::swap_ritsoc(const TRecordset& mov)
return s;
}
bool TTS_campo_sender::mov_regolarizzazione(const TRecordset& mov)
bool TIP_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)
bool TIP_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)
bool TIP_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);
@ -204,7 +204,7 @@ bool TTS_campo_sender::mov_reverse_charge(const TRecordset& mov)
return regsp == 13 || regsp == 50 || regsp == 51;
}
bool TTS_campo_sender::regime_agricolo(const TRecordset& mov) const
bool TIP_campo_sender::regime_agricolo(const TRecordset& mov) const
{
TToken_string key;
@ -219,11 +219,11 @@ bool TTS_campo_sender::regime_agricolo(const TRecordset& mov) const
return attiv.get_bool(ATT_REGAGR);
}
TMask & TTS_campo_sender::get_mask()
TMask & TIP_campo_sender::get_mask()
{
if (_mask == NULL)
{
_mask = new TTS_mask(mask_name());
_mask = new TIP_mask(mask_name());
TDate to(TODAY);
TConfig configtc(CONFIG_DITTA, "tc");
const TDate from(configtc.get("TSULTINV"));
@ -243,7 +243,7 @@ TMask & TTS_campo_sender::get_mask()
return * _mask;
}
bool TTS_campo_sender::find_regolarizzazione(TRecordset& mov)
bool TIP_campo_sender::find_regolarizzazione(TRecordset& mov)
{
bool found = false;
@ -299,21 +299,21 @@ bool TTS_campo_sender::find_regolarizzazione(TRecordset& mov)
return found;
}
long TTS_campo_sender::iva11_reverse(const TRecordset & mov)
long TIP_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 char * TIP_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)
void TIP_campo_sender::postprocess_movs(TRecordset & mov)
{
if (yesno_box(TR("Confermare il traferimento")))
{
@ -358,7 +358,7 @@ bool search_reg(const TRelation& rel, void* pJolly)
}
bool TTS_campo_sender::create()
bool TIP_campo_sender::create()
{
TRelation rel(LF_CAUSALI);
TCursor c(&rel);
@ -382,12 +382,12 @@ bool TTS_campo_sender::create()
if (big_cli_code)
riclassifica().add("TSNOHCLI", EMPTY_STRING);
return ok && TTS_sender::create();
return ok && TIP_sender::create();
}
int tc2700(int argc, char* argv[])
{
TTS_campo_sender app;
app.run(argc, argv, TR("Invio a TeamSystem"));
TIP_campo_sender app;
app.run(argc, argv, TR("Invio a IPSOA"));
return 0;
}

63
tc/tc2700.h Executable file
View File

@ -0,0 +1,63 @@
#include <automask.h>
#include "tc2701.h"
///////////////////////////////////////////////////////////
// TIP_mask
///////////////////////////////////////////////////////////
class TIP_mask : public TAutomask
{
clock_t _next_update;
bool _updating;
private:
bool apply_filter(const TRecordset& righe) const;
void serialize(bool bSave);
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TIP_mask(const char * maskname);
~TIP_mask();
};
///////////////////////////////////////////////////////////
// TIP_campo_sender
///////////////////////////////////////////////////////////
class TIP_campo_sender : public TIP_sender
{
TIP_mask * _mask;
TAssoc_array _caus_regolarizzazione;
protected:
virtual TRecordset & movrecset();
virtual TRecordset & rmovrecset(const TRecordset & mov);
virtual TRecordset & rivarecset(const TRecordset & mov);
virtual const TRecordset & clirecset(const char tipocf, const long codcf);
virtual TMask & get_mask();
virtual const char * mask_name() const {return "tc0700a"; }
protected:
virtual bool find_regolarizzazione(TRecordset& mov);
virtual const char * decode_causale(const TRecordset& mov);
virtual bool test_swap(const TRecordset& mov);
virtual bool swap_ritsoc(const TRecordset& mov);
virtual bool mov_regolarizzazione(const TRecordset& mov);
virtual bool mov_intra(const TRecordset& mov);
virtual bool mov_reverse_charge(const TRecordset& mov);
virtual long iva11_reverse(const TRecordset & mov);
virtual bool regime_agricolo(const TRecordset& mov) const;
public:
virtual void postprocess_movs(TRecordset & mov);
virtual bool create();
virtual bool destroy();
TIP_campo_sender() : TIP_sender(), _mask(NULL) {}
~TIP_campo_sender() {}
};

10
tc/tc2700a.h Executable file
View File

@ -0,0 +1,10 @@
// invio dati ad altra procedura (teamsystem)
#define F_CODDITTA 101
#define F_RAGSOC 102
#define F_MOVIMENTI 103
#define F_INTRASTAT 104
#define F_PATH 105
#define F_FILE 106
#define F_DATA_DA 107
#define F_DATA_AL 108

View File

@ -25,7 +25,7 @@
HIDDEN const char* const __tiporicconti = "TSCONTI";
TObject* TTSRiclassifica_cache::key2obj(const char* key)
TObject* TIPRiclassifica_cache::key2obj(const char* key)
{
TToken_string tok(key);
TString8 tab, cod;
@ -39,7 +39,7 @@ TObject* TTSRiclassifica_cache::key2obj(const char* key)
return NULL;
}
long TTSRiclassifica_cache::decode(const char* tab, const TString& cod)
long TIPRiclassifica_cache::decode(const char* tab, const TString& cod)
{
TToken_string tok;
tok.add(tab);
@ -48,7 +48,7 @@ long TTSRiclassifica_cache::decode(const char* tab, const TString& cod)
return (ric ? atol(*ric) : 0);
}
const char * TTSRiclassifica_cache::sdecode(const char* tab, const TString& cod)
const char * TIPRiclassifica_cache::sdecode(const char* tab, const TString& cod)
{
TToken_string tok;
tok.add(tab);
@ -85,13 +85,13 @@ const long TSbill2ricl(char & t, int gr, int co, long so)
return codricl;
}
TTS_sender& app() { return (TTS_sender&)main_app(); }
TIP_sender& app() { return (TIP_sender&)main_app(); }
///////////////////////////////////////////////////////////
// TTS_textset
// TIP_textset
///////////////////////////////////////////////////////////
class TTS_textset : public TAS400_recordset
class TIP_textset : public TAS400_recordset
{
TAssoc_array _contatori;
@ -107,7 +107,7 @@ public:
virtual const TString& rec_type(TRecnotype r = -1) const;
virtual bool set(const char* field, const TVariant& v);
TTS_textset(const char* query = "");
TIP_textset(const char* query = "");
};
class TIVA_item : public TObject
@ -132,7 +132,7 @@ public:
virtual ~TIVA_item() {}
};
long TTS_textset::add_count(const char* tipo, long i)
long TIP_textset::add_count(const char* tipo, long i)
{
CHECK(strlen(tipo) == 1, "Tipo record non valido");
real* n = (real*)_contatori.objptr(tipo);
@ -145,13 +145,13 @@ long TTS_textset::add_count(const char* tipo, long i)
return n->integer();
}
const TString& TTS_textset::rec_type(TRecnotype r) const
const TString& TIP_textset::rec_type(TRecnotype r) const
{
const TString& t = TAS400_recordset::rec_type(r);
return t;
}
bool TTS_textset::destroy(TRecnotype r)
bool TIP_textset::destroy(TRecnotype r)
{
bool ok;
if (r >= 0)
@ -171,7 +171,7 @@ bool TTS_textset::destroy(TRecnotype r)
return ok;
}
void TTS_textset::add_field(const char* trc, const char* name, int len,
void TIP_textset::add_field(const char* trc, const char* name, int len,
char tipo, int from, const char* def)
{
const bool required = false;
@ -190,7 +190,7 @@ void TTS_textset::add_field(const char* trc, const char* name, int len,
create_field(fname, pos, len, t, required);
}
bool TTS_textset::set(const char* field, const TVariant& var)
bool TIP_textset::set(const char* field, const TVariant& var)
{
const char* err = NULL;
int c = -1;
@ -242,7 +242,7 @@ bool TTS_textset::set(const char* field, const TVariant& var)
return ok;
}
TTS_textset::TTS_textset(const char* query)
TIP_textset::TIP_textset(const char* query)
: TAS400_recordset(TString("AS400(7001,1,6)\n") << query)
{
const char an = 'a';
@ -529,10 +529,10 @@ TTS_textset::TTS_textset(const char* query)
}
///////////////////////////////////////////////////////////
// TTS_sender
// TIP_sender
///////////////////////////////////////////////////////////
const TString & TTS_sender::descr2agg(const char* d)
const TString & TIP_sender::descr2agg(const char* d)
{
TString & descr = get_tmp_string(128);
@ -550,13 +550,13 @@ const TString & TTS_sender::descr2agg(const char* d)
return descr;
}
bool TTS_sender::new_rec(const char* t)
bool TIP_sender::new_rec(const char* t)
{
CHECK(t && *t, "Tipo non valido");
return _tsfile->new_rec(t) >= 0;
}
void TTS_sender::log(int sev, const char* msg)
void TIP_sender::log(int sev, const char* msg)
{
if (_log != NULL)
{
@ -572,24 +572,24 @@ void TTS_sender::log(int sev, const char* msg)
}
}
void TTS_sender::set(const char* field, const TVariant& var)
void TIP_sender::set(const char* field, const TVariant& var)
{
_tsfile->set(field, var);
}
const TVariant& TTS_sender::get(const char* field)
const TVariant& TIP_sender::get(const char* field)
{
return _tsfile->get(field);
}
void TTS_sender::remove_last()
void TIP_sender::remove_last()
{
_tsfile->destroy(_tsfile->last());
_tsfile->move_last();
}
bool TTS_sender::add_optional_rec(TRecordset& mov, bool rec_to_add)
bool TIP_sender::add_optional_rec(TRecordset& mov, bool rec_to_add)
{
if (rec_to_add)
{
@ -599,7 +599,7 @@ bool TTS_sender::add_optional_rec(TRecordset& mov, bool rec_to_add)
return false;
}
bool TTS_sender::add_regol(TRecordset& mov, bool rec_to_add)
bool TIP_sender::add_regol(TRecordset& mov, bool rec_to_add)
{
rec_to_add = add_optional_rec(mov, rec_to_add);
@ -644,7 +644,7 @@ bool TTS_sender::add_regol(TRecordset& mov, bool rec_to_add)
return rec_to_add;
}
void TTS_sender::add_ulteriori(TRecordset& mov)
void TIP_sender::add_ulteriori(TRecordset& mov)
{
bool rec_to_add = true;
@ -652,11 +652,11 @@ void TTS_sender::add_ulteriori(TRecordset& mov)
add_regol(mov, rec_to_add);
}
void TTS_sender::add_ratei_risconti(const TRecordset& mov)
void TIP_sender::add_ratei_risconti(const TRecordset& mov)
{
}
const TString & TTS_sender::dittamulti(const TRecordset& mov) const
const TString & TIP_sender::dittamulti(const TRecordset& mov) const
{
if (multi_activity())
{
@ -678,7 +678,7 @@ const TString & TTS_sender::dittamulti(const TRecordset& mov) const
return _dittamulti;
}
void TTS_sender::add_new_rec(const TRecordset& mov)
void TIP_sender::add_new_rec(const TRecordset& mov)
{
set("TRF-80-SEGUENTE", "S");
if (new_rec("0"))
@ -688,7 +688,7 @@ void TTS_sender::add_new_rec(const TRecordset& mov)
}
}
void TTS_sender::add_diversi(const TRecordset& mov, const bool moviva)
void TIP_sender::add_diversi(const TRecordset& mov, const bool moviva)
{
const bool vendite = mov.get(MOV_TIPO).as_string()[0] != 'F';
const TString16 codice = scod2ricl("TSREG", mov.get(MOV_REG));
@ -865,7 +865,7 @@ void TTS_sender::add_diversi(const TRecordset& mov, const bool moviva)
}
}
void TTS_sender::add_conti_ricavo_costo(const TRecordset& mov)
void TIP_sender::add_conti_ricavo_costo(const TRecordset& mov)
{
TRecordset & rmov = rmovrecset(mov);
@ -945,7 +945,7 @@ void TTS_sender::add_conti_ricavo_costo(const TRecordset& mov)
}
}
void TTS_sender::add_tot_fattura(const TRecordset& mov)
void TIP_sender::add_tot_fattura(const TRecordset& mov)
{
const bool vendite = mov.get(MOV_TIPO).as_string()[0] != 'F';
real totdoc = mov.get(MOV_TOTDOC).as_real();
@ -970,7 +970,7 @@ void TTS_sender::add_tot_fattura(const TRecordset& mov)
_rit_acc = ZERO;
}
void TTS_sender::add_datiiva(const TRecordset& mov)
void TIP_sender::add_datiiva(const TRecordset& mov)
{
TRecordset & rmoviva = rivarecset(mov);
TString16 codice = scod2ricl("TSREG", mov.get(MOV_REG));
@ -1058,7 +1058,7 @@ void TTS_sender::add_datiiva(const TRecordset& mov)
}
}
void TTS_sender::add_header(const TRecordset& mov, const bool fullhesd)
void TIP_sender::add_header(const TRecordset& mov, const bool fullhesd)
{
const bool moviva = !mov.get(MOV_REG).is_empty();
const TString8 src_caus(mov.get(MOV_CODCAUS).as_string());
@ -1121,7 +1121,7 @@ void TTS_sender::add_header(const TRecordset& mov, const bool fullhesd)
}
}
void TTS_sender::get_citta_provincia(const TRecordset& cli, TString & dencom, TString & provcom, bool nascita)
void TIP_sender::get_citta_provincia(const TRecordset& cli, TString & dencom, TString & provcom, bool nascita)
{
TString16 key;
@ -1158,7 +1158,7 @@ void TTS_sender::get_citta_provincia(const TRecordset& cli, TString & dencom, TS
}
}
void TTS_sender::add_clifor(char tipocf, long codcf)
void TIP_sender::add_clifor(char tipocf, long codcf)
{
// dati clienti/fornitore
if (codcf != 0)
@ -1256,7 +1256,7 @@ void TTS_sender::add_clifor(char tipocf, long codcf)
}
}
void TTS_sender::add_mov(TRecordset& mov)
void TIP_sender::add_mov(TRecordset& mov)
{
TString msg; msg << TR("Registrazione n.") << ' ' << mov.get(MOV_NUMREG);
log(0, msg);
@ -1282,7 +1282,7 @@ void TTS_sender::add_mov(TRecordset& mov)
}
}
const long TTS_sender::bill2ricl(char & t, int gr, int co, long so, const bool header_cli)
const long TIP_sender::bill2ricl(char & t, int gr, int co, long so, const bool header_cli)
{
long codricl = 0;
if (gr > 0)
@ -1339,7 +1339,7 @@ const long TTS_sender::bill2ricl(char & t, int gr, int co, long so, const bool h
return codricl;
}
const TString & TTS_sender::scod2ricl(const char* tab, const TString& cod)
const TString & TIP_sender::scod2ricl(const char* tab, const TString& cod)
{
TString & codricl = get_tmp_string();
if (cod.full())
@ -1364,12 +1364,12 @@ const TString & TTS_sender::scod2ricl(const char* tab, const TString& cod)
return codricl;
}
const TString & TTS_sender::scod2ricl(const char* tab, const TVariant& cod)
const TString & TIP_sender::scod2ricl(const char* tab, const TVariant& cod)
{
return scod2ricl(tab, cod.as_string());
}
const long TTS_sender::cod2ricl(const char* tab, const TString& cod)
const long TIP_sender::cod2ricl(const char* tab, const TString& cod)
{
long codricl = 0;
if (cod.full())
@ -1399,12 +1399,12 @@ const long TTS_sender::cod2ricl(const char* tab, const TString& cod)
return codricl;
}
const long TTS_sender::cod2ricl(const char* tab, const TVariant& cod)
const long TIP_sender::cod2ricl(const char* tab, const TVariant& cod)
{
return cod2ricl(tab, cod.as_string());
}
void TTS_sender::set_parameters()
void TIP_sender::set_parameters()
{
TConfig configtc(CONFIG_DITTA, "tc");
@ -1465,26 +1465,26 @@ void TTS_sender::set_parameters()
}
}
bool TTS_sender::create()
bool TIP_sender::create()
{
_tabelle = new TTSRiclassifica_cache;
_tabelle = new TIPRiclassifica_cache;
set_parameters();
return TSkeleton_application::create();
}
bool TTS_sender::destroy()
bool TIP_sender::destroy()
{
delete _tabelle;
return TSkeleton_application::destroy();
}
void TTS_sender::main_loop()
void TIP_sender::main_loop()
{
TMask & m = get_mask();
while (m.run() != K_QUIT)
{
const char* const title = TR("Invio a TeamSystem");
_tsfile = new TTS_textset;
_tsfile = new TIP_textset;
_log = new TLog_report(title);
_errors_logged = false;

114
tc/tc2701.h Executable file
View File

@ -0,0 +1,114 @@
#include <applicat.h>
#include <recarray.h>
#include <relation.h>
#include <reputils.h>
#include <textset.h>
///////////////////////////////////////////////////////////
// TRiclassifica_cache
///////////////////////////////////////////////////////////
class TIPRiclassifica_cache : public TCache
{
TLocalisamfile _multirel;
protected:
virtual TObject* key2obj(const char* key);
public:
const char * sdecode(const char* tab, const TString& cod);
long decode(const char* tab, const TString& cod);
TIPRiclassifica_cache() : _multirel(LF_MULTIREL) { _multirel.setkey(2);}
};
///////////////////////////////////////////////////////////
// TIP_sender
///////////////////////////////////////////////////////////
const long TSbill2ricl(char & t, int gr, int co, long so);
///////////////////////////////////////////////////////////
// TIP_sender
///////////////////////////////////////////////////////////
class TIP_textset;
class TIP_sender : public TSkeleton_application
{
TIPRiclassifica_cache* _tabelle;
TAssoc_array _riclassifica;
TIP_textset* _tsfile;
TLog_report* _log;
bool _errors_logged;
TString8 _dittamulti;
TAssoc_array _dittemulti;
long _empty_caus;
TArray _recsets;
TAssoc_array _iva;
TAssoc_array _contiiva;
TAssoc_array _contirit;
bool _professionista;
bool _ventilazione;
real _rit_acc;
protected:
TRecordset * get_recset(const int logicnum) const { return (TRecordset *) _recsets.objptr(logicnum);}
TRecordset * set_recset(const int logicnum, TRecordset * r) { _recsets.add(r, logicnum); return r;}
TArray & recsets() { return _recsets;}
const TString & descr2agg(const char* d);
bool new_rec(const char* t);
void remove_last();
void set(const char* field, const TVariant& var);
void set(const char* field, const TString & str) { set(field, TVariant(str)); }
void set(const char* field, const int n) { set(field, TVariant((long)n)); }
void set(const char* field, const char* s) { set(field, TVariant(s)); }
void set(const char* field, const TDate& d) { set(field, TVariant(d)); }
void set(const char* field, const real& v) { set(field, TVariant(v)); }
const TVariant& get(const char* field);
void add_mov(TRecordset& mov);
void add_clifor(char tipocf, long codcf);
void add_header(const TRecordset& mov, const bool fullhead = true);
void add_datiiva(const TRecordset& mov);
void add_tot_fattura(const TRecordset& mov);
void add_conti_ricavo_costo(const TRecordset& mov);
void add_new_rec(const TRecordset& mov);
void add_diversi(const TRecordset& mov, const bool moviva);
void add_ratei_risconti(const TRecordset& mov);
void add_ulteriori(TRecordset& mov);
bool add_regol(TRecordset& mov, bool rec_to_add);
bool add_optional_rec(TRecordset& mov, bool rec_to_add);
const TString & scod2ricl(const char* tab, const TString& cod);
const TString & scod2ricl(const char* tab, const TVariant& cod);
const long cod2ricl(const char* tab, const TString& cod);
const long cod2ricl(const char* tab, const TVariant& cod);
const long bill2ricl(char & t, int gr, int co, long so, const bool header_cli = true);
virtual void get_citta_provincia(const TRecordset& cli, TString & dencom, TString & provcom, bool nascita = false);
virtual const char * decode_causale(const TRecordset& mov) { return EMPTY_STRING; }
virtual bool test_swap(const TRecordset& mov) { return false;}
virtual bool swap_ritsoc(const TRecordset& mov) { return false;}
virtual bool mov_regolarizzazione(const TRecordset& mov) { return false;}
virtual bool mov_intra(const TRecordset& mov) { return false;}
virtual bool mov_reverse_charge(const TRecordset& mov) { return false;}
virtual long iva11_reverse(const TRecordset & mov) { return 0L;}
bool add_iva_to_mov(const TRecordset& mov) { return mov_intra(mov) || mov_reverse_charge(mov);}
protected:
virtual bool find_regolarizzazione(TRecordset& mov) {return false;}
virtual TRecordset & movrecset() pure;
virtual TRecordset & rmovrecset(const TRecordset & mov) pure;
virtual TRecordset & rivarecset(const TRecordset & mov) pure;
virtual const TRecordset & clirecset(const char tipocf, const long codcf) pure;
virtual bool regime_agricolo(const TRecordset& mov) const { return false; }
virtual TMask & get_mask() pure ;
public:
void log(int sev, const char* msg);
virtual bool multi_activity() const { return true; }
virtual const TString & dittamulti(const TRecordset& mov) const ;
TAssoc_array & riclassifica() {return _riclassifica;}
virtual void postprocess_movs(TRecordset & mov) {}
virtual void set_parameters();
virtual bool create();
virtual void main_loop();
virtual bool destroy();
TIP_sender() : _tabelle(NULL), _tsfile(NULL), _log(NULL) {}
};

View File

@ -10,15 +10,15 @@
////////////////////////////////////////////////////////////////////////
//MASCHERA
////////////////////////////////////////////////////////////////////////
class TTS_ricl_msk : public TAutomask
class TIP_ricl_msk : public TAutomask
{
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TTS_ricl_msk() : TAutomask("tc2800a") {}
TIP_ricl_msk() : TAutomask("tc2800a") {}
};
bool TTS_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
bool TIP_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
@ -30,7 +30,7 @@ bool TTS_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly
return true;
}
class TTSRiclass_application : public TRelation_application
class TIPRiclass_application : public TRelation_application
// @author:(INTERNAL) Vari
// @access:(INTERNAL) Private Member
@ -67,17 +67,17 @@ protected:
// @access Public Member
public:
// @cmember Costruttore
TTSRiclass_application() : _msk(NULL), _rel(NULL) { }
TIPRiclass_application() : _msk(NULL), _rel(NULL) { }
// @cmember Distruttore
virtual ~TTSRiclass_application() {}
virtual ~TIPRiclass_application() {}
};
void TTSRiclass_application::print()
void TIPRiclass_application::print()
{
TFilename rep("tctsricl.rep");
TFilename rep("tcipricl.rep");
TString cmd;
rep.custom_path();
@ -86,67 +86,61 @@ void TTSRiclass_application::print()
stampa.run();
}
void TTSRiclass_application::init_query_mode(TMask& m)
void TIPRiclass_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.show(-1);
m.enable(-1);
m.hide(-2);
m.disable(-2);
m.disable(-10);
}
void TTSRiclass_application::init_query_insert_mode(TMask& m)
void TIPRiclass_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);
m.show(-2);
m.enable(-2);
m.enable(-10);
}
void TTSRiclass_application::init_modify_mode(TMask& m)
void TIPRiclass_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.show(-1);
m.disable(-1);
m.hide(-2);
m.disable(-2);
m.disable(-10);
}
bool TTSRiclass_application::user_create()
void TIPRiclass_application::init_insert_mode(TMask& m)
{
TRelation_application::init_insert_mode(m);
m.show(-1);
m.disable(-1);
m.hide(-2);
m.disable(-2);
m.disable(-10);
}
bool TIPRiclass_application::user_create()
{
_rel = new TRelation(LF_RICLPDC);
_msk = new TTS_ricl_msk;
_msk = new TIP_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);
set_search_field(F_SOTTOCONTO);
TFilename rep("tctsricl.rep");
TFilename rep("tcipricl.rep");
if (rep.custom_path())
enable_menu_item(M_FILE_PRINT);
@ -158,7 +152,7 @@ bool TTSRiclass_application::user_create()
return true;
}
bool TTSRiclass_application::user_destroy()
bool TIPRiclass_application::user_destroy()
{
if (_msk)
delete _msk;
@ -172,7 +166,7 @@ bool TTSRiclass_application::user_destroy()
int tc2800(int argc, char* argv[])
{
TTSRiclass_application a;
TIPRiclass_application a;
a.run(argc, argv, TR("Riclassificazione piano dei conti Team System"));
return 0;

17
tc/tc2800a.h Executable file
View File

@ -0,0 +1,17 @@
//id campi maschera tc0800a (file piano dei conti Team System)
//campi normali
#define F_COD 101
#define F_IPCONTO 103
#define F_DESCRIZ 105
#define F_GRUPPO 106
#define F_CONTO 107
#define F_SOTTOCONTO 108
#define F_DESCG 109
#define F_DESCC 110
#define F_IPDESCR 111
#define F_GRUPPO1 112
#define F_CONTO1 113
#define F_SOTTOCONTO1 114
#define F_GRUPPO2 115
#define F_CONTO2 116
#define F_SOTTOCONTO2 117

218
tc/tc2800a.uml Executable file
View File

@ -0,0 +1,218 @@
#include "tc0800a.h"
TOOLBAR "topbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Riclassificazione Conti" 0 2 0 0
LIST F_COD 7
BEGIN
PROMPT 50 50 ""
ITEM "IPCONTI|IPCONTI"
FIELD TIPORIC
FLAGS "D"
KEY 1
END
GROUPBOX DLG_NULL 78 9
BEGIN
PROMPT 1 1 "Conto Campo"
END
NUMBER F_GRUPPO2 3
BEGIN
PROMPT 2 2 "Gruppo "
HELP "Codice del gruppo"
FIELD GRUPPO
USE LF_RICLPDC
JOIN LF_PCON INTO GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
INPUT TIPORIC F_COD SELECT
INPUT GRUPPO F_GRUPPO2
INPUT CONTO F_CONTO2
INPUT SOTTOCONTO F_SOTTOCONTO2
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" LF_PCON->DESCR
DISPLAY "Gruppo TS" CODICE[1,2]
DISPLAY "Conto TS" CODICE[3,4]
DISPLAY "Sottoconto TS" CODICE[5,7]
DISPLAY "Descrizione@50" &TCO->S0
OUTPUT F_GRUPPO2 GRUPPO
OUTPUT F_CONTO2 CONTO
OUTPUT F_SOTTOCONTO2 SOTTOCONTO
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_CONTO CONTO
OUTPUT F_SOTTOCONTO SOTTOCONTO
KEY 1
GROUP 1
CHECKTYPE REQUIRED
END
NUMBER F_GRUPPO 3
BEGIN
PROMPT 2 2 "Gruppo "
HELP "Codice del gruppo"
FIELD GRUPPO
KEY 1
GROUP 2
USE LF_PCON KEY 1 SELECT CONTO=""
JOIN LF_RICLPDC INTO TIPORIC=="TSCONTI" GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
INPUT GRUPPO F_GRUPPO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo TS" LF_RICLPDC->CODICE[1,2]
DISPLAY "Conto TS" LF_RICLPDC->CODICE[3,4]
DISPLAY "Sottoconto TS" LF_RICLPDC->CODICE[5,7]
DISPLAY "Descrizione@50" &TCO->S0
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_GRUPPO2 GRUPPO
OUTPUT F_DESCG DESCR
CHECKTYPE REQUIRED
ADD RUN cg0 -0
FLAGS "G"
END
STRING F_DESCG 50
BEGIN
PROMPT 24 2 ""
FLAGS "D"
END
NUMBER F_CONTO2 3
BEGIN
PROMPT 2 4 "Conto "
HELP "Codice dell'eventuale conto"
FIELD CONTO
COPY ALL F_GRUPPO2
KEY 1
GROUP 1
CHECKTYPE NORMAL
WARNING "Manca il conto"
END
NUMBER F_CONTO 12
BEGIN
PROMPT 2 4 "Conto "
HELP "Codice dell'eventuale conto"
FIELD CONTO
KEY 1
GROUP 2
USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO=""))
JOIN LF_RICLPDC INTO TIPORIC=="IPCONTI" GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
COPY INPUT F_GRUPPO
INPUT CONTO F_CONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
DISPLAY "Conto IPSOA" LF_RICLPDC->CODICE
DISPLAY "Descrizione@50" &ICO->S0
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_GRUPPO2 GRUPPO
OUTPUT F_CONTO CONTO
OUTPUT F_CONTO2 CONTO
OUTPUT F_DESCC DESCR
CHECKTYPE NORMAL
WARNING "Manca il conto"
ADD RUN cg0 -0
FLAGS "G"
END
STRING F_DESCC 50
BEGIN
PROMPT 24 4 ""
FLAGS "D"
END
NUMBER F_SOTTOCONTO2 6
BEGIN
PROMPT 2 6 "Sottoconto "
HELP "Codice dell'eventuale sottoconto"
FIELD SOTTOCONTO
COPY ALL F_GRUPPO2
KEY 1
GROUP 1
CHECKTYPE NORMAL
END
NUMBER F_SOTTOCONTO 6
BEGIN
PROMPT 2 6 "Sottoconto "
HELP "Codice dell'eventuale sottoconto"
FIELD SOTTOCONTO
KEY 1
GROUP 2
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="")
JOIN LF_RICLPDC INTO TIPORIC=="IPCONTI" GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
COPY INPUT F_CONTO
INPUT SOTTOCONTO F_SOTTOCONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Sosp." SOSPESO
DISPLAY "Descrizione@50" DESCR
DISPLAY "Conto IPSOA" LF_RICLPDC->CODICE
DISPLAY "Descrizione@50" &ICO->S0
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_GRUPPO2 GRUPPO
OUTPUT F_CONTO CONTO
OUTPUT F_CONTO2 CONTO
OUTPUT F_SOTTOCONTO SOTTOCONTO
OUTPUT F_SOTTOCONTO2 SOTTOCONTO
OUTPUT F_DESCRIZ DESCR
ADD RUN cg0 -0
CHECKTYPE NORMAL
FLAGS "G"
END
STRING F_DESCRIZ 50
BEGIN
PROMPT 2 8 "Descrizione"
USE LF_PCON KEY 2
JOIN LF_RICLPDC INTO TIPORIC=="IPCONTI" GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
JOIN &ICO TO LF_RICLPDC INTO CODTAB==CODICE
INPUT DESCR F_DESCRIZ
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Conto IPSOA" LF_RICLPDC->CODICE
DISPLAY "Descrizione@50" &ICO->S0
COPY OUTPUT F_SOTTOCONTO
KEY 2
CHECKTYPE REQUIRED
GROUP 10
END
STRING F_IPCONTO 12
BEGIN
PROMPT 2 10 "Conto IPSOA "
CHECKTYPE SEARCH
USE &ICO
INPUT CODTAB F_IPCONTO
DISPLAY "Conto IPSOA" CODTAB
DISPLAY "Descrizione@60" S0
OUTPUT F_IPCONTO CODTAB
OUTPUT F_IPDESCR S0
FIELD CODICE
END
STRING F_IPDESCR 50
BEGIN
PROMPT 2 12 "Descrizione "
USE &ICO KEY 2
INPUT S0 F_IPDESCR
DISPLAY "Descrizione@60" S0
DISPLAY "Conto IPSOA" CODTAB
COPY OUTPUT F_IPCONTO
CHECKTYPE SEARCH
END
ENDPAGE
ENDMASK

File diff suppressed because it is too large Load Diff

View File

@ -1,77 +0,0 @@
#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

117
tc/tcipatt.uml Executable file
View File

@ -0,0 +1,117 @@
#include "tcts.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 Attività Campo "
END
LIST F_COD 5
BEGIN
PROMPT 50 50 ""
ITEM "IPATT|IPATT"
FIELD COD
FLAGS "D"
KEY 1
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
STRING F_CODTAB 3
BEGIN
PROMPT 2 2 ""
USE LF_MULTIREL
JOIN LF_ATTIV INTO CODDITTA==#F_CODITTA CODATT==FIRST
JOIN &IAT INTO CODTAB==DATA
INPUT COD F_COD SELECT
INPUT FIRST F_CODTAB
DISPLAY "Codice Attivita" FIRST
DISPLAY "Descrizione@60" LF_ATTIV->S0
DISPLAY "Codice attività IPSOA" DATA
DISPLAY "Descrizione@50" &IAT->S0
OUTPUT F_CODTAB FIRST
OUTPUT F_DESC %VAL->S0
OUTPUT F_COD_CAMPO DATA
CHECKTYPE REQUIRED
FIELD FIRST
FLAGS "UZG"
KEY 1
GROUP 1
END
STRING F_CODTAB1 3
BEGIN
PROMPT 2 4 ""
USE LF_ATTIV
JOIN LF_MULTIREL INTO COD=="IPATT" FIRST==CODATT
JOIN &IAT TO LF_MULTIREL INTO CODTAB==DATA
INPUT CODDITTA F_CODDITTA SELECT
INPUT CODATT F_CODTAB1
DISPLAY "Cod." CODATT
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice attività IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &IAT->S0
OUTPUT F_CODTAB CODATT
OUTPUT F_CODTAB1 CODATT
OUTPUT F_DESC S0
CHECKTYPE REQUIRED
FIELD FIRST
FLAGS "UZ"
KEY 1
GROUP 2
END
STRING F_DESC 50
BEGIN
PROMPT 10 4 "Descrizione "
FLAGS "D"
GROUP 3
CHECKTYPE REQUIRED
END
STRING F_COD_CAMPO 2
BEGIN
PROMPT 2 6 "Codice Attività IPSOA "
FIELD DATA
FLAGS "UZ"
USE &IAT
INPUT CODTAB F_COD_CAMPO
DISPLAY "Cod." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_COD_CAMPO CODTAB
OUTPUT F_DESC1 S0
CHECKTYPE REQUIRED
END
STRING F_DESC1 50 35
BEGIN
PROMPT 37 6 ""
USE &IAT KEY 2
INPUT S0 F_DESC1
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_COD_CAMPO
END
ENDPAGE
ENDMASK

View File

@ -14,7 +14,7 @@ END
LIST F_COD 5
BEGIN
PROMPT 50 50 ""
ITEM "TSCAU|TSCAU"
ITEM "IPCAU|IPCAU"
FIELD COD
FLAGS "D"
KEY 1
@ -25,13 +25,13 @@ BEGIN
PROMPT 2 2 ""
USE LF_MULTIREL
JOIN LF_CAUSALI INTO CODCAUS==FIRST
JOIN &TCA INTO CODTAB==DATA
JOIN &ICA INTO CODTAB==DATA
INPUT COD F_COD SELECT
INPUT FIRST F_CODTAB
DISPLAY "Codice" FIRST
DISPLAY "Descrizione@60" LF_CAUSALI->DESCR
DISPLAY "Causale Teamsystem" DATA
DISPLAY "Descrizione@50" &TCA->S0
DISPLAY "Causale IPSOA" DATA
DISPLAY "Descrizione@50" &ICA->S0
OUTPUT F_CODTAB FIRST
OUTPUT F_CODTAB1 FIRST
OUTPUT F_COD_CAMPO DATA
@ -46,13 +46,13 @@ NUMBER F_CODTAB1 3
BEGIN
PROMPT 2 2 ""
USE LF_CAUSALI
JOIN LF_MULTIREL INTO COD=="TSCAU" FIRST==CODCAUS
JOIN LF_MULTIREL INTO COD=="IPCAU" FIRST==CODCAUS
JOIN &TCA TO LF_MULTIREL INTO CODTAB==DATA
INPUT CODCAUS F_CODTAB1
DISPLAY "Cod." CODCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Causale Teamsystem" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &TCA->S0
DISPLAY "Causale IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &ICA->S0
DISPLAY "Documento" TIPODOC
DISPLAY "Registro" REG
DISPLAY "Tipo movimento" TIPOMOV
@ -78,19 +78,19 @@ BEGIN
INPUT DESCR F_DESC
DISPLAY "Descrizione@60" DESCR
DISPLAY "Codice" CODCAUS
DISPLAY "Causale Teamsystem" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &TCA->S0
DISPLAY "Causale IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &ICA->S0
COPY OUTPUT F_CODTAB1
KEY 2
GROUP 3
CHECKTYPE REQUIRED
END
NUMBER F_COD_CAMPO 3
NUMBER F_COD_CAMPO 4
BEGIN
PROMPT 2 4 "Causale Teamsystem"
PROMPT 2 4 "Causale IPSOA "
FIELD DATA
USE &TCA
USE &ICA
INPUT CODTAB F_COD_CAMPO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@60" S0

View File

@ -13,7 +13,7 @@ END
LIST F_COD 5
BEGIN
PROMPT 50 50 ""
ITEM "TSCDP|TSCDP"
ITEM "IPCDP|IPCDP"
FIELD COD
FLAGS "D"
KEY 1
@ -29,8 +29,8 @@ BEGIN
INPUT FIRST F_CODTAB
DISPLAY "Codice" FIRST
DISPLAY "Descrizione@60" %CPG->S0
DISPLAY "Condizione TeamSystem" DATA
DISPLAY "Descrizione@50" &TPG->S0
DISPLAY "Condizione IPSOA" DATA
DISPLAY "Descrizione@50" &IPG->S0
OUTPUT F_CODTAB FIRST
OUTPUT F_CODTAB1 FIRST
OUTPUT F_COD_CAMPO DATA
@ -46,13 +46,13 @@ BEGIN
PROMPT 2 2 ""
CHECKTYPE REQUIRED
USE %CPG
JOIN LF_MULTIREL INTO COD=="TSCDP" FIRST==CODTAB
JOIN &TPG TO LF_MULTIREL INTO CODTAB==DATA
JOIN LF_MULTIREL INTO COD=="IPCDP" FIRST==CODTAB
JOIN &IPG TO LF_MULTIREL INTO CODTAB==DATA
INPUT CODTAB F_CODTAB1
DISPLAY "Cod." CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Condizione TeamSystem" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &TPG->S0
DISPLAY "Condizione IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &IPG->S0
OUTPUT F_CODTAB CODTAB
OUTPUT F_CODTAB1 CODTAB
OUTPUT F_DESC S0
@ -67,14 +67,14 @@ STRING F_DESC 50
BEGIN
PROMPT 10 2 "Descrizione "
USE %CPG KEY 2
JOIN LF_MULTIREL INTO COD=="TSCDP" FIRST==CODTAB
JOIN &TPG TO LF_MULTIREL INTO CODTAB==DATA
JOIN LF_MULTIREL INTO COD=="IPCDP" FIRST==CODTAB
JOIN &IPG TO LF_MULTIREL INTO CODTAB==DATA
INPUT CODTAB F_CODTAB1
INPUT S0 F_DESC
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB
DISPLAY "Condizione TeamSystem" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &TPG->S0
DISPLAY "Condizione IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &IPG->S0
COPY OUTPUT F_CODTAB1
GROUP 3
KEY 2
@ -83,9 +83,9 @@ END
NUMBER F_COD_CAMPO 4
BEGIN
PROMPT 2 4 "Pagamento TeamSystem "
PROMPT 2 4 "Pagamento IPSOA "
FIELD DATA
USE &TPG
USE &IPG
INPUT CODTAB F_COD_CAMPO
DISPLAY "Cod." CODTAB
DISPLAY "Descrizione@50" S0
@ -98,7 +98,7 @@ END
STRING F_DESC1 50 40
BEGIN
PROMPT 32 4 ""
USE &TPG KEY 2
USE &IPG KEY 2
INPUT S0 F_DESC1
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB

View File

@ -14,7 +14,7 @@ END
LIST F_COD 5
BEGIN
PROMPT 50 50 ""
ITEM "TSIVA|TSIVA"
ITEM "IPIVA|IPIVA"
FIELD COD
FLAGS "D"
KEY 1
@ -25,13 +25,13 @@ BEGIN
PROMPT 2 2 ""
USE LF_MULTIREL
JOIN %IVA INTO CODTAB==FIRST
JOIN &TIV INTO CODTAB==DATA
JOIN &IIV INTO CODTAB==DATA
INPUT COD F_COD SELECT
INPUT FIRST F_CODTAB
DISPLAY "Codice IVA" FIRST
DISPLAY "Descrizione@60" %IVA->S0
DISPLAY "Codice IVA Teamsystem" DATA
DISPLAY "Descrizione@50" &TIV->S0
DISPLAY "Codice IVA IPSOA" DATA
DISPLAY "Descrizione@50" &IIV->S0
OUTPUT F_CODTAB FIRST
OUTPUT F_CODTAB1 FIRST
OUTPUT F_COD_CAMPO DATA
@ -49,13 +49,13 @@ BEGIN
CHECKTYPE REQUIRED
FIELD FIRST
USE %IVA
JOIN LF_MULTIREL INTO COD=="TSIVA" FIRST==CODTAB
JOIN &TIV TO LF_MULTIREL INTO CODTAB==DATA
JOIN LF_MULTIREL INTO COD=="IPIVA" FIRST==CODTAB
JOIN &IIV TO LF_MULTIREL INTO CODTAB==DATA
INPUT CODTAB F_CODTAB1
DISPLAY "Cod." CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Codice IVA Teamsystem" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &TIV->S0
DISPLAY "Codice IVA IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &IIV->S0
OUTPUT F_CODTAB1 CODTAB
OUTPUT F_CODTAB CODTAB
OUTPUT F_DESC S0
@ -69,13 +69,13 @@ STRING F_DESC 50
BEGIN
PROMPT 10 2 "Descrizione "
USE %IVA KEY 2
JOIN LF_MULTIREL INTO COD=="TSIVA" FIRST==CODTAB
JOIN &TIV TO LF_MULTIREL INTO CODTAB==DATA
JOIN LF_MULTIREL INTO COD=="IPIVA" FIRST==CODTAB
JOIN &IIV TO LF_MULTIREL INTO CODTAB==DATA
INPUT S0 F_DESC
DISPLAY "Descrizione@50" S0
DISPLAY "Cod." CODTAB
DISPLAY "Codice IVA Teamsystem" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &TIV->S0
DISPLAY "Codice IVA IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &IIV->S0
COPY OUTPUT F_CODTAB1
KEY 2
GROUP 3
@ -84,10 +84,10 @@ END
NUMBER F_COD_CAMPO 3
BEGIN
PROMPT 2 4 "Codice IVA Teamsystem "
PROMPT 2 4 "Codice IVA IPSOA "
FIELD DATA
FLAGS "Z"
USE &TIV
USE &IIV
INPUT CODTAB F_COD_CAMPO
DISPLAY "Cod." CODTAB
DISPLAY "Descrizione@50" S0
@ -99,7 +99,7 @@ END
STRING F_DESC1 50 40
BEGIN
PROMPT 32 4 ""
USE &TIV KEY 2
USE &IIV KEY 2
INPUT S0 F_DESC1
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB

View File

@ -14,7 +14,7 @@ END
LIST F_COD 5
BEGIN
PROMPT 50 50 ""
ITEM "TSNAZ|TSNAZ"
ITEM "IPNAZ|IPNAZ"
FIELD COD
FLAGS "D"
KEY 1
@ -25,13 +25,13 @@ BEGIN
PROMPT 2 2 ""
USE LF_MULTIREL
JOIN %STA INTO CODTAB==FIRST
JOIN &TNA INTO CODTAB==DATA
JOIN &INA INTO CODTAB==DATA
INPUT COD F_COD SELECT
INPUT FIRST F_CODTAB
DISPLAY "Codice stato" FIRST
DISPLAY "Descrizione@60" %STA->S0
DISPLAY "Nazione Teamsystem" DATA
DISPLAY "Descrizione@50" &TNA->S0
DISPLAY "Nazione IPSOA" DATA
DISPLAY "Descrizione@50" &INA->S0
OUTPUT F_CODTAB FIRST
OUTPUT F_CODTAB1 FIRST
CHECKTYPE REQUIRED
@ -45,13 +45,13 @@ NUMBER F_CODTAB1 3
BEGIN
PROMPT 2 2 ""
USE %STA
JOIN LF_MULTIREL INTO COD=="TSNAZ" FIRST==CODTAB
JOIN &TNA TO LF_MULTIREL INTO CODTAB==DATA
JOIN LF_MULTIREL INTO COD=="IPNAZ" FIRST==CODTAB
JOIN &INA TO LF_MULTIREL INTO CODTAB==DATA
INPUT CODTAB F_CODTAB1
DISPLAY "Cod." CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Nazione Teamsystem" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &TNA->S0
DISPLAY "Nazione IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &INA->S0
OUTPUT F_CODTAB CODTAB
OUTPUT F_CODTAB1 CODTAB
OUTPUT F_DESC S0
@ -66,13 +66,13 @@ STRING F_DESC 50
BEGIN
PROMPT 10 2 "Descrizione "
USE %STA KEY 2
JOIN LF_MULTIREL INTO COD=="TSNAZ" FIRST==CODTAB
JOIN &TNA TO LF_MULTIREL INTO CODTAB==DATA
JOIN LF_MULTIREL INTO COD=="IPNAZ" FIRST==CODTAB
JOIN &INA TO LF_MULTIREL INTO CODTAB==DATA
INPUT S0 F_DESC
DISPLAY "Descrizione@50" S0
DISPLAY "Cod." CODTAB
DISPLAY "Nazione Teamsystem" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &TNA->S0
DISPLAY "Nazione IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &INA->S0
COPY OUTPUT F_CODTAB1
KEY 2
GROUP 3
@ -81,7 +81,7 @@ END
NUMBER F_COD_CAMPO 4
BEGIN
PROMPT 2 4 "Nazione Teamsystem "
PROMPT 2 4 "Nazione IPSOA "
FIELD DATA
FLAGS "Z"
USE &TNA
@ -96,7 +96,7 @@ END
STRING F_DESC1 50 40
BEGIN
PROMPT 32 4 ""
USE &TNA KEY 2
USE &INA KEY 2
INPUT S0 F_DESC1
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB

View File

@ -13,7 +13,7 @@ END
LIST F_COD 5
BEGIN
PROMPT 50 50 ""
ITEM "TSREG|TSREG"
ITEM "IPREG|IPREG"
FIELD COD
FLAGS "D"
KEY 1
@ -29,13 +29,12 @@ STRING F_CODTAB 3
BEGIN
PROMPT 2 2 ""
USE LF_MULTIREL
JOIN &TRE INTO CODTAB==DATA
JOIN &IRE INTO CODTAB==DATA
INPUT COD F_COD SELECT
INPUT FIRST F_CODTAB
DISPLAY "Codice registro" FIRST
DISPLAY "Tipo" DATA[1,1]
DISPLAY "Codice registro" DATA[2,3]
DISPLAY "Descrizione@50" &TRE->S0
DISPLAY "Codice registro" CODICE
DISPLAY "Descrizione@50" &IRE->S0
OUTPUT F_CODTAB FIRST
OUTPUT F_CODTAB1 FIRST
FLAGS "UZ"
@ -49,15 +48,14 @@ STRING F_CODTAB1 3
BEGIN
PROMPT 2 2 ""
USE REG
JOIN LF_MULTIREL INTO COD=="TSREG" FIRST==CODTAB[5,7]
JOIN &TRE TO LF_MULTIREL INTO CODTAB==DATA
JOIN LF_MULTIREL INTO COD=="IPREG" FIRST==CODTAB[5,7]
JOIN &IRE TO LF_MULTIREL INTO CODTAB==DATA
INPUT CODTAB[1,4] F_ANNO SELECT
INPUT CODTAB[5,7] F_COD_CAMPO
DISPLAY "Codice" CODTAB[5,7]
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" LF_MULTIREL->DATA[1,1]
DISPLAY "Codice registro" LF_MULTIREL->DATA[2,3]
DISPLAY "Descrizione@50" &TRE->S0
DISPLAY "Codice registro" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &IRE->S0
OUTPUT F_CODTAB CODTAB[5,7]
OUTPUT F_CODTAB1 CODTAB[5,7]
OUTPUT F_DESC S0
@ -72,41 +70,28 @@ STRING F_DESC 50
BEGIN
PROMPT 10 2 ""
USE REG KEY 2
JOIN LF_MULTIREL INTO COD=="TSREG" FIRST==CODTAB[5,7]
JOIN &TRE TO LF_MULTIREL INTO CODTAB==DATA
JOIN LF_MULTIREL INTO COD=="IPREG" FIRST==CODTAB[5,7]
JOIN &IRE TO LF_MULTIREL INTO CODTAB==DATA
INPUT S0 F_DESC
DISPLAY "Descrizione@50" S0
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice" CODTAB[5,7]
DISPLAY "Tipo" LF_MULTIREL->DATA[1,1]
DISPLAY "Codice registro" LF_MULTIREL->DATA[2,3]
DISPLAY "Descrizione@50" &TRE->S0
DISPLAY "Codice registro IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &IRE->S0
COPY OUTPUT F_CODTAB1
KEY 2
GROUP 3
CHECKTYPE REQUIRED
END
LIST F_TIPO 1 13
BEGIN
PROMPT 2 4 "Tipo "
ITEM "A|Acquisti"
ITEM "C|Corrispettivi"
ITEM "V|Vendite"
FIELD DATA[1,1]
END
STRING F_COD_CAMPO 2
BEGIN
PROMPT 2 6 "Registro TeamSystem"
FIELD DATA[2,3]
USE &TRE
INPUT CODTAB[1,1] F_TIPO
INPUT CODTAB[2,3] F_COD_CAMPO
PROMPT 2 6 "Registro IPSOA"
FIELD DATA
USE &IRE
INPUT CODTAB F_COD_CAMPO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPO CODTAB[1,1]
OUTPUT F_COD_CAMPO CODTAB[2,3]
OUTPUT F_DESC1 S0
CHECKTYPE REQUIRED
END
@ -114,7 +99,7 @@ END
STRING F_DESC1 50 40
BEGIN
PROMPT 32 6 ""
USE &TRE KEY 2
USE &IRE KEY 2
INPUT S0 F_DESC1
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB

109
tc/tcipval.uml Executable file
View File

@ -0,0 +1,109 @@
#include "tcts.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 Campo "
END
LIST F_COD 5
BEGIN
PROMPT 50 50 ""
ITEM "IPVAL|IPVAL"
FIELD COD
FLAGS "D"
KEY 1
END
STRING F_CODTAB 3
BEGIN
PROMPT 2 2 ""
USE LF_MULTIREL
JOIN %VAL INTO CODTAB==FIRST
JOIN &IVA INTO CODTAB==DATA
INPUT COD F_COD SELECT
INPUT FIRST F_CODTAB
DISPLAY "Codice valuta" FIRST
DISPLAY "Descrizione@60" %VAL->S0
DISPLAY "Sigla valuta IPSOA" DATA
DISPLAY "Descrizione@50" &IVA->S0
OUTPUT F_CODTAB FIRST
OUTPUT F_DESC %VAL->S0
OUTPUT F_COD_CAMPO DATA
CHECKTYPE REQUIRED
FIELD FIRST
FLAGS "UZG"
KEY 1
GROUP 1
END
STRING F_CODTAB1 3
BEGIN
PROMPT 2 2 ""
USE %VAL
JOIN LF_MULTIREL INTO COD=="IPVAL" FIRST==CODTAB
JOIN &IVA TO LF_MULTIREL INTO CODTAB==DATA
INPUT CODTAB F_CODTAB1
DISPLAY "Cod." CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Sigla valuta IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &IVA->S0
OUTPUT F_CODTAB CODTAB
OUTPUT F_CODTAB1 CODTAB
OUTPUT F_DESC S0
CHECKTYPE REQUIRED
FIELD FIRST
FLAGS "UZ"
KEY 1
GROUP 2
END
STRING F_DESC 50
BEGIN
PROMPT 10 2 "Descrizione "
USE %VAL KEY 2
JOIN LF_MULTIREL INTO COD=="IPVAL" FIRST==CODTAB
JOIN &IVA TO LF_MULTIREL INTO CODTAB==DATA
INPUT S0 F_DESC
DISPLAY "Descrizione@50" S0
DISPLAY "Cod." CODTAB
DISPLAY "Sigla valuta IPSOA" LF_MULTIREL->DATA
DISPLAY "Descrizione@50" &IVA->S0
COPY OUTPUT F_CODTAB1
KEY 2
GROUP 3
CHECKTYPE REQUIRED
END
STRING F_COD_CAMPO 3
BEGIN
PROMPT 2 4 "Codice Valuta IPSOA "
FIELD DATA
FLAGS "UZ"
USE &IVA
INPUT CODTAB F_COD_CAMPO
DISPLAY "Cod." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_COD_CAMPO CODTAB
OUTPUT F_DESC1 S0
CHECKTYPE REQUIRED
END
STRING F_DESC1 50 35
BEGIN
PROMPT 37 4 ""
USE &IVA KEY 2
INPUT S0 F_DESC1
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_COD_CAMPO
END
ENDPAGE
ENDMASK

View File

@ -127,8 +127,8 @@ Item_01 = "Causali", "tc2 -0 &ICA", ""
Item_02 = "Condizioni di pagamento", "tc2 -0 &IPG", ""
Item_03 = "Stati esteri", "tc2 -0 &INA", ""
Item_04 = "Registri", "tc2 -0 &IRE", ""
Item_05 = "Codici IVA", "tc2 -0 &TIV", ""
Item_06 = "Valute", "tc2 -0 &IIV", ""
Item_05 = "Codici IVA", "tc2 -0 &IIV", ""
Item_06 = "Valute", "tc2 -0 &IVA", ""
Item_07 = "Attività", "tc2 -0 &IAT", ""
Item_08 = "Piano dei conti", "tc2 -0 &ICO", ""

2
tc/tctbiat.h Executable file
View File

@ -0,0 +1,2 @@
#define F_CODTAB 102
#define F_DESC 103

2
tc/tctbica.h Executable file
View File

@ -0,0 +1,2 @@
#define F_CODTAB 102
#define F_DESC 103

View File

@ -1,3 +1,4 @@
#define F_CODTAB 100
#define F_CODTAB1 101
#define F_CODTAB2 102
#define F_CODTAB3 103

View File

@ -13,97 +13,57 @@ END
STRING F_CODTAB1 12
BEGIN
PROMPT 2 2 "Codice : 1 "
USE &ICO
INPUT CODTAB[1,2] F_CODTAB1
INPUT CODTAB[3,4] F_CODTAB2
INPUT CODTAB[5,6] F_CODTAB3
INPUT CODTAB[7,8] F_CODTAB4
INPUT CODTAB[9,10] F_CODTAB5
INPUT CODTAB[11,12] F_CODTAB6
DISPLAY "Livello 1" CODTAB[1,2]
DISPLAY "Livello 2" CODTAB[3,4]
DISPLAY "Livello 3" CODTAB[5,6]
DISPLAY "Livello 4" CODTAB[7,8]
DISPLAY "Livello 5" CODTAB[9,10]
DISPLAY "Livello 6" CODTAB[11,12]
DISPLAY "Descrizione@60" S0
OUTPUT F_CODTAB1 CODTAB[1,2]
OUTPUT F_CODTAB2 CODTAB[3,4]
OUTPUT F_CODTAB3 CODTAB[5,6]
OUTPUT F_CODTAB4 CODTAB[7,8]
OUTPUT F_CODTAB5 CODTAB[9,10]
OUTPUT F_CODTAB6 CODTAB[11,12]
OUTPUT F_DESC S0
CHECKTYPE REQUIRED
FIELD CODTAB[1,2]
PROMPT 2 2 "Codice "
CHECKTYPE NORMAL
FLAGS "B"
KEY 1
END
STRING F_CODTAB2 2
STRING F_CODTAB2 12
BEGIN
PROMPT 20 2 "2 "
COPY ALL F_CODTAB1
CHECKTYPE SEARCH
FIELD CODTAB[3,4]
VALIDATE FIXLEN_FUNC 2
CHECKTYPE SEARCH
FLAGS "B"
KEY 1
END
STRING F_CODTAB3 2
STRING F_CODTAB3 12
BEGIN
PROMPT 26 2 "3 "
COPY ALL F_CODTAB1
CHECKTYPE SEARCH
FIELD CODTAB[5,6]
VALIDATE FIXLEN_FUNC 2
CHECKTYPE SEARCH
FLAGS "B"
KEY 1
END
STRING F_CODTAB4 2
STRING F_CODTAB4 12
BEGIN
PROMPT 26 2 "4 "
COPY ALL F_CODTAB1
CHECKTYPE SEARCH
FIELD CODTAB[7,8]
VALIDATE FIXLEN_FUNC 2
CHECKTYPE SEARCH
FLAGS "B"
KEY 1
END
STRING F_CODTAB5 2
STRING F_CODTAB5 12
BEGIN
PROMPT 26 2 "5 "
COPY ALL F_CODTAB1
CHECKTYPE SEARCH
FIELD CODTAB[9,10]
VALIDATE FIXLEN_FUNC 2
CHECKTYPE SEARCH
FLAGS "B"
KEY 1
END
STRING F_CODTAB6 2
STRING F_CODTAB6 12
BEGIN
PROMPT 26 2 "4 "
COPY ALL F_CODTAB1
CHECKTYPE SEARCH
FIELD CODTAB[11,12]
VALIDATE FIXLEN_FUNC 2
PROMPT 26 2 "6 "
CHECKTYPE SEARCH
FLAGS "B"
KEY 1
END
STRING F_DESC 50
BEGIN
PROMPT 2 5 "Descrizione "
USE &ICO KEY 2
INPUT S0 F_DESC
DISPLAY "Descrizione@60" S0
DISPLAY "Livello 1" CODTAB[1,2]
DISPLAY "Livello 2" CODTAB[3,4]
DISPLAY "Livello 3" CODTAB[5,6]
DISPLAY "Livello 4" CODTAB[7,8]
DISPLAY "Livello 5" CODTAB[9,10]
DISPLAY "Livello 6" CODTAB[11,12]
COPY OUTPUT F_CODTAB
FIELD S0
FLAGS "B"
KEY 2
CHECKTYPE REQUIRED
END

2
tc/tctbiiv.h Executable file
View File

@ -0,0 +1,2 @@
#define F_CODTAB 102
#define F_DESC 103

2
tc/tctbina.h Executable file
View File

@ -0,0 +1,2 @@
#define F_CODTAB 102
#define F_DESC 103

2
tc/tctbipg.h Executable file
View File

@ -0,0 +1,2 @@
#define F_CODTAB 102
#define F_DESC 103

View File

@ -11,7 +11,7 @@ BEGIN
PROMPT 1 1 "Codice Pagamento IPSOA"
END
NUMBER F_CODTAB 4
NUMBER F_CODTAB 3
BEGIN
PROMPT 2 2 "Codice "
USE &IPG

2
tc/tctbiva.h Executable file
View File

@ -0,0 +1,2 @@
#define F_CODTAB 102
#define F_DESC 103