如何将子面板中的字段与其父节点的A字段同步

时间:2013-04-30 13:15:40

标签: php sugarcrm

我对Sugarcrm很陌生,如果我问一些愚蠢的事,那就很抱歉。

我已经构建了2个模块:

  • 订单模块
  • Stone Module

http://postimg.org/image/6qabtru3t/

两者之间的关系是“一对多”(一个订单到多个石头)。因此,订单的每个记录都有一个石头子面板(你可以在附图中看到它)。我希望从子订单中的字段的每次更改中同步一个字段(您可以看到它以红色圈出) - 父级的价格字段应该是子面板上所有相同字段的总和。

所以,我尝试使用这样的逻辑钩子:

$hook_array['after_relationship_add'] = Array();
$hook_array['after_relationship_add'][] = Array(1, 'after_relationship_add_hook', 'custom/modules/abc_Module_Order/HookHandler.php','class_after_relationship_add_hook', 'func_after_relationship_add_hook');

但它似乎无处可去。我该怎么办?使用Ajax?其他方法做逻辑钩?

非常感谢帮助,谢谢..

1 个答案:

答案 0 :(得分:1)

你走在正确的道路上。还要确保处理after_relationship_delete,以便从订单中删除Stone。

为了简单起见,我将重新定义您的逻辑钩子: 定制/模块/ abc_Module_Order / logic_hooks.php

$hook_array['after_relationship_add'] = Array();
$hook_array['after_relationship_add'][] = Array(1, 'update_order_addition', 'custom/modules/abc_Module_Order/HookHandler.php','HookHandler', 'update_order_additional');
$hook_array['after_relationship_delete'] = Array();
$hook_array['after_relationship_delete'][] = Array(1, 'update_order_removal', 'custom/modules/abc_Module_Order/HookHandler.php','HookHandler', 'update_order_removal');

然后在custom / modules / abc_Module_Order / HookHandler.php文件中,您将定义update_order_addition和update_order_removal函数,这些函数将获取Stone的价格并适当地更新订单。