Я пытаюсь понять, как создать текстовое поле в модуле «Продукты», где я могу указать имя клиента, и с помощью созданного мной запроса отображаются цены на продукт для этого клиента. У меня есть построенный запрос, и таблица, которая связывает учетные записи с продуктами, все, что мне не хватает, это то, как это сделать, настроить поиск
SuiteCRM добавить пользовательский поисковый запрос
Ответы (1)
Хорошо, ребята, я разобрался :)
В include/LisView/ListViewData.php есть запрос, обрабатывающий все данные, которые могут понадобиться модулю для его списка
перейдите к этой строке:
$main_query = $ret_array['select'] . $params['custom_select'] . $ret_array['from'] . $params['custom_from'] . $ret_array['inner_join']. $ret_array['where'] . $params['custom_where'] . $ret_array['order_by'] . $params['custom_order_by'];
здесь вы видите запрос, получающий все строки из текущего модуля (продукты, учетные записи, контакты, ..), поскольку он обрабатывает все модули, убедитесь, что ваши изменения изменяют только нужный модуль:
if($this->seed->module_name == "AOS_Products"
Your changes
Не по теме, но очень полезно, если вам нужна дополнительная информация из другой таблицы, как это сделал я (учетная запись)
используйте глобальную переменную db
$accountPrice = $GLOBALS['db']->query("SELECT shipping_address_street as price FROM "
." accounts WHERE name LIKE '".$array[$try]."'");
$accountCodePrice = $GLOBALS['db']->fetchByAssoc($accountPrice);
Ура