diff --git a/ha/hacnv100.cpp b/ha/hacnv100.cpp index f2a5dd301..5d0d99486 100755 --- a/ha/hacnv100.cpp +++ b/ha/hacnv100.cpp @@ -10,9 +10,11 @@ #include #include -#include #include +#include #include "..\pr\agenti.h" +#include <..\ve\condv.h> +#include <..\ve\rcondv.h> const char* const APPNAME = TR("Conversione anagrafiche"); @@ -924,7 +926,6 @@ bool THardy_listini::trasferisci() // array per la conversione tra IdListino e kListino TAssoc_array listini; - TToken_string key; TString8 idlistino; @@ -977,35 +978,79 @@ bool THardy_listini::trasferisci() // THardy_contratti /////////////////////////////////////////////////////////// -// trasferisce tabella ListiniCF (condv C) +// trasferisce tabella contrattiT contrattiR e contrattiD // inserisco una testata per ogni cliente e tutte le righe relative agli articoli di quel cliente // tralasciando le righe con DataFine < data impostata da parametri bool THardy_contratti::trasferisci() { TString query = "SELECT * " - "FROM dbo.ListiniCF " - "ORDER BY IdConto "; + "FROM dbo.ContrattiT, dbo.ContrattiR " + "WHERE ContrattiT.KContrattoT=ContrattiR.KContrattoT"; + TRecordset& recset = create_recordset(query); TConfig& ini = config(); TString_array lista_campi; ini.list_variables(lista_campi, true, "CONTRATTI", true); TSystemisamfile condv(LF_CONDV); - TSystemisamfile rcondv(LF_RCONDV); condv.open(_lock); - rcondv.open(_lock); - TRectype& rec_condv = condv.curr(); - TRectype& rec_rcondv = rcondv.curr(); + TRectype& rec = condv.curr(); THardy_iterator hi(this); - int oldconto = -1; - int codcontratto = 0; + + // array per la conversione tra IdContratto e kContrattoT + TAssoc_array listini, clienti; + + TString8 idlistino; + while (++hi) - { - aggiorna_record(rec_condv, lista_campi); + { + const TString8 klistino = get_str("KContrattoT"); + idlistino = get_str("IdContratto"); + const TString& key = get_str("ContrattiR.IdConto"); + const long codcf = hd_key2cli(key); + listini.add(klistino, idlistino); + clienti.add(klistino, key); + aggiorna_record(rec, lista_campi); + rec.put(CONDV_CODCF, codcf); test_write(condv); } condv.close(); - rcondv.close(); + // trasferisce tabella ContrattiD (RCONDV) + if (write_enabled()) + { + TString query = + "SELECT * " + "FROM dbo.ContrattiD "; + TRecordset& recset = create_recordset(query); + TConfig& ini = config(); + TString_array lista_campi; + ini.list_variables(lista_campi, true, "CONTRATTID", true); + TSystemisamfile rcondv(LF_RCONDV); + rcondv.open(_lock); + TRectype& rec = rcondv.curr(); + THardy_iterator hi(this); + while (++hi) + { + const char* key = get_str("KContrattoT"); + if (listini.is_key(key)) + { + TString8& idlistino = (TString8&) listini[key]; + TString8& scodcf = (TString8&) clienti[key]; + const long codcf = hd_key2cli(scodcf); + rec.put(RCONDV_COD, idlistino); + rec.put(RCONDV_CODCF, codcf); + aggiorna_record(rec, lista_campi); + test_write(rcondv); + } + else + { + TString msg; + msg << TR("Impossibile stabilire codice del contratto ") << " '" << key << '\''; + log(msg); + } + } + rcondv.close(); + } return write_enabled(); } diff --git a/ha/hacnv100a.ini b/ha/hacnv100a.ini index ad3f0d825..9df677013 100755 --- a/ha/hacnv100a.ini +++ b/ha/hacnv100a.ini @@ -371,16 +371,16 @@ DATAPRZSTO = [CONTRATTI] TIPO = _FISSO,C CATVEN = -TIPOCF = +TIPOCF = _FISSO,C CODCF = -COD = KListino -DESCR = IdListino +COD = IdContratto +DESCR = DsContratto CODVAL = _TRADUCI,IdDivisa CAMBIO = CONTROEURO = DATACAM = -VALIN = 01-01-2001 -VALFIN = 31-12-2100 +VALIN = +VALFIN = IMPLORDI = GESTUM = GESTSCAGL = @@ -393,12 +393,12 @@ FATHCATVEN = FATHCOD = ARROTONDA = -[LISTINID] -TIPO = _FISSO,L +[CONTRATTID] +TIPO = _FISSO,C CATVEN = -TIPOCF = +TIPOCF = _FISSO,C CODCF = -COD = KListino +COD = TIPORIGA = _FISSO,A CODRIGA = IdProdotto UM =