'title', 'text' => 'Artikel', 'priority' => 11], ['key' => 'category', 'text' => 'Kategorie', 'table' => false], ['key' => 'price', 'text' => 'Preis', 'table' => ['filter' => false,'sortable' => false,'class' => 'text-right']], ['key' => 'amount', 'text' => 'Menge', 'table' => ['filter' => false,'sortable' => false,'class' => 'p-0 width-80'], 'priority' => 9], ['key' => 'add', 'text' => 'Hinzufügen', 'table' => ['filter' => false,'sortable' => false, 'class' => 'width-120 text-center'], 'priority' => 5000] ]; protected array $infoMessages = [ 'create' => 'Not possible', 'update' => 'Not possible', 'delete' => 'Not possible', 'noChanges' => 'Keine Änderungen', ]; public function permissionCheck(): bool { return $this->user->can(["WarehouseEShop"]); } protected function prepareCrudConfig() { if (!$this->user->can('WarehouseAdmin')) { $this->columns[2]['table'] = false; } } public function getAction() { $filter = $this->postData['filters'] ?? []; $order = $this->postData['order'] ?? ['key' => null, 'order' => 'ASC']; $page = $this->postData['pagination']['page'] ?? 1; $perPage = $this->postData['pagination']['per_page'] ?? 10; $warehouseArticleFilter = $filter; $warehouseArticleFilter['isEShop'] = 1; $warehouseArticleFilter['isEShopHide'] = 0; $warehouseArticles = WarehouseArticleModel::getAll($warehouseArticleFilter, $perPage, ($page - 1) * $perPage, $order); $warehouseArticlesTotal = WarehouseArticleModel::count(['isEShop' => 1, 'isEShopHide' => 0]); $warehouseArticlesAvailable = WarehouseArticleModel::count($warehouseArticleFilter); $warehousePackets = WarehouseArticlePacketModel::getAll(); $warehousePacketsTotal = WarehouseArticlePacketModel::count(); $warehousePacketsAvailable = WarehouseArticlePacketModel::count($filter); $filteredAvailable = $warehouseArticlesAvailable + $warehousePacketsAvailable; $totalRows = $warehouseArticlesTotal + $warehousePacketsTotal; $rows = [...$warehouseArticles, ...$warehousePackets]; self::returnJson(["rows" => $rows, "pagination" => ["page" => $page, "total_pages" => ceil($filteredAvailable / $perPage), "per_page" => $perPage, "filtered_available" => $filteredAvailable, "total_rows" => $totalRows]]); } }