Miglioramento script di recupero date Prima Nota
Aggiunto controllo sulla versione del backup, con limitazione dell'aggiornamento per le righe di co_movimenti con flag primanota a 1.
This commit is contained in:
parent
39988c7d35
commit
8bf2739b12
|
@ -24,39 +24,59 @@ ignore_user_abort(true);
|
||||||
$skip_permissions = true;
|
$skip_permissions = true;
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
$last_backup = null; // Cartella di backup specifica
|
$backup = null; // Cartella di backup specifica
|
||||||
$file = null; // File di backup del database
|
$file = null; // File di backup del database
|
||||||
|
|
||||||
// Ricerca dell'ultimo backup (idealmente versione 2.4.16)
|
// Ricerca dell'ultimo backup (idealmente versione 2.4.16)
|
||||||
if (empty($file) && empty($last_backup)) {
|
if (empty($file) && empty($backup)) {
|
||||||
$backups = Backup::getList();
|
$backups = Backup::getList();
|
||||||
$last_backup = end($backups);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($file)) {
|
if (empty($file)) {
|
||||||
// Individuazione del database nel backup
|
$count = count($backups);
|
||||||
if (ends_with($last_backup, '.zip')) {
|
for ($i = 0; $i < $count; ++$i) {
|
||||||
$zip = new ZipArchive();
|
$backup = $backups[$i];
|
||||||
$zip->open($last_backup);
|
|
||||||
|
|
||||||
$contents = $zip->getFromName('database.sql');
|
// Individuazione del database nel backup
|
||||||
|
if (ends_with($backup, '.zip')) {
|
||||||
|
$zip = new ZipArchive();
|
||||||
|
$zip->open($backup);
|
||||||
|
|
||||||
// File temporaneo
|
$version = $zip->getFromName('VERSION');
|
||||||
$file = DIRECTORY_SEPARATOR.
|
if ($version == '2.4.17') {
|
||||||
trim(sys_get_temp_dir(), DIRECTORY_SEPARATOR).
|
continue;
|
||||||
DIRECTORY_SEPARATOR.
|
}
|
||||||
ltrim('database.sql', DIRECTORY_SEPARATOR);
|
|
||||||
|
|
||||||
file_put_contents($file, $contents);
|
$contents = $zip->getFromName('database.sql');
|
||||||
|
|
||||||
register_shutdown_function(function () use ($file) {
|
// File temporaneo
|
||||||
unlink($file);
|
$file = DIRECTORY_SEPARATOR.
|
||||||
});
|
trim(sys_get_temp_dir(), DIRECTORY_SEPARATOR).
|
||||||
} else {
|
DIRECTORY_SEPARATOR.
|
||||||
$file = $last_backup.'/database.sql';
|
ltrim('database.sql', DIRECTORY_SEPARATOR);
|
||||||
|
|
||||||
|
file_put_contents($file, $contents);
|
||||||
|
|
||||||
|
register_shutdown_function(function () use ($file) {
|
||||||
|
unlink($file);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$version = file_get_contents($backup.'/VERSION');
|
||||||
|
if ($version == '2.4.17') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$file = $backup.'/database.sql';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($file)) {
|
||||||
|
echo 'Impossibile procedere';
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Lettura delle query
|
// Lettura delle query
|
||||||
$queries = readSQLFile($file, ';');
|
$queries = readSQLFile($file, ';');
|
||||||
$count = count($queries);
|
$count = count($queries);
|
||||||
|
@ -79,7 +99,7 @@ if (empty($query)) {
|
||||||
$values = explode('VALUES', $query, 2)[1];
|
$values = explode('VALUES', $query, 2)[1];
|
||||||
$values = explode('),', $values);
|
$values = explode('),', $values);
|
||||||
|
|
||||||
// Generazione delle query per il recupero delle date
|
// Generazione delle query per il recupero delle date per la Prima Nota
|
||||||
$results = [];
|
$results = [];
|
||||||
foreach ($values as $row) {
|
foreach ($values as $row) {
|
||||||
$row = substr(trim($row), 1);
|
$row = substr(trim($row), 1);
|
||||||
|
@ -87,8 +107,11 @@ foreach ($values as $row) {
|
||||||
$campi = explode(',', $row);
|
$campi = explode(',', $row);
|
||||||
$id = $campi[0];
|
$id = $campi[0];
|
||||||
$data = $campi[2];
|
$data = $campi[2];
|
||||||
|
$is_primanota = $campi[12];
|
||||||
|
|
||||||
$results[] = 'UPDATE `co_movimenti` SET `data` = '.$data.' WHERE `id` = '.prepare($id).";";
|
if (!empty($is_primanota)) {
|
||||||
|
$results[] = 'UPDATE `co_movimenti` SET `data` = '.$data.' WHERE `id` = '.prepare($id).';';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo implode("\n", $results);
|
echo implode("\n", $results);
|
||||||
|
|
Loading…
Reference in New Issue