diff --git a/tp/tp0102.cpp b/tp/tp0102.cpp index 849afca8c..b3e33bd29 100755 --- a/tp/tp0102.cpp +++ b/tp/tp0102.cpp @@ -596,7 +596,33 @@ bool TPack_ddt::trasferisci() doc->put(DOC_DATADOC, datadoc); } else + { doc->body().destroy_rows(); + + // Aggiunto a malincuore supporto per cambio data documento ID=00011323 + if (doc->get_date(DOC_DATADOC) != datadoc) + { + doc->put(DOC_DATADOC, datadoc); // Aggiorno la data documento + + TToken_string key; // Cerco il documento precedente + key.add(doc->get(DOC_PROVV)); + key.add(doc->get(DOC_ANNO)); + key.add(doc->get(DOC_CODNUM)); + key.add(ndoc-1); + const TRectype& prev = cache().get(LF_DOC, key); + if (!prev.empty()) // Se lo trovo ... + { + const TDate prevdate = prev.get_date(DOC_DATADOC); + if (datadoc < prevdate) // ... controllo la congruenza delle date + { + TString msg; + msg.format("La data del documento %ld del %s precede quella del documento %ld del %s", + ndoc, datadoc.string(), ndoc-1, prevdate.string()); + log(msg, 1); // Segnalo un warning se non congruente + } + } + } + } char tipocf = ' '; long codcf = 0; @@ -710,7 +736,7 @@ bool TPack_ddt::trasferisci() rdoc.put(RDOC_CHECKED, "X"); rdoc.put(RDOC_UMQTA, um); rdoc.put(RDOC_QTA, qta); - rdoc.put(RDOC_CODIVA, get_codice_iva(doc->get_date(DOC_DATADOC))); + rdoc.put(RDOC_CODIVA, get_codice_iva(datadoc)); rdoc.put(RDOC_PREZZO, get_real_str("Price")); TString sconto = get_real_str("DiscountRowDesc");