added new rml stuff
This commit is contained in:
@@ -14,6 +14,8 @@ class WorkorderModel extends TTCrudBaseModel
|
||||
public ?int $deadlineDate;
|
||||
public ?int $appointmentDate;
|
||||
public ?string $additionalInfo;
|
||||
public ?string $cableLength;
|
||||
public ?string $cableType;
|
||||
public int $create;
|
||||
public int $createBy;
|
||||
|
||||
|
||||
@@ -143,6 +143,18 @@ class WorkorderCompanyController extends WorkorderBaseController {
|
||||
$workorder = WorkorderModel::get($this->postData['workorderId']);
|
||||
if (!$workorder) self::sendError("Arbeitsauftrag nicht gefunden.");
|
||||
|
||||
// START ADDED VALIDATION
|
||||
$tenantConfig = $this->getTenantConfigFromWorkorder($workorder->id);
|
||||
if ($tenantConfig) {
|
||||
if ($tenantConfig->requireCableLength && empty(trim($workorder->cableLength))) {
|
||||
self::sendError("Bitte geben Sie die Kabellänge an, um den Auftrag abzuschließen.");
|
||||
}
|
||||
if ($tenantConfig->requireCableType && empty(trim($workorder->cableType))) {
|
||||
self::sendError("Bitte geben Sie den Kabeltyp an, um den Auftrag abzuschließen.");
|
||||
}
|
||||
}
|
||||
// END ADDED VALIDATION
|
||||
|
||||
$workorder->status = 'documented';
|
||||
WorkorderModel::update((array)$workorder);
|
||||
self::returnJson(['success' => true, 'message' => 'Arbeitsauftrag zur Prüfung eingereicht.']);
|
||||
@@ -155,7 +167,14 @@ class WorkorderCompanyController extends WorkorderBaseController {
|
||||
self::returnJson(['success' => false, 'message' => 'Keine Mandantenkonfiguration gefunden.']);
|
||||
return;
|
||||
}
|
||||
self::returnJson(['success' => true, 'documentationTypes' => json_decode($tenantConfig->documentationTypes, true), 'civilEngineeringDocsRequired' => $tenantConfig->civilEngineeringDocsRequired, 'interventionTypes' => json_decode($tenantConfig->interventionTypes, true)]);
|
||||
self::returnJson([
|
||||
'success' => true,
|
||||
'documentationTypes' => json_decode($tenantConfig->documentationTypes, true),
|
||||
'civilEngineeringDocsRequired' => $tenantConfig->civilEngineeringDocsRequired,
|
||||
'interventionTypes' => json_decode($tenantConfig->interventionTypes, true),
|
||||
'requireCableLength' => $tenantConfig->requireCableLength,
|
||||
'requireCableType' => $tenantConfig->requireCableType
|
||||
]);
|
||||
}
|
||||
|
||||
protected function uploadDocumentationAction() {
|
||||
@@ -237,5 +256,52 @@ class WorkorderCompanyController extends WorkorderBaseController {
|
||||
]);
|
||||
self::returnJson(['success' => true, 'message' => 'Tiefbau erfolgreich abgeschlossen.']);
|
||||
}
|
||||
|
||||
protected function updateWorkorderDataAction() {
|
||||
if (empty($this->postData['workorderId'])) self::sendError("Arbeitsauftrags-ID fehlt.");
|
||||
$workorder = WorkorderModel::get($this->postData['workorderId']);
|
||||
if (!$workorder) self::sendError("Arbeitsauftrag nicht gefunden.");
|
||||
|
||||
$journalText = "Zusatzdaten aktualisiert:\n";
|
||||
$changed = false;
|
||||
|
||||
if (isset($this->postData['cableLength'])) {
|
||||
if ($workorder->cableLength != $this.postData['cableLength']) {
|
||||
$journalText .= "Kabellänge: '{$workorder->cableLength}' -> '{$this->postData['cableLength']}'\n";
|
||||
$workorder->cableLength = $this.postData['cableLength'];
|
||||
$changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($this->postData['cableType'])) {
|
||||
if ($workorder->cableType != $this.postData['cableType']) {
|
||||
$journalText .= "Kabeltyp: '{$workorder->cableType}' -> '{$this->postData['cableType']}'\n";
|
||||
$workorder->cableType = $this.postData['cableType'];
|
||||
$changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$changed) {
|
||||
self::returnJson(['success' => true, 'message' => 'Keine Änderungen vorgenommen.']);
|
||||
return;
|
||||
}
|
||||
|
||||
WorkorderModel::update((array)$workorder);
|
||||
|
||||
WorkorderJournalModel::create([
|
||||
'workorderId' => $workorder->id,
|
||||
'text' => $journalText,
|
||||
'create' => time(),
|
||||
'createBy' => $this->user->id,
|
||||
]);
|
||||
|
||||
// Re-fetch journals to return
|
||||
$journals = WorkorderJournalModel::getAll(['workorderId' => intval($workorder->id)], null, 0, ['key' => 'create', 'order' => 'DESC']);
|
||||
foreach ($journals as $journal) {
|
||||
$journal->createByName = UserModel::getOne($journal->createBy)->name ?? 'Unbekannt';
|
||||
}
|
||||
|
||||
self::returnJson(['success' => true, 'message' => 'Daten gespeichert.', 'journals' => $journals]);
|
||||
}
|
||||
//endregion
|
||||
}
|
||||
@@ -10,6 +10,8 @@ class WorkorderTenantConfigModel extends TTCrudBaseModel {
|
||||
public ?string $workorderActiveFilters; // JSON
|
||||
public ?string $interventionTypes; // JSON
|
||||
public int $civilEngineeringDocsRequired;
|
||||
public int $requireCableLength;
|
||||
public int $requireCableType;
|
||||
public int $create;
|
||||
public int $createBy;
|
||||
|
||||
@@ -31,4 +33,5 @@ class WorkorderTenantConfigModel extends TTCrudBaseModel {
|
||||
$row = $result ? $result->fetch_assoc() : null;
|
||||
|
||||
return $row ? new self($row) : null;
|
||||
}}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user