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:
parent
3c7ec717e2
commit
6e0819cd50
12
tc/ipconf.h
12
tc/ipconf.h
@ -11,9 +11,9 @@
|
|||||||
#define F_RIPRISTINO 121
|
#define F_RIPRISTINO 121
|
||||||
#define F_ULTINVIO 122
|
#define F_ULTINVIO 122
|
||||||
#define F_EMCAU 123
|
#define F_EMCAU 123
|
||||||
#define F_LICVPC1 124
|
#define F_LIVPC1 124
|
||||||
#define F_LICVPC2 125
|
#define F_LIVPC2 125
|
||||||
#define F_LICVPC3 126
|
#define F_LIVPC3 126
|
||||||
#define F_LICVPC4 127
|
#define F_LIVPC4 127
|
||||||
#define F_LICVPC5 128
|
#define F_LIVPC5 128
|
||||||
#define F_LICVPC6 129
|
#define F_LIVPC6 129
|
||||||
|
@ -7,15 +7,11 @@ int main(int argc, char** argv)
|
|||||||
const int op = argc < 2 ? 0 : argv[1][1]-'0';
|
const int op = argc < 2 ? 0 : argv[1][1]-'0';
|
||||||
switch (op)
|
switch (op)
|
||||||
{
|
{
|
||||||
// case 1: tc2200(argc,argv); break;
|
case 2: tc2300(argc,argv); break; // parametri ditta
|
||||||
case 2: tc2300(argc,argv); break; // parametri ditta
|
|
||||||
// case 3: tc2400(argc,argv); break;
|
|
||||||
case 4: tc2500(argc,argv); break; //gestore tabelle multirel
|
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 6: tc2700(argc,argv); break; //esportazione contabilita' a TeamSystem
|
||||||
case 7: tc2800(argc,argv); break; // Riclassificazione conti 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);
|
exit(0);
|
||||||
return 0;
|
return 0;
|
||||||
|
109
tc/tc2100.cpp
109
tc/tc2100.cpp
@ -1,27 +1,117 @@
|
|||||||
#include "tc2.h"
|
#include "tc2.h"
|
||||||
|
#include "tctbico.h"
|
||||||
|
|
||||||
// gestione tabelle Zucchetti
|
// gestione tabelle Zucchetti
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <modtbapp.h>
|
#include <modtbapp.h>
|
||||||
#include <tabutil.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
|
// 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
|
protected: // TRelation_application
|
||||||
virtual bool user_create() ;
|
virtual bool user_create() ;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Tab_app_teamsystem() {}
|
Tab_app_IPSOA() {}
|
||||||
virtual ~Tab_app_teamsystem() {}
|
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
|
la Tab_application::user_create() apre la maschera TMask in modo automatico
|
||||||
@ -41,15 +131,18 @@ bool Tab_app_teamsystem::user_create()
|
|||||||
|
|
||||||
if (ok)
|
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;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tc2100(int argc, char **argv)
|
int tc2100(int argc, char **argv)
|
||||||
{
|
{
|
||||||
Tab_app_teamsystem a;
|
Tab_app_IPSOA a;
|
||||||
a.run(argc, argv, TR("Tabella"));
|
a.run(argc, argv, TR("Tabella"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -71,72 +71,58 @@ BEGIN
|
|||||||
FIELD IPRCAU
|
FIELD IPRCAU
|
||||||
END
|
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
|
BOOLEAN F_RICLVALUTE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 14 "Trascodifica valute"
|
PROMPT 42 12 "Trascodifica valute"
|
||||||
FIELD IPRVAL
|
FIELD IPRVAL
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_LIVPC1 2
|
NUMBER F_LIVPC1 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 16 "Lunghezza livelli piano dei conti : 1 "
|
PROMPT 2 14 "Lunghezza livelli piano dei conti : 1 "
|
||||||
FIELD IPLIVPC[1]
|
FIELD IPLIVPC[1]
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_LIVPC2 2
|
NUMBER F_LIVPC2 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 46 16 "2 "
|
PROMPT 46 14 "2 "
|
||||||
FIELD IPLIVPC[2]
|
FIELD IPLIVPC[2]
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_LIVPC3 2
|
NUMBER F_LIVPC3 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 52 16 "3 "
|
PROMPT 52 14 "3 "
|
||||||
FIELD IPLIVPC[3]
|
FIELD IPLIVPC[3]
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_LIVPC3 2
|
NUMBER F_LIVPC4 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 58 16 "4 "
|
PROMPT 58 14 "4 "
|
||||||
FIELD IPLIVPC[4]
|
FIELD IPLIVPC[4]
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_LIVPC5 2
|
NUMBER F_LIVPC5 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 64 16 "5 "
|
PROMPT 64 14 "5 "
|
||||||
FIELD IPLIVPC[5]
|
FIELD IPLIVPC[5]
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_LIVPC6 2
|
NUMBER F_LIVPC6 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 70 16 "6 "
|
PROMPT 70 14 "6 "
|
||||||
FIELD IPLIVPC[6]
|
FIELD IPLIVPC[6]
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_RIPRISTINO
|
BOOLEAN F_RIPRISTINO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 18 "Ripristina alla data"
|
PROMPT 2 16 "Ripristina alla data"
|
||||||
MESSAGE FALSE DISABLE,F_ULTINVIO
|
MESSAGE FALSE DISABLE,F_ULTINVIO
|
||||||
MESSAGE TRUE ENABLE,F_ULTINVIO
|
MESSAGE TRUE ENABLE,F_ULTINVIO
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_ULTINVIO
|
DATE F_ULTINVIO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 42 18 "Data ultimo invio "
|
PROMPT 42 16 "Data ultimo invio "
|
||||||
FIELD TSULTINV
|
FIELD TSULTINV
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
375
tc/tc2600.cpp
375
tc/tc2600.cpp
@ -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;
|
|
||||||
}
|
|
@ -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
|
|
@ -22,7 +22,7 @@
|
|||||||
#include "../cg/cglib01.h"
|
#include "../cg/cglib01.h"
|
||||||
#include "../cg/cg2103.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 dal = get(F_DATA_DA);
|
||||||
const TDate al = get(F_DATA_AL);
|
const TDate al = get(F_DATA_AL);
|
||||||
@ -35,7 +35,7 @@ bool TTS_mask::apply_filter(const TRecordset& righe) const
|
|||||||
return true;
|
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;
|
bool ok = true;
|
||||||
switch (o.dlg())
|
switch (o.dlg())
|
||||||
@ -49,7 +49,7 @@ bool TTS_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTS_mask::serialize(bool bSave)
|
void TIP_mask::serialize(bool bSave)
|
||||||
{
|
{
|
||||||
const char* defpar = "tc";
|
const char* defpar = "tc";
|
||||||
TConfig ini(CONFIG_DITTA, defpar);
|
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)
|
: TAutomask(maskname), _updating(false), _next_update(0)
|
||||||
{
|
{
|
||||||
serialize(false);
|
serialize(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
TTS_mask::~TTS_mask()
|
TIP_mask::~TIP_mask()
|
||||||
{
|
{
|
||||||
serialize(true);
|
serialize(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TTS_campo_sender::destroy()
|
bool TIP_campo_sender::destroy()
|
||||||
{
|
{
|
||||||
delete _mask;
|
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 TMask & m = get_mask();
|
||||||
const TDate from = m.get_date(F_DATA_DA);
|
const TDate from = m.get_date(F_DATA_DA);
|
||||||
@ -105,7 +105,7 @@ TRecordset & TTS_campo_sender::movrecset()
|
|||||||
return *mov;
|
return *mov;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRecordset & TTS_campo_sender::rmovrecset(const TRecordset & mov)
|
TRecordset & TIP_campo_sender::rmovrecset(const TRecordset & mov)
|
||||||
{
|
{
|
||||||
TRecordset * rmov = get_recset(LF_RMOV);
|
TRecordset * rmov = get_recset(LF_RMOV);
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ TRecordset & TTS_campo_sender::rmovrecset(const TRecordset & mov)
|
|||||||
return *rmov;
|
return *rmov;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRecordset & TTS_campo_sender::rivarecset(const TRecordset & mov)
|
TRecordset & TIP_campo_sender::rivarecset(const TRecordset & mov)
|
||||||
{
|
{
|
||||||
TRecordset * rmoviva = get_recset(LF_RMOVIVA);
|
TRecordset * rmoviva = get_recset(LF_RMOVIVA);
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ TRecordset & TTS_campo_sender::rivarecset(const TRecordset & mov)
|
|||||||
return *rmoviva;
|
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);
|
TRecordset * clifo = get_recset(LF_CLIFO);
|
||||||
|
|
||||||
@ -148,7 +148,7 @@ const TRecordset& TTS_campo_sender::clirecset(const char tipocf, const long codc
|
|||||||
return *clifo;
|
return *clifo;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TTS_campo_sender::test_swap(const TRecordset& mov)
|
bool TIP_campo_sender::test_swap(const TRecordset& mov)
|
||||||
{
|
{
|
||||||
TRecordset & rmov = rmovrecset(mov);
|
TRecordset & rmov = rmovrecset(mov);
|
||||||
const int anno = mov.get(MOV_ANNOIVA).as_int();
|
const int anno = mov.get(MOV_ANNOIVA).as_int();
|
||||||
@ -160,7 +160,7 @@ bool TTS_campo_sender::test_swap(const TRecordset& mov)
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TTS_campo_sender::swap_ritsoc(const TRecordset& mov)
|
bool TIP_campo_sender::swap_ritsoc(const TRecordset& mov)
|
||||||
{
|
{
|
||||||
TRecordset & rmov = rmovrecset(mov);
|
TRecordset & rmov = rmovrecset(mov);
|
||||||
bool ok = rmov.move_first();
|
bool ok = rmov.move_first();
|
||||||
@ -182,21 +182,21 @@ bool TTS_campo_sender::swap_ritsoc(const TRecordset& mov)
|
|||||||
return s;
|
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();
|
const TString& codcaus = mov.get(MOV_CODCAUS).as_string();
|
||||||
|
|
||||||
return _caus_regolarizzazione.objptr(codcaus) != NULL;
|
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());
|
const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
|
||||||
|
|
||||||
return caus.get_bool(CAU_INTRACOM);
|
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 TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
|
||||||
const int regsp = caus.get_int(CAU_REGSPIVA);
|
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;
|
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;
|
TToken_string key;
|
||||||
|
|
||||||
@ -219,11 +219,11 @@ bool TTS_campo_sender::regime_agricolo(const TRecordset& mov) const
|
|||||||
return attiv.get_bool(ATT_REGAGR);
|
return attiv.get_bool(ATT_REGAGR);
|
||||||
}
|
}
|
||||||
|
|
||||||
TMask & TTS_campo_sender::get_mask()
|
TMask & TIP_campo_sender::get_mask()
|
||||||
{
|
{
|
||||||
if (_mask == NULL)
|
if (_mask == NULL)
|
||||||
{
|
{
|
||||||
_mask = new TTS_mask(mask_name());
|
_mask = new TIP_mask(mask_name());
|
||||||
TDate to(TODAY);
|
TDate to(TODAY);
|
||||||
TConfig configtc(CONFIG_DITTA, "tc");
|
TConfig configtc(CONFIG_DITTA, "tc");
|
||||||
const TDate from(configtc.get("TSULTINV"));
|
const TDate from(configtc.get("TSULTINV"));
|
||||||
@ -243,7 +243,7 @@ TMask & TTS_campo_sender::get_mask()
|
|||||||
return * _mask;
|
return * _mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TTS_campo_sender::find_regolarizzazione(TRecordset& mov)
|
bool TIP_campo_sender::find_regolarizzazione(TRecordset& mov)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
|
||||||
@ -299,21 +299,21 @@ bool TTS_campo_sender::find_regolarizzazione(TRecordset& mov)
|
|||||||
return found;
|
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());
|
const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
|
||||||
|
|
||||||
return caus.get_int(CAU_REGSPIVA);
|
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());
|
const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOV_CODCAUS).as_string());
|
||||||
|
|
||||||
return caus.get(CAU_DESCR);
|
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")))
|
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);
|
TRelation rel(LF_CAUSALI);
|
||||||
TCursor c(&rel);
|
TCursor c(&rel);
|
||||||
@ -382,12 +382,12 @@ bool TTS_campo_sender::create()
|
|||||||
if (big_cli_code)
|
if (big_cli_code)
|
||||||
riclassifica().add("TSNOHCLI", EMPTY_STRING);
|
riclassifica().add("TSNOHCLI", EMPTY_STRING);
|
||||||
|
|
||||||
return ok && TTS_sender::create();
|
return ok && TIP_sender::create();
|
||||||
}
|
}
|
||||||
|
|
||||||
int tc2700(int argc, char* argv[])
|
int tc2700(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TTS_campo_sender app;
|
TIP_campo_sender app;
|
||||||
app.run(argc, argv, TR("Invio a TeamSystem"));
|
app.run(argc, argv, TR("Invio a IPSOA"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
63
tc/tc2700.h
Executable file
63
tc/tc2700.h
Executable 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
10
tc/tc2700a.h
Executable 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
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
HIDDEN const char* const __tiporicconti = "TSCONTI";
|
HIDDEN const char* const __tiporicconti = "TSCONTI";
|
||||||
|
|
||||||
TObject* TTSRiclassifica_cache::key2obj(const char* key)
|
TObject* TIPRiclassifica_cache::key2obj(const char* key)
|
||||||
{
|
{
|
||||||
TToken_string tok(key);
|
TToken_string tok(key);
|
||||||
TString8 tab, cod;
|
TString8 tab, cod;
|
||||||
@ -39,7 +39,7 @@ TObject* TTSRiclassifica_cache::key2obj(const char* key)
|
|||||||
return NULL;
|
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;
|
TToken_string tok;
|
||||||
tok.add(tab);
|
tok.add(tab);
|
||||||
@ -48,7 +48,7 @@ long TTSRiclassifica_cache::decode(const char* tab, const TString& cod)
|
|||||||
return (ric ? atol(*ric) : 0);
|
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;
|
TToken_string tok;
|
||||||
tok.add(tab);
|
tok.add(tab);
|
||||||
@ -85,13 +85,13 @@ const long TSbill2ricl(char & t, int gr, int co, long so)
|
|||||||
return codricl;
|
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;
|
TAssoc_array _contatori;
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ public:
|
|||||||
virtual const TString& rec_type(TRecnotype r = -1) const;
|
virtual const TString& rec_type(TRecnotype r = -1) const;
|
||||||
virtual bool set(const char* field, const TVariant& v);
|
virtual bool set(const char* field, const TVariant& v);
|
||||||
|
|
||||||
TTS_textset(const char* query = "");
|
TIP_textset(const char* query = "");
|
||||||
};
|
};
|
||||||
|
|
||||||
class TIVA_item : public TObject
|
class TIVA_item : public TObject
|
||||||
@ -132,7 +132,7 @@ public:
|
|||||||
virtual ~TIVA_item() {}
|
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");
|
CHECK(strlen(tipo) == 1, "Tipo record non valido");
|
||||||
real* n = (real*)_contatori.objptr(tipo);
|
real* n = (real*)_contatori.objptr(tipo);
|
||||||
@ -145,13 +145,13 @@ long TTS_textset::add_count(const char* tipo, long i)
|
|||||||
return n->integer();
|
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);
|
const TString& t = TAS400_recordset::rec_type(r);
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TTS_textset::destroy(TRecnotype r)
|
bool TIP_textset::destroy(TRecnotype r)
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
if (r >= 0)
|
if (r >= 0)
|
||||||
@ -171,7 +171,7 @@ bool TTS_textset::destroy(TRecnotype r)
|
|||||||
return ok;
|
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)
|
char tipo, int from, const char* def)
|
||||||
{
|
{
|
||||||
const bool required = false;
|
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);
|
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;
|
const char* err = NULL;
|
||||||
int c = -1;
|
int c = -1;
|
||||||
@ -242,7 +242,7 @@ bool TTS_textset::set(const char* field, const TVariant& var)
|
|||||||
return ok;
|
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)
|
: TAS400_recordset(TString("AS400(7001,1,6)\n") << query)
|
||||||
{
|
{
|
||||||
const char an = 'a';
|
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);
|
TString & descr = get_tmp_string(128);
|
||||||
|
|
||||||
@ -550,13 +550,13 @@ const TString & TTS_sender::descr2agg(const char* d)
|
|||||||
return descr;
|
return descr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TTS_sender::new_rec(const char* t)
|
bool TIP_sender::new_rec(const char* t)
|
||||||
{
|
{
|
||||||
CHECK(t && *t, "Tipo non valido");
|
CHECK(t && *t, "Tipo non valido");
|
||||||
return _tsfile->new_rec(t) >= 0;
|
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)
|
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);
|
_tsfile->set(field, var);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TVariant& TTS_sender::get(const char* field)
|
const TVariant& TIP_sender::get(const char* field)
|
||||||
{
|
{
|
||||||
return _tsfile->get(field);
|
return _tsfile->get(field);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TTS_sender::remove_last()
|
void TIP_sender::remove_last()
|
||||||
{
|
{
|
||||||
_tsfile->destroy(_tsfile->last());
|
_tsfile->destroy(_tsfile->last());
|
||||||
_tsfile->move_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)
|
if (rec_to_add)
|
||||||
{
|
{
|
||||||
@ -599,7 +599,7 @@ bool TTS_sender::add_optional_rec(TRecordset& mov, bool rec_to_add)
|
|||||||
return false;
|
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);
|
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;
|
return rec_to_add;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTS_sender::add_ulteriori(TRecordset& mov)
|
void TIP_sender::add_ulteriori(TRecordset& mov)
|
||||||
{
|
{
|
||||||
bool rec_to_add = true;
|
bool rec_to_add = true;
|
||||||
|
|
||||||
@ -652,11 +652,11 @@ void TTS_sender::add_ulteriori(TRecordset& mov)
|
|||||||
add_regol(mov, rec_to_add);
|
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())
|
if (multi_activity())
|
||||||
{
|
{
|
||||||
@ -678,7 +678,7 @@ const TString & TTS_sender::dittamulti(const TRecordset& mov) const
|
|||||||
return _dittamulti;
|
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");
|
set("TRF-80-SEGUENTE", "S");
|
||||||
if (new_rec("0"))
|
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 bool vendite = mov.get(MOV_TIPO).as_string()[0] != 'F';
|
||||||
const TString16 codice = scod2ricl("TSREG", mov.get(MOV_REG));
|
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);
|
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';
|
const bool vendite = mov.get(MOV_TIPO).as_string()[0] != 'F';
|
||||||
real totdoc = mov.get(MOV_TOTDOC).as_real();
|
real totdoc = mov.get(MOV_TOTDOC).as_real();
|
||||||
@ -970,7 +970,7 @@ void TTS_sender::add_tot_fattura(const TRecordset& mov)
|
|||||||
_rit_acc = ZERO;
|
_rit_acc = ZERO;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTS_sender::add_datiiva(const TRecordset& mov)
|
void TIP_sender::add_datiiva(const TRecordset& mov)
|
||||||
{
|
{
|
||||||
TRecordset & rmoviva = rivarecset(mov);
|
TRecordset & rmoviva = rivarecset(mov);
|
||||||
TString16 codice = scod2ricl("TSREG", mov.get(MOV_REG));
|
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 bool moviva = !mov.get(MOV_REG).is_empty();
|
||||||
const TString8 src_caus(mov.get(MOV_CODCAUS).as_string());
|
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;
|
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
|
// dati clienti/fornitore
|
||||||
if (codcf != 0)
|
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);
|
TString msg; msg << TR("Registrazione n.") << ' ' << mov.get(MOV_NUMREG);
|
||||||
log(0, msg);
|
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;
|
long codricl = 0;
|
||||||
if (gr > 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;
|
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();
|
TString & codricl = get_tmp_string();
|
||||||
if (cod.full())
|
if (cod.full())
|
||||||
@ -1364,12 +1364,12 @@ const TString & TTS_sender::scod2ricl(const char* tab, const TString& cod)
|
|||||||
return codricl;
|
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());
|
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;
|
long codricl = 0;
|
||||||
if (cod.full())
|
if (cod.full())
|
||||||
@ -1399,12 +1399,12 @@ const long TTS_sender::cod2ricl(const char* tab, const TString& cod)
|
|||||||
return codricl;
|
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());
|
return cod2ricl(tab, cod.as_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTS_sender::set_parameters()
|
void TIP_sender::set_parameters()
|
||||||
{
|
{
|
||||||
TConfig configtc(CONFIG_DITTA, "tc");
|
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();
|
set_parameters();
|
||||||
return TSkeleton_application::create();
|
return TSkeleton_application::create();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TTS_sender::destroy()
|
bool TIP_sender::destroy()
|
||||||
{
|
{
|
||||||
delete _tabelle;
|
delete _tabelle;
|
||||||
return TSkeleton_application::destroy();
|
return TSkeleton_application::destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTS_sender::main_loop()
|
void TIP_sender::main_loop()
|
||||||
{
|
{
|
||||||
TMask & m = get_mask();
|
TMask & m = get_mask();
|
||||||
while (m.run() != K_QUIT)
|
while (m.run() != K_QUIT)
|
||||||
{
|
{
|
||||||
const char* const title = TR("Invio a TeamSystem");
|
const char* const title = TR("Invio a TeamSystem");
|
||||||
_tsfile = new TTS_textset;
|
_tsfile = new TIP_textset;
|
||||||
_log = new TLog_report(title);
|
_log = new TLog_report(title);
|
||||||
_errors_logged = false;
|
_errors_logged = false;
|
||||||
|
|
||||||
|
114
tc/tc2701.h
Executable file
114
tc/tc2701.h
Executable 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) {}
|
||||||
|
};
|
@ -10,15 +10,15 @@
|
|||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
//MASCHERA
|
//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);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
public:
|
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())
|
switch (o.dlg())
|
||||||
{
|
{
|
||||||
@ -30,7 +30,7 @@ bool TTS_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
class TTSRiclass_application : public TRelation_application
|
class TIPRiclass_application : public TRelation_application
|
||||||
|
|
||||||
// @author:(INTERNAL) Vari
|
// @author:(INTERNAL) Vari
|
||||||
// @access:(INTERNAL) Private Member
|
// @access:(INTERNAL) Private Member
|
||||||
@ -67,17 +67,17 @@ protected:
|
|||||||
// @access Public Member
|
// @access Public Member
|
||||||
public:
|
public:
|
||||||
// @cmember Costruttore
|
// @cmember Costruttore
|
||||||
TTSRiclass_application() : _msk(NULL), _rel(NULL) { }
|
TIPRiclass_application() : _msk(NULL), _rel(NULL) { }
|
||||||
|
|
||||||
|
|
||||||
// @cmember Distruttore
|
// @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;
|
TString cmd;
|
||||||
|
|
||||||
rep.custom_path();
|
rep.custom_path();
|
||||||
@ -86,67 +86,61 @@ void TTSRiclass_application::print()
|
|||||||
stampa.run();
|
stampa.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTSRiclass_application::init_query_mode(TMask& m)
|
void TIPRiclass_application::init_query_mode(TMask& m)
|
||||||
{
|
{
|
||||||
TRelation_application::init_query_mode(m);
|
TRelation_application::init_query_mode(m);
|
||||||
|
|
||||||
m.show(-1, _use_pcn);
|
m.show(-1);
|
||||||
m.enable(-1, _use_pcn);
|
m.enable(-1);
|
||||||
m.show(-20, !_use_pcn);
|
|
||||||
m.hide(-2);
|
m.hide(-2);
|
||||||
m.disable(-2);
|
m.disable(-2);
|
||||||
m.disable(-10);
|
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);
|
TRelation_application::init_query_insert_mode(m);
|
||||||
|
|
||||||
m.hide(-1);
|
m.hide(-1);
|
||||||
m.disable(-1);
|
m.disable(-1);
|
||||||
m.show(-20, !_use_pcn);
|
m.show(-2);
|
||||||
m.show(-2, _use_pcn);
|
m.enable(-2);
|
||||||
m.enable(-2, _use_pcn);
|
m.enable(-10);
|
||||||
m.enable(-10, _use_pcn);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTSRiclass_application::init_modify_mode(TMask& m)
|
void TIPRiclass_application::init_modify_mode(TMask& m)
|
||||||
{
|
{
|
||||||
TRelation_application::init_modify_mode(m);
|
TRelation_application::init_modify_mode(m);
|
||||||
|
|
||||||
m.show(-1, _use_pcn);
|
m.show(-1);
|
||||||
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.disable(-1);
|
||||||
m.hide(-2);
|
m.hide(-2);
|
||||||
m.disable(-2);
|
m.disable(-2);
|
||||||
m.disable(-10);
|
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);
|
_rel = new TRelation(LF_RICLPDC);
|
||||||
_msk = new TTS_ricl_msk;
|
_msk = new TIP_ricl_msk;
|
||||||
|
|
||||||
TConfig config(CONFIG_DITTA);
|
TConfig config(CONFIG_DITTA);
|
||||||
_use_pcn = config.get_bool("TSUSECMPCN");
|
|
||||||
|
|
||||||
_msk->show(-10, _use_pcn);
|
set_search_field(F_SOTTOCONTO);
|
||||||
_msk->show(-20, !_use_pcn);
|
|
||||||
set_search_field(_use_pcn ? F_SOTTOCONTO : F_SOTTOCONTO1);
|
|
||||||
|
|
||||||
|
|
||||||
TFilename rep("tctsricl.rep");
|
TFilename rep("tcipricl.rep");
|
||||||
|
|
||||||
if (rep.custom_path())
|
if (rep.custom_path())
|
||||||
enable_menu_item(M_FILE_PRINT);
|
enable_menu_item(M_FILE_PRINT);
|
||||||
@ -158,7 +152,7 @@ bool TTSRiclass_application::user_create()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TTSRiclass_application::user_destroy()
|
bool TIPRiclass_application::user_destroy()
|
||||||
{
|
{
|
||||||
if (_msk)
|
if (_msk)
|
||||||
delete _msk;
|
delete _msk;
|
||||||
@ -172,7 +166,7 @@ bool TTSRiclass_application::user_destroy()
|
|||||||
|
|
||||||
int tc2800(int argc, char* argv[])
|
int tc2800(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TTSRiclass_application a;
|
TIPRiclass_application a;
|
||||||
|
|
||||||
a.run(argc, argv, TR("Riclassificazione piano dei conti Team System"));
|
a.run(argc, argv, TR("Riclassificazione piano dei conti Team System"));
|
||||||
return 0;
|
return 0;
|
||||||
|
17
tc/tc2800a.h
Executable file
17
tc/tc2800a.h
Executable 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
218
tc/tc2800a.uml
Executable 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
|
1357
tc/tc2900.cpp
1357
tc/tc2900.cpp
File diff suppressed because it is too large
Load Diff
@ -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
117
tc/tcipatt.uml
Executable 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
|
@ -14,7 +14,7 @@ END
|
|||||||
LIST F_COD 5
|
LIST F_COD 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 50 ""
|
PROMPT 50 50 ""
|
||||||
ITEM "TSCAU|TSCAU"
|
ITEM "IPCAU|IPCAU"
|
||||||
FIELD COD
|
FIELD COD
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
KEY 1
|
KEY 1
|
||||||
@ -25,13 +25,13 @@ BEGIN
|
|||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
USE LF_MULTIREL
|
USE LF_MULTIREL
|
||||||
JOIN LF_CAUSALI INTO CODCAUS==FIRST
|
JOIN LF_CAUSALI INTO CODCAUS==FIRST
|
||||||
JOIN &TCA INTO CODTAB==DATA
|
JOIN &ICA INTO CODTAB==DATA
|
||||||
INPUT COD F_COD SELECT
|
INPUT COD F_COD SELECT
|
||||||
INPUT FIRST F_CODTAB
|
INPUT FIRST F_CODTAB
|
||||||
DISPLAY "Codice" FIRST
|
DISPLAY "Codice" FIRST
|
||||||
DISPLAY "Descrizione@60" LF_CAUSALI->DESCR
|
DISPLAY "Descrizione@60" LF_CAUSALI->DESCR
|
||||||
DISPLAY "Causale Teamsystem" DATA
|
DISPLAY "Causale IPSOA" DATA
|
||||||
DISPLAY "Descrizione@50" &TCA->S0
|
DISPLAY "Descrizione@50" &ICA->S0
|
||||||
OUTPUT F_CODTAB FIRST
|
OUTPUT F_CODTAB FIRST
|
||||||
OUTPUT F_CODTAB1 FIRST
|
OUTPUT F_CODTAB1 FIRST
|
||||||
OUTPUT F_COD_CAMPO DATA
|
OUTPUT F_COD_CAMPO DATA
|
||||||
@ -46,13 +46,13 @@ NUMBER F_CODTAB1 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
USE LF_CAUSALI
|
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
|
JOIN &TCA TO LF_MULTIREL INTO CODTAB==DATA
|
||||||
INPUT CODCAUS F_CODTAB1
|
INPUT CODCAUS F_CODTAB1
|
||||||
DISPLAY "Cod." CODCAUS
|
DISPLAY "Cod." CODCAUS
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Causale Teamsystem" LF_MULTIREL->DATA
|
DISPLAY "Causale IPSOA" LF_MULTIREL->DATA
|
||||||
DISPLAY "Descrizione@50" &TCA->S0
|
DISPLAY "Descrizione@50" &ICA->S0
|
||||||
DISPLAY "Documento" TIPODOC
|
DISPLAY "Documento" TIPODOC
|
||||||
DISPLAY "Registro" REG
|
DISPLAY "Registro" REG
|
||||||
DISPLAY "Tipo movimento" TIPOMOV
|
DISPLAY "Tipo movimento" TIPOMOV
|
||||||
@ -78,19 +78,19 @@ BEGIN
|
|||||||
INPUT DESCR F_DESC
|
INPUT DESCR F_DESC
|
||||||
DISPLAY "Descrizione@60" DESCR
|
DISPLAY "Descrizione@60" DESCR
|
||||||
DISPLAY "Codice" CODCAUS
|
DISPLAY "Codice" CODCAUS
|
||||||
DISPLAY "Causale Teamsystem" LF_MULTIREL->DATA
|
DISPLAY "Causale IPSOA" LF_MULTIREL->DATA
|
||||||
DISPLAY "Descrizione@50" &TCA->S0
|
DISPLAY "Descrizione@50" &ICA->S0
|
||||||
COPY OUTPUT F_CODTAB1
|
COPY OUTPUT F_CODTAB1
|
||||||
KEY 2
|
KEY 2
|
||||||
GROUP 3
|
GROUP 3
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_COD_CAMPO 3
|
NUMBER F_COD_CAMPO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Causale Teamsystem"
|
PROMPT 2 4 "Causale IPSOA "
|
||||||
FIELD DATA
|
FIELD DATA
|
||||||
USE &TCA
|
USE &ICA
|
||||||
INPUT CODTAB F_COD_CAMPO
|
INPUT CODTAB F_COD_CAMPO
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@60" S0
|
DISPLAY "Descrizione@60" S0
|
||||||
|
@ -13,7 +13,7 @@ END
|
|||||||
LIST F_COD 5
|
LIST F_COD 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 50 ""
|
PROMPT 50 50 ""
|
||||||
ITEM "TSCDP|TSCDP"
|
ITEM "IPCDP|IPCDP"
|
||||||
FIELD COD
|
FIELD COD
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
KEY 1
|
KEY 1
|
||||||
@ -29,8 +29,8 @@ BEGIN
|
|||||||
INPUT FIRST F_CODTAB
|
INPUT FIRST F_CODTAB
|
||||||
DISPLAY "Codice" FIRST
|
DISPLAY "Codice" FIRST
|
||||||
DISPLAY "Descrizione@60" %CPG->S0
|
DISPLAY "Descrizione@60" %CPG->S0
|
||||||
DISPLAY "Condizione TeamSystem" DATA
|
DISPLAY "Condizione IPSOA" DATA
|
||||||
DISPLAY "Descrizione@50" &TPG->S0
|
DISPLAY "Descrizione@50" &IPG->S0
|
||||||
OUTPUT F_CODTAB FIRST
|
OUTPUT F_CODTAB FIRST
|
||||||
OUTPUT F_CODTAB1 FIRST
|
OUTPUT F_CODTAB1 FIRST
|
||||||
OUTPUT F_COD_CAMPO DATA
|
OUTPUT F_COD_CAMPO DATA
|
||||||
@ -46,13 +46,13 @@ BEGIN
|
|||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
USE %CPG
|
USE %CPG
|
||||||
JOIN LF_MULTIREL INTO COD=="TSCDP" FIRST==CODTAB
|
JOIN LF_MULTIREL INTO COD=="IPCDP" FIRST==CODTAB
|
||||||
JOIN &TPG TO LF_MULTIREL INTO CODTAB==DATA
|
JOIN &IPG TO LF_MULTIREL INTO CODTAB==DATA
|
||||||
INPUT CODTAB F_CODTAB1
|
INPUT CODTAB F_CODTAB1
|
||||||
DISPLAY "Cod." CODTAB
|
DISPLAY "Cod." CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Condizione TeamSystem" LF_MULTIREL->DATA
|
DISPLAY "Condizione IPSOA" LF_MULTIREL->DATA
|
||||||
DISPLAY "Descrizione@50" &TPG->S0
|
DISPLAY "Descrizione@50" &IPG->S0
|
||||||
OUTPUT F_CODTAB CODTAB
|
OUTPUT F_CODTAB CODTAB
|
||||||
OUTPUT F_CODTAB1 CODTAB
|
OUTPUT F_CODTAB1 CODTAB
|
||||||
OUTPUT F_DESC S0
|
OUTPUT F_DESC S0
|
||||||
@ -67,14 +67,14 @@ STRING F_DESC 50
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 2 "Descrizione "
|
PROMPT 10 2 "Descrizione "
|
||||||
USE %CPG KEY 2
|
USE %CPG KEY 2
|
||||||
JOIN LF_MULTIREL INTO COD=="TSCDP" FIRST==CODTAB
|
JOIN LF_MULTIREL INTO COD=="IPCDP" FIRST==CODTAB
|
||||||
JOIN &TPG TO LF_MULTIREL INTO CODTAB==DATA
|
JOIN &IPG TO LF_MULTIREL INTO CODTAB==DATA
|
||||||
INPUT CODTAB F_CODTAB1
|
INPUT CODTAB F_CODTAB1
|
||||||
INPUT S0 F_DESC
|
INPUT S0 F_DESC
|
||||||
DISPLAY "Descrizione@60" S0
|
DISPLAY "Descrizione@60" S0
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Condizione TeamSystem" LF_MULTIREL->DATA
|
DISPLAY "Condizione IPSOA" LF_MULTIREL->DATA
|
||||||
DISPLAY "Descrizione@50" &TPG->S0
|
DISPLAY "Descrizione@50" &IPG->S0
|
||||||
COPY OUTPUT F_CODTAB1
|
COPY OUTPUT F_CODTAB1
|
||||||
GROUP 3
|
GROUP 3
|
||||||
KEY 2
|
KEY 2
|
||||||
@ -83,9 +83,9 @@ END
|
|||||||
|
|
||||||
NUMBER F_COD_CAMPO 4
|
NUMBER F_COD_CAMPO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Pagamento TeamSystem "
|
PROMPT 2 4 "Pagamento IPSOA "
|
||||||
FIELD DATA
|
FIELD DATA
|
||||||
USE &TPG
|
USE &IPG
|
||||||
INPUT CODTAB F_COD_CAMPO
|
INPUT CODTAB F_COD_CAMPO
|
||||||
DISPLAY "Cod." CODTAB
|
DISPLAY "Cod." CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
@ -98,7 +98,7 @@ END
|
|||||||
STRING F_DESC1 50 40
|
STRING F_DESC1 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 4 ""
|
PROMPT 32 4 ""
|
||||||
USE &TPG KEY 2
|
USE &IPG KEY 2
|
||||||
INPUT S0 F_DESC1
|
INPUT S0 F_DESC1
|
||||||
DISPLAY "Descrizione@60" S0
|
DISPLAY "Descrizione@60" S0
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
|
@ -14,7 +14,7 @@ END
|
|||||||
LIST F_COD 5
|
LIST F_COD 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 50 ""
|
PROMPT 50 50 ""
|
||||||
ITEM "TSIVA|TSIVA"
|
ITEM "IPIVA|IPIVA"
|
||||||
FIELD COD
|
FIELD COD
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
KEY 1
|
KEY 1
|
||||||
@ -25,13 +25,13 @@ BEGIN
|
|||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
USE LF_MULTIREL
|
USE LF_MULTIREL
|
||||||
JOIN %IVA INTO CODTAB==FIRST
|
JOIN %IVA INTO CODTAB==FIRST
|
||||||
JOIN &TIV INTO CODTAB==DATA
|
JOIN &IIV INTO CODTAB==DATA
|
||||||
INPUT COD F_COD SELECT
|
INPUT COD F_COD SELECT
|
||||||
INPUT FIRST F_CODTAB
|
INPUT FIRST F_CODTAB
|
||||||
DISPLAY "Codice IVA" FIRST
|
DISPLAY "Codice IVA" FIRST
|
||||||
DISPLAY "Descrizione@60" %IVA->S0
|
DISPLAY "Descrizione@60" %IVA->S0
|
||||||
DISPLAY "Codice IVA Teamsystem" DATA
|
DISPLAY "Codice IVA IPSOA" DATA
|
||||||
DISPLAY "Descrizione@50" &TIV->S0
|
DISPLAY "Descrizione@50" &IIV->S0
|
||||||
OUTPUT F_CODTAB FIRST
|
OUTPUT F_CODTAB FIRST
|
||||||
OUTPUT F_CODTAB1 FIRST
|
OUTPUT F_CODTAB1 FIRST
|
||||||
OUTPUT F_COD_CAMPO DATA
|
OUTPUT F_COD_CAMPO DATA
|
||||||
@ -49,13 +49,13 @@ BEGIN
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FIELD FIRST
|
FIELD FIRST
|
||||||
USE %IVA
|
USE %IVA
|
||||||
JOIN LF_MULTIREL INTO COD=="TSIVA" FIRST==CODTAB
|
JOIN LF_MULTIREL INTO COD=="IPIVA" FIRST==CODTAB
|
||||||
JOIN &TIV TO LF_MULTIREL INTO CODTAB==DATA
|
JOIN &IIV TO LF_MULTIREL INTO CODTAB==DATA
|
||||||
INPUT CODTAB F_CODTAB1
|
INPUT CODTAB F_CODTAB1
|
||||||
DISPLAY "Cod." CODTAB
|
DISPLAY "Cod." CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Codice IVA Teamsystem" LF_MULTIREL->DATA
|
DISPLAY "Codice IVA IPSOA" LF_MULTIREL->DATA
|
||||||
DISPLAY "Descrizione@50" &TIV->S0
|
DISPLAY "Descrizione@50" &IIV->S0
|
||||||
OUTPUT F_CODTAB1 CODTAB
|
OUTPUT F_CODTAB1 CODTAB
|
||||||
OUTPUT F_CODTAB CODTAB
|
OUTPUT F_CODTAB CODTAB
|
||||||
OUTPUT F_DESC S0
|
OUTPUT F_DESC S0
|
||||||
@ -69,13 +69,13 @@ STRING F_DESC 50
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 2 "Descrizione "
|
PROMPT 10 2 "Descrizione "
|
||||||
USE %IVA KEY 2
|
USE %IVA KEY 2
|
||||||
JOIN LF_MULTIREL INTO COD=="TSIVA" FIRST==CODTAB
|
JOIN LF_MULTIREL INTO COD=="IPIVA" FIRST==CODTAB
|
||||||
JOIN &TIV TO LF_MULTIREL INTO CODTAB==DATA
|
JOIN &IIV TO LF_MULTIREL INTO CODTAB==DATA
|
||||||
INPUT S0 F_DESC
|
INPUT S0 F_DESC
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Cod." CODTAB
|
DISPLAY "Cod." CODTAB
|
||||||
DISPLAY "Codice IVA Teamsystem" LF_MULTIREL->DATA
|
DISPLAY "Codice IVA IPSOA" LF_MULTIREL->DATA
|
||||||
DISPLAY "Descrizione@50" &TIV->S0
|
DISPLAY "Descrizione@50" &IIV->S0
|
||||||
COPY OUTPUT F_CODTAB1
|
COPY OUTPUT F_CODTAB1
|
||||||
KEY 2
|
KEY 2
|
||||||
GROUP 3
|
GROUP 3
|
||||||
@ -84,10 +84,10 @@ END
|
|||||||
|
|
||||||
NUMBER F_COD_CAMPO 3
|
NUMBER F_COD_CAMPO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Codice IVA Teamsystem "
|
PROMPT 2 4 "Codice IVA IPSOA "
|
||||||
FIELD DATA
|
FIELD DATA
|
||||||
FLAGS "Z"
|
FLAGS "Z"
|
||||||
USE &TIV
|
USE &IIV
|
||||||
INPUT CODTAB F_COD_CAMPO
|
INPUT CODTAB F_COD_CAMPO
|
||||||
DISPLAY "Cod." CODTAB
|
DISPLAY "Cod." CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
@ -99,7 +99,7 @@ END
|
|||||||
STRING F_DESC1 50 40
|
STRING F_DESC1 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 4 ""
|
PROMPT 32 4 ""
|
||||||
USE &TIV KEY 2
|
USE &IIV KEY 2
|
||||||
INPUT S0 F_DESC1
|
INPUT S0 F_DESC1
|
||||||
DISPLAY "Descrizione@60" S0
|
DISPLAY "Descrizione@60" S0
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
|
@ -14,7 +14,7 @@ END
|
|||||||
LIST F_COD 5
|
LIST F_COD 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 50 ""
|
PROMPT 50 50 ""
|
||||||
ITEM "TSNAZ|TSNAZ"
|
ITEM "IPNAZ|IPNAZ"
|
||||||
FIELD COD
|
FIELD COD
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
KEY 1
|
KEY 1
|
||||||
@ -25,13 +25,13 @@ BEGIN
|
|||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
USE LF_MULTIREL
|
USE LF_MULTIREL
|
||||||
JOIN %STA INTO CODTAB==FIRST
|
JOIN %STA INTO CODTAB==FIRST
|
||||||
JOIN &TNA INTO CODTAB==DATA
|
JOIN &INA INTO CODTAB==DATA
|
||||||
INPUT COD F_COD SELECT
|
INPUT COD F_COD SELECT
|
||||||
INPUT FIRST F_CODTAB
|
INPUT FIRST F_CODTAB
|
||||||
DISPLAY "Codice stato" FIRST
|
DISPLAY "Codice stato" FIRST
|
||||||
DISPLAY "Descrizione@60" %STA->S0
|
DISPLAY "Descrizione@60" %STA->S0
|
||||||
DISPLAY "Nazione Teamsystem" DATA
|
DISPLAY "Nazione IPSOA" DATA
|
||||||
DISPLAY "Descrizione@50" &TNA->S0
|
DISPLAY "Descrizione@50" &INA->S0
|
||||||
OUTPUT F_CODTAB FIRST
|
OUTPUT F_CODTAB FIRST
|
||||||
OUTPUT F_CODTAB1 FIRST
|
OUTPUT F_CODTAB1 FIRST
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
@ -45,13 +45,13 @@ NUMBER F_CODTAB1 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
USE %STA
|
USE %STA
|
||||||
JOIN LF_MULTIREL INTO COD=="TSNAZ" FIRST==CODTAB
|
JOIN LF_MULTIREL INTO COD=="IPNAZ" FIRST==CODTAB
|
||||||
JOIN &TNA TO LF_MULTIREL INTO CODTAB==DATA
|
JOIN &INA TO LF_MULTIREL INTO CODTAB==DATA
|
||||||
INPUT CODTAB F_CODTAB1
|
INPUT CODTAB F_CODTAB1
|
||||||
DISPLAY "Cod." CODTAB
|
DISPLAY "Cod." CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Nazione Teamsystem" LF_MULTIREL->DATA
|
DISPLAY "Nazione IPSOA" LF_MULTIREL->DATA
|
||||||
DISPLAY "Descrizione@50" &TNA->S0
|
DISPLAY "Descrizione@50" &INA->S0
|
||||||
OUTPUT F_CODTAB CODTAB
|
OUTPUT F_CODTAB CODTAB
|
||||||
OUTPUT F_CODTAB1 CODTAB
|
OUTPUT F_CODTAB1 CODTAB
|
||||||
OUTPUT F_DESC S0
|
OUTPUT F_DESC S0
|
||||||
@ -66,13 +66,13 @@ STRING F_DESC 50
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 2 "Descrizione "
|
PROMPT 10 2 "Descrizione "
|
||||||
USE %STA KEY 2
|
USE %STA KEY 2
|
||||||
JOIN LF_MULTIREL INTO COD=="TSNAZ" FIRST==CODTAB
|
JOIN LF_MULTIREL INTO COD=="IPNAZ" FIRST==CODTAB
|
||||||
JOIN &TNA TO LF_MULTIREL INTO CODTAB==DATA
|
JOIN &INA TO LF_MULTIREL INTO CODTAB==DATA
|
||||||
INPUT S0 F_DESC
|
INPUT S0 F_DESC
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Cod." CODTAB
|
DISPLAY "Cod." CODTAB
|
||||||
DISPLAY "Nazione Teamsystem" LF_MULTIREL->DATA
|
DISPLAY "Nazione IPSOA" LF_MULTIREL->DATA
|
||||||
DISPLAY "Descrizione@50" &TNA->S0
|
DISPLAY "Descrizione@50" &INA->S0
|
||||||
COPY OUTPUT F_CODTAB1
|
COPY OUTPUT F_CODTAB1
|
||||||
KEY 2
|
KEY 2
|
||||||
GROUP 3
|
GROUP 3
|
||||||
@ -81,7 +81,7 @@ END
|
|||||||
|
|
||||||
NUMBER F_COD_CAMPO 4
|
NUMBER F_COD_CAMPO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Nazione Teamsystem "
|
PROMPT 2 4 "Nazione IPSOA "
|
||||||
FIELD DATA
|
FIELD DATA
|
||||||
FLAGS "Z"
|
FLAGS "Z"
|
||||||
USE &TNA
|
USE &TNA
|
||||||
@ -96,7 +96,7 @@ END
|
|||||||
STRING F_DESC1 50 40
|
STRING F_DESC1 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 4 ""
|
PROMPT 32 4 ""
|
||||||
USE &TNA KEY 2
|
USE &INA KEY 2
|
||||||
INPUT S0 F_DESC1
|
INPUT S0 F_DESC1
|
||||||
DISPLAY "Descrizione@60" S0
|
DISPLAY "Descrizione@60" S0
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
|
@ -13,7 +13,7 @@ END
|
|||||||
LIST F_COD 5
|
LIST F_COD 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 50 ""
|
PROMPT 50 50 ""
|
||||||
ITEM "TSREG|TSREG"
|
ITEM "IPREG|IPREG"
|
||||||
FIELD COD
|
FIELD COD
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
KEY 1
|
KEY 1
|
||||||
@ -29,13 +29,12 @@ STRING F_CODTAB 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
USE LF_MULTIREL
|
USE LF_MULTIREL
|
||||||
JOIN &TRE INTO CODTAB==DATA
|
JOIN &IRE INTO CODTAB==DATA
|
||||||
INPUT COD F_COD SELECT
|
INPUT COD F_COD SELECT
|
||||||
INPUT FIRST F_CODTAB
|
INPUT FIRST F_CODTAB
|
||||||
DISPLAY "Codice registro" FIRST
|
DISPLAY "Codice registro" FIRST
|
||||||
DISPLAY "Tipo" DATA[1,1]
|
DISPLAY "Codice registro" CODICE
|
||||||
DISPLAY "Codice registro" DATA[2,3]
|
DISPLAY "Descrizione@50" &IRE->S0
|
||||||
DISPLAY "Descrizione@50" &TRE->S0
|
|
||||||
OUTPUT F_CODTAB FIRST
|
OUTPUT F_CODTAB FIRST
|
||||||
OUTPUT F_CODTAB1 FIRST
|
OUTPUT F_CODTAB1 FIRST
|
||||||
FLAGS "UZ"
|
FLAGS "UZ"
|
||||||
@ -49,15 +48,14 @@ STRING F_CODTAB1 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
USE REG
|
USE REG
|
||||||
JOIN LF_MULTIREL INTO COD=="TSREG" FIRST==CODTAB[5,7]
|
JOIN LF_MULTIREL INTO COD=="IPREG" FIRST==CODTAB[5,7]
|
||||||
JOIN &TRE TO LF_MULTIREL INTO CODTAB==DATA
|
JOIN &IRE TO LF_MULTIREL INTO CODTAB==DATA
|
||||||
INPUT CODTAB[1,4] F_ANNO SELECT
|
INPUT CODTAB[1,4] F_ANNO SELECT
|
||||||
INPUT CODTAB[5,7] F_COD_CAMPO
|
INPUT CODTAB[5,7] F_COD_CAMPO
|
||||||
DISPLAY "Codice" CODTAB[5,7]
|
DISPLAY "Codice" CODTAB[5,7]
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Tipo" LF_MULTIREL->DATA[1,1]
|
DISPLAY "Codice registro" LF_MULTIREL->DATA
|
||||||
DISPLAY "Codice registro" LF_MULTIREL->DATA[2,3]
|
DISPLAY "Descrizione@50" &IRE->S0
|
||||||
DISPLAY "Descrizione@50" &TRE->S0
|
|
||||||
OUTPUT F_CODTAB CODTAB[5,7]
|
OUTPUT F_CODTAB CODTAB[5,7]
|
||||||
OUTPUT F_CODTAB1 CODTAB[5,7]
|
OUTPUT F_CODTAB1 CODTAB[5,7]
|
||||||
OUTPUT F_DESC S0
|
OUTPUT F_DESC S0
|
||||||
@ -72,41 +70,28 @@ STRING F_DESC 50
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 2 ""
|
PROMPT 10 2 ""
|
||||||
USE REG KEY 2
|
USE REG KEY 2
|
||||||
JOIN LF_MULTIREL INTO COD=="TSREG" FIRST==CODTAB[5,7]
|
JOIN LF_MULTIREL INTO COD=="IPREG" FIRST==CODTAB[5,7]
|
||||||
JOIN &TRE TO LF_MULTIREL INTO CODTAB==DATA
|
JOIN &IRE TO LF_MULTIREL INTO CODTAB==DATA
|
||||||
INPUT S0 F_DESC
|
INPUT S0 F_DESC
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Anno" CODTAB[1,4]
|
DISPLAY "Anno" CODTAB[1,4]
|
||||||
DISPLAY "Codice" CODTAB[5,7]
|
DISPLAY "Codice" CODTAB[5,7]
|
||||||
DISPLAY "Tipo" LF_MULTIREL->DATA[1,1]
|
DISPLAY "Codice registro IPSOA" LF_MULTIREL->DATA
|
||||||
DISPLAY "Codice registro" LF_MULTIREL->DATA[2,3]
|
DISPLAY "Descrizione@50" &IRE->S0
|
||||||
DISPLAY "Descrizione@50" &TRE->S0
|
|
||||||
COPY OUTPUT F_CODTAB1
|
COPY OUTPUT F_CODTAB1
|
||||||
KEY 2
|
KEY 2
|
||||||
GROUP 3
|
GROUP 3
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
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
|
STRING F_COD_CAMPO 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Registro TeamSystem"
|
PROMPT 2 6 "Registro IPSOA"
|
||||||
FIELD DATA[2,3]
|
FIELD DATA
|
||||||
USE &TRE
|
USE &IRE
|
||||||
INPUT CODTAB[1,1] F_TIPO
|
INPUT CODTAB F_COD_CAMPO
|
||||||
INPUT CODTAB[2,3] F_COD_CAMPO
|
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPO CODTAB[1,1]
|
|
||||||
OUTPUT F_COD_CAMPO CODTAB[2,3]
|
|
||||||
OUTPUT F_DESC1 S0
|
OUTPUT F_DESC1 S0
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
@ -114,7 +99,7 @@ END
|
|||||||
STRING F_DESC1 50 40
|
STRING F_DESC1 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 6 ""
|
PROMPT 32 6 ""
|
||||||
USE &TRE KEY 2
|
USE &IRE KEY 2
|
||||||
INPUT S0 F_DESC1
|
INPUT S0 F_DESC1
|
||||||
DISPLAY "Descrizione@60" S0
|
DISPLAY "Descrizione@60" S0
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
|
109
tc/tcipval.uml
Executable file
109
tc/tcipval.uml
Executable 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
|
@ -127,8 +127,8 @@ Item_01 = "Causali", "tc2 -0 &ICA", ""
|
|||||||
Item_02 = "Condizioni di pagamento", "tc2 -0 &IPG", ""
|
Item_02 = "Condizioni di pagamento", "tc2 -0 &IPG", ""
|
||||||
Item_03 = "Stati esteri", "tc2 -0 &INA", ""
|
Item_03 = "Stati esteri", "tc2 -0 &INA", ""
|
||||||
Item_04 = "Registri", "tc2 -0 &IRE", ""
|
Item_04 = "Registri", "tc2 -0 &IRE", ""
|
||||||
Item_05 = "Codici IVA", "tc2 -0 &TIV", ""
|
Item_05 = "Codici IVA", "tc2 -0 &IIV", ""
|
||||||
Item_06 = "Valute", "tc2 -0 &IIV", ""
|
Item_06 = "Valute", "tc2 -0 &IVA", ""
|
||||||
Item_07 = "Attività", "tc2 -0 &IAT", ""
|
Item_07 = "Attività", "tc2 -0 &IAT", ""
|
||||||
Item_08 = "Piano dei conti", "tc2 -0 &ICO", ""
|
Item_08 = "Piano dei conti", "tc2 -0 &ICO", ""
|
||||||
|
|
||||||
|
2
tc/tctbiat.h
Executable file
2
tc/tctbiat.h
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#define F_CODTAB 102
|
||||||
|
#define F_DESC 103
|
2
tc/tctbica.h
Executable file
2
tc/tctbica.h
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#define F_CODTAB 102
|
||||||
|
#define F_DESC 103
|
@ -1,3 +1,4 @@
|
|||||||
|
#define F_CODTAB 100
|
||||||
#define F_CODTAB1 101
|
#define F_CODTAB1 101
|
||||||
#define F_CODTAB2 102
|
#define F_CODTAB2 102
|
||||||
#define F_CODTAB3 103
|
#define F_CODTAB3 103
|
||||||
|
@ -13,97 +13,57 @@ END
|
|||||||
|
|
||||||
STRING F_CODTAB1 12
|
STRING F_CODTAB1 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Codice : 1 "
|
PROMPT 2 2 "Codice "
|
||||||
USE &ICO
|
CHECKTYPE NORMAL
|
||||||
INPUT CODTAB[1,2] F_CODTAB1
|
FLAGS "B"
|
||||||
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]
|
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODTAB2 2
|
STRING F_CODTAB2 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 20 2 "2 "
|
PROMPT 20 2 "2 "
|
||||||
COPY ALL F_CODTAB1
|
CHECKTYPE SEARCH
|
||||||
CHECKTYPE SEARCH
|
FLAGS "B"
|
||||||
FIELD CODTAB[3,4]
|
|
||||||
VALIDATE FIXLEN_FUNC 2
|
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODTAB3 2
|
STRING F_CODTAB3 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 26 2 "3 "
|
PROMPT 26 2 "3 "
|
||||||
COPY ALL F_CODTAB1
|
CHECKTYPE SEARCH
|
||||||
CHECKTYPE SEARCH
|
FLAGS "B"
|
||||||
FIELD CODTAB[5,6]
|
|
||||||
VALIDATE FIXLEN_FUNC 2
|
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODTAB4 2
|
STRING F_CODTAB4 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 26 2 "4 "
|
PROMPT 26 2 "4 "
|
||||||
COPY ALL F_CODTAB1
|
CHECKTYPE SEARCH
|
||||||
CHECKTYPE SEARCH
|
FLAGS "B"
|
||||||
FIELD CODTAB[7,8]
|
|
||||||
VALIDATE FIXLEN_FUNC 2
|
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODTAB5 2
|
STRING F_CODTAB5 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 26 2 "5 "
|
PROMPT 26 2 "5 "
|
||||||
COPY ALL F_CODTAB1
|
CHECKTYPE SEARCH
|
||||||
CHECKTYPE SEARCH
|
FLAGS "B"
|
||||||
FIELD CODTAB[9,10]
|
|
||||||
VALIDATE FIXLEN_FUNC 2
|
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODTAB6 2
|
STRING F_CODTAB6 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 26 2 "4 "
|
PROMPT 26 2 "6 "
|
||||||
COPY ALL F_CODTAB1
|
CHECKTYPE SEARCH
|
||||||
CHECKTYPE SEARCH
|
FLAGS "B"
|
||||||
FIELD CODTAB[11,12]
|
|
||||||
VALIDATE FIXLEN_FUNC 2
|
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESC 50
|
STRING F_DESC 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 5 "Descrizione "
|
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
|
FIELD S0
|
||||||
|
FLAGS "B"
|
||||||
KEY 2
|
KEY 2
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
2
tc/tctbiiv.h
Executable file
2
tc/tctbiiv.h
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#define F_CODTAB 102
|
||||||
|
#define F_DESC 103
|
2
tc/tctbina.h
Executable file
2
tc/tctbina.h
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#define F_CODTAB 102
|
||||||
|
#define F_DESC 103
|
2
tc/tctbipg.h
Executable file
2
tc/tctbipg.h
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#define F_CODTAB 102
|
||||||
|
#define F_DESC 103
|
@ -11,7 +11,7 @@ BEGIN
|
|||||||
PROMPT 1 1 "Codice Pagamento IPSOA"
|
PROMPT 1 1 "Codice Pagamento IPSOA"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CODTAB 4
|
NUMBER F_CODTAB 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Codice "
|
PROMPT 2 2 "Codice "
|
||||||
USE &IPG
|
USE &IPG
|
||||||
|
2
tc/tctbiva.h
Executable file
2
tc/tctbiva.h
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#define F_CODTAB 102
|
||||||
|
#define F_DESC 103
|
Loading…
x
Reference in New Issue
Block a user