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:
parent
79e2220486
commit
d9083e9452
@ -7,7 +7,6 @@ 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 7: tc3800(argc,argv); break; // riclassificazione conti zucchetti
|
|
||||||
case 1: tc3200(argc,argv); break; // Tabelle
|
case 1: tc3200(argc,argv); break; // Tabelle
|
||||||
default: tc3100(argc,argv); break; // trasferimento zucchetti
|
default: tc3100(argc,argv); break; // trasferimento zucchetti
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,6 @@
|
|||||||
|
|
||||||
int tc3100(int argc, char** argv);
|
int tc3100(int argc, char** argv);
|
||||||
int tc3200(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
|
#endif // __TC3_H
|
||||||
|
|
||||||
|
@ -24,67 +24,13 @@
|
|||||||
#include <rmoviva.h>
|
#include <rmoviva.h>
|
||||||
#include <riclpdc.h>
|
#include <riclpdc.h>
|
||||||
|
|
||||||
#define TAB_RICCONTI "RECONTI"
|
|
||||||
#define TAB_REGISTRI "&RRE"
|
#define TAB_REGISTRI "&RRE"
|
||||||
#define TAB_CAUSALI "&RCA"
|
#define TAB_CAUSALI "&RCA"
|
||||||
#define TAB_CODIVA "&RIV"
|
#define TAB_CODIVA "&RIV"
|
||||||
#define TAB_PAGAMENTI "&RPG"
|
#define TAB_PAGAMENTI "&RPG"
|
||||||
#define TAB_VALUTE "&RVL"
|
#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
|
// TClient_textset
|
||||||
@ -346,8 +292,7 @@ class TImportaEricsoft : public TSkeleton_application
|
|||||||
{
|
{
|
||||||
virtual bool check_autorization() const {return false;}
|
virtual bool check_autorization() const {return false;}
|
||||||
|
|
||||||
TImportaEricsoft_mask * _msk;
|
TImportaEricsoft_mask * _msk;
|
||||||
TRiclassifica_cache * _ricl;
|
|
||||||
TEsercizi_contabili _esc;
|
TEsercizi_contabili _esc;
|
||||||
TAssoc_array _indetr;
|
TAssoc_array _indetr;
|
||||||
TString4 _last;
|
TString4 _last;
|
||||||
@ -373,6 +318,8 @@ protected:
|
|||||||
const TString & decode_codiva(const TString & codiva);
|
const TString & decode_codiva(const TString & codiva);
|
||||||
const TString & decode_codpag(const TString & codpag);
|
const TString & decode_codpag(const TString & codpag);
|
||||||
const TString & decode_codval(const TString & codval);
|
const TString & decode_codval(const TString & codval);
|
||||||
|
void decode_conto(const TString & cod, int & gruppo, int & conto, long & sottoconto);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool create();
|
virtual bool create();
|
||||||
@ -584,76 +531,76 @@ void TImportaEricsoft::upload_cli(const TFilename& file, TLog_report& log)
|
|||||||
clifo.zero();
|
clifo.zero();
|
||||||
clifo.put(CLI_TIPOCF, "C");
|
clifo.put(CLI_TIPOCF, "C");
|
||||||
clifo.put(CLI_CODCF, newcod);
|
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"))
|
if (!clifo.get(CLI_RICALT).starts_with("E"))
|
||||||
clifo.put(CLI_RICALT, key); //ragsoc
|
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;
|
TString str;
|
||||||
str << "Il Cliente codice (" << clifo.get(CLI_CODCF) <<") " << ragsoc << " ";
|
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;
|
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)
|
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());
|
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 TDate datareg = s.get(0).as_date();
|
||||||
const long numreg_eric = s.get(1).as_int();
|
const long numreg_eric = s.get(1).as_int();
|
||||||
const TString4 sezione = s.get(2).as_int() == 0 ? "D" : "A";
|
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();
|
long codcf = s.get(5).as_int();
|
||||||
TString4 tipocf;
|
TString4 tipocf;
|
||||||
|
|
||||||
@ -902,14 +864,28 @@ void TImportaEricsoft::upload_mov(const TFilename& file, TLog_report& log)
|
|||||||
const TString8 codreg = decode_codreg(tiporeg, numregs);
|
const TString8 codreg = decode_codreg(tiporeg, numregs);
|
||||||
const long numprot = s.get(9).as_int();
|
const long numprot = s.get(9).as_int();
|
||||||
const TDate datadoc = s.get(10).as_date();
|
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();
|
TString8 codcaus = s.get(13).as_string();
|
||||||
const int tipocau = s.get(14).as_int();
|
const int tipocau = s.get(14).as_int();
|
||||||
|
|
||||||
codcaus = decode_codcaus(tipocau, codcaus);
|
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 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 importo = s.get(17).as_real(); // valuta conto ???
|
||||||
const real imponibile = s.get(18).as_real(); // valuta conto ???
|
const real imponibile = s.get(18).as_real(); // valuta conto ???
|
||||||
const real imposta = s.get(17).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_CODCAUS, codcaus);
|
||||||
ini->set(MOV_DESCR, descr);
|
ini->set(MOV_DESCR, descr);
|
||||||
ini->set(MOV_REG, codreg);
|
ini->set(MOV_REG, codreg);
|
||||||
ini->set(MOV_PROTIVA, numprot);
|
// ini->set(MOV_PROTIVA, numprot);
|
||||||
ini->set(MOV_CODPAG, codpag);
|
ini->set(MOV_CODPAG, codpag);
|
||||||
ini->set(MOV_IVAXCASSA, tipocau == 8 || tipocau == 9 ? "X" : "" );
|
ini->set(MOV_IVAXCASSA, tipocau == 8 || tipocau == 9 ? "X" : "" );
|
||||||
ini->set(MOV_LIQDIFF, tipocau == 8 || tipocau == 9 ? "X" : "" );
|
ini->set(MOV_LIQDIFF, tipocau == 8 || tipocau == 9 ? "X" : "" );
|
||||||
ini->set(MOV_DATACOMP, datacomp);
|
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)
|
if (!mov_iva && riga_cont)
|
||||||
{
|
{
|
||||||
ini->set_paragraph(format("%d,%d",LF_RMOV, ++nriga));
|
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_CONTO, conto);
|
||||||
ini->set(RMV_SOTTOCONTO, sottoconto);
|
ini->set(RMV_SOTTOCONTO, sottoconto);
|
||||||
ini->set(RMV_ROWTYPE, "T");
|
ini->set(RMV_ROWTYPE, "T");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (numreg > 0L)
|
if (numreg > 0L)
|
||||||
{
|
{
|
||||||
@ -1121,14 +1094,12 @@ bool TImportaEricsoft::transfer()
|
|||||||
bool TImportaEricsoft::create()
|
bool TImportaEricsoft::create()
|
||||||
{
|
{
|
||||||
_msk = new TImportaEricsoft_mask();
|
_msk = new TImportaEricsoft_mask();
|
||||||
_ricl = new TRiclassifica_cache();
|
|
||||||
return TSkeleton_application::create();
|
return TSkeleton_application::create();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TImportaEricsoft::destroy()
|
bool TImportaEricsoft::destroy()
|
||||||
{
|
{
|
||||||
delete _msk;
|
delete _msk;
|
||||||
delete _ricl;
|
|
||||||
return TApplication::destroy();
|
return TApplication::destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
@ -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
|
|
@ -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
|
|
@ -157,7 +157,6 @@ Module = 27
|
|||||||
Flags = ""
|
Flags = ""
|
||||||
Item_01 = "Trasferimento", "tc3 -0", ""
|
Item_01 = "Trasferimento", "tc3 -0", ""
|
||||||
Item_02 = "Tabelle", [TCMENU_016]
|
Item_02 = "Tabelle", [TCMENU_016]
|
||||||
Item_03 = "Tabelle di riclassificazione", [TCMENU_017]
|
|
||||||
|
|
||||||
[TCMENU_016]
|
[TCMENU_016]
|
||||||
Caption = "Tabelle Ericsoft"
|
Caption = "Tabelle Ericsoft"
|
||||||
@ -171,13 +170,6 @@ Item_04 = "Condizioni di pagamento", "tc3 -1 &RPG", ""
|
|||||||
Item_05 = "Valute", "tc3 -1 &RVL", ""
|
Item_05 = "Valute", "tc3 -1 &RVL", ""
|
||||||
Item_06 = "Conti", "tc3 -1 &RCO", ""
|
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]
|
[TCMENU_018]
|
||||||
Caption = "Altri"
|
Caption = "Altri"
|
||||||
Picture = <cg01>
|
Picture = <cg01>
|
||||||
|
@ -1,2 +1,9 @@
|
|||||||
#define F_CODTAB 101
|
#define F_CODTAB 101
|
||||||
#define F_DESC 102
|
#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
|
@ -16,7 +16,7 @@ BEGIN
|
|||||||
PROMPT 2 2 "Codice "
|
PROMPT 2 2 "Codice "
|
||||||
USE &RCO
|
USE &RCO
|
||||||
INPUT CODTAB F_CODTAB
|
INPUT CODTAB F_CODTAB
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice@7" CODTAB
|
||||||
DISPLAY "Descrizione@60" S0
|
DISPLAY "Descrizione@60" S0
|
||||||
OUTPUT F_CODTAB CODTAB
|
OUTPUT F_CODTAB CODTAB
|
||||||
OUTPUT F_DESC S0
|
OUTPUT F_DESC S0
|
||||||
@ -40,6 +40,97 @@ BEGIN
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
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
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
Loading…
x
Reference in New Issue
Block a user