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 <reputils.h>
#include <tabutil.h> #include <tabutil.h>
#include <pconti.h>
#include <clifo.h>
const char* const APPNAME = TR("Importazione anagrafiche HARDY"); 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") else if (str == "FISSO")
valore = elabora.get(); // valore fisso indicato in configurazione 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 else
valore = get_str(campo_orig); valore = get_str(campo_orig);
@ -458,7 +479,7 @@ bool THardy_catmerc::trasferisci()
TConfig& ini = config(); TConfig& ini = config();
TString_array lista_campi; TString_array lista_campi;
ini.list_variables(lista_campi, true, "GMC", true); ini.list_variables(lista_campi, true, "GMC", true);
TTable table("%GMC"); TTable table("GMC");
TRectype& rec = table.curr(); TRectype& rec = table.curr();
THardy_iterator hi(this); THardy_iterator hi(this);
while (++hi) while (++hi)
@ -672,6 +693,204 @@ bool THardy_art::trasferisci()
return write_enabled(); 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 // TImportazioneHardy_mask
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -795,6 +1014,22 @@ void TImportazioneHardy_mask::trasferisci()
book.add(log); book.add(log);
rep_to_print = true; 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) if (rep_to_print && book.pages() > 0)
book.preview(); book.preview();
@ -822,7 +1057,6 @@ TImportazioneHardy_mask::TImportazioneHardy_mask() : TAutomask("hacnv100a")
TImportazioneHardy_mask::~TImportazioneHardy_mask() TImportazioneHardy_mask::~TImportazioneHardy_mask()
{ } { }
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TImportazioneHardy // TImportazioneHardy
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////

View File

@ -184,8 +184,20 @@ public:
virtual bool trasferisci(); 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: public:
virtual bool trasferisci(); virtual bool trasferisci();
}; };

View File

@ -2,9 +2,9 @@
[CPG] [CPG]
CODTAB = IdPagamento CODTAB = IdPagamento
S0 = DsPagamento S0 = DsPagamento
S1= S1 = _TRADUCI,FlTipoScadenza
S3 = S3 =
S4=IdTipoMovimento S4 = _TRADUCI,IdTipoMovimento
S5 = S5 =
I0 = I0 =
I1 = I1 =
@ -13,12 +13,21 @@ I3=
B0 = B0 =
B1 = B1 =
//Conversione IdTipoMovimento
[IdTipoMovimento] [IdTipoMovimento]
BO = 9 BO = 9
RB = 3 RB = 3
RD = 1 RD = 1
RI = 8 RI = 8
//Conversione FlTipoScadenza
[FlTipoScadenza]
0 = F
1 = M
2 = I
3 = I
4 = I
// tabella codici IVA = AliquoteIVA // tabella codici IVA = AliquoteIVA
[IVA] [IVA]
CODTAB = IdIva CODTAB = IdIva
@ -42,6 +51,7 @@ B2=
B3 = B3 =
B4 = B4 =
//conversione per campo
[RComunicazioneIvaVen] [RComunicazioneIvaVen]
1=CD11 1=CD11
2=CD12 2=CD12
@ -94,14 +104,27 @@ CODART=IdProdotto
NRIGA = _FISSO,1 NRIGA = _FISSO,1
UM = IdUM1 UM = IdUM1
[CLIFO] [MASTRI]
RAGSOC = _STREXPR,LEFT(TradeName1+" "+TradeName2; 50) DESCR = DsMastro
INDCF = Address
[CONTI]
DESCR = RagioneSociale
[FlTipoMastro]
1 = C
5 = F
[PARAMETRI]
PCON=04|05
[CLIENTI]
RAGSOC = RagioneSociale
INDCF = Indirizzo
CIVCF = CIVCF =
LOCALITACF = LOCALITACF =
STATOCF = _TAB,%TPS,State,S6 STATOCF = _TAB,%TPS,IdIso,S6
COMCF = COMCF =
CAPCF = ZipCode CAPCF = CAP
COFI = CodiceFiscale COFI = CodiceFiscale
STATOPAIV = STATOPAIV =
PAIV = PartitaIVA PAIV = PartitaIVA
@ -116,23 +139,23 @@ SOTTOCRIC =
TIPOAPER = TIPOAPER =
CODANAGPER = CODANAGPER =
PTEL = PTEL =
TEL = TelNumber TEL = Telefono1
PTEL2 = PTEL2 =
TEL2 = TEL2 = Telefono2
PTEL3 = PTEL3 =
TEL3 = TEL3 = TelCellulare
PFAX = PFAX =
FAX = FaxNumber FAX = TelFax
PTELEX = PTELEX =
TELEX = TELEX =
MAIL = EMailAddress MAIL = EMail
DATANASC = DATANASC =
STATONASC = STATONASC =
COMNASC = COMNASC =
CODSTAT = CODSTAT =
CODABI = ABICode CODABI =
CODCAB = CABCode CODCAB =
NUMCC = CC NUMCC =
IBAN = IBAN =
OCCAS = OCCAS =
STATO = STATO =
@ -144,7 +167,7 @@ RICALT =
OGGETTI = OGGETTI =
SOSPESO = SOSPESO =
DIRTY = DIRTY =
REFERENTE = Reference REFERENTE = Referente
VALINTRA = VALINTRA =
[CFVEN] [CFVEN]