Patch level : 12.0 370

Files correlati     : tc3.exe tcmenu.men tc3100a.uml tc3800a.uml tctbrca.uml
                      tctbrco.uml tctbriv.uml tctbrpg.uml tctbrre.uml tctbrvl.uml

POrgramma di ricezione da Ericsoft versione 1


git-svn-id: svn://10.65.10.50/branches/R_10_00@23720 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2017-04-01 14:04:26 +00:00
parent 79e2220486
commit d9083e9452
9 changed files with 206 additions and 508 deletions

View File

@ -7,7 +7,6 @@ int main(int argc, char** argv)
const int op = argc < 2 ? 0 : argv[1][1]-'0';
switch (op)
{
case 7: tc3800(argc,argv); break; // riclassificazione conti zucchetti
case 1: tc3200(argc,argv); break; // Tabelle
default: tc3100(argc,argv); break; // trasferimento zucchetti
}

View File

@ -3,9 +3,6 @@
int tc3100(int argc, char** argv);
int tc3200(int argc, char** argv);
int tc3300(int argc, char** argv);
int tc3700(int argc, char** argv);
int tc3800(int argc, char** argv);
#endif // __TC3_H

View File

@ -24,67 +24,13 @@
#include <rmoviva.h>
#include <riclpdc.h>
#define TAB_RICCONTI "RECONTI"
#define TAB_REGISTRI "&RRE"
#define TAB_CAUSALI "&RCA"
#define TAB_CODIVA "&RIV"
#define TAB_PAGAMENTI "&RPG"
#define TAB_VALUTE "&RVL"
#define TAB_CONTI "&RCO"
class TRiclassifica_cache : public TCache
{
TLocalisamfile _ricl;
protected:
virtual TObject* key2obj(const char* key);
public:
void decode(const char* tab, const TString& cod, int & gruppo, int & conto, long & sottoconto);
TRiclassifica_cache() : _ricl(LF_RICLPDC) { _ricl.setkey(3);}
};
TObject* TRiclassifica_cache::key2obj(const char* key)
{
TToken_string tok(key);
TString8 tab, cod;
tok.get(0,tab);
tok.get(1, cod);
_ricl.zero();
_ricl.put(RICLPDC_TIPORIC, tab);
_ricl.put(RICLPDC_CODICE, cod);
int err = _ricl.read(_isgteq);
if (err == NOERR && _ricl.get(RICLPDC_CODICE) == cod)
{
TToken_string * s = new TToken_string;
s->add(_ricl.get(RICLPDC_GRUPPO));
s->add(_ricl.get(RICLPDC_CONTO));
s->add(_ricl.get(RICLPDC_SOTTOCONTO));
return s;
}
return NULL;
}
void TRiclassifica_cache::decode(const char* tab, const TString& cod, int & gruppo, int & conto, long & sottoconto)
{
TToken_string tok;
gruppo = atoi(cod.left(2));
conto = atoi(cod.mid(2,2));
sottoconto = atol(cod.right(3));
tok.add(tab);
tok.add(cod);
TToken_string* ric = (TToken_string*) objptr(tok);
if (ric != NULL)
{
gruppo = ric->get_int(0);
conto = ric->get_int();
sottoconto = ric->get_long();
}
return;
}
///////////////////////////////////////////////////////////
// TClient_textset
@ -346,8 +292,7 @@ class TImportaEricsoft : public TSkeleton_application
{
virtual bool check_autorization() const {return false;}
TImportaEricsoft_mask * _msk;
TRiclassifica_cache * _ricl;
TImportaEricsoft_mask * _msk;
TEsercizi_contabili _esc;
TAssoc_array _indetr;
TString4 _last;
@ -373,6 +318,8 @@ protected:
const TString & decode_codiva(const TString & codiva);
const TString & decode_codpag(const TString & codpag);
const TString & decode_codval(const TString & codval);
void decode_conto(const TString & cod, int & gruppo, int & conto, long & sottoconto);
public:
virtual bool create();
@ -584,76 +531,76 @@ void TImportaEricsoft::upload_cli(const TFilename& file, TLog_report& log)
clifo.zero();
clifo.put(CLI_TIPOCF, "C");
clifo.put(CLI_CODCF, newcod);
clifo.put(CLI_RAGSOC, ragsoc); //ragsoc
TToken_string & indirizzo = s.indirizzo();
clifo.put(CLI_INDCF, indirizzo.get()); //indirizzo
clifo.put(CLI_CIVCF, indirizzo.get()); //indirizzo
//inserisci di dati della residenza
TString cap = s.get(4).as_string();
TString80 comune = s.get(5).as_string(); //comune o localita'
TString prov = s.get(6).as_string();
TString codcom;
gest_localita(comune, cap, codcom, prov);
//se cap è pieno, allora inseriscilo
if (cap.full())
clifo.put(CLI_CAPCF, cap); //cap
//se codcom è vuoto, allora o il cap è rimasto vuoto, oppure è una frazione;
//in entrambi i casi bisogna inserire tutto in località
if (codcom.blank())
clifo.put(CLI_LOCCF, comune);
else
{
clifo.put(CLI_COMCF, codcom); //inserisci il codice del comune, recuperato tramite il cap
clifo.put(CLI_LOCCF, s.get(20).as_string()); //inserisci la frazione se è indicata
}
clifo.put(CLI_STATOCF, s.add_stato(log));
clifo.put(CLI_REFERENTE, s.get(8).as_string());
//inserisci i numeri di telefono (telefono, altro telefono, fax)
for (int i = 9; i < 10; i++)
{
TString telefono = s.get(i).as_string();
//esegui le operazioni sul numero solo se è presente sul file da importare
if (telefono.full())
{
TString pref;
TString num;
estrai_numero(telefono, pref, num);
switch (i)
{
case 8: clifo.put(CLI_PTEL,pref); clifo.put(CLI_TEL,num); break; //inserisci il numero di telefono
case 9: clifo.put(CLI_PTEL2,pref); clifo.put(CLI_TEL2,num); break; //inserisci il secondo numero di telefono
default: break;
}
}
}
//inserisci l'indrizzo e-mail
clifo.put(CLI_PAIV, paiv); //p.iva
const TString codpag = s.get(12).as_string(); // clifo.put(CLI_, riferimento);
/* const TString ricavo = s.get(13).as_string();
int gruppo;
int conto;
long sottoconto;
decode_conto(ricavo, gruppo, conto, sottoconto);
clifo.put(CLI_GRUPPORIC, gruppo);
clifo.put(CLI_CONTORIC, conto);
clifo.put(CLI_SOTTOCRIC, sottoconto);
*/
clifo.put(CLI_COFI, cofi); //cod. fisc.
}
if (!clifo.get(CLI_RICALT).starts_with("E"))
clifo.put(CLI_RICALT, key); //ragsoc
clifo.put(CLI_RAGSOC, ragsoc); //ragsoc
TToken_string & indirizzo = s.indirizzo();
clifo.put(CLI_INDCF, indirizzo.get()); //indirizzo
clifo.put(CLI_CIVCF, indirizzo.get()); //indirizzo
//inserisci di dati della residenza
TString cap = s.get(4).as_string();
TString80 comune = s.get(5).as_string(); //comune o localita'
TString prov = s.get(6).as_string();
TString codcom;
gest_localita(comune, cap, codcom, prov);
//se cap è pieno, allora inseriscilo
if (cap.full())
clifo.put(CLI_CAPCF, cap); //cap
//se codcom è vuoto, allora o il cap è rimasto vuoto, oppure è una frazione;
//in entrambi i casi bisogna inserire tutto in località
if (codcom.blank())
clifo.put(CLI_LOCCF, comune);
else
{
clifo.put(CLI_COMCF, codcom); //inserisci il codice del comune, recuperato tramite il cap
clifo.put(CLI_LOCCF, s.get(20).as_string()); //inserisci la frazione se è indicata
}
clifo.put(CLI_STATOCF, s.add_stato(log));
clifo.put(CLI_REFERENTE, s.get(8).as_string());
//inserisci i numeri di telefono (telefono, altro telefono, fax)
for (int i = 9; i < 10; i++)
{
TString telefono = s.get(i).as_string();
//esegui le operazioni sul numero solo se è presente sul file da importare
if (telefono.full())
{
TString pref;
TString num;
estrai_numero(telefono, pref, num);
switch (i)
{
case 8: clifo.put(CLI_PTEL,pref); clifo.put(CLI_TEL,num); break; //inserisci il numero di telefono
case 9: clifo.put(CLI_PTEL2,pref); clifo.put(CLI_TEL2,num); break; //inserisci il secondo numero di telefono
default: break;
}
}
}
//inserisci l'indrizzo e-mail
clifo.put(CLI_PAIV, paiv); //p.iva
const TString codpag = s.get(12).as_string(); // clifo.put(CLI_, riferimento);
const TString ricavo = s.get(13).as_string();
int gruppo;
int conto;
long sottoconto;
_ricl->decode(TAB_RICCONTI, ricavo, gruppo, conto, sottoconto);
clifo.put(CLI_GRUPPORIC, gruppo);
clifo.put(CLI_CONTORIC, conto);
clifo.put(CLI_SOTTOCRIC, sottoconto);
clifo.put(CLI_COFI, cofi); //cod. fisc.
TString str;
str << "Il Cliente codice (" << clifo.get(CLI_CODCF) <<") " << ragsoc << " ";
@ -746,6 +693,21 @@ const TString & TImportaEricsoft::decode_codval(const TString & codval)
return get_tmp_string() = codv;
}
void TImportaEricsoft::decode_conto(const TString & cod, int & gruppo, int & conto, long & sottoconto)
{
gruppo = atoi(cod.left(2));
conto = atoi(cod.mid(2,2));
sottoconto = atol(cod.right(3));
const TRectype & rec = cache().get(TAB_CONTI, (const char *) cod);
if (rec.full())
{
gruppo = rec.get_int("I0");
conto = rec.get_int("I1");
sottoconto = rec.get_int("I2");
}
}
void TImportaEricsoft::save_mov(TLog_report& log, TFilename& ini_file, bool skip)
{
TString command = format(FR("cg2 -0 -i%s -u%s"), (const char *)ini_file, (const char *) user());
@ -865,7 +827,7 @@ void TImportaEricsoft::upload_mov(const TFilename& file, TLog_report& log)
const TDate datareg = s.get(0).as_date();
const long numreg_eric = s.get(1).as_int();
const TString4 sezione = s.get(2).as_int() == 0 ? "D" : "A";
_ricl->decode(TAB_RICCONTI, s.get(3).as_string(), gruppo, conto, sottoconto);
decode_conto(s.get(3).as_string(), gruppo, conto, sottoconto);
long codcf = s.get(5).as_int();
TString4 tipocf;
@ -902,14 +864,28 @@ void TImportaEricsoft::upload_mov(const TFilename& file, TLog_report& log)
const TString8 codreg = decode_codreg(tiporeg, numregs);
const long numprot = s.get(9).as_int();
const TDate datadoc = s.get(10).as_date();
TString20 numdoc = s.get(11).as_string(); numdoc << "/" << s.get(12).as_string();
TString20 numdoc = s.get(12).as_string();
TString8 codcaus = s.get(13).as_string();
const int tipocau = s.get(14).as_int();
codcaus = decode_codcaus(tipocau, codcaus);
const TCausale & caus = cached_causale(codcaus, datacomp.year());
bool mov_iva = caus.iva() > nessuna_iva;
const int oper = s.get(15).as_int();
const TString80 descr = s.get(16).as_string();
TString80 descr = s.get(16).as_string();
if (descr.full())
descr << " ";
descr << caus.descrizione();
if (tipocf.full())
{
const TString16 key = format("%s|%ld", (const char *) tipocf, codcf);
descr << " " << cache().get(LF_CLIFO, key, CLI_RAGSOC);
}
descr = descr.left(50);
const real importo = s.get(17).as_real(); // valuta conto ???
const real imponibile = s.get(18).as_real(); // valuta conto ???
const real imposta = s.get(17).as_real(); // valuta conto ???
@ -979,16 +955,13 @@ void TImportaEricsoft::upload_mov(const TFilename& file, TLog_report& log)
ini->set(MOV_CODCAUS, codcaus);
ini->set(MOV_DESCR, descr);
ini->set(MOV_REG, codreg);
ini->set(MOV_PROTIVA, numprot);
// ini->set(MOV_PROTIVA, numprot);
ini->set(MOV_CODPAG, codpag);
ini->set(MOV_IVAXCASSA, tipocau == 8 || tipocau == 9 ? "X" : "" );
ini->set(MOV_LIQDIFF, tipocau == 8 || tipocau == 9 ? "X" : "" );
ini->set(MOV_DATACOMP, datacomp);
}
const TCausale & caus = cached_causale(codcaus, datacomp.year());
bool mov_iva = caus.iva() > nessuna_iva;
if (!mov_iva && riga_cont)
{
ini->set_paragraph(format("%d,%d",LF_RMOV, ++nriga));
@ -1056,7 +1029,7 @@ void TImportaEricsoft::upload_mov(const TFilename& file, TLog_report& log)
ini->set(RMV_CONTO, conto);
ini->set(RMV_SOTTOCONTO, sottoconto);
ini->set(RMV_ROWTYPE, "T");
}
}
}
if (numreg > 0L)
{
@ -1121,14 +1094,12 @@ bool TImportaEricsoft::transfer()
bool TImportaEricsoft::create()
{
_msk = new TImportaEricsoft_mask();
_ricl = new TRiclassifica_cache();
return TSkeleton_application::create();
}
bool TImportaEricsoft::destroy()
{
delete _msk;
delete _ricl;
return TApplication::destroy();
}

View File

@ -1,160 +0,0 @@
#include <automask.h>
#include <execp.h>
#include <relapp.h>
#include <pconti.h>
#include <recarray.h>
#include "tc3800a.h"
////////////////////////////////////////////////////////////////////////
//MASCHERA
////////////////////////////////////////////////////////////////////////
class TRC_ricl_msk : public TAutomask
{
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TRC_ricl_msk() : TAutomask("tc3800a") {}
};
bool TRC_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_CONTO:
break;
default:
break;
}
return true;
}
class TRCRiclass_application : public TRelation_application
// @author:(INTERNAL) Vari
// @access:(INTERNAL) Private Member
{
// @cmember:(INTERNAL) Maschera corrente dell'applicazione
TMask* _msk;
// @cmember:(INTERNAL) Relazione corrente dell'applicazione
TRelation* _rel;
// @cmember:(INTERNAL) valori iniziale dei gruppo conto sottoconto
int _gruppo;
int _conto;
long _sottoconto;
// @access Protected Member
protected:
virtual TMask* get_mask(int mode = MODE_QUERY) { CHECK(_msk, "Null mask"); return _msk; }
// @cmember Indica se la futura <mf Tab_application::get_mask> ritornera' una maschera diversa
// dalla corrente.
virtual bool changing_mask(int mode) { return false; }
// @cmember Ritorna la relazione da modificare
virtual TRelation* get_relation() const { CHECK(_rel, "Null relation"); return _rel; }
// @cmember Inizializza la maschera per il modo inserimento
// @cmember Inizializzazione dei dati dell'utente
virtual void init_query_mode(TMask& m) ;
// @cmember Inizializza la maschera per il modo ricerca ed inserimento (chiama <mf TRelation_application::init_query_mode>)
virtual void init_query_insert_mode(TMask& m) ;
virtual void init_insert_mode(TMask& m);
// @cmember Inizializza la maschera per il modo modifica
virtual void init_modify_mode(TMask& m);
virtual bool user_create() ;
// @cmember Distruzione dei dati dell'utente
virtual bool user_destroy() ;
// @cmember Chiama il programma di stampa
virtual void print();
// @access Public Member
public:
// @cmember Costruttore
TRCRiclass_application() : _msk(NULL), _rel(NULL) { }
// @cmember Distruttore
virtual ~TRCRiclass_application() {}
};
void TRCRiclass_application::print()
{
TFilename rep("tcscricl.rep"); //qui
TString cmd;
rep.custom_path();
cmd << "ba8 -4 "<< rep;
TExternal_app stampa(cmd);
stampa.run();
}
void TRCRiclass_application::init_insert_mode(TMask& m)
{
m.show(-1);
m.disable(-1);
m.hide(-2);
m.disable(-3);
}
void TRCRiclass_application::init_query_mode(TMask& m)
{
m.show(-1);
m.hide(-2);
m.enable(-3);
}
void TRCRiclass_application::init_query_insert_mode(TMask& m)
{
m.hide(-1);
m.show(-2);
m.enable(-3);
}
void TRCRiclass_application::init_modify_mode(TMask& m)
{
TRelation_application::init_modify_mode(m);
_gruppo = m.get_int(F_GRUPPO);
_conto = m.get_int(F_CONTO);
_sottoconto = m.get_long(F_SOTTOCONTO);
m.show(-1);
m.disable(-1);
m.hide(-2);
m.disable(-3);
}
bool TRCRiclass_application::user_create()
{
_rel = new TRelation(LF_RICLPDC);
_msk = new TRC_ricl_msk;
set_search_field(F_SOTTOCONTO);
TFilename rep("tczcricl.rep");
if (rep.custom_path())
enable_menu_item(M_FILE_PRINT);
TString title;
_msk->get_caption(title);
set_title(title);
return true;
}
bool TRCRiclass_application::user_destroy()
{
if (_msk)
delete _msk;
if (_rel)
delete _rel;
return true;
}
int tc3800(int argc, char **argv)
{
TRCRiclass_application a;
a.run(argc, argv, TR("Riclassificazione piano dei conti Ericsoft"));
return 0;
}

