0

我对 Sugarcrm 很陌生,如果我问的是愚蠢的问题,我很抱歉。

我已经构建了 2 个模块:

  • 订单模块
  • 石材模块

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

两者之间的关系是一对多(One Order to Many Stones)。因此,订单的每条记录都有一个石头子面板(您可以在图片中看到它)。我想将订单中的字段与子面板中字段的每次更改同步(您可以看到它以红色圈出) - 父项的价格字段应该是子面板中所有相同字段的总和。

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

$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');

但它似乎无处可去。我应该怎么办?使用阿贾克斯?其他方式来做逻辑挂钩?

帮助将不胜感激,谢谢..

4

1 回答 1

1

你在正确的道路上。当石头从订单中移除时,还要确保处理 after_relationship_delete。

为简单起见,我将您的逻辑挂钩重新定义为:custom/modules/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 函数,它们获取石头的价格并适当地更新订单。

于 2013-04-30T14:30:13.607 回答