#php #hook #sugarcrm
#php #перехват #sugarcrm
Вопрос:
Я хочу реализовать логический перехват Sugar, который срабатывает, когда статус счета становится подтвержденным.
Это мой логический перехват:
<?php
$hook_version = 1;
$hook_array = Array();
$hook_array['after_save'] = Array();
$hook_array['after_save'][] = Array(1, 'status invoices Changes', '/var/www/html/suitecrm/modules/AOS_Invoices/AOS_LogicHooks.php','AOS_LogicHooks', 'statusInvoicesChanges');
?>`
Это мой класс действий:
<?php
class AOS_LogicHooks {
public function statusInvoicesChanges (SugarBean $bean, $event, $arguments) {
if ($dictionary['AOS_Invoices']['fields']['status']='validated') {
$GLOBALS['log']->fatal("Status has been changed");
}
}
}
?>
Чего мне не хватает?
Ответ №1:
Для сравнения вам нужен двойной ==
или тройной ===
(строгий). Использование одного =
является оператором присваивания.
if ($dictionary['AOS_Invoices']['fields']['status'] == 'validated') {
Ответ №2:
вы должны изменить путь в своих логических перехватах : 'custom/modules/AOS_Invoices/AOS_LogicHooks.php'
И измените свой код вашего класса действий на:
<?php
class statusChange {
public function statusInvoicesChanges ($bean, $event, $arguments) {
// addition line:
$GLOBALS['log']-> debug(get_class()." ". __FUNCTION__." Status:n ".print_r($bean->status,true));
if ($bean->status == 'Validated'){
$GLOBALS['log']-> debug("Status has been changed");
}
}
}
?>