diff --git a/application/WorkorderAdmin/WorkorderAdminController.php b/application/WorkorderAdmin/WorkorderAdminController.php index 38cefa867..72507b591 100644 --- a/application/WorkorderAdmin/WorkorderAdminController.php +++ b/application/WorkorderAdmin/WorkorderAdminController.php @@ -10,6 +10,7 @@ class WorkorderAdminController extends WorkorderBaseController protected array $columns = [ ['key' => 'id', 'text' => 'Auftrags-Nr.', 'table' => ['sortable' => true, 'filter' => 'numberRange']], ['key' => 'netOwnerId', 'text' => 'Netzeigentümer', 'modal' => false, 'table' => ['filter' => 'select'], 'required' => false], + ['key' => 'preordercampaign_id', 'text' => 'Kampagne', 'modal' => false, 'table' => ['filter' => 'select', 'sortable' => true]], ['key' => 'preorderInfo', 'text' => 'Kunde', 'modal' => false, 'table' => ['filter' => 'search', 'sortable' => false]], ['key' => 'companyName', 'text' => 'Firma', 'modal' => false, 'table' => ['filter' => 'search', 'sortable' => true]], ['key' => 'rimo_fcp_name', 'text' => 'FCP', 'modal' => false, 'table' => ['filter' => 'search', 'sortable' => true]], @@ -27,6 +28,7 @@ class WorkorderAdminController extends WorkorderBaseController $preorderInfoColIdx = array_search('preorderInfo', array_column($this->columns, 'key')); array_splice($this->columns, $preorderInfoColIdx + 1, 0, [$this->statusColumn]); $netOwnerColIdx = array_search('netOwnerId', array_column($this->columns, 'key')); + $preCamColIdx = array_search('preordercampaign_id', array_column($this->columns, 'key')); if ($netOwnerColIdx !== false) { if ($this->user->isAdmin()) { @@ -36,6 +38,16 @@ class WorkorderAdminController extends WorkorderBaseController $this->columns[$netOwnerColIdx]['table'] = false; } } + + $campaigns = Helper::getPreorderCampaignFromUser($this->user, true); + + if ($preCamColIdx !== false) { + $this->columns[$preCamColIdx]['table']['filterOptions'] = array_map(fn($c) => ['value' => $c->id, 'text' => $c->name], $campaigns); + if (!$this->user->isAdmin() && count($campaigns) === 1) { + $this->columns[$preCamColIdx]['table']['defaultFilter'] = $campaigns[0]->id; + } + } + } //region ACTIONS @@ -146,9 +158,9 @@ class WorkorderAdminController extends WorkorderBaseController if ($workorder->status !== 'documented') self::sendError("Die Dokumentation muss zuerst von der Firma als fertig markiert werden."); $preorder = new Preorder($workorder->preorderId); - $preorderCampaign = new Preordercampaign($preorder->campaign_id); + $preorderCampaign = new Preordercampaign($preorder->preordercampaign_id); $network = new Network($preorderCampaign->network_id); - if ($preorder->id && $network->owner_id == 4807) { + if ($preorder->id && $network->owner_id == 4807) { $preorder->status_id = 15; $preorder->edit_by = $this->user->id; $preorder->save(); @@ -253,10 +265,11 @@ class WorkorderAdminController extends WorkorderBaseController 'workorderId' => $workorder->id, 'text' => "Firma '{$company->name}' wurde zugewiesen.", 'create' => time(), 'createBy' => $userId, ]); + $preorder = new Preorder($workorder->preorderId); - $preorderCampaign = new Preordercampaign($preorder->campaign_id); + $preorderCampaign = new Preordercampaign($preorder->preordercampaign_id); $network = new Network($preorderCampaign->network_id); - if ($preorder->id && $network->owner_id == 4807) { + if ($preorder->id && $network->owner_id == 4807) { $preorder->status_id = 10; // In Ausführung $preorder->edit_by = $this->user->id; $preorder->save(); diff --git a/public/js/pages/WorkorderAdmin/WorkorderAdmin.js b/public/js/pages/WorkorderAdmin/WorkorderAdmin.js index 7333ff708..776e7fd44 100644 --- a/public/js/pages/WorkorderAdmin/WorkorderAdmin.js +++ b/public/js/pages/WorkorderAdmin/WorkorderAdmin.js @@ -141,8 +141,7 @@ Vue.component('workorder-admin', { computed: { companiesForMassAssign() { if (this.workordersToAssign.length === 0) return []; - const firstWorkorder = this.$refs.table?.$refs.table.rows.find(r => r.id === this.workordersToAssign[0]); - return firstWorkorder ? this.companiesByTenant[firstWorkorder.tenantId] || [] : []; + return Object.values(this.companiesByTenant)[0] || []; } }, methods: {