Merge pull request #8426 from atm-ph/fix_5.0_files_lost_on_contract

Fix documents are lost if we rename contrat ref
This commit is contained in:
Laurent Destailleur 2018-03-21 20:40:23 +01:00 committed by GitHub
commit 7d5c3a5c4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -872,12 +872,27 @@ if (empty($reshook))
if ($result < 0) {
setEventMessages($object->error, $object->errors, 'errors');
}
$old_ref = $object->ref;
$result = $object->setValueFrom('ref', GETPOST('ref','alpha'), '', null, 'text', '', $user, 'CONTRACT_MODIFY');
if ($result < 0) {
setEventMessages($object->error, $object->errors, 'errors');
$action = 'editref';
} else {
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$old_filedir = $conf->contrat->dir_output . '/' . dol_sanitizeFileName($old_ref);
$new_filedir = $conf->contrat->dir_output . '/' . dol_sanitizeFileName($object->ref);
$files = dol_dir_list($old_filedir);
if (!empty($files))
{
if (!is_dir($new_filedir)) dol_mkdir($new_filedir);
foreach ($files as $file)
{
dol_move($file['fullname'], $new_filedir.'/'.$file['name']);
}
}
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
exit;
}