Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/branches/R_10_00@21086 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2010-10-28 13:27:37 +00:00
parent a519f17133
commit 763df4c407
3 changed files with 339 additions and 70 deletions

View File

@ -9,6 +9,9 @@
#include <reputils.h>
#include <tabutil.h>
#include <pconti.h>
#include <clifo.h>
const char* const APPNAME = TR("Importazione anagrafiche HARDY");
///////////////////////////////////////////////////////////
@ -387,6 +390,24 @@ void THardy_transfer::aggiorna_record(TRectype& rec, const TString_array& lista_
}
else if (str == "FISSO")
valore = elabora.get(); // valore fisso indicato in configurazione
else if (str == "TRADUCI")
{
const TString80 campo = elabora.get();
const TString80 contenuto = get_str(campo);
TConfig& ini = config();
valore = ini.get(contenuto,campo);
}
if (str == "_STREXPR") // formato _STREXPR, espressione
{
TExpression expr(campo_orig.after(','), _strexpr);
for (int v = 0; v < expr.numvar(); v++)
{
const char* varname = expr.varname(v);
expr.setvar(v, get_str(varname));
}
valore = expr.as_string();
valore.trim();
}
}
else
valore = get_str(campo_orig);
@ -458,7 +479,7 @@ bool THardy_catmerc::trasferisci()
TConfig& ini = config();
TString_array lista_campi;
ini.list_variables(lista_campi, true, "GMC", true);
TTable table("%GMC");
TTable table("GMC");
TRectype& rec = table.curr();
THardy_iterator hi(this);
while (++hi)
@ -672,6 +693,204 @@ bool THardy_art::trasferisci()
return write_enabled();
}
///////////////////////////////////////////////////////////
// THardy_conti
///////////////////////////////////////////////////////////
bool THardy_pcon::trasferisci()
{
if (trasferisci_gruppi())
if (trasferisci_conti())
return trasferisci_sottoconti();
return false;
}
bool THardy_pcon::trasferisci_gruppi()
{
TString query =
"SELECT * "
"FROM dbo.Mastri "
"WHERE Livello=2";
TRecordset& recset = create_recordset(query);
TConfig& ini = config();
TString_array lista_campi;
ini.list_variables(lista_campi, true, "MASTRI", true);
TSystemisamfile pcon(LF_PCON);
pcon.open(_lock);
TRectype& rec = pcon.curr();
THardy_iterator hi(this);
while (++hi)
{
// costruisco la chiave gr.co.sc
const TString16 key = get_str("IdMastro");
const TString& gruppo = key.mid(0,2);
rec.zero();
rec.put(PCN_GRUPPO, gruppo);
aggiorna_record(rec, lista_campi);
test_write(pcon);
}
pcon.close();
return write_enabled();
}
long THardy_clienti::get_codcf(const TString &key)
{
long codcf = 0;
const char first = key[0];
const long cod_hardy = atoi(key.mid(2,6));
switch (first)
{
case 'H':
{
codcf = 130000+cod_hardy;
}
break;
case 'P':
{
codcf = 140000+cod_hardy;
}
break;
case '0':
{
const char second = key[1];
if (second == '1')
codcf = 120000+cod_hardy;
else if (second == '0')
{
const char third = key[2];
if (third == '4')
codcf = 110000+cod_hardy;
else if (third == '3')
codcf = 100000+cod_hardy;
else
codcf = cod_hardy;
}
}
break;
default:
codcf = cod_hardy;
}
return codcf;
}
bool THardy_clienti::trasferisci()
{
TString query =
"SELECT * "
"FROM dbo.Clienti ";
TRecordset& recset = create_recordset(query);
TConfig& ini = config();
TString_array lista_campi;
ini.list_variables(lista_campi, true, "CLIENTI", true);
TSystemisamfile clienti(LF_CLIFO);
clienti.open(_lock);
TRectype& rec = clienti.curr();
THardy_iterator hi(this);
while (++hi)
{
// costruisco la chiave
const TString16 key = get_str("IdConto");
long codcf = get_codcf(key);
rec.zero();
rec.put(CLI_TIPOCF, "C");
rec.put(CLI_CODCF, codcf);
aggiorna_record(rec, lista_campi);
test_write(clienti);
}
clienti.close();
return write_enabled();
}
bool THardy_pcon::trasferisci_conti()
{
TString query =
"SELECT * "
"FROM dbo.Mastri "
"WHERE Livello=1";
TRecordset& recset = create_recordset(query);
TConfig& ini = config();
TString_array lista_campi_pcon;
ini.list_variables(lista_campi_pcon, true, "MASTRI", true);
const TString& esclusi = ini.get("PCON", "PARAMETRI");
TSystemisamfile pcon(LF_PCON);
pcon.open(_lock);
TRectype& rec_pcon = pcon.curr();
THardy_iterator hi(this);
while (++hi)
{
// costruisco la chiave gr.co
const TString16 key = get_str("IdMastro");
const int gr = atoi(key.mid(0,2));
int co = atoi(key.mid(2,2));
const int so = atoi(key.mid(4,3));
if ((gr != 0) && (co != 0))
{
if (esclusi.find(key.mid(0,2))>=0)
co = co*10+so;
rec_pcon.zero();
rec_pcon.put(PCN_GRUPPO, gr);
rec_pcon.put(PCN_CONTO, co);
aggiorna_record(rec_pcon, lista_campi_pcon);
test_write(pcon);
}
}
pcon.close();
return write_enabled();
}
bool THardy_pcon::trasferisci_sottoconti()
{
TString query =
"SELECT * "
"FROM dbo.Conti ";
TRecordset& recset = create_recordset(query);
TConfig& ini = config();
TString_array lista_campi_pcon, lista_cf;
ini.list_variables(lista_campi_pcon, true, "CONTI", true);
const TString& esclusi = ini.get("PCON", "PARAMETRI");
TSystemisamfile pcon(LF_PCON);
pcon.open(_lock);
TRectype& rec_pcon = pcon.curr();
THardy_iterator hi(this);
while (++hi)
{
// costruisco la chiave gr.co.sc
const TString16 key = get_str("IdConto");
const int gr = atoi(key.mid(1,2));
const int co = atoi(key.mid(3,2));
const int so = atoi(key.mid(5,3));
rec_pcon.zero();
rec_pcon.put(PCN_GRUPPO, gr);
if ((gr != 0) && (co != 0) && (so!= 0))
{
if (esclusi.find(key.mid(1,2))>=0)
rec_pcon.put(PCN_CONTO, co*10+so);
else
{
rec_pcon.put(PCN_CONTO, co);
rec_pcon.put(PCN_SOTTOCONTO, so);
}
aggiorna_record(rec_pcon, lista_campi_pcon);
test_write(pcon);
}
}
pcon.close();
return write_enabled();
}
///////////////////////////////////////////////////////////
// TImportazioneHardy_mask
///////////////////////////////////////////////////////////
@ -795,6 +1014,22 @@ void TImportazioneHardy_mask::trasferisci()
book.add(log);
rep_to_print = true;
}
if (go_on && get_bool(F_PCON))
{
THardy_pcon pc;
pc.init(TR("Piano dei conti"), query_header, log);
go_on = pc.trasferisci();
book.add(log);
rep_to_print = true;
}
if (go_on && get_bool(F_CLI))
{
THardy_clienti pc;
pc.init(TR("Clienti"), query_header, log);
go_on = pc.trasferisci();
book.add(log);
rep_to_print = true;
}
if (rep_to_print && book.pages() > 0)
book.preview();
@ -822,7 +1057,6 @@ TImportazioneHardy_mask::TImportazioneHardy_mask() : TAutomask("hacnv100a")
TImportazioneHardy_mask::~TImportazioneHardy_mask()
{ }
///////////////////////////////////////////////////////////
// TImportazioneHardy
///////////////////////////////////////////////////////////