View File

@ -1,13 +0,0 @@
//id campi maschera tc3800a (file piano dei conti Ericsoft)
//campi normali
#define F_COD 101
#define F_GRUPPO 102
#define F_CONTO 103
#define F_SOTTOCONTO 104
#define F_SOTTOCONTO1 105
#define F_DESCG 106
#define F_DESCC 107
#define F_DESC 108
#define F_CONTORE 109
#define F_DESCRIZ 110
#define H_TIPOCF 111

View File

@ -1,186 +0,0 @@
#include "tc3800a.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 "RECONTI|RECONTI"
FIELD TIPORIC
FLAGS "D"
KEY 1
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 1 "Conto Campo"
END
NUMBER F_GRUPPO 3
BEGIN
PROMPT 2 2 "Gruppo "
HELP "Codice del gruppo"
FIELD GRUPPO
KEY 1
USE LF_PCON KEY 1 SELECT CONTO=""
INPUT GRUPPO F_GRUPPO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_DESCG DESCR
CHECKTYPE FORCED
ADD RUN cg0 -0
END
STRING F_DESCG 50
BEGIN
PROMPT 25 2 ""
FLAGS "D"
END
NUMBER F_CONTO 3
BEGIN
PROMPT 2 3 "Conto "
HELP "Codice dell'eventuale conto"
FIELD CONTO
KEY 1
USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO=""))
COPY INPUT F_GRUPPO
INPUT CONTO F_CONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Tipo" TMCF
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_CONTO CONTO
OUTPUT H_TIPOCF TMCF
OUTPUT F_DESCC DESCR
CHECKTYPE FORCED
WARNING "Manca il conto"
ADD RUN cg0 -0
END
STRING F_DESCC 50
BEGIN
PROMPT 25 3 ""
FLAGS "D"
END
LIST H_TIPOCF 1 11
BEGIN
PROMPT 2 5 "Tipo "
FLAGS "HG"
KEY 1
ITEM " |Conti"
MESSAGE ENABLE,F_SOTTOCONTO|ENABLE,F_SOTTOCONTO1
ITEM "C|Clienti"
MESSAGE DISABLE,F_SOTTOCONTO|DISABLE,F_SOTTOCONTO1
ITEM "F|Fornitori"
MESSAGE DISABLE,F_SOTTOCONTO|DISABLE,F_SOTTOCONTO1
END
NUMBER F_SOTTOCONTO 6
BEGIN
PROMPT 2 4 "Sottoconto"
HELP "Codice dell'eventuale sottoconto"
FIELD SOTTOCONTO
KEY 1
USE LF_RICLPDC
JOIN LF_PCON INTO GRUPPO==GRUPPO CONTO==CONTO SOTTOCONTO==SOTTOCONTO
INPUT TIPORIC F_COD
INPUT GRUPPO F_GRUPPO
INPUT CONTO F_CONTO
INPUT SOTTOCONTO F_SOTTOCONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" LF_PCON->DESCR
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_CONTO CONTO
OUTPUT F_SOTTOCONTO SOTTOCONTO
OUTPUT F_DESC LF_PCON->DESCR
CHECKTYPE SEARCH
GROUP 1
END
NUMBER F_SOTTOCONTO1 6
BEGIN
PROMPT 2 4 "Sottoconto"
HELP "Codice dell'eventuale sottoconto"
FIELD SOTTOCONTO
KEY 1
USE LF_PCON KEY 1 SELECT SOTTOCONTO!=""
COPY INPUT F_CONTO
INPUT SOTTOCONTO F_SOTTOCONTO1
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Sosp." SOSPESO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_CONTO CONTO
OUTPUT F_SOTTOCONTO1 SOTTOCONTO
OUTPUT F_DESC DESCR
MESSAGE COPY F_SOTTOCONTO
CHECKTYPE SEARCH
GROUP 2
FLAGS "HG"
ADD RUN cg0 -0
END
STRING F_DESC 50
BEGIN
PROMPT 25 4 ""
USE LF_PCON KEY 2
KEY 2
INPUT DESCR F_DESC
DISPLAY "Descrizione@50" DESCR
DISPLAY "Sosp." SOSPESO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SOTTOCONTO1
CHECKTYPE NORMAL
HELP "Descrizione del gruppo o del conto o del sottoconto"
WARNING "Descrizione mancante"
GROUP 3
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 6 "Conto Ericsoft"
END
STRING F_CONTORE 7
BEGIN
PROMPT 2 7 "Conto "
USE &RCO
INPUT CODTAB F_CONTORE
DISPLAY "Conto Ericsoft" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CONTORE CODTAB
OUTPUT F_DESCRIZ S0
CHECKTYPE REQUIRED
VALIDATE FIXLEN_FUNC 7
FIELD CODICE
END
STRING F_DESCRIZ 50
BEGIN
PROMPT 25 7 ""
USE &RCO KEY 2
INPUT S0 F_DESCRIZ
DISPLAY "Descrizione@50" S0
DISPLAY "Conto Ericsoft" CODTAB
COPY OUTPUT F_CONTORE
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK

View File

@ -157,7 +157,6 @@ Module = 27
Flags = ""
Item_01 = "Trasferimento", "tc3 -0", ""
Item_02 = "Tabelle", [TCMENU_016]
Item_03 = "Tabelle di riclassificazione", [TCMENU_017]
[TCMENU_016]
Caption = "Tabelle Ericsoft"
@ -171,13 +170,6 @@ Item_04 = "Condizioni di pagamento", "tc3 -1 &RPG", ""
Item_05 = "Valute", "tc3 -1 &RVL", ""
Item_06 = "Conti", "tc3 -1 &RCO", ""
[TCMENU_017]
Caption = "Tabelle di riclassificazione Ericsoft"
Picture = <cg01>
Module = 27
Flags = ""
Item_01 = "Piano dei conti", "tc3 -7", ""
[TCMENU_018]
Caption = "Altri"
Picture = <cg01>

View File

@ -1,2 +1,9 @@
#define F_CODTAB 101
#define F_DESC 102
#define F_CODTAB 101
#define F_DESC 102
#define F_GRUPPO 103
#define F_DESCG 104
#define F_CONTO 105
#define F_DESCC 106
#define H_TIPOCF 107
#define F_SOTTOCONTO 108
#define F_DESCS 109

View File

@ -16,7 +16,7 @@ BEGIN
PROMPT 2 2 "Codice "
USE &RCO
INPUT CODTAB F_CODTAB
DISPLAY "Codice" CODTAB
DISPLAY "Codice@7" CODTAB
DISPLAY "Descrizione@60" S0
OUTPUT F_CODTAB CODTAB
OUTPUT F_DESC S0
@ -40,6 +40,97 @@ BEGIN
CHECKTYPE REQUIRED
END
NUMBER F_GRUPPO 3
BEGIN
PROMPT 2 7 "Gruppo "
HELP "Codice del gruppo"
FIELD I0
USE LF_PCON KEY 1 SELECT CONTO=""
INPUT GRUPPO F_GRUPPO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_DESCG DESCR
CHECKTYPE FORCED
ADD RUN cg0 -0
END
STRING F_DESCG 50
BEGIN
PROMPT 25 7 ""
FLAGS "D"
END
NUMBER F_CONTO 3
BEGIN
PROMPT 2 9 "Conto "
HELP "Codice dell'eventuale conto"
FIELD I1
USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO=""))
COPY INPUT F_GRUPPO
INPUT CONTO F_CONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Tipo" TMCF
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_CONTO CONTO
OUTPUT H_TIPOCF TMCF
OUTPUT F_DESCC DESCR
CHECKTYPE FORCED
WARNING "Manca il conto"
ADD RUN cg0 -0
END
STRING F_DESCC 50
BEGIN
PROMPT 25 9 ""
FLAGS "D"
END
LIST H_TIPOCF 1 11
BEGIN
PROMPT 2 10 "Tipo "
FLAGS "HG"
KEY 1
ITEM " |Conti"
MESSAGE ENABLE,F_SOTTOCONTO
ITEM "C|Clienti"
MESSAGE CLEAR,F_SOTTOCONTO
ITEM "F|Fornitori"
MESSAGE CLEAR,F_SOTTOCONTO
END
NUMBER F_SOTTOCONTO 6
BEGIN
PROMPT 2 11 "Sottoconto "
HELP "Codice dell'eventuale sottoconto"
FIELD I2
USE LF_PCON KEY 1 SELECT SOTTOCONTO!=""
COPY INPUT F_CONTO
INPUT SOTTOCONTO F_SOTTOCONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Sosp." SOSPESO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPO GRUPPO
OUTPUT F_CONTO CONTO
OUTPUT F_SOTTOCONTO SOTTOCONTO
OUTPUT F_DESCS DESCR
CHECKTYPE SEARCH
GROUP 2
ADD RUN cg0 -0
END
STRING F_DESCS 50
BEGIN
PROMPT 25 11 ""
USE LF_PCON KEY 2
FLAGS "D"
END
ENDPAGE
ENDMASK