61 lines
2.8 KiB
PHP
61 lines
2.8 KiB
PHP
<?php
|
|
|
|
class WarehouseOfferController extends TTCrud {
|
|
protected string $headerTitle = 'Angebote';
|
|
protected bool $createText = false;
|
|
|
|
protected array $columns = [
|
|
['key' => 'id', 'text' => 'ID', 'modal' => false],
|
|
['key' => 'offerNumber', 'text' => 'Angebotsnummer', 'required' => true, 'modal' => false],
|
|
['key' => 'customerNumber', 'text' => 'Kundennummer', 'required' => true, 'modal' => false],
|
|
['key' => 'customerName', 'text' => 'Kundenname', 'required' => true, 'modal' => false],
|
|
['key' => 'customerCity', 'text' => 'Stadt', 'required' => true, 'modal' => false],
|
|
['key' => 'customerVAT', 'text' => 'UID', 'required' => true, 'modal' => false],
|
|
['key' => 'editor', 'text' => 'Sachbearbeiter', 'required' => true, 'modal' => false],
|
|
['key' => 'totalAmount', 'text' => 'Gesamtbetrag', 'required' => true, 'modal' => false],
|
|
['key' => 'status', 'text' => 'Status', 'required' => true, 'modal' => ['type' => 'select']],
|
|
['key' => 'create', 'text' => 'Erstellt', 'required' => true, 'modal' => false],
|
|
['key' => 'createBy', 'text' => 'Erstellt von', 'required' => true, 'modal' => ['type' => 'select']],
|
|
['key' => 'actions',
|
|
'text' => 'Aktionen',
|
|
'required' => false,
|
|
'modal' => false,
|
|
'table' => ['filter' => false, 'sortable' => false, 'class' => 'text-center']],
|
|
];
|
|
|
|
protected array $permissionCheck = ['WarehouseAdmin'];
|
|
|
|
protected array $additionalActions = [
|
|
['key' => 'openHistory', 'title' => 'Historie', 'class' => 'fas fa-history text-primary'],
|
|
['key' => 'sendOffer', 'title' => 'Angebot senden', 'class' => 'fas fa-paper-plane text-success']
|
|
];
|
|
|
|
protected array $additionalJS = ['
|
|
https://cdn.jsdelivr.net/npm/sortablejs@1.14.0/Sortable.min.js
|
|
https://cdn.jsdelivr.net/npm/vue-draggable-next@2.1.0'];
|
|
|
|
protected array $infoMessages = [
|
|
'create' => 'Angebot wurde erfolgreich erstellt.',
|
|
'update' => 'Angebot wurde aktualisiert.',
|
|
'delete' => 'Angebot wurde gelöscht',
|
|
'noChanges' => 'Keine Änderungen',
|
|
'sent' => 'Angebot wurde erfolgreich gesendet',
|
|
];
|
|
|
|
protected function beforeCreate(): bool {
|
|
$currentCount = WarehouseOfferModel::count(['create' => ['from' => strtotime(date('Y-01-01'))]]);
|
|
$this->postData['offerNumber'] = 'AN' . date('Y') . '-' . str_pad($currentCount + 1, 4, '0', STR_PAD_LEFT);
|
|
|
|
return true;
|
|
}
|
|
|
|
protected function beforeUpdate($postData): bool {
|
|
(new WarehouseHistoryController)->create($postData, $this->mod);
|
|
return true;
|
|
}
|
|
|
|
protected function getHistoryAction() {
|
|
self::returnJson((new WarehouseHistoryController)->getHistory($this->request->id, $this->mod, $this->columns));
|
|
}
|
|
}
|