/** * Main function for generate report (generate value of fields for current record). * Return values of all fields in $fields_name array * @param SugarBean $bean * bean class for get value fields * @param array $fields_name * array with name of fields (supported format ModuleName::FieldName or simple FieldName) * @return string[] * array with keys - name of fields, values - value of this fields */ public static function define_fields_value($bean, $fields_name) { global $beanList; $fields = array(); if (empty($bean->id)) { return $fields; } foreach ($fields_name as $key) { // in template can be reused variable, don't generate value again if (isset($fields[$key])) { continue; } /** it's value of related field */ if (strpos($key, '.') !== FALSE) { list($module_name, $field_name) = explode('.', $key, 2); if (!isset($beanList[$module_name])) { continue; } if (!isset($fields[$module_name])) { $fields[$module_name] = array(); } require_once 'modules/Relationships/RelationshipHandler.php'; $rel_handler = new RelationshipHandler($bean->db, $bean->module_dir); $rel_handler->base_bean =& $bean; $rel_handler->process_by_rel_bean($module_name); foreach ($bean->field_defs as $field => $attribute_array) { if (!empty($attribute_array['relationship']) && $attribute_array['relationship'] == $rel_handler->rel1_relationship_name) { $rel_handler->base_vardef_field = $field; break; } } $rel_list = $rel_handler->build_related_list("base"); if (empty($rel_list)) { $rel_list = self::searchOneToManyInOneModule($rel_handler); } if (!empty($rel_list[0])) { foreach ($rel_list as $seed) { $value = self::getValueBean($seed, $field_name); if (!isset($fields[$module_name][$seed->id])) { $fields[$module_name][$seed->id] = array(); } $fields[$module_name][$seed->id][$field_name] = $value; } } else { $fields[$module_name][0][$field_name] = ''; } } else { $value = self::getValueBean($bean, $key); $fields[$key] = $value; } } return $fields; }
/** To get the link name used to call load_relationship */ function getLinkName($this_module, $rel_module) { $GLOBALS['log']->debug("SecurityGroup->getLinkName this_module: {$this_module} rel_module: {$rel_module}"); include_once 'modules/Relationships/RelationshipHandler.php'; $rh = new RelationshipHandler($GLOBALS['db'], $this_module); $rh->process_by_rel_bean($rel_module); $rh->build_info(); $rh->get_rel1_vardef_field_base($rh->base_bean->field_defs); return $rh->rel1_vardef_field_base; }
/** To get the link name used to call load_relationship */ function getLinkName($this_module, $rel_module) { include_once 'modules/Relationships/RelationshipHandler.php'; $rh = new RelationshipHandler($GLOBALS['db'], $this_module); $rh->process_by_rel_bean($rel_module); $rh->build_info(); $rh->get_rel1_vardef_field_base($rh->base_bean->field_defs); return $rh->rel1_vardef_field_base; }