From ab2bb0bef6c267a79a0eff61786f0f2c7d778ad0 Mon Sep 17 00:00:00 2001 From: luca Date: Tue, 1 Feb 2011 13:51:55 +0000 Subject: [PATCH] Patch level :10.0 Files correlati : Ricompilazione Demo : [ ] Commento : nuovo cliente in upload git-svn-id: svn://10.65.10.50/branches/R_10_00@21555 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ha/ha1300.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/ha/ha1300.cpp b/ha/ha1300.cpp index 9e9d17d2f..5f05e6437 100755 --- a/ha/ha1300.cpp +++ b/ha/ha1300.cpp @@ -342,16 +342,12 @@ void TUpload2Campo::check_magazzino(const TString& codmag_age, TLog_report& log) } } +//SU non è un tipo record di qualche utilità void TUpload2Campo::elabora_SU(THardy_upload_recordset& recset, TLog_report& log) { - const TString& cod_term = recset.get("CodiceTerminale").as_string(); - const TString& cod_age = recset.get(AGE_CODAGE).as_string(); - const TString& descr_age = recset.get(AGE_RAGSOC).as_string(); - TString msg; - msg << "Scartati dati agente " << cod_term << " " << descr_age; - log.log(0, msg); } +//elabora clienti e loro variazioni; viene comunque eseguita per prima perchè i record VC vengono messi all'inizio void TUpload2Campo::elabora_VC(THardy_upload_recordset& recset, TLog_report& log) { //dati dal recordset di upload @@ -382,6 +378,11 @@ void TUpload2Campo::elabora_VC(THardy_upload_recordset& recset, TLog_report& log file_clifo.put(CLI_TIPOCF, 'C'); file_clifo.put(CLI_CODCF, codcf); file_clifo.write(); + + //aggiunge il cliente nuovo ricodificato all'array dei nuovi clienti in modo da ricordarsi chi era.. + //..quando loritroverà nei record di tipo TF,RF,SI + const TString& str_new_codcf = recset.get("CodiceCliente").as_string(); + _nuovi_clienti.add(str_new_codcf, real(codcf)); } //il cliente, se non nuovo, deve esistere! @@ -642,7 +643,19 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log //2d) cliente e campi collegati via cli2doc() doc.put(DOC_TIPOCF, "C"); - const long codcf = recset.get(DOC_CODCF).as_int(); + + //se il cliente è nuovo, ovvero aggiunto in un record di tipo VC precedentemente letto,.. + //..deve stabilire quale è il suo codcf campesco già determinato + long codcf = 0L; + const TString& str_codcf = recset.get(DOC_CODCF).as_string(); + if (str_codcf.find('*' >= 0)) + { + const real* ptr = (const real*)_nuovi_clienti.objptr(str_codcf); + codcf = ptr ? ptr->integer() : 0L; + } + else + codcf = atol(str_codcf); + TToken_string key_clifo; key_clifo.add("C"); key_clifo.add(codcf);