diff --git a/application/WarehouseShippingNote/WarehouseShippingNoteController.php b/application/WarehouseShippingNote/WarehouseShippingNoteController.php index 14fa8471d..f8c680eb9 100644 --- a/application/WarehouseShippingNote/WarehouseShippingNoteController.php +++ b/application/WarehouseShippingNote/WarehouseShippingNoteController.php @@ -45,19 +45,21 @@ class WarehouseShippingNoteController extends TTCrud { fn($p) => $p['status'] === 'new' ?: 'Status muss "Neu" sein', fn($p) => $this->validateHours($p['hoursEntries']) ]); - $postData['positions'] = json_encode($postData['positions']); + $this->postData['positions'] = json_encode($this->postData['positions']); + if (isset($this->postData['metadata'])) $this->postData['metadata'] = json_encode($this->postData['metadata']); return true; } protected function beforeUpdate($postData): bool { if (!$this->user->can('WarehouseAdmin')) { - $this->validate($postData, [ - fn($p) => !in_array(WarehouseShippingNoteModel::get($p['id'])->status, - ['accepted', 'invoiced']) ?: 'Änderungen nicht mehr möglich', - fn($p) => $this->validateHours($p['hoursEntries']) - ]); + $this->validate($postData, [ + fn($p) => !in_array(WarehouseShippingNoteModel::get($p['id'])->status, + ['accepted', 'invoiced']) ?: 'Änderungen nicht mehr möglich', + fn($p) => $this->validateHours($p['hoursEntries']) + ]); } - $postData['positions'] = json_encode($postData['positions']); + $this->postData['positions'] = json_encode($this->postData['positions']); + if (isset($this->postData['metadata'])) $this->postData['metadata'] = json_encode($this->postData['metadata']); (new WarehouseHistoryController)->create($postData, $this->mod); return true; } diff --git a/application/WarehouseShippingNote/WarehouseShippingNoteModel.php b/application/WarehouseShippingNote/WarehouseShippingNoteModel.php index bf4851248..8cc4e5721 100644 --- a/application/WarehouseShippingNote/WarehouseShippingNoteModel.php +++ b/application/WarehouseShippingNote/WarehouseShippingNoteModel.php @@ -4,6 +4,7 @@ class WarehouseShippingNoteModel extends TTCrudBaseModel { public int $id; public ?int $billingAddressId; public ?string $type; + public ?string $metadata; public string $deliveryAddressName; public string $deliveryAddressLine; public string $deliveryAddressPLZ; @@ -20,6 +21,4 @@ class WarehouseShippingNoteModel extends TTCrudBaseModel { public ?int $eShopOrderId; public ?int $create; public ?int $createBy; -} - - +} \ No newline at end of file diff --git a/db/migrations/20250901110000_warehouse_modify_24.php b/db/migrations/20250901110000_warehouse_modify_24.php new file mode 100644 index 000000000..40f0acbfa --- /dev/null +++ b/db/migrations/20250901110000_warehouse_modify_24.php @@ -0,0 +1,30 @@ +getEnvironment() == "thetool") { + $WarehouseShippingNote = $this->table("WarehouseShippingNote"); + + if (!$WarehouseShippingNote->hasColumn("metadata")) { + $WarehouseShippingNote + ->addColumn("metadata", "json", ["null" => true, "default" => null, "after" => "type"]) + ->update(); + } + } + } + + public function down(): void { + if ($this->getEnvironment() == "thetool") { + $WarehouseShippingNote = $this->table("WarehouseShippingNote"); + + if ($WarehouseShippingNote->hasColumn("metadata")) { + $WarehouseShippingNote + ->removeColumn("metadata") + ->update(); + } + } + } +} diff --git a/public/js/pages/WarehouseShippingNote/WarehouseShippingNote.js b/public/js/pages/WarehouseShippingNote/WarehouseShippingNote.js index 631b1e63d..1e2ee29a7 100644 --- a/public/js/pages/WarehouseShippingNote/WarehouseShippingNote.js +++ b/public/js/pages/WarehouseShippingNote/WarehouseShippingNote.js @@ -306,6 +306,11 @@ Vue.component('warehouse-shipping-note-see-through', { + +