Patch level : 12.0 1122

Files correlati     : ve5.exe
Commento :
Modificiato programma Invio\Ricezione documenti perchè non scriva più
sulla radice del disco rigido
This commit is contained in:
smen 2022-03-07 17:23:28 +01:00
parent f53cb0d39c
commit 2345cd9169
4 changed files with 51 additions and 37 deletions

View File

@ -264,7 +264,7 @@ bool TArchive::fsplit_zip(
const TFilename archive(filename); const TFilename archive(filename);
unsigned long size = 0; unsigned long size = 0;
TFilename path; path << floppy << ':'; TFilename path; path << floppy << ":";
while (size <= 0) while (size <= 0)
{ {
@ -587,33 +587,33 @@ bool TArchive::unzip(int mode, long firm, char floppy, bool temp)
return ok; return ok;
} }
bool TArchive::backup(const char* dir, char floppy, const char* desc, bool) bool TArchive::backup(const char* dir, char floppy, const char* desc)
{ {
return zip(dir, floppy, desc); return zip(dir, floppy, desc);
} }
bool TArchive::backup(const char* dir, const char* dirdest, const char* desc, bool) const bool TArchive::backup(const char* dir, const char* dirdest, const char* desc) const
{ {
TFilename work; work << dirdest; work.add(TFilename(dir).name()); work.ext("zip"); TFilename work; work << dirdest; work.add(TFilename(dir).name()); work.ext("zip");
return zip(dir, work); return zip(dir, work);
} }
bool TArchive::backup(int mode, long firm, char floppy, const char* desc, bool) bool TArchive::backup(int mode, long firm, char floppy, const char* desc)
{ {
return zip(mode, firm, floppy, desc); return zip(mode, firm, floppy, desc);
} }
bool TArchive::restore(const char* dir, char floppy, bool tmp, bool) bool TArchive::restore(const char* dir, char floppy, bool tmp)
{ {
return unzip(dir, floppy, tmp); return unzip(dir, floppy, tmp);
} }
bool TArchive::restore(const char* dir, const char* fromdir, bool tmp, bool) bool TArchive::restore(const char* dir, const char* fromdir, bool tmp)
{ {
return unzip(dir, fromdir, tmp); return unzip(dir, fromdir, tmp);
} }
bool TArchive::restore(int mode, long firm, char floppy, bool tmp, bool) bool TArchive::restore(int mode, long firm, char floppy, bool tmp)
{ {
return unzip(mode, firm, floppy, tmp); return unzip(mode, firm, floppy, tmp);
} }

View File

@ -49,18 +49,18 @@ protected:
public: public:
// @cmember Effettua il backup della directory // @cmember Effettua il backup della directory
bool backup(const char* dir, char floppy, const char* desc, bool dummy = FALSE); bool backup(const char* dir, char floppy, const char* desc);
// @cmember Effettua il backup della directory in un percorso specificato // @cmember Effettua il backup della directory in un percorso specificato
bool backup(const char* dir, const char* dirdest, const char* desc, bool dummy = FALSE) const; bool backup(const char* dir, const char* dirdest, const char* desc) const;
// @cmember Effettua il backup della ditta // @cmember Effettua il backup della ditta
bool backup(int mode, long firm, char floppy, const char* desc, bool pr_set=TRUE); bool backup(int mode, long firm, char floppy, const char* desc);
// @cmember Effettua il restore della directory // @cmember Effettua il restore della directory
bool restore(const char* dir, char floppy, bool temp, bool dummy = FALSE); bool restore(const char* dir, char floppy, bool temp);
// @cmember Effettua il restore della directory // @cmember Effettua il restore della directory
bool restore(const char* dir, const char* fromdir, bool temp, bool dummy = FALSE); bool restore(const char* dir, const char* fromdir, bool temp);
// @cmember Effettua il restore della ditta // @cmember Effettua il restore della ditta
bool restore(int mode, long firm, char floppy, bool temp, bool pr_set=TRUE); bool restore(int mode, long firm, char floppy, bool temp);
// @cmember Effettua il backup della directory // @cmember Effettua il backup della directory
bool zip(const char* dir, char floppy, const char* desc); bool zip(const char* dir, char floppy, const char* desc);

View File

@ -213,9 +213,9 @@ void TDeletedoc_app::backup_delete_doc(int op, int who, bool pack_rows)
const char * dir = &_tmp_dir[1]; const char * dir = &_tmp_dir[1];
delete_tmp_files(FALSE); //Close tmp files only delete_tmp_files(FALSE); //Close tmp files only
if(_floppy) if(_floppy)
rt = _arc.backup(dir, _unit, _desc, FALSE); // Backup dei documenti da eliminare, prefix unnecessary rt = _arc.backup(dir, _unit, _desc); // Backup dei documenti da eliminare, prefix unnecessary
else else
rt = _arc.backup(dir, _dirdest, _desc, FALSE); // Backup dei documenti da eliminare, prefix unnecessary rt = _arc.backup(dir, _dirdest, _desc); // Backup dei documenti da eliminare, prefix unnecessary
create_tmp_files(FALSE); // Reopen tmp files. create_tmp_files(FALSE); // Reopen tmp files.
doc.open(_excllock); rdoc.open(); clifo.open(); doc.open(_excllock); rdoc.open(); clifo.open();
cfven.open(); tab.open(); occas.open(); cfven.open(); tab.open(); occas.open();
@ -292,9 +292,9 @@ void TDeletedoc_app::restore_doc()
const char* dir =& _tmp_dir[1]; // Cut out % sign const char* dir =& _tmp_dir[1]; // Cut out % sign
bool ok; bool ok;
if(_floppy) if(_floppy)
ok = _arc.restore(dir, _unit, FALSE, FALSE); ok = _arc.restore(dir, _unit, FALSE);
else else
ok = _arc.restore(dir, _dirdest, FALSE, FALSE); ok = _arc.restore(dir, _dirdest, FALSE);
if (ok) if (ok)
{ {
create_tmp_files(FALSE); // In realta' ci sono gia' create_tmp_files(FALSE); // In realta' ci sono gia'

View File

@ -78,12 +78,11 @@ public:
bool TArchive_doc::create() bool TArchive_doc::create()
{ {
/* open_files(LF_TABCOM, LF_TAB, LF_CLIFO, LF_OCCAS, LF_INDSP, LF_CFVEN, open_files(LF_TABCOM, LF_TAB, LF_CLIFO, LF_OCCAS, LF_INDSP, LF_CFVEN,
LF_DOC, LF_RIGHEDOC, LF_ANAMAG, LF_MOVMAG, LF_RMOVMAG, LF_CONDV, LF_DOC, LF_RIGHEDOC, LF_ANAMAG, LF_MOVMAG, LF_RMOVMAG, LF_CONDV,
LF_SVRIEP, LF_AGENTI, LF_PERCPROV, LF_CESS, 0);*/ LF_SVRIEP, LF_AGENTI, LF_PERCPROV, LF_CESS, 0);
_tmp_dir.temp(); _tmp_dir.tempdir();
_tmp_dir = _tmp_dir.path(); _tmp_dir.add("VE");
_tmp_dir << "VE";
if (!_tmp_dir.exist()) make_dir(_tmp_dir); if (!_tmp_dir.exist()) make_dir(_tmp_dir);
_tmp_dir.insert("%"); // Add % sign _tmp_dir.insert("%"); // Add % sign
@ -169,7 +168,8 @@ void TArchive_doc::archivia(const TMask& m)
for (cur = 0; cur.pos() < total && !pi.iscancelled() && err==NOERR; ++cur) //for cur che va da 0 alla posizione corrente (che deve essere < del numero totale for (cur = 0; cur.pos() < total && !pi.iscancelled() && err==NOERR; ++cur) //for cur che va da 0 alla posizione corrente (che deve essere < del numero totale
//dei record (total) and non essere interrotto e non esserci errore //dei record (total) and non essere interrotto e non esserci errore
{ {
err = _tdoc->write(doc->head()); //scrive l'intestazione sul file temp delle testate _tdoc->curr() = doc->head();
err = _tdoc->write(); //scrive l'intestazione sul file temp delle testate
if (with_clifor) if (with_clifor)
{ {
TString key(doc->get(DOC_TIPOCF)); TString key(doc->get(DOC_TIPOCF));
@ -189,8 +189,9 @@ void TArchive_doc::archivia(const TMask& m)
break; break;
} }
for (int r = 1; r <= doc->physical_rows() && err==NOERR; r++) //scrive le righe sul file temp delle for (int r = 1; r <= doc->physical_rows() && err==NOERR; r++) //scrive le righe sul file temp delle
{ //righe; {
err = _trdoc->write((*doc)[r]); //scrive le righe sul file _trdoc->curr() = (*doc)[r]; //righe;
err = _trdoc->write(); //scrive le righe sul file
if (err != NOERR) if (err != NOERR)
{ {
error_box("Errore %d durante la copia delle righe", err); error_box("Errore %d durante la copia delle righe", err);
@ -207,27 +208,35 @@ void TArchive_doc::archivia(const TMask& m)
if (*dir == '%') if (*dir == '%')
dir++; dir++;
bool rt = _arc.backup(dir,_unit,_desc, TRUE); //esegue la compressione ed il salvataggio sul device scelto bool rt = 0;
TFilename unit;
TFilename tmpdir;
tmpdir.tempdir();
unit << _unit << ":" << SLASH;
if (xvt_fsys_is_removable_drive(unit)) //esegue la compressione ed il salvataggio sul device scelto
_arc.backup(dir, _unit, _desc);
else
_arc.backup(dir, tmpdir, _desc);
create_tmp_files(false); //apre i files temp, riallocandoli (NON li crea effettvam.) 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;
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++)
{ TFilename orig = tmpdir;
TFilename orig = unit;
TFilename dest; TFilename dest;
dest << unit << _path; dest << _unit << ":\\" << _path;
const char * name = i == 0 ? "backup.ini" : "ve.z00"; const char * name = "ve.zip";
orig << name; orig << SLASH << name;
dest << SLASH << name; dest << SLASH << name;
fcopy(orig, dest); fcopy(orig, dest);
xvt_fsys_remove_file(orig); //elimina il file di origine dopo averlo copiato xvt_fsys_remove_file(orig); //elimina il file di origine dopo averlo copiato
}
} }
} }
} }
@ -287,8 +296,13 @@ bool TArchive_doc::ripristina(const TMask& m)
TFilename src; TFilename src;
src << _unit << ':' << SLASH; src << _unit << ':' << SLASH;
if (!xvt_fsys_is_removable_drive(src) && _path.full()) if (!xvt_fsys_is_removable_drive(src) && _path.full())
{
src.add(_path); src.add(_path);
src.add("ve.z00"); src.add("ve.zip");
}
else
src.add("ve.z00");
if (!src.exist()) if (!src.exist())
return cantread_box(src); return cantread_box(src);