在使用 Studio 的会议模块中,我向帐户模块添加了一对多的关系。当我保存会议条目并使用帐户添加相关条目时,相关帐户的详细信息未显示在帐户子面板中。我正在使用最新版本的 SugarCRM。
提前致谢。
创建一个逻辑挂钩以实现您想要的结果:
自定义/模块/会议/logic_hooks.php
$hook_array['before_save'] = Array();
$hook_array['before_save'][] = Array(1, 'Set Account relationship', 'custom/modules/Meetings/AccountRelationshipHook.php', 'AccountRelationshipHook', 'setAccountRelationship');
$hook_array['before_delete'] = Array();
$hook_array['before_delete'][] = Array(1, 'Remove Account relationship', 'custom/modules/Meetings/AccountRelationshipHook.php', 'AccountRelationshipHook', 'deleteAccountRelationship');
然后在你的逻辑钩子中创建方法来使用你新定义的关系'meetings_accounts'(或你命名的任何东西)并添加或删除帐户记录。由于它是一对多的,因此您要确保每个会议记录只有一个帐户。另外,为了保持整洁,当会议被删除时,也会通过 deleteAccountRelationship() 方法删除记录的关系。
自定义/模块/会议/AccountRelationshipHook.php
class AccountRelationshipHook {
public function setAccountRelationship(&$bean, $event, $arguments) {
if ($bean->parent_type == 'Accounts') {
$bean->load_relationship('meetings_accounts');
if ($bean->parent_id != $bean->fetched_row['parent_id']) {
$bean->meetings_accounts->delete($bean->id, $bean->fetched_row['parent_id']);
}
$bean->meetings_accounts->add($bean->parent_id);
}
}
public function deleteAccountRelationship(&$bean, $event, $arguments) {
if ($bean->parent_type == 'Accounts') {
$bean->load_relationship('meetings_accounts');
$bean->meetings_accounts->delete($bean->id, $bean->parent_id);
}
}
}