overhauled workorder module

This commit is contained in:
Luca Haid
2025-10-08 14:32:04 +02:00
parent 2ce870746b
commit 41f941cfbc
5 changed files with 95 additions and 19 deletions
@@ -1,8 +0,0 @@
<?php
class RMLWorkorderAdminController extends mfBaseController {
protected function init() {
$this->needlogin = true;
$this->redirect("WorkorderAdmin");
}
}
@@ -1,8 +0,0 @@
<?php
class RMLWorkorderCompanyController extends mfBaseController {
protected function init() {
$this->needlogin = true;
$this->redirect("WorkorderCompany");
}
}
@@ -13,6 +13,7 @@ class WorkorderBaseController extends TTCrud
['value' => 'new', 'text' => 'Neu', 'icon' => 'fas fa-star text-primary'],
['value' => 'assigned', 'text' => 'Zugewiesen', 'icon' => 'fas fa-user-check text-info'],
['value' => 'scheduled', 'text' => 'Geplant', 'icon' => 'fas fa-calendar-check text-warning'],
['value' => 'in_progress', 'text' => 'In Bearbeitung', 'icon' => 'fas fa-cog text-warning'],
['value' => 'correction_requested', 'text' => 'Korrektur angefordert', 'icon' => 'fas fa-exclamation-triangle text-danger'],
['value' => 'intervention_required', 'text' => 'Eingriff erforderlich', 'icon' => 'fas fa-times-circle text-danger'],
['value' => 'civil_engineering_required', 'text' => 'Tiefbau benötigt', 'icon' => 'fas fa-hard-hat text-orange'],
@@ -211,7 +212,7 @@ class WorkorderBaseController extends TTCrud
$activePreorderIds = array_column(PreorderModel::searchActive($activeFilters), 'id');
$activePreorderIdsSet = array_flip($activePreorderIds);
$statusesToCheck = ['new', 'assigned', 'scheduled', 'correction_requested', 'intervention_required', 'civil_engineering_required', 'civil_engineering_completed', 'problem_solved'];
$statusesToCheck = ['new', 'assigned', 'scheduled', 'in_progress', 'correction_requested', 'intervention_required', 'civil_engineering_required', 'civil_engineering_completed', 'problem_solved'];
$allTenantPreorders = PreorderModel::getAll(['preordercampaign_id' => $tenantCampaignIds]);
if(empty($allTenantPreorders)) continue;
@@ -174,9 +174,26 @@ class WorkorderCompanyController extends WorkorderBaseController {
}
$workorder = WorkorderModel::get($workorderId);
if (in_array($workorder->status, ['correction_requested', 'problem_solved', 'civil_engineering_completed'])) {
$workorder->status = 'assigned';
$oldStatus = $workorder->status;
$newStatus = null;
if (in_array($oldStatus, ['assigned', 'scheduled'])) {
$newStatus = 'in_progress';
} else if (in_array($oldStatus, ['correction_requested', 'problem_solved', 'civil_engineering_completed'])) {
$newStatus = 'assigned';
}
if ($newStatus) {
$workorder->status = $newStatus;
WorkorderModel::update((array)$workorder);
WorkorderJournalModel::create([
'workorderId' => $workorder->id,
'text' => 'Status wurde nach Dokumenten-Upload automatisch auf In Beearbeitung gesetzt.',
'statusChange' => $this->getStatusText($oldStatus) . " -> " . $this->getStatusText($newStatus),
'create' => time(),
'createBy' => $this->user->id,
]);
}
self::returnJson(['success' => true, 'message' => "Datei(en) erfolgreich hochgeladen."]);