Beispiel #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();
 }