Files
breadcrumb-the-shire/modules/helpdesk/pages/helpdesk/search-data().php
fs a0d7670dd7 feat(helpdesk): align module with core list/drawer standards
- add helpdesk module pages, services, settings and tests

- standardize debtor list on drawer/grid contracts and robust filter drawer behavior

- add helpdesk aside panel navigation and settings visibility provider

- switch primary list slug to helpdesk/debitor and remove helpdesk/search compatibility

- include required core contract updates for list contracts and detail/drawer integration
2026-04-02 17:48:27 +02:00

43 lines
1.2 KiB
PHP

<?php
use MintyPHP\Module\Helpdesk\HelpdeskAuthorizationPolicy;
use MintyPHP\Module\Helpdesk\Service\DebitorSearchService;
use MintyPHP\Support\Guard;
Guard::requireLogin();
Guard::requireAbilityOrForbidden(HelpdeskAuthorizationPolicy::ABILITY_ACCESS);
gridRequireGetRequest();
$query = requestInput()->queryAll();
$filters = gridParseFiltersFromSchemaFile(__DIR__ . '/filter-schema.php', $query);
$result = app(DebitorSearchService::class)->listForGrid($filters);
if (($result['status'] ?? '') !== 'success') {
gridJsonDataResult([], 0);
return;
}
$rows = [];
foreach ((array) ($result['rows'] ?? []) as $row) {
if (!is_array($row)) {
continue;
}
$debtorNo = trim((string) ($row['No'] ?? ''));
if ($debtorNo === '') {
continue;
}
$rows[] = [
'No' => $debtorNo,
'Name' => (string) ($row['Name'] ?? ''),
'City' => (string) ($row['City'] ?? ''),
'Phone_No' => (string) ($row['Phone_No'] ?? ''),
'E_Mail' => (string) ($row['E_Mail'] ?? ''),
'detail_url' => lurl('helpdesk/debitor/' . rawurlencode($debtorNo)),
];
}
gridJsonDataResult($rows, (int) ($result['total'] ?? 0));