diff --git a/ve/velib04.cpp b/ve/velib04.cpp index 7e1872868..b84e972ed 100755 --- a/ve/velib04.cpp +++ b/ve/velib04.cpp @@ -578,13 +578,13 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti& /////////////////////////////////////////////////////////// TCopia_documento::TCopia_documento(const char* cod) - : TElaborazione(cod), _preserve_original_row(false) + : TElaborazione(cod), _preserve_original_rif(false) { } bool TCopia_documento::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out, const TDate& data_elab, bool /*interattivo*/) { - CHECK(doc_in.items() == doc_out.items(), "Si deve specificare un numero uguale di documenti in entrata ed in uscita"); +// CHECK(doc_in.items() == doc_out.items(), "Si deve specificare un numero uguale di documenti in entrata ed in uscita"); pre_process_input(doc_in); for (int d = 0; d < doc_in.items(); d++) @@ -599,9 +599,11 @@ bool TCopia_documento::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o TDocumento& doc_dest = doc_out[d]; doc_dest.copy_contents(doc_src); + // Scancello tutti gli inutili riferimenti al documento origine - for (int r = doc_dest.physical_rows(); r > 0; r--) - doc_dest[r].reset_original_rdoc_key(); + if (!_preserve_original_rif) + for (int r = doc_dest.physical_rows(); r > 0; r--) + doc_dest[r].reset_original_rdoc_key(); if (data_elab.ok()) doc_dest.put(DOC_DATADOC, data_elab); diff --git a/ve/velib04.h b/ve/velib04.h index 6bbc3ac29..aa892542e 100755 --- a/ve/velib04.h +++ b/ve/velib04.h @@ -516,15 +516,15 @@ public: class TCopia_documento : public TElaborazione // velib04 { - bool _preserve_original_row; + bool _preserve_original_rif; public: virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out, const TDate& data_elab, bool interattivo = false); - void preserve_original_row(bool on = true) { _preserve_original_row = on;} + void preserve_original_rif(bool on = true) { _preserve_original_rif = on;} TCopia_documento(const char* cod); - TCopia_documento(const TRectype& rec) : TElaborazione(rec), _preserve_original_row(false) { } + TCopia_documento(const TRectype& rec) : TElaborazione(rec), _preserve_original_rif(false) { } virtual ~TCopia_documento() { } }; diff --git a/ve/velib06a.cpp b/ve/velib06a.cpp index 39ca8ca5c..55f287cb7 100755 --- a/ve/velib06a.cpp +++ b/ve/velib06a.cpp @@ -2763,19 +2763,19 @@ bool gen_livelli_handler(TMask_field& f, KEY key ) const TString & name = str->get(i); if (name.starts_with("PROG")) { - TTable lv(format("LV%1d", livello + 1)); + TTable mat(format("VE%1d", livello + 1)); const int chars = atoi(name.after("PROG")); - lv.put("CODTAB", code); - if (lv.read(_isequal) != NOERR) + mat.put("CODTAB", code); + if (mat.read(_isequal) != NOERR) { - lv.zero(); - lv.put("CODTAB", code); - lv.write(); + mat.zero(); + mat.put("CODTAB", code); + mat.write(); } - const int prog = lv.get_int("I0") + 1; - lv.put("I0", prog); - lv.rewrite(); + const int prog = mat.get_int("I0") + 1; + mat.put("I0", prog); + mat.rewrite(); TString s; s << prog; s.lpad(chars, '0'); code << s; }