Patch level : 10 hardy conversione
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21400 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c15c0b931a
commit
e7afacec30
@ -517,13 +517,14 @@ bool THardy_pcon::trasferisci_sottoconti()
|
|||||||
{
|
{
|
||||||
// costruisco la chiave gr.co.sc
|
// costruisco la chiave gr.co.sc
|
||||||
const TString16 key = get_str("IdConto");
|
const TString16 key = get_str("IdConto");
|
||||||
const int gr = atoi(key.mid(1,2));
|
int gr, co;
|
||||||
const int co = atoi(key.mid(3,2));
|
long so;
|
||||||
const int so = atoi(key.mid(5,3));
|
gr = 0;
|
||||||
|
co = 0;
|
||||||
|
so = 0;
|
||||||
|
hd_key2conto(key, gr, co,so);
|
||||||
rec_pcon.zero();
|
rec_pcon.zero();
|
||||||
rec_pcon.put(PCN_GRUPPO, gr);
|
rec_pcon.put(PCN_GRUPPO, gr);
|
||||||
|
|
||||||
if ((gr != 0) && (co != 0) && (so!= 0))
|
if ((gr != 0) && (co != 0) && (so!= 0))
|
||||||
{
|
{
|
||||||
if (esclusi.find(key.mid(1,2))>=0)
|
if (esclusi.find(key.mid(1,2))>=0)
|
||||||
@ -817,9 +818,12 @@ bool THardy_fornitori::trasferisci()
|
|||||||
|
|
||||||
// contropartita
|
// contropartita
|
||||||
const TString16 key = get_str("IdContropartita");
|
const TString16 key = get_str("IdContropartita");
|
||||||
const int gr = atoi(key.mid(1,2));
|
int gr, co;
|
||||||
const int co = atoi(key.mid(3,2));
|
long so;
|
||||||
const int so = atoi(key.mid(5,3));
|
gr = 0;
|
||||||
|
co = 0;
|
||||||
|
so = 0;
|
||||||
|
hd_key2conto(key, gr, co, so);
|
||||||
rec.put(CLI_GRUPPORIC, gr);
|
rec.put(CLI_GRUPPORIC, gr);
|
||||||
rec.put(CLI_CONTORIC, co);
|
rec.put(CLI_CONTORIC, co);
|
||||||
rec.put(CLI_SOTTOCRIC, so);
|
rec.put(CLI_SOTTOCRIC, so);
|
||||||
|
@ -366,6 +366,8 @@ DATAPRZSTO =
|
|||||||
// conversione valute per listini
|
// conversione valute per listini
|
||||||
[IdDivisa]
|
[IdDivisa]
|
||||||
006=EUR
|
006=EUR
|
||||||
|
001=
|
||||||
|
002=
|
||||||
|
|
||||||
// contratti
|
// contratti
|
||||||
[CONTRATTI]
|
[CONTRATTI]
|
||||||
@ -489,7 +491,7 @@ ANNOIVA =
|
|||||||
REG =
|
REG =
|
||||||
PROTIVA =
|
PROTIVA =
|
||||||
UPROTIVA =
|
UPROTIVA =
|
||||||
CODVAL = IdDivisa
|
CODVAL = _TRADUCI,IdDivisa
|
||||||
DATACAM = DataCambio
|
DATACAM = DataCambio
|
||||||
CAMBIO = Cambio
|
CAMBIO = Cambio
|
||||||
REGST =
|
REGST =
|
||||||
@ -548,8 +550,8 @@ ANNOES = Anno
|
|||||||
NUMREG =
|
NUMREG =
|
||||||
NUMRIG =
|
NUMRIG =
|
||||||
CODIVA = IdIva
|
CODIVA = IdIva
|
||||||
IMPONIBILE=
|
IMPONIBILE=Imponibile
|
||||||
IMPOSTA =
|
IMPOSTA =Imposta
|
||||||
TIPODET =
|
TIPODET =
|
||||||
TIPOCR =
|
TIPOCR =
|
||||||
INTRA =
|
INTRA =
|
||||||
@ -569,6 +571,7 @@ CLI_GRUPPO = 4
|
|||||||
CLI_CONTO = 101
|
CLI_CONTO = 101
|
||||||
FOR_GRUPPO = 5
|
FOR_GRUPPO = 5
|
||||||
FOR_CONTO = 600
|
FOR_CONTO = 600
|
||||||
|
GRUPPI_MOV = 7|8
|
||||||
|
|
||||||
// parametri generali della maschera (dns user password)
|
// parametri generali della maschera (dns user password)
|
||||||
[Main]
|
[Main]
|
||||||
|
269
ha/hacnv200.cpp
269
ha/hacnv200.cpp
@ -28,70 +28,32 @@ class THardy_movimenti : public THardy_transfer
|
|||||||
TDate _dadata, _adata;
|
TDate _dadata, _adata;
|
||||||
TConfig* _conf;
|
TConfig* _conf;
|
||||||
long _kmovcont;
|
long _kmovcont;
|
||||||
|
TArray* _righeiva;
|
||||||
|
TArray* _righecont;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool trasferisci_righe();
|
bool scrivi_righe();
|
||||||
bool trasferisci_righeiva();
|
bool scrivi_righecont();
|
||||||
|
bool test_movcont();
|
||||||
|
bool conto_is_costoricavo(const int gr);
|
||||||
|
bool test_moviva();
|
||||||
|
void conto2campo(const TString& hd_tipoc, const TString& hd_key, TString4& tipoc, int& gr, int& co, long& so);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool trasferisci();
|
virtual bool trasferisci();
|
||||||
THardy_movimenti(const int anno, const TDate dadata, const TDate adata);
|
THardy_movimenti(const int anno, const TDate dadata, const TDate adata);
|
||||||
};
|
};
|
||||||
|
|
||||||
bool THardy_movimenti::trasferisci_righeiva()
|
void THardy_movimenti::conto2campo(const TString& hd_tipoc, const TString& hd_key, TString4& tipoc, int& gr, int& co, long& so)
|
||||||
{
|
{
|
||||||
TString_array lista_campi_righeiva;
|
|
||||||
TConfig& ini = config();
|
TConfig& ini = config();
|
||||||
ini.list_variables(lista_campi_righeiva, true, "RMOVIVA", true);
|
char tipocc = hd_tipoc[0];
|
||||||
TString query;
|
|
||||||
query << query_header();
|
|
||||||
query << "SELECT * "
|
|
||||||
"FROM dbo.MovIvaT "
|
|
||||||
"WHERE KMovconT=";
|
|
||||||
query << _kmovcont;
|
|
||||||
TODBC_recordset recset(query);
|
|
||||||
bool is_iva = (recset.items() > 0);
|
|
||||||
if (is_iva)
|
|
||||||
{
|
|
||||||
bool ok=recset.move_first();
|
|
||||||
if (ok)
|
|
||||||
{
|
|
||||||
// aggiorna_testata movimento già scritta su ini con i nuovi dati di testata
|
|
||||||
}
|
|
||||||
// aggiungo le righe iva
|
|
||||||
long kregivat = recset.get("KRegivaT").as_int();
|
|
||||||
TString query_righe;
|
|
||||||
query_righe << query_header();
|
|
||||||
query_righe << "SELECT * "
|
|
||||||
"FROM dbo.MovIva "
|
|
||||||
"WHERE KRegivaT=";
|
|
||||||
query_righe << kregivat;
|
|
||||||
TODBC_recordset recset_righe(query_righe);
|
|
||||||
TString paragraph;
|
|
||||||
int nrigac = 1;
|
|
||||||
for (bool ok=recset_righe.move_first();ok;ok=recset_righe.move_next())
|
|
||||||
{
|
|
||||||
paragraph.format("%d,%d",LF_RMOVIVA,nrigac++);
|
|
||||||
_conf->set_paragraph(paragraph);
|
|
||||||
aggiorna_ini(*_conf, lista_campi_righeiva);
|
|
||||||
|
|
||||||
// calcolo dei campi non importabili direttamente
|
|
||||||
TString4 sezione = "D";
|
|
||||||
TImporto imponibile(sezione[0], recset_righe.get("Imponibile").as_real());
|
|
||||||
TImporto imposta(sezione[0], recset_righe.get("Imposta").as_real());
|
|
||||||
_conf->set(RMI_IMPONIBILE, imponibile.valore().string(0,2)) ;
|
|
||||||
_conf->set(RMI_IMPOSTA, imposta.valore().string(0,2));
|
|
||||||
const TString& key = recset_righe.get("IdConto").as_string();
|
|
||||||
TString4 tipoc = recset_righe.get("IdContoTp").as_string();
|
|
||||||
const char tipocc = tipoc[0];
|
|
||||||
int gr, co;
|
|
||||||
long so;
|
|
||||||
switch (tipocc)
|
switch (tipocc)
|
||||||
{
|
{
|
||||||
case 'S':
|
case 'S':
|
||||||
{
|
{
|
||||||
tipoc = " ";
|
tipoc = " ";
|
||||||
gr = atoi(key.mid(1,2));
|
hd_key2conto(hd_key, gr, co, so);
|
||||||
co = atoi(key.mid(3,2));
|
|
||||||
so = atoi(key.mid(5,3));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
@ -99,7 +61,7 @@ bool THardy_movimenti::trasferisci_righeiva()
|
|||||||
tipoc = "C";
|
tipoc = "C";
|
||||||
gr = ini.get_int("CLI_GRUPPO", "Mastri");
|
gr = ini.get_int("CLI_GRUPPO", "Mastri");
|
||||||
co = ini.get_int("CLI_CONTO", "Mastri");
|
co = ini.get_int("CLI_CONTO", "Mastri");
|
||||||
so = hd_key2cli(key);
|
so = hd_key2cli(hd_key);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'F':
|
case 'F':
|
||||||
@ -107,23 +69,92 @@ bool THardy_movimenti::trasferisci_righeiva()
|
|||||||
tipoc = "F";
|
tipoc = "F";
|
||||||
gr = ini.get_int("FOR_GRUPPO", "Mastri");
|
gr = ini.get_int("FOR_GRUPPO", "Mastri");
|
||||||
co = ini.get_int("FOR_CONTO", "Mastri");
|
co = ini.get_int("FOR_CONTO", "Mastri");
|
||||||
so = hd_key2forn(key);
|
so = hd_key2forn(hd_key);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
_conf->set(RMI_TIPOC, tipoc);
|
|
||||||
_conf->set(RMI_GRUPPO, gr);
|
|
||||||
_conf->set(RMI_CONTO, co);
|
|
||||||
_conf->set(RMI_SOTTOCONTO, so);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return is_iva;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool THardy_movimenti::conto_is_costoricavo(const int gr)
|
||||||
|
{
|
||||||
|
TConfig& ini = config();
|
||||||
|
const int costi = ini.get_int("COSTI_GRUPPO", "Mastri");
|
||||||
|
const int ricavi = ini.get_int("RICAVI_GRUPPO", "Mastri");
|
||||||
|
return ((gr == costi) || (gr == ricavi));
|
||||||
|
}
|
||||||
|
|
||||||
bool THardy_movimenti::trasferisci_righe()
|
bool THardy_movimenti::test_moviva()
|
||||||
|
{
|
||||||
|
// verifico se è un movimento iva: esiste un record in MovIvaT
|
||||||
|
TString query;
|
||||||
|
query << query_header();
|
||||||
|
query << "SELECT * "
|
||||||
|
"FROM dbo.MovIvaT "
|
||||||
|
"WHERE KMovconT=";
|
||||||
|
query << _kmovcont;
|
||||||
|
TODBC_recordset recset(query);
|
||||||
|
long kregivat = -1;
|
||||||
|
if (recset.items() > 0)
|
||||||
|
{
|
||||||
|
bool ok=recset.move_first();
|
||||||
|
if (ok)
|
||||||
|
{
|
||||||
|
kregivat = recset.get("KRegivaT").as_int();
|
||||||
|
// aggiorna_testata movimento già scritta su ini con i nuovi dati di testata
|
||||||
|
const TString& key = recset.get("IdConto").as_string();
|
||||||
|
TString4 hdtipoc = recset.get("IdContoTp").as_string();
|
||||||
|
TString4 tipoc = " ";
|
||||||
|
int gr, co;
|
||||||
|
long so;
|
||||||
|
gr = 0;
|
||||||
|
co = 0;
|
||||||
|
so = 0;
|
||||||
|
conto2campo(hdtipoc, key, tipoc, gr, co, so);
|
||||||
|
_conf->set(MOV_TIPO, tipoc);
|
||||||
|
_conf->set(MOV_CODCF, so);
|
||||||
|
real totdoc = recset.get("TotDocumento").as_real();
|
||||||
|
_conf->set(MOV_TOTDOC, totdoc.string(0,2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// leggo le righe iva e costrisco array corrispondente
|
||||||
|
TString_array lista_campi_righeiva;
|
||||||
|
TConfig& ini = config();
|
||||||
|
ini.list_variables(lista_campi_righeiva, true, "RMOVIVA", true);
|
||||||
|
TString query_righe;
|
||||||
|
query_righe << query_header();
|
||||||
|
query_righe << "SELECT * "
|
||||||
|
"FROM dbo.MovIva "
|
||||||
|
"WHERE KRegivaT=";
|
||||||
|
query_righe << kregivat;
|
||||||
|
TODBC_recordset recset_righe(query_righe);
|
||||||
|
_righeiva->destroy();
|
||||||
|
TLocalisamfile rmoviva(LF_RMOVIVA);
|
||||||
|
TRectype& rec_rmoviva = rmoviva.curr();
|
||||||
|
for (bool ok=recset_righe.move_first();ok;ok=recset_righe.move_next())
|
||||||
|
{
|
||||||
|
aggiorna_record(rec_rmoviva, lista_campi_righeiva);
|
||||||
|
const TString& key = recset_righe.get("IdConto").as_string();
|
||||||
|
TString4 hdtipoc = recset_righe.get("IdContoTp").as_string();
|
||||||
|
TString4 tipoc;
|
||||||
|
tipoc = " ";
|
||||||
|
int gr, co;
|
||||||
|
long so;
|
||||||
|
gr = 0;
|
||||||
|
co = 0;
|
||||||
|
so = 0;
|
||||||
|
conto2campo(hdtipoc, key, tipoc, gr, co, so);
|
||||||
|
rec_rmoviva.put(RMI_TIPOC, tipoc);
|
||||||
|
rec_rmoviva.put(RMI_GRUPPO, gr);
|
||||||
|
rec_rmoviva.put(RMI_CONTO, co);
|
||||||
|
rec_rmoviva.put(RMI_SOTTOCONTO, so);
|
||||||
|
_righeiva->add(new TObject(rec_rmoviva));
|
||||||
|
}
|
||||||
|
return (kregivat > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool THardy_movimenti::test_movcont()
|
||||||
{
|
{
|
||||||
TString_array lista_campi_righe;
|
TString_array lista_campi_righe;
|
||||||
TConfig& ini = config();
|
TConfig& ini = config();
|
||||||
@ -135,61 +166,68 @@ bool THardy_movimenti::trasferisci_righe()
|
|||||||
"WHERE KMovconT=";
|
"WHERE KMovconT=";
|
||||||
query_righe << _kmovcont;
|
query_righe << _kmovcont;
|
||||||
TODBC_recordset recset_righe(query_righe);
|
TODBC_recordset recset_righe(query_righe);
|
||||||
TString paragraph;
|
_righecont->destroy();
|
||||||
int nrigac = 1;
|
TLocalisamfile rmov(LF_RMOV);
|
||||||
|
TRectype& rec_rmov = rmov.curr();
|
||||||
for (bool ok=recset_righe.move_first();ok;ok=recset_righe.move_next())
|
for (bool ok=recset_righe.move_first();ok;ok=recset_righe.move_next())
|
||||||
{
|
{
|
||||||
paragraph.format("%d,%d",LF_RMOV,nrigac++);
|
aggiorna_record(rec_rmov, lista_campi_righe);
|
||||||
_conf->set_paragraph(paragraph);
|
|
||||||
aggiorna_ini(*_conf, lista_campi_righe);
|
|
||||||
|
|
||||||
// calcolo dei campi non importabili direttamente
|
|
||||||
TString4 sezione = "D";
|
|
||||||
TImporto imp_dare(sezione[0], recset_righe.get("Dare").as_real());
|
|
||||||
TImporto imp_avere(sezione[0], recset_righe.get("Avere").as_real());
|
|
||||||
if (imp_dare.is_zero())
|
|
||||||
sezione = "A";
|
|
||||||
_conf->set(RMV_SEZIONE, sezione);
|
|
||||||
_conf->set(RMV_IMPORTO, (imp_avere.is_zero() ? imp_dare.valore().string(0,2) : imp_avere.valore().string(0,2)));
|
|
||||||
const TString& key = recset_righe.get("IdConto").as_string();
|
const TString& key = recset_righe.get("IdConto").as_string();
|
||||||
TString4 tipoc = recset_righe.get("IdContoTp").as_string();
|
TString4 hdtipoc = recset_righe.get("IdContoTp").as_string();
|
||||||
const char tipocc = tipoc[0];
|
TString4 tipoc;
|
||||||
|
tipoc = " ";
|
||||||
int gr, co;
|
int gr, co;
|
||||||
long so;
|
long so;
|
||||||
switch (tipocc)
|
gr = 0;
|
||||||
|
co = 0;
|
||||||
|
so = 0;
|
||||||
|
conto2campo(hdtipoc, key, tipoc, gr, co, so);
|
||||||
|
TString4 sezione = "D";
|
||||||
|
real imp_dare = recset_righe.get("Dare").as_real();
|
||||||
|
real imp_avere = recset_righe.get("Avere").as_real();
|
||||||
|
if (imp_dare.is_zero())
|
||||||
|
sezione = "A";
|
||||||
|
rec_rmov.put(RMV_SEZIONE, sezione);
|
||||||
|
rec_rmov.put(RMV_IMPORTO, (imp_avere.is_zero() ? imp_dare : imp_avere));
|
||||||
|
rec_rmov.put(RMV_TIPOC, tipoc);
|
||||||
|
rec_rmov.put(RMV_GRUPPO, gr);
|
||||||
|
rec_rmov.put(RMV_CONTO, co);
|
||||||
|
rec_rmov.put(RMV_SOTTOCONTO, so);
|
||||||
|
_righecont->add(new TObject(rec_rmov));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool THardy_movimenti::scrivi_righecont()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool THardy_movimenti::scrivi_righe()
|
||||||
|
{
|
||||||
|
TConfig& ini = config();
|
||||||
|
TToken_string gruppi_mov = ini.get("GRUPPI_MOV", "Mastri");
|
||||||
|
// se è un movimento iva metto in atto il meccanismo di ricerca per assegnare le aliquote ai conti
|
||||||
|
if (_righeiva->items()>0)
|
||||||
{
|
{
|
||||||
case 'S':
|
// primo passo: scartare le righe contabili con gruppi non presenti nella lista GRUPPI_MOV
|
||||||
|
for (int i=0;i<_righecont->items();i++)
|
||||||
{
|
{
|
||||||
tipoc = " ";
|
TRectype* rec_rmov = (TRectype*)_righecont->objptr(i);
|
||||||
gr = atoi(key.mid(1,2));
|
const char* gruppo = rec_rmov->get(RMV_GRUPPO);
|
||||||
co = atoi(key.mid(3,2));
|
if (!gruppi_mov.find(gruppo))
|
||||||
so = atoi(key.mid(5,3));
|
_righecont->remove(i);
|
||||||
}
|
}
|
||||||
break;
|
// secondo passo: per ogni riga iva cerco importo uguale in righe contabili,
|
||||||
case 'C':
|
// se lo trovo assegno quel codice iva il conto contabile trovato e cancello la riga iva
|
||||||
|
for (int i=0;i<_righeiva->items();i++)
|
||||||
{
|
{
|
||||||
tipoc = "C";
|
TRectype* rec_rmoviva = (TRectype*)_righeiva->objptr(i);
|
||||||
gr = ini.get_int("CLI_GRUPPO", "Mastri");
|
real imponibile = rec_rmoviva->get(RMI_IMPONIBILE);
|
||||||
co = ini.get_int("CLI_CONTO", "Mastri");
|
|
||||||
so = hd_key2cli(key);
|
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case 'F':
|
|
||||||
{
|
|
||||||
tipoc = "F";
|
|
||||||
gr = ini.get_int("FOR_GRUPPO", "Mastri");
|
|
||||||
co = ini.get_int("FOR_CONTO", "Mastri");
|
|
||||||
so = hd_key2forn(key);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
_conf->set(RMV_TIPOC, tipoc);
|
|
||||||
_conf->set(RMV_GRUPPO, gr);
|
|
||||||
_conf->set(RMV_CONTO, co);
|
|
||||||
_conf->set(RMV_SOTTOCONTO, so);
|
|
||||||
}
|
}
|
||||||
|
// scrivo su ini le righe contabili rimaste (tutte se il mov non è iva)
|
||||||
|
scrivi_righecont();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,7 +270,7 @@ bool THardy_movimenti::trasferisci()
|
|||||||
THardy_iterator hi(this);
|
THardy_iterator hi(this);
|
||||||
while (++hi)
|
while (++hi)
|
||||||
{
|
{
|
||||||
_kmovcont = recset.get("KMovconT").as_int();
|
_kmovcont = recset.get("KMovconT").as_int(); // numero movimento testata
|
||||||
if (_conf != NULL)
|
if (_conf != NULL)
|
||||||
delete _conf;
|
delete _conf;
|
||||||
_conf = NULL;
|
_conf = NULL;
|
||||||
@ -248,11 +286,22 @@ bool THardy_movimenti::trasferisci()
|
|||||||
paragraph.format("%d",LF_MOV);
|
paragraph.format("%d",LF_MOV);
|
||||||
_conf->set_paragraph(paragraph); // testata movimento
|
_conf->set_paragraph(paragraph); // testata movimento
|
||||||
aggiorna_ini(*_conf, lista_campi);
|
aggiorna_ini(*_conf, lista_campi);
|
||||||
// righe movimento
|
// verifica se è un mov. iva e nel caso aggiorna testata e array righe iva
|
||||||
trasferisci_righe();
|
bool iva = test_moviva();
|
||||||
bool iva = trasferisci_righeiva();
|
// legge righe contabili e aggiorna array righe cont.
|
||||||
|
test_movcont();
|
||||||
|
// scrive RMOV e /o RMOVIVA a partire da array righe letti da db hardy
|
||||||
|
bool ok = scrivi_righe();
|
||||||
TString msg;
|
TString msg;
|
||||||
msg << (iva ? TR("Movimento contabile "): TR("Movimento iva ")) << _kmovcont << " generato nel file " << temp;
|
if (ok)
|
||||||
|
msg << (iva ? TR("Movimento iva "): TR("Movimento contabile ")) << _kmovcont << " generato nel file " << temp;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ntran--;
|
||||||
|
if (temp.exist())
|
||||||
|
temp.fremove();
|
||||||
|
msg << (iva ? TR("Il movimento iva "): TR("Il movimento contabile ")) << _kmovcont << " ha generato un errore, non è stato convertito ";
|
||||||
|
}
|
||||||
log(msg);
|
log(msg);
|
||||||
}
|
}
|
||||||
if (_conf != NULL)
|
if (_conf != NULL)
|
||||||
|
@ -450,3 +450,11 @@ long hd_key2forn(const TString& key)
|
|||||||
const long codcf = atol(key.mid(3,6));
|
const long codcf = atol(key.mid(3,6));
|
||||||
return codcf;
|
return codcf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// determina tipoc, gruppo, conto e sottoconto a partire da tipoconto e idconto hardy
|
||||||
|
void hd_key2conto(const TString& key, int& gr, int& co, long& so)
|
||||||
|
{
|
||||||
|
gr = atoi(key.mid(1,2));
|
||||||
|
co = atoi(key.mid(3,2));
|
||||||
|
so = atoi(key.mid(5,3));
|
||||||
|
}
|
||||||
|
@ -220,3 +220,4 @@ const TString& hd_format_date8(const TDate& data);
|
|||||||
const TString& hd_format_date6(const TDate& data);
|
const TString& hd_format_date6(const TDate& data);
|
||||||
long hd_key2cli(const TString& key);
|
long hd_key2cli(const TString& key);
|
||||||
long hd_key2forn(const TString& key);
|
long hd_key2forn(const TString& key);
|
||||||
|
void hd_key2conto(const TString& key, int& gr, int& co, long& so);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user