Esempio n. 1
0
 public function process(Vtiger_Request $request)
 {
     $relationInfo = $request->get('related_info');
     $updatedRelatedList = $relationInfo['updated'];
     $deletedRelatedList = $relationInfo['deleted'];
     if (empty($updatedRelatedList)) {
         $updatedRelatedList = array();
     }
     if (empty($deletedRelatedList)) {
         $deletedRelatedList = array();
     }
     $sourceModule = $request->get('sourceModule');
     $moduleModel = Vtiger_Module_Model::getInstance($sourceModule, false);
     $relationModulesList = Vtiger_Relation_Model::getAllRelations($moduleModel, false);
     $sequenceList = array();
     foreach ($relationModulesList as $relationModuleModel) {
         $sequenceList[] = $relationModuleModel->get('sequence');
     }
     //To sort sequence in ascending order
     sort($sequenceList);
     $relationUpdateDetail = array();
     $index = 0;
     foreach ($updatedRelatedList as $relatedId) {
         $relationUpdateDetail[] = array('relation_id' => $relatedId, 'sequence' => $sequenceList[$index++], 'presence' => 0);
     }
     foreach ($deletedRelatedList as $relatedId) {
         $relationUpdateDetail[] = array('relation_id' => $relatedId, 'sequence' => $sequenceList[$index++], 'presence' => 1);
     }
     $response = new Vtiger_Response();
     try {
         $response->setResult(array('success' => true));
         Vtiger_Relation_Model::updateRelationSequenceAndPresence($relationUpdateDetail, $moduleModel->getId());
     } catch (Exception $e) {
         $response->setError($e->getCode(), $e->getMessage());
     }
     $response->emit();
 }
Esempio n. 2
0
 /**
  * Function returns all the relation models
  * @return <Array of Vtiger_Relation_Model>
  */
 public function getRelations()
 {
     if (empty($this->relations)) {
         return Vtiger_Relation_Model::getAllRelations($this);
     }
     return $this->relations;
 }
Esempio n. 3
0
 public function getRelations()
 {
     if ($this->relations === null) {
         $this->relations = Vtiger_Relation_Model::getAllRelations($this, false);
     }
     // Contacts relation-tab is turned into custom block on DetailView.
     if ($this->getName() == 'Calendar') {
         $contactsIndex = false;
         foreach ($this->relations as $index => $model) {
             if ($model->getRelationModuleName() == 'Contacts') {
                 $contactsIndex = $index;
                 break;
             }
         }
         if ($contactsIndex !== false) {
             array_splice($this->relations, $contactsIndex, 1);
         }
     }
     return $this->relations;
 }