diff --git a/ha/ha1300.cpp b/ha/ha1300.cpp index 4ad1f94cf..fd941e7ff 100755 --- a/ha/ha1300.cpp +++ b/ha/ha1300.cpp @@ -716,28 +716,27 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log long codcf = 0L; const TString& str_codcf = recset.get(DOC_CODCF).as_string(); const bool new_cliente = str_codcf.find('*') >= 0; + if (new_cliente) { const real* ptr = (const real*)_nuovi_clienti.objptr(str_codcf); codcf = ptr ? ptr->integer() : 0L; } else - codcf = atol(str_codcf); - - //controllo effettuabile solo se il cliente è già presente (vecchio o nuovo aggiunto con la importa_VC se era _can_write) - if (!new_cliente || _can_write) { TToken_string key_clifo; key_clifo.add("C"); - key_clifo.add(codcf); - const long cliente = atol(cache().get(LF_CLIFO, key_clifo, CLI_CODCF)); - if (cliente != codcf) - { - _can_write = false; - TString msg; - msg << "Codice cliente " << codcf << " sconosciuto"; - log.log(2, msg); - } + key_clifo.add(str_codcf); + codcf = atol(cache().get(LF_CLIFO, key_clifo, CLI_CODCF)); + } + + //controllo effettuabile solo se il cliente è già presente (vecchio o nuovo aggiunto con la importa_VC se era _can_write) + if (codcf <= 0) + { + _can_write = false; + TString msg; + msg << "Codice cliente " << str_codcf << " sconosciuto"; + log.log(2, msg); } doc.put(DOC_CODCF, codcf);