added new features for asset mgmt
This commit is contained in:
@@ -4,26 +4,47 @@ class AssetManagementController extends TTCrud
|
||||
{
|
||||
protected string $headerTitle = 'Anlagenverwaltung';
|
||||
protected string $singleText = 'Anlage';
|
||||
protected bool $createText = false;
|
||||
|
||||
protected array $columns = [
|
||||
['key' => 'id', 'text' => 'ID', 'modal' => false, 'table' => false],
|
||||
['key' => 'name', 'text' => 'Gerät', 'required' => true, 'modal' => ['type' => 'text']],
|
||||
['key' => 'assetNumber', 'text' => 'Kennzeichen / Nr.', 'required' => true, 'modal' => ['type' => 'text']],
|
||||
['key' => 'currentUser', 'text' => 'Akt. Mitarbeiter', 'modal' => false, 'table' => ['sortable' => false]],
|
||||
['key' => 'currentSite', 'text' => 'Akt. Baustelle', 'modal' => false, 'table' => ['sortable' => false]],
|
||||
['key' => 'borrowDate', 'text' => 'Ausgeliehen seit', 'modal' => false, 'table' => ['sortable' => false]],
|
||||
['key' => 'currentUser', 'text' => 'Akt. Mitarbeiter', 'modal' => false, 'table' => ['sortable' => false, 'filter' => false]],
|
||||
['key' => 'currentSite', 'text' => 'Akt. Baustelle', 'modal' => false, 'table' => ['sortable' => false, 'filter' => false]],
|
||||
['key' => 'borrowDate', 'text' => 'Ausgeliehen seit', 'modal' => false, 'table' => ['sortable' => false, 'filter' => false]],
|
||||
['key' => 'location', 'text' => 'Lagerort', 'required' => true, 'modal' => ['type' => 'text']],
|
||||
['key' => 'serviceDueDate', 'text' => 'Service fällig', 'required' => false, 'modal' => ['type' => 'datepicker']],
|
||||
['key' => 'description', 'text' => 'Beschreibung', 'modal' => ['type' => 'text'], 'table' => false],
|
||||
['key' => 'serviceDueDate', 'text' => 'Service fällig', 'required' => false, 'modal' => ['type' => 'date'], 'table' => ['filter' => 'date']],
|
||||
['key' => 'journal', 'text' => 'Historie', 'modal' => false, 'table' => ['sortable' => false, 'filter' => false]],
|
||||
['key' => 'actions', 'text' => 'Aktionen', 'modal' => false, 'table' => ['filter' => false, 'sortable' => false]],
|
||||
];
|
||||
|
||||
protected array $permissionCheck = ['WarehouseAdmin']; // Or a new permission
|
||||
protected array $additionalJSVariables = ['ASSET_ADMIN' => true];
|
||||
|
||||
protected function prepareCrudConfig() {
|
||||
if ($this->user->can('AssetAdmin')) return;
|
||||
$this->columns = array_filter($this->columns, function ($column) {
|
||||
return $column['key'] != 'actions';
|
||||
});
|
||||
|
||||
$this->additionalJSVariables['ASSET_ADMIN'] = false;
|
||||
}
|
||||
|
||||
|
||||
protected 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;
|
||||
|
||||
if ($order['key'] === null && isset($this->defaultOrder)) {
|
||||
$order = $this->defaultOrder;
|
||||
}
|
||||
|
||||
$json = json_decode(file_get_contents('php://input'), true);
|
||||
$assets = AssetManagementModel::getAll([], $this->request->order);
|
||||
$assets = AssetManagementModel::getAll($filter, $perPage, ($page - 1) * $perPage, $order);
|
||||
$assetIds = array_map(fn($asset) => $asset->id, $assets);
|
||||
|
||||
if (empty($assetIds)) {
|
||||
@@ -79,7 +100,7 @@ class AssetManagementController extends TTCrud
|
||||
|
||||
protected function suggestAssetNumberAction()
|
||||
{
|
||||
$lastAsset = AssetManagementModel::getOne([], ['order' => 'DESC', 'key' => 'id']);
|
||||
$lastAsset = AssetManagementModel::getAll(['assetNumber' => 'XI%'],1,0, ['order' => 'DESC', 'key' => 'id'])[0];
|
||||
if (!$lastAsset || !preg_match('/XI(\d+)/', $lastAsset->assetNumber, $matches)) {
|
||||
$nextNumber = 1;
|
||||
} else {
|
||||
@@ -92,7 +113,7 @@ class AssetManagementController extends TTCrud
|
||||
protected function borrowAction()
|
||||
{
|
||||
$post = json_decode(file_get_contents('php://input'), true);
|
||||
if (empty($post['assetId']) || empty($post['userId']) || empty($post['site']) || empty($post['reason'])) {
|
||||
if (empty($post['assetId']) || empty($post['userId']) || empty($post['site'])) {
|
||||
self::sendError("Alle Felder sind erforderlich.");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user