FIX Attachment was lost when we validate an expense report
This commit is contained in:
parent
fac8d93a08
commit
97c950badb
@ -1132,17 +1132,51 @@ class ExpenseReport extends CommonObject
|
|||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
if (!$notrigger)
|
if (! $error && ! $notrigger)
|
||||||
{
|
{
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result=$this->call_trigger('EXPENSE_REPORT_VALIDATE', $fuser);
|
$result=$this->call_trigger('EXPENSE_REPORT_VALIDATE', $fuser);
|
||||||
|
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
// End call triggers
|
// End call triggers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$this->oldref = $this->ref;
|
||||||
|
|
||||||
|
// Rename directory if dir was a temporary ref
|
||||||
|
if (preg_match('/^[\(]?PROV/i', $this->ref))
|
||||||
|
{
|
||||||
|
// On renomme repertoire ($this->ref = ancienne ref, $num = nouvelle ref)
|
||||||
|
// in order not to lose the attachments
|
||||||
|
$oldref = dol_sanitizeFileName($this->ref);
|
||||||
|
$newref = dol_sanitizeFileName($num);
|
||||||
|
$dirsource = $conf->expensereport->dir_output.'/'.$oldref;
|
||||||
|
$dirdest = $conf->expensereport->dir_output.'/'.$newref;
|
||||||
|
if (file_exists($dirsource))
|
||||||
|
{
|
||||||
|
dol_syslog(get_class($this)."::setValidate() rename dir ".$dirsource." into ".$dirdest);
|
||||||
|
|
||||||
|
if (@rename($dirsource, $dirdest))
|
||||||
|
{
|
||||||
|
dol_syslog("Rename ok");
|
||||||
|
// Rename docs starting with $oldref with $newref
|
||||||
|
$listoffiles=dol_dir_list($conf->expensereport->dir_output.'/'.$newref, 'files', 1, '^'.preg_quote($oldref, '/'));
|
||||||
|
foreach($listoffiles as $fileentry)
|
||||||
|
{
|
||||||
|
$dirsource=$fileentry['name'];
|
||||||
|
$dirdest=preg_replace('/^'.preg_quote($oldref, '/').'/', $newref, $dirsource);
|
||||||
|
$dirsource=$fileentry['path'].'/'.$dirsource;
|
||||||
|
$dirdest=$fileentry['path'].'/'.$dirdest;
|
||||||
|
@rename($dirsource, $dirdest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$this->oldref = $this->ref;
|
$this->oldref = $this->ref;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user