diff --git a/vtlib/Vtiger/Module.php b/vtlib/Vtiger/Module.php index bbc9ca0c4339468e9242a263bcdae74456d42284..98fe399d757d52987e809c440375b6e4bfa14740 100644 --- a/vtlib/Vtiger/Module.php +++ b/vtlib/Vtiger/Module.php @@ -15,6 +15,11 @@ include_once('vtlib/Vtiger/ModuleBasic.php'); * @package vtlib */ class Vtiger_Module extends Vtiger_ModuleBasic { + + const ONE_TO_ONE = '1:1'; + const ONE_TO_MANY = '1:N'; + const MANY_TO_ONE = 'N:1'; + const MANY_TO_MANY = 'N:N'; /** * Function to get the Module/Tab id @@ -79,13 +84,22 @@ class Vtiger_Module extends Vtiger_ModuleBasic { $useactions_text = $actions; if(is_array($actions)) $useactions_text = implode(',', $actions); $useactions_text = strtoupper($useactions_text); - + if($fieldId != null){ + //Default relation type if relation fieldid is set + $relationType = Vtiger_Module::ONE_TO_MANY; + } else { + //Default relation type if relation fieldid is not set + $relationType = Vtiger_Module::MANY_TO_MANY; + } // Add column to vtiger_relatedlists to save extended actions Vtiger_Utils::AddColumn('vtiger_relatedlists', 'actions', 'VARCHAR(50)'); - - $adb->pquery("INSERT INTO vtiger_relatedlists(relation_id,tabid,related_tabid,name,sequence,label,presence,actions,relationfieldid) VALUES(?,?,?,?,?,?,?,?,?)", - Array($relation_id,$this->id,$moduleInstance->id,$function_name,$sequence,$label,$presence,$useactions_text,$fieldId)); - + $adb->pquery("INSERT INTO vtiger_relatedlists(relation_id,tabid,related_tabid,name,sequence,label,presence,actions,relationfieldid,relationtype) VALUES(?,?,?,?,?,?,?,?,?,?)", + Array($relation_id,$this->id,$moduleInstance->id,$function_name,$sequence,$label,$presence,$useactions_text,$fieldId,$relationType)); + + if(method_exists($this,'set')) { + $this->set('relation_id', $relation_id); + } + self::log("Setting relation with $moduleInstance->name [$useactions_text] ... DONE"); }