public function retrieveFields($filter, $orderBy, $limit, $offset, $baseModule) { global $beanList; $pmseRelatedModule = new PMSERelatedModule(); if (isset($beanList[$filter])) { $newModuleFilter = $filter; } else { $newModuleFilter = $pmseRelatedModule->getRelatedModuleName($baseModule, $filter); } $output = array(); $moduleBean = BeanFactory::getBean($newModuleFilter); $fieldsData = isset($moduleBean->field_defs) ? $moduleBean->field_defs : array(); foreach ($fieldsData as $field) { //$retrieveId = isset($additionalArgs['retrieveId']) && !empty($additionalArgs['retrieveId']) && $field['name'] == 'id' ? $additionalArgs['retrieveId'] : false; if (isset($field['vname']) && PMSEEngineUtils::isValidField($field, 'ET')) { $tmpField = array(); $tmpField['id'] = $field['name']; $tmpField['_module'] = $newModuleFilter; $tmpField['name'] = str_replace(':', '', translate($field['vname'], $newModuleFilter)); $tmpField['rhs_module'] = $filter; $output[] = $tmpField; } } $text = array(); foreach ($output as $key => $row) { $text[$key] = strtolower($row['name']); } if ($orderBy == "ASC") { array_multisort($text, SORT_ASC, $output); } else { array_multisort($text, SORT_DESC, $output); } $start = $offset; $end = $offset + $limit; $count = 0; $outputTmp = array(); foreach ($output as $field) { if ($count >= $start && $count < $end) { $outputTmp[] = $field; } $count++; } return array('totalRecords' => count($output), 'records' => $outputTmp); }
/** * Method that returns a list of type date fields * @param $filter * @return object */ public function retrieveDateFields($filter) { if (isset($this->beanList[$filter])) { $newModuleFilter = $filter; } else { $related = $this->getRelationshipData($filter); $newModuleFilter = $related['rhs_module']; } $res = array(); //new stdClass(); $res['name'] = $newModuleFilter; $res['search'] = $filter; $res['success'] = true; $output = array(); $moduleBean = $this->getModuleFilter($newModuleFilter); $fieldsData = isset($moduleBean->field_defs) ? $moduleBean->field_defs : array(); foreach ($fieldsData as $field) { if (isset($field['vname']) && PMSEEngineUtils::isValidField($field)) { if ($field['type'] == 'date' || $field['type'] == 'datetimecombo' || $field['type'] == 'datetime') { $tmpField = array(); $tmpField['value'] = $field['name']; $tmpField['text'] = str_replace(':', '', translate($field['vname'], $newModuleFilter)); $output[] = $tmpField; } } } $arr_Now = array(); $arr_Now['value'] = 'current_date_time'; $arr_Now['text'] = 'Current Date Time'; array_unshift($output, $arr_Now); $res['result'] = $output; return $res; }
/** * This method gets the list of default required fields based on the process definition. * @return array */ public function getDefaultRequiredFields() { $this->processDefinition->retrieve_by_string_fields(array('id' => $this->activityDefinition->pro_id)); $bean = $this->factory->getBean($this->processDefinition->pro_module); $fieldsData = isset($bean->field_defs) ? $bean->field_defs : array(); $output = array(); foreach ($fieldsData as $field) { if (isset($field['vname']) && PMSEEngineUtils::isValidField($field, 'RR')) { if ($field['type'] != 'bool' && $field['type'] != 'radioenum') { if (!(isset($field['required']) && $field['required'])) { $tmpField = array(); $tmpField['name'] = $field['name']; $tmpField['label'] = str_replace(':', '', translate($field['vname'], $this->processDefinition->pro_module)); $tmpField['required'] = false; $output[] = $tmpField; } } } } $text = array(); foreach ($output as $key => $row) { $text[$key] = strtolower($row['label']); } array_multisort($text, SORT_ASC, $output); return $output; }