2017-01-11 17 views
1

У меня есть поле в модуле вывода как 'interested_c', которое является десятичным типом и будет хранить числовые значения.Как создать логический крючок в SugarCRM/SuiteCRM на основе информации в подпанели «Кампания» от ведущих?

Вот подробное описание подпанели кампании модуля Leads.

Leads Details View

Одна запись имеет тип активности = Click-через (iink) и соответствующий 'связаны', который является URL (трекер).

Я хочу создать логический крючок для модуля отведений, который, если возможно, мог бы использовать оба части информации как условия на каждый occuranc из:

if Activity Type = Click-thru (link) and other 'related' = <urlxyz>, то инкрементное значение добавляется в пользовательском поле "interested_c ».

Как такой логический крючок может быть создан?

Есть некоторые фрагменты информации, которые могут быть полезны:

  1. Эта «Кампания» Субпанель получает большинство данных из модуля: CampaignLog (который имеет связь с кампанией). [Соответствующая MySQL Таблица: campaign_log]
  2. Этих переменные определены в vardefs.php из suitecrm> Модули> CampaignLog>Vardefs of the fields concerned here

ответ

2

С верхней частью головы, и используя соответствующие примеры крюка логических полей от modules/Accounts/AccountsJjwg_MapsLogicHook.php:

Создать два файла:

custom/modules/Leads/logic_hooks.php 
custom/modules/Leads/LeadsLogicHooks.php 

logic_hooks.php:

<?php 
$hook_version = 1; 
$hook_array = Array(); 
$hook_array['before_save'][] = Array(51, 'updateCounter', 
'custom/modules/Leads/LeadsLogicHooks.php', 'LeadsLogicHooks', 'updateCounter'); 
?> 

LeadsLogicHooks.php:

<?php 
if (!defined('sugarEntry') || !sugarEntry) die('Not a valid Entry Point'); 
class LeadsLogicHooks{ 
function updateCounter(&$focus, $event, $arguments){ 
    require_once('custom/modules/CampaignLog/CampaignLog.php'); 
    $campaigns = $bean->get_linked_beans('campaign', 'Campaign'); 
    foreach ($campaigns as $campaign) { 
    if ($campaign->activity_type == "Click-thruLink" && !empty($campaign->related_type)) { 
      $focus->interested_c += 1; 
    } #if 
    } #for 
} #function 
} #class