View File

@ -184,8 +184,20 @@ public:
virtual bool trasferisci();
};
class THardy_conti : public THardy_transfer
class THardy_pcon : public THardy_transfer
{
protected:
bool trasferisci_gruppi();
bool trasferisci_conti();
bool trasferisci_sottoconti();
public:
virtual bool trasferisci();
};
class THardy_clienti : public THardy_transfer
{
protected:
long get_codcf(const TString& key);
public:
virtual bool trasferisci();
};

View File

@ -1,47 +1,57 @@
// tabella condizioni di pagamento = Pagamenti
[CPG]
CODTAB=IdPagamento
S0=DsPagamento
S1=
S3=
S4=IdTipoMovimento
S5=
I0=
I1=
I2=
I3=
B0=
B1=
CODTAB = IdPagamento
S0 = DsPagamento
S1 = _TRADUCI,FlTipoScadenza
S3 =
S4 = _TRADUCI,IdTipoMovimento
S5 =
I0 =
I1 =
I2 =
I3 =
B0 =
B1 =
//Conversione IdTipoMovimento
[IdTipoMovimento]
BO=9
RB=3
RD=1
RI=8
BO = 9
RB = 3
RD = 1
RI = 8
//Conversione FlTipoScadenza
[FlTipoScadenza]
0 = F
1 = M
2 = I
3 = I
4 = I
// tabella codici IVA = AliquoteIVA
[IVA]
CODTAB=IdIva
S0=DsIvaEstesa
S1=
S2=
S3=
S5=
S6=
S7=
S8=
S9=
S10=
S11=
I0=
I1=
R0=Aliquota
B0=
B1=
B2=
B3=
B4=
CODTAB = IdIva
S0 = DsIvaEstesa
S1 =
S2 =
S3 =
S5 =
S6 =
S7 =
S8 =
S9 =
S10 =
S11 =
I0 =
I1 =
R0 = Aliquota
B0 =
B1 =
B2 =
B3 =
B4 =
//conversione per campo
[RComunicazioneIvaVen]
1=CD11
2=CD12
@ -56,13 +66,13 @@ B4=
// tabella gruppi merceologici = CategorieMerc
[GMC]
CODTAB=IdCategoria
S0=DsCategoria
CODTAB = IdCategoria
S0 = DsCategoria
// tabella classi fiscali = CategorieFisc
[ASF]
CODTAB=IdCategoria
S0=DsCategoria
CODTAB = IdCategoria
S0 = DsCategoria
// tabella Banche ABI = Banche
[ABI]
@ -72,36 +82,49 @@ S0=DsBanca
S0=DsDocumento
[CAUCONT]
CODCAUS=IdCausale
DESCR=DsCausaleEstesa
CODCAUS = IdCausale
DESCR = DsCausaleEstesa
[CAUMAG]
CODTAB=IdCausale
S0=DsCausaleEstesa
CODTAB = IdCausale
S0 = DsCausaleEstesa
[UM]
CODTAB=IdUm
S0=DsUm
CODTAB = IdUm
S0 = DsUm
[ANAMAG]
CODART=IdProdotto
DESCR=DsProdotto
CODIVA=IdIva
GRMERC=IdCategoria
CODART = IdProdotto
DESCR = DsProdotto
CODIVA = IdIva
GRMERC = IdCategoria
[UMART]
CODART=IdProdotto
NRIGA=_FISSO,1
UM=IdUM1
CODART = IdProdotto
NRIGA = _FISSO,1
UM = IdUM1
[CLIFO]
RAGSOC = _STREXPR,LEFT(TradeName1+" "+TradeName2; 50)
INDCF = Address
[MASTRI]
DESCR = DsMastro
[CONTI]
DESCR = RagioneSociale
[FlTipoMastro]
1 = C
5 = F
[PARAMETRI]
PCON=04|05
[CLIENTI]
RAGSOC = RagioneSociale
INDCF = Indirizzo
CIVCF =
LOCALITACF =
STATOCF = _TAB,%TPS,State,S6
STATOCF = _TAB,%TPS,IdIso,S6
COMCF =
CAPCF = ZipCode
CAPCF = CAP
COFI = CodiceFiscale
STATOPAIV =
PAIV = PartitaIVA
@ -116,23 +139,23 @@ SOTTOCRIC =
TIPOAPER =
CODANAGPER =
PTEL =
TEL = TelNumber
TEL = Telefono1
PTEL2 =
TEL2 =
TEL2 = Telefono2
PTEL3 =
TEL3 =
TEL3 = TelCellulare
PFAX =
FAX = FaxNumber
FAX = TelFax
PTELEX =
TELEX =
MAIL = EMailAddress
MAIL = EMail
DATANASC =
STATONASC =
COMNASC =
CODSTAT =
CODABI = ABICode
CODCAB = CABCode
NUMCC = CC
CODABI =
CODCAB =
NUMCC =
IBAN =
OCCAS =
STATO =
@ -144,7 +167,7 @@ RICALT =
OGGETTI =
SOSPESO =
DIRTY =
REFERENTE = Reference
REFERENTE = Referente
VALINTRA =
[CFVEN]