Beispiel #1
0
 public function getExpressionQuery($xml)
 {
     global $adb, $current_user;
     $workflowScheduler = new WorkFlowScheduler($adb);
     $moduleName = (string) $xml->module;
     $queryGenerator = new QueryGenerator($moduleName, $current_user);
     $conditions = (string) $xml->conditions;
     $conditions = json_decode(decode_html($conditions));
     if (isset($xml->fields)) {
         $fields = explode(',', trim((string) $xml->fields));
         $queryGenerator->setFields($fields);
     } else {
         $queryGenerator->setFields(array('id'));
     }
     $workflowScheduler->addWorkflowConditionsToQueryGenerator($queryGenerator, $conditions);
     if ($moduleName == 'Calendar' || $moduleName == 'Events') {
         if ($conditions) {
             $queryGenerator->addConditionGlue('AND');
         }
         // We should only get the records related to proper activity type
         if ($moduleName == 'Calendar') {
             $queryGenerator->addCondition('activitytype', 'Emails', 'n');
             $queryGenerator->addCondition('activitytype', 'Task', 'e', 'AND');
         } else {
             if ($moduleName == "Events") {
                 $queryGenerator->addCondition('activitytype', 'Emails', 'n');
                 $queryGenerator->addCondition('activitytype', 'Task', 'n', 'AND');
             }
         }
     }
     $query = $queryGenerator->getQuery();
     return $query;
 }