无论如何将目标直接转换为帐户?
我知道这个过程是将Target转换为Leads,然后只将Lead转换为Account。 但是有些商家的逻辑发生了变化,当用户在帐户详细信息页面中时,他们总能看到Campaign活动子面板上的Campaign活动。
如何绕过转化并将帐户关联到目标?
谢谢!
答案 0 :(得分:0)
首先,让我们了解它目前是如何运作的。 /modules/Prospects/metadata/detailviewdefs.php
包含Prospect(Target)详细信息视图的定义,包括“Convert Target”按钮。按钮以这种方式定义:
array(
'customCode' => '<input title="{$MOD.LBL_CONVERT_BUTTON_TITLE}" class="button" onclick="this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\';this.form.module.value=\'Leads\';this.form.action.value=\'EditView\';" type="submit" name="CONVERT_LEAD_BTN" value="{$MOD.LBL_CONVERT_BUTTON_LABEL}"/>',
'sugar_html' => array(
'type' => 'submit',
'value' => '{$MOD.LBL_CONVERT_BUTTON_LABEL}',
'htmlOptions' => array(
'class' => 'button',
'name' => 'CONVERT_LEAD_BTN',
'id' => 'convert_target_button',
'title' => '{$MOD.LBL_CONVERT_BUTTON_TITLE}',
'onclick' => 'this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\';this.form.module.value=\'Leads\';this.form.action.value=\'EditView\';',
),
)
),
请注意,第一个数组参数customCode在6.5和转发中已弃用,因此不必担心。专注于sugar_html,特别是onclick定义。这是定义form.module.value和form.action.value的值。假设我们不是填充新的Lead的EditView,而是将其提供给自定义操作?
(顺便说一句,您可能会注意到,在生成的表单中,onclick属性被大量转换,使得“this.form”转换为类似var _form = document.form; _form.return_module=\'yada yada\'
的东西 - 只要你这没关系坚持惯例。)
不要修改/ modules / 中的任何内容而是从SugarCRM目录的根目录,您可以cp --parents modules/Prospects/metadata/detailviewdefs.php custom
创建路径和文件/ custom / modules / Prospects /元/ detailviewdefs.php。深入研究并修改该按钮,以便onclick参数读取如下内容:
'onclick' => 'this.form.return_module.value=\'Prospects\'; this.form.return_action.value=\'DetailView\'; this.form.return_id.value=\'{$fields.id.value}\';this.form.module.value=\'Accounts\';this.form.action.value=\'CustomAccountCreator\';',
我已将模块和操作值调整为指向“帐户”而不是“潜在客户”,以及我们将要创建的名为“CustomAccountCreator”的新操作。下一步是创建该操作。这样做的老学校(不那么最好的练习,但更容易)是在custom/modules/Accounts/CustomAccountCreator.php
创建一个文件,你可以用这样的东西填充它:
<?php
$target = BeanFactory::getBean($_REQUEST['return_id']);
$account = new Account();
$account->name = $target->account_name;
$account->phone_office = $target->phone_work;
$account->save();
显然,这是高度简化的,你需要更多的字段,你应该做一些错误检查,以确保$ target正确加载。您还可以使用某些字段创建新的联系人记录,并根据需要关联联系人和帐户。
有了所有文件和代码,您需要进行修复和修复。重建以查看更改。