我的配置: Sugar Entreprise 6.5.16
我想要实现的目标:
通过quickcreate视图创建联系人时(例如,通过单击"创建"在联系人子面板中),我想从所选的相关帐户中恢复任何地址信息。
IE:我在我的小品牌"我的联系人"在我的家里,我想编辑一个联系人。 Sugar打开弹出窗口,我更改了与联系人相关的帐户。我选择了,即微软。因此,现在选择此帐户后,我希望Sugar自动使用相关帐户的地址信息填写联系人的地址字段。
我测试的内容:
我看到了这个:
How to autopopulate a field in SugarCRM form
和johndope的博客文章(这是有帮助的) http://johndopenotes.wordpress.com/2013/03/18/sugarcrm-populating-fields-using-a-relate-field/
所以我创建了我的 SugarRoot / custom / Extension / modules / Contacts / Ext / Vardefs / sugarfield_account_name.php
并添加了这个:
$dictionary['Contacts']['fields']['account_name']['populate_list'] = array('id','name','Accounts');
$dictionary['Contacts']['fields']['account_name']['field_list'] = array('account_id','account_name','primary_address_street');
然后,我编辑了我的 SugarRoot / custom / modules / Contacts / metadata / quickcreatedefs.php 并补充说:
array (
'name' => 'account_name',
'displayParams' =>
array (
'key' => 'billing',
'copy' => 'primary',
'billingKey' => 'primary',
'additionalFields' =>
array (
'phone_office' => 'phone_work',
),
),
),
经过快速重建和修复后,我对其进行了测试,但没有发生任何事情。 我不得不说我已经为editviewdefs.php做了完全相同的事情并且它有效......
所以,请帮助我! :)
答案 0 :(得分:1)
公司示例。尝试根据您的需求调整此代码。
在custom / modules中// views / view.quickcreate.php 扩展ViewQuickCreate类以在preDisplay中设置相应的$ _REQUEST变量。 请记住,如果您在那里有合同,这也会被右侧的+使用,因此检查是否有父母,并且它是公司的第一个。
class ContractViewQuickcreate extends ViewQuickcreate
function preDisplay(){
parent::preDisplay();
if (isset($_REQUEST['parent_id']) && $_REQUEST['parent_id'] != '' && isset($_REQUEST['parent_type']) && $_REQUEST['parent_type'] == 'Companies'){
$comp = new Company();
$comp->retrieve($_REQUEST['parent_id']);
//say the fields are company_id and company_name in Companies
//and company_id_c and company_name_c in Contracts
//assuming company is a relate field you'll need to map both
$_REQUEST['company_id_c'] = $comp->company_id;
$_REQUEST['company_name_c'] = $comp->company_name;
}
}
}