SuiteCRM自定义popview的条件查询

问题描述 投票:1回答:2

如何为弹出视图进行自定义查询,我如上所述在ViewList中进行了更改,但它不会影响弹出视图列表中的列表。

我的要求是从发票模块打开时传递产品类型。

在发票中,我们有一个产品线和服务线,从产品模块,我按类型区分产品,同时添加新产品作为“商品”或“服务”。

现在我创建了2个自定义文件view.list.php和view.popup.php。

但是不明白如何将view.popup.php中的type标志传递给view.list.php

如果有人建议我在关联从服务线调用的弹出窗口和从产品线调用的弹出窗口时如何过滤产品数据,那将会很棒。

谢谢

sugarcrm suitecrm
2个回答
1
投票

您需要更改列表查询并相应地添加条件。

以下是为了扩展LlistView查询而需要遵循的步骤:

第1步:创建或编辑custom/modules/Opportunities/views/view.list.php并添加以下代码,

processSearchForm();
if(!$current_user->is_admin) // remove this condition if you dont want admin user to view the “Closed Lost” Opportunities.
$this->params[‘custom_where’] = ‘ AND opportunities.sales_stage <> “Closed Lost” ‘;

if (empty($_REQUEST[‘search_form_only’]) || $_REQUEST[‘search_form_only’] == false) {
$this->lv->setup($this->seed, ‘include/ListView/ListViewGeneric.tpl’, $this->where, $this->params);
$savedSearchName = empty($_REQUEST[‘saved_search_select_name’]) ? ” : (‘ – ‘ . $_REQUEST[‘saved_search_select_name’]);
echo $this->lv->display();
}
}

}

第2步:刷新列表视图!

您将在查询中看到的可能自定义项是:

  1. Custom_form
  2. Custom_where
  3. Custom_select
  4. Custom_order_by

-1
投票

这是我们为使其升级安全而必须做的事情:

  1. 创建文件夹custom / modules / AOS_Products_Quotes /
  2. 在文件夹内部创建原始Line_Items.php的副本,但以不同方式命名该函数,以便它不会发生冲突。
  3. 创建line_items.js的自定义副本
  4. 更改Line_Items.php中包含的脚本以包含新的JS $html .= '<script src="modules/AOS_Products_Quotes/line_items.js"></script>';
  5. 编辑line_items.js以过滤所需的字段

要调用自定义Line_Items.php,您必须在AOS_Quotes / Ext / Vardefs / vardefs.ext.php上执行此更改:

$dictionary['AOS_Quotes']['fields']['line_items']=array(
    'required' => false,
    'name' => 'line_items',
    'vname' => 'LBL_LINE_ITEMS',
    'type' => 'function',
    'source' => 'non-db',
    'massupdate' => 0,
    'importable' => 'false',
    'duplicate_merge' => 'disabled',
    'duplicate_merge_dom_value' => 0,
    'audited' => false,
    'reportable' => false,
    'inline_edit' => false,
    'function' =>
        array(
            'name' => 'lx_display_lines',
            'returns' => 'html',
            'include' => 'custom/modules/AOS_Products_Quotes/Line_Items.php'
        ),
);

确保根据您的需要编辑自定义line_items.js以进行过滤。寻找具有sqs_objects属性的condition,你可以在其中过滤掉东西,留下硬编码/默认值或(我们做什么)从另一个JS调用中获取它,如window.getCurrenUserSettings

sqs_objects["product_name[" + prodln + "]"] = {
© www.soinside.com 2019 - 2024. All rights reserved.