
Originally Posted by
mirsvz63
Не помогло(
Короче там действительно они переделали одну штуку в ShugarBean.php, которая как раз и составляет не правильный запрос.
Там есть новые метод create_new_list_query, на который ссылается функция get_all в ReportProviderBase.php, она претерпела кардинальные изменения, временное решение добавить в ReportProviderBase.php функцию со старым методом, она то и будет строить правильный запрос.
Ошибка как раз в запросе на выбор созданных шаблонов для отчетов. Вместо строки
PHP Code:
SELECT zucker_listingtemplates.* FROM zucker_listingtemplates where zucker_listingtemplates.deleted=0 ORDER BY zucker_listingtemplates.name LIMIT 0,1000
функция создает то что тебе вывела
Временное решение:
\modules\ZuckerReports\ReportProviderBase.php
После этой функции
PHP Code:
function get_all($order_by = "", $where = "") {
$list = parent::get_list($order_by, $where, 0, 1000, 1000, 0);
$list = $list["list"];
if (!empty($list)) $list = SimpleTeams::filterBeanList($list);
return $list;
}
Добавь:
PHP Code:
function create_new_list_query($order_by, $where, $show_deleted = 0)
{
$custom_join = false;
if(isset($this->custom_fields))
$custom_join = $this->custom_fields->getJOIN();
$query = "SELECT ";
if($custom_join)
{
$query .= " $this->table_name.*". $custom_join['select']. " FROM $this->table_name " . $custom_join['join'];
}
else
{
$query .= " $this->table_name.* FROM $this->table_name ";
}
$where_auto = '1=1';
if($show_deleted == 0)
{
$where_auto = "$this->table_name.deleted=0";
}
else if($show_deleted == 1)
{
$where_auto = "$this->table_name.deleted=1";
}
if($where != "")
$query .= "where ($where) AND $where_auto";
else
$query .= "where $where_auto";
if(!empty($order_by))
$query .= " ORDER BY $order_by";
return $query;
}
Сам только что столкнулся с проблемой
Вроде помогло! Отчеты создаются.
Bookmarks