WarehouseOffer fixed bugs
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @property mixed|null $name
|
||||
*/
|
||||
class WarehouseEShop extends mfBaseModel
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,13 +1,9 @@
|
||||
<?php
|
||||
// Warrenkorb löschen
|
||||
// File Upload ermöglichen
|
||||
// Hide Articles
|
||||
|
||||
|
||||
class WarehouseEShopController extends TTCrud {
|
||||
protected string $headerTitle = 'Energie Steiermark Shop';
|
||||
protected bool $createText = false;
|
||||
|
||||
//@formatter:off
|
||||
protected array $columns = [
|
||||
['key' => 'title', 'text' => 'Artikel', 'priority' => 11],
|
||||
['key' => 'category', 'text' => 'Kategorie', 'table' => false],
|
||||
@@ -15,22 +11,33 @@ class WarehouseEShopController extends TTCrud {
|
||||
['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]
|
||||
];
|
||||
|
||||
//@formatter:on
|
||||
protected array $permissionCheck = ['WarehouseEShop'];
|
||||
protected array $additionalJSVariables = [];
|
||||
|
||||
protected array $infoMessages = [
|
||||
'create' => 'Not possible',
|
||||
'update' => 'Not possible',
|
||||
'delete' => 'Not possible',
|
||||
'noChanges' => 'Keine Änderungen',
|
||||
];
|
||||
|
||||
protected function prepareCrudConfig() {
|
||||
if (!$this->user->can('WarehouseAdmin')) {
|
||||
$this->columns[2]['table'] = false;
|
||||
protected function afterInit() {
|
||||
if ($this->user->isAdmin()) {
|
||||
if (isset($_GET['shop']) && in_array($_GET['shop'], ['e', 'sbidi'])) {
|
||||
$flag = new WorkerFlag($this->user->id, 'WarehouseSelectedShop');
|
||||
$flag->value($_GET['shop']);
|
||||
$flag->save();
|
||||
$this->user->address_id = ($_GET['shop'] === 'e') ? '209' : '9633';
|
||||
} elseif (!$this->user->getFlag('WarehouseSelectedShop')) self::sendError("Bitte wählen Sie einen Shop aus.");
|
||||
} else {
|
||||
$selectedShop = $this->user->getFlag('WarehouseSelectedShop')->value();
|
||||
if ($selectedShop) $this->user->address_id = ($selectedShop === 'e') ? '209' : '9633';
|
||||
}
|
||||
}
|
||||
|
||||
protected function prepareCrudConfig() {
|
||||
if (!$this->user->can('WarehouseAdmin')) $this->columns[2]['table'] = false;
|
||||
|
||||
$this->additionalJSVariables['userAddressId'] = $this->user->address_id ?? null;
|
||||
|
||||
if ($this->user->address_id == 209) $this->headerTitle = 'Energie Steiermark Shop';
|
||||
elseif ($this->user->address_id == 9633) $this->headerTitle = 'SBIDI Shop';
|
||||
else self::sendError("Keine Berechtigung für diesen Shop");
|
||||
}
|
||||
|
||||
public function getAction() {
|
||||
$filter = $this->postData['filters'] ?? [];
|
||||
@@ -39,28 +46,41 @@ class WarehouseEShopController extends TTCrud {
|
||||
$perPage = $this->postData['pagination']['per_page'] ?? 10;
|
||||
|
||||
$warehouseArticleFilter = $filter;
|
||||
$warehouseArticleFilter['isEShop'] = 1;
|
||||
$warehouseArticleFilter['isEShopHide'] = 0;
|
||||
$warehousePacketFilter = $filter;
|
||||
|
||||
if (!in_array(intval($this->user->address_id), [209, 9633])) self::sendError("Keine Berechtigung für diesen Shop");
|
||||
|
||||
$shopType = (intval($this->user->address_id) === 209) ? 'eShop' : 'sbidiShop';
|
||||
$this->headerTitle = (intval($this->user->address_id) === 209) ? 'Energie Steiermark Shop' : 'SBIDI Shop';
|
||||
|
||||
$warehouseArticleFilter["is{$shopType}"] = 1;
|
||||
$warehouseArticleFilter["is{$shopType}Hide"] = 0;
|
||||
$warehousePacketFilter["is{$shopType}"] = 1;
|
||||
$warehousePacketFilter["is{$shopType}Hide"] = 0;
|
||||
|
||||
$warehouseArticles = WarehouseArticleModel::getAll($warehouseArticleFilter, null, 0, $order);
|
||||
$warehouseArticlesTotal = WarehouseArticleModel::count(['isEShop' => 1, 'isEShopHide' => 0]);
|
||||
$warehouseArticlesTotal = WarehouseArticleModel::count($warehouseArticleFilter);
|
||||
$warehouseArticlesAvailable = WarehouseArticleModel::count($warehouseArticleFilter);
|
||||
|
||||
$warehousePackets = WarehouseArticlePacketModel::getAll($filter, null, 0, $order);
|
||||
$warehousePacketsTotal = WarehouseArticlePacketModel::count();
|
||||
$warehousePacketsAvailable = WarehouseArticlePacketModel::count($filter);
|
||||
$warehousePackets = WarehouseArticlePacketModel::getAll($warehousePacketFilter, null, 0, $order);
|
||||
$warehousePacketsTotal = WarehouseArticlePacketModel::count($warehousePacketFilter);
|
||||
$warehousePacketsAvailable = WarehouseArticlePacketModel::count($warehousePacketFilter);
|
||||
|
||||
$filteredAvailable = $warehouseArticlesAvailable + $warehousePacketsAvailable;
|
||||
$totalRows = $warehouseArticlesTotal + $warehousePacketsTotal;
|
||||
$rows = [...$warehouseArticles, ...$warehousePackets];
|
||||
|
||||
$rows = array_slice($rows, ($page - 1) * $perPage, $perPage);
|
||||
usort($rows, function($a, $b) { return strcmp($a->title, $b->title); });
|
||||
|
||||
self::returnJson(["rows" => $rows,
|
||||
"pagination" => ["page" => $page,
|
||||
"total_pages" => ceil($filteredAvailable / $perPage),
|
||||
"per_page" => $perPage,
|
||||
"filtered_available" => $filteredAvailable,
|
||||
"total_rows" => $totalRows]]);
|
||||
self::returnJson([
|
||||
"rows" => array_slice($rows, ($page - 1) * $perPage, $perPage),
|
||||
"pagination" => [
|
||||
"page" => $page,
|
||||
"total_pages" => ceil($filteredAvailable / $perPage),
|
||||
"per_page" => $perPage,
|
||||
"filtered_available" => $filteredAvailable,
|
||||
"total_rows" => $totalRows
|
||||
]
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user