Patch level : 12.0 942

Files correlati     : VE5.exe
Commento            :

corretta gestione del flag di archiviazione/ripristino clienti nell'archiviazione dei documenti
This commit is contained in:
Alessandro Bonazzi 2020-02-12 22:47:25 +01:00
parent e3367bf024
commit 720a9b9e00
2 changed files with 20 additions and 8 deletions

View File

@ -203,13 +203,18 @@ void TArchive_doc::archivia(const TMask& m)
delete_tmp_files(false); //chiude i files temp in modo da risparmiare memoria delete_tmp_files(false); //chiude i files temp in modo da risparmiare memoria
const char* dir = _tmp_dir; //fa puntare dir alla directory temp const char* dir = _tmp_dir; //fa puntare dir alla directory temp
if (*dir == '%') dir++;
bool rt = _arc.backup(dir,_unit,_desc, TRUE); //esegue la compressione ed il salvataggio sul device scelto if (*dir == '%')
create_tmp_files(false); //apre i files temp, riallocandoli (NON li crea effettvam.) dir++;
bool rt = _arc.backup(dir,_unit,_desc, TRUE); //esegue la compressione ed il salvataggio sul device scelto
create_tmp_files(false); //apre i files temp, riallocandoli (NON li crea effettvam.)
delete_tmp_files(true); //cancella fisicamente i files temp delete_tmp_files(true); //cancella fisicamente i files temp
TFilename unit; TFilename unit;
unit << _unit << ':' << SLASH;
unit << _unit << ':' << SLASH;
if (!xvt_fsys_is_removable_drive(unit) && _path != "") //se il drive non e' rimovibile,sposta i files dalla root del drive if (!xvt_fsys_is_removable_drive(unit) && _path != "") //se il drive non e' rimovibile,sposta i files dalla root del drive
{ //alla target dir scritta sulla maschera { //alla target dir scritta sulla maschera
for (int i = 0; i <= 1; i++) for (int i = 0; i <= 1; i++)
@ -240,7 +245,15 @@ bool TArchive_doc::restore_file(TIsamtempfile& src, bool update)
for (int err = src.first(); err == NOERR; err = src.next()) for (int err = src.first(); err == NOERR; err = src.next())
{ {
dst.curr() = src.curr(); dst.curr() = src.curr();
err = dst.write_rewrite(); if (update)
err = dst.write_rewrite();
else
{
TRectype curr(src.curr());
if (curr.read(dst) != NOERR)
err = dst.write();
}
if (err != NOERR) if (err != NOERR)
return cantwrite_box(dst.description()); return cantwrite_box(dst.description());
if (!pi.add_status(1)) if (!pi.add_status(1))
@ -261,7 +274,7 @@ bool TArchive_doc::restore_docs()
if (ok) if (ok)
{ {
_tdoc->set_curr(new TDocumento); _tdoc->set_curr(new TDocumento);
ok = restore_file(*_tdoc, false); ok = restore_file(*_tdoc, true);
} }
return ok; return ok;
} }

View File

@ -3062,10 +3062,9 @@ void TDocumento::update_conai()
{ {
if (main_app().has_module(DCAUT, CHK_DONGLE) && tipo().add_conai() && tipo().stati_iniziali_modifica().find(stato()) >= 0) if (main_app().has_module(DCAUT, CHK_DONGLE) && tipo().add_conai() && tipo().stati_iniziali_modifica().find(stato()) >= 0)
{ {
TAssoc_array conai_aggiornati; TAssoc_array conai_aggiornati;
const TRectype& cfven = clifor().vendite(); const TRectype& cfven = clifor().vendite();
const bool cli_add_conai = cfven.get_bool("ADDCONAI"); const bool cli_add_conai = cfven.get_bool("ADDCONAI");
const TDate datadoc = get(DOC_DATADOC); const TDate datadoc = get(DOC_DATADOC);
const TDate dataies = cfven.get(CFV_DATAICONAI); const TDate dataies = cfven.get(CFV_DATAICONAI);
const TDate dataees = cfven.get(CFV_DATAECONAI); const TDate dataees = cfven.get(CFV_DATAECONAI);