Merge pull request #13138 from indelog/indelog-dev

NEW: Allow custom module class origine type in Mouvementstock
This commit is contained in:
Laurent Destailleur 2020-02-19 00:53:04 +01:00 committed by GitHub
commit f1d16d6961
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -376,8 +376,8 @@ class MouvementStock extends CommonObject
if ($movestock && $entrepot_id > 0) // Change stock for current product, change for subproduct is done after
{
$fk_project = 0;
if (!empty($this->origin)) { // This is set by caller for tracking reason
$origintype = $this->origin->element;
if(!empty($this->origin)) { // This is set by caller for tracking reason
$origintype = empty($this->origin->origin_type)?$this->origin->element:$this->origin->origin_type;
$fk_origin = $this->origin->id;
if ($origintype == 'project') $fk_project = $fk_origin;
else
@ -981,10 +981,14 @@ class MouvementStock extends CommonObject
default:
if ($origintype)
{
$result = dol_include_once('/'.$origintype.'/class/'.$origintype.'.class.php');
// Separate originetype with "@" : left part is class name, right part is module name
$origintype_array = explode('@', $origintype);
$classname = ucfirst($origintype_array[0]);
$modulename = empty($origintype_array[1]) ? $classname : empty($origintype_array[1]);
$result=dol_include_once('/'.$modulename.'/class/'.strtolower($classname).'.class.php');
if ($result)
{
$classname = ucfirst($origintype);
$classname = ucfirst($classname);
$origin = new $classname($this->db);
}
}