SuiteCRM Сделать пользовательский запрос условия для всплывающего окна

Как сделать пользовательский запрос для всплывающего окна, я внес изменения в ViewList, как указано выше, но это не влияет на список, который появился во всплывающем списке просмотра.

Мое требование - передать тип продукта, когда я открываю его из модуля счета-фактуры.

В счете-фактуре у нас есть линейка продуктов и линейка услуг, а из модуля продукта я дифференцировал продукт по типу, добавляя новый продукт как «Товары» или «Услуги».

Теперь я создал 2 пользовательских файла, view.list.php и view.popup.php.

Но не понимаю, как передать флаг типа из view.popup.php в view.list.php

Будет здорово, если кто-нибудь подскажет мне, как фильтровать данные о продукте при сопоставлении всплывающего окна, вызванного из строки обслуживания, и всплывающего окна, вызванного из линейки продуктов.

Спасибо


person Sagar Munot    schedule 24.02.2018    source источник


Ответы (2)


Вам нужно будет изменить запрос листинга и добавить условие соответственно.

Ниже приведены шаги, которые необходимо выполнить, чтобы расширить запрос 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
person Star    schedule 26.02.2018
comment
Понятно, но список появляется из всплывающего окна, и когда я вношу изменения в представлении списка, он вообще не отражается, когда я проверяю всплывающее окно. - person Sagar Munot; 26.02.2018
comment
Но как нам вызвать представление списка из всплывающего окна? Я не могу добавить условие в пользовательский список, потому что он вызывает view.popup.php, а не view.list.php - person Sagar Munot; 04.03.2018

Вот что нам нужно было сделать, чтобы сделать обновление безопасным:

  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 + "]"] = {
person mrbarletta    schedule 24.02.2018
comment
Понятно, но список появляется из всплывающего окна, и когда я вношу изменения в виде списка, он вообще не отражается, когда я проверяю всплывающее окно. - person Sagar Munot; 05.03.2018