<?php /** * This file contains package_quiqqer_discount_ajax_search */ /** * Search for discounts * * @param string $params - JSON query params * * @return array */ QUI::$Ajax->registerFunction( 'package_quiqqer_discount_ajax_search', function ($fields, $params) { $Discounts = new QUI\ERP\Discount\Handler(); $result = []; $Locale = QUI::getLocale(); $allowedFields = $Discounts->getChildAttributes(); $query = []; $params = json_decode($params, true); $fields = json_decode($fields, true); if (!is_array($fields)) { $fields = []; } if (isset($params['order'])) { $query['order'] = $params['order']; } if (isset($params['limit'])) { $query['limit'] = $params['limit']; } $allowedFields = array_flip($allowedFields); foreach ($fields as $field => $value) { if (!isset($allowedFields[$field]) && $field != 'id') { continue; } $query['where_or'][$field] = [ 'type' => '%LIKE%', 'value' => $value ]; } // search $data = $Discounts->getChildrenData($query); foreach ($data as $entry) { $entry['title'] = [ 'quiqqer/discount', 'discount.' . $entry['id'] . '.title' ]; $entry['text'] = $Locale->get( 'quiqqer/discount', 'discount.' . $entry['id'] . '.title' ); $result[] = $entry; } usort($result, function ($a, $b) { return strcmp($a['text'], $b['text']); }); return $result; }, ['fields', 'params'], 'Permission::checkAdminUser' );