mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-07 10:08:27 +01:00
Fix old value of lines were not correctly loaded
This commit is contained in:
@@ -694,6 +694,8 @@ if (empty($reshook)) {
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
$objectline->fetch_optionals();
|
$objectline->fetch_optionals();
|
||||||
|
|
||||||
|
$objectline->oldcopy = dol_clone($objectline);
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|||||||
@@ -3392,7 +3392,7 @@ class ContratLigne extends CommonObjectLine
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we change a planned date (start or end), sync dates for all services
|
// If we change a planned date (start or end) of one contract line, sync dates for all other services too
|
||||||
if (!$error && !empty($conf->global->CONTRACT_SYNC_PLANNED_DATE_OF_SERVICES)) {
|
if (!$error && !empty($conf->global->CONTRACT_SYNC_PLANNED_DATE_OF_SERVICES)) {
|
||||||
dol_syslog(get_class($this)."::update CONTRACT_SYNC_PLANNED_DATE_OF_SERVICES is on so we update date for all lines", LOG_DEBUG);
|
dol_syslog(get_class($this)."::update CONTRACT_SYNC_PLANNED_DATE_OF_SERVICES is on so we update date for all lines", LOG_DEBUG);
|
||||||
|
|
||||||
|
|||||||
@@ -1160,26 +1160,26 @@ function dol_buildpath($path, $type = 0, $returnemptyifnotfound = 0)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a clone of instance of object (new instance with same value for properties)
|
* Create a clone of instance of object (new instance with same value for properties)
|
||||||
* With native = 0: Property that are reference are also new object (full isolation clone). This means $this->db of new object is not valid.
|
* With native = 0: Property that are reference are also new object (full isolation clone). This means $this->db of new object may not be valid.
|
||||||
* With native = 1: Use PHP clone. Property that are reference are same pointer. This means $this->db of new object is still valid but point to same this->db than original object.
|
* With native = 1: Use PHP clone. Property that are reference are same pointer. This means $this->db of new object is still valid but point to same this->db than original object.
|
||||||
*
|
*
|
||||||
* @param object $object Object to clone
|
* @param object $object Object to clone
|
||||||
* @param int $native 0=Full isolation method, 1=Native PHP method
|
* @param int $native 0=Full isolation method, 1=Native PHP method, 2=Full isolation method+destroy non scalar or array properties (recommended)
|
||||||
* @return object Clone object
|
* @return object Clone object
|
||||||
* @see https://php.net/manual/language.oop5.cloning.php
|
* @see https://php.net/manual/language.oop5.cloning.php
|
||||||
*/
|
*/
|
||||||
function dol_clone($object, $native = 0)
|
function dol_clone($object, $native = 0)
|
||||||
{
|
{
|
||||||
if (empty($native)) {
|
if ($native == 0) {
|
||||||
$tmpsavdb = null;
|
$tmpsavdb = null;
|
||||||
if (isset($object->db) && isset($object->db->db) && is_object($object->db->db) && get_class($object->db->db) == 'PgSql\Connection') {
|
if (isset($object->db) && isset($object->db->db) && is_object($object->db->db) && get_class($object->db->db) == 'PgSql\Connection') {
|
||||||
$tmpsavdb = $object->db;
|
$tmpsavdb = $object->db;
|
||||||
unset($object->db); // Such property can not be serialized when PgSql/Connection
|
unset($object->db); // Such property can not be serialized with pgsl (when object->db->db = 'PgSql\Connection')
|
||||||
}
|
}
|
||||||
|
|
||||||
$myclone = unserialize(serialize($object)); // serialize then unserialize is hack to be sure to have a new object for all fields
|
$myclone = unserialize(serialize($object)); // serialize then unserialize is hack to be sure to have a new object for all fields
|
||||||
|
|
||||||
if ($tmpsavdb) {
|
if (!empty($tmpsavdb)) {
|
||||||
$object->db = $tmpsavdb;
|
$object->db = $tmpsavdb;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user