LAR_Maintenance/app/Http/Controllers/MaintenanceController.php

100 lines
3.0 KiB
PHP
Raw Normal View History

2024-07-30 18:13:21 +02:00
<?php
namespace App\Http\Controllers;
2024-07-31 18:45:14 +02:00
use App\Models\MaintenanceHistory;
2024-08-16 18:20:45 +02:00
use App\Services\ZabbixService;
use Carbon\Carbon;
2024-08-07 07:52:07 +02:00
use Illuminate\Http\Request;
2024-07-31 18:45:14 +02:00
2024-07-30 18:13:21 +02:00
class MaintenanceController extends BaseController
{
public function index()
{
return view('maintenance.index');
}
2024-07-31 17:04:33 +02:00
public function planned()
{
return view('maintenance.planned');
}
2024-07-31 18:45:14 +02:00
public function plannedDetail(MaintenanceHistory $maintenance_history)
{
2024-08-09 08:37:00 +02:00
if (!empty($maintenance_history->finished_at)) {
abort(404);
}
2024-07-31 18:45:14 +02:00
return view('maintenance.planned-detail', [
2024-08-16 13:28:14 +02:00
'maintenance_history' => $maintenance_history ?? [],
2024-07-31 18:45:14 +02:00
]);
}
2024-08-07 07:52:07 +02:00
public function plannedDetailPut(Request $request, MaintenanceHistory $maintenance_history)
{
2024-08-16 18:20:45 +02:00
2024-08-09 08:37:00 +02:00
if (!empty($maintenance_history->finished_at)) {
abort(404);
}
2024-08-07 07:52:07 +02:00
return view('maintenance.planned-detail-done', [
'maintenance_history' => $maintenance_history,
2024-08-16 13:28:14 +02:00
'maintenance_task_status' => $request->input('maintenance_task_status') ?? [],
'maintenance_host_skipped' => $request->input('maintenance_host_skipped') ?? [],
2024-08-07 07:52:07 +02:00
]);
}
public function plannedDetailFinishPost(Request $request, MaintenanceHistory $maintenance_history)
{
2024-08-09 08:37:00 +02:00
if (!empty($maintenance_history->finished_at)) {
abort(404);
}
2024-08-16 13:28:14 +02:00
$request->validate([
"skippedHostsSummary.*.*" => 'required|string'
]);
// if ($request->has('skippedHostsSummary') || $request->has('skippedHostTasksSummary'))
// {
// return redirect()->back()->with('error', __('boilerplate::ui.incorect.old.password'));
// }
2024-08-09 08:37:00 +02:00
foreach ($request->input('skippedHostsSummary') as $history_host_id => $summary) {
$maintenance_history->historyHosts->find($history_host_id)->update([
'summary' => $summary,
]);
}
2024-08-16 13:28:14 +02:00
if ($request->has('skippedHostTasksSummary')) {
2024-08-09 08:37:00 +02:00
foreach ($maintenance_history->historyHosts as $history_host) {
2024-08-16 13:28:14 +02:00
if (!isset($request->input('skippedHostTasksSummary')[$history_host->id]))
2024-08-09 08:37:00 +02:00
continue;
2024-08-16 13:28:14 +02:00
foreach ($request->input('skippedHostTasksSummary')[$history_host->id] as $history_task_id => $task_summary) {
$history_host->historyTasks->find($history_task_id)->update([
2024-08-09 08:37:00 +02:00
'summary' => $task_summary,
]);
}
}
}
$maintenance_history->finished_at = Carbon::now();
$maintenance_history->save();
return redirect()->route('maintenance.history.detail', $maintenance_history->id);
}
2024-08-09 08:37:00 +02:00
public function history(Request $request)
{
return view('maintenance.history');
}
2024-08-09 08:37:00 +02:00
public function historyDetail(Request $request, MaintenanceHistory $maintenance_history)
{
2024-08-16 13:28:14 +02:00
return view('maintenance.history-detail-done', [
'maintenance_history' => $maintenance_history ?? []
]);
2024-08-09 08:37:00 +02:00
}
2024-07-30 18:13:21 +02:00
}