/
ximain1
/
tpu-backend
Обзор
Документация
Войти
/
ximain1
/
tpu-backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
app/Http/Controllers/RouteSheetController.php
70 строк
2 KB
Попехин Константин Сергеевич
Реализация аутентификации и уровней доступа
08 янв 2026, 16:16
08 янв 2026, 16:16
254c8af
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Models\Driver; use App\Models\DriverRecord; use App\Models\Locomotive; use App\Http\Requests\RouteSheetRequest; use App\Models\RouteSheet; use App\Models\Shift; use App\Services\RouteSheetService; use Carbon\Carbon; use Illuminate\Database\Eloquent\Collection; use \Symfony\Component\HttpFoundation\BinaryFileResponse; class RouteSheetController extends Controller { public function show(int $id): Collection{ $routeSheet = RouteSheet::with([ 'downtime', 'maneuverWork', 'maintenanceWork', 'trainWork', ])->find($id); return $routeSheet; } public function store(RouteSheetRequest $routeSheetRequest): RouteSheet{ $validated = $routeSheetRequest->validated(); $locomotive = Locomotive::where('name', $validated['locomotive'])->first(); $routeSheet = RouteSheet::where('locomotive_id', $locomotive->id)->first(); if($routeSheet == null){ $routeSheet = RouteSheet::create([ 'locomotive_id' => $locomotive['id'], ]); } $shift = Shift::where('start_time', $validated['start_time'])->where('end_time', $validated['end_time'])->first(); $startTime = Carbon::parse('08:00'); $endTime = Carbon::parse('20:30'); if ($endTime->lessThan($startTime)) { $endTime->addDay(); } $duration = $startTime->diff($endTime)->format('%H:%I'); $driverRecord = DriverRecord::create([ 'date' => $validated['date'], 'route_sheet_id' => $routeSheet->id, 'shift_id' => $shift['id'], 'start_time' => $validated['start_time'], 'end_time' => $validated['end_time'], 'driver_id' => Driver::where('name', $validated['driver'])->first()->id, 'duration' => $duration, 'accepted_dt' => $validated['accepted_dt'], 'handled_over_dt' => $validated['handled_over_dt'], 'equipped_dt' => $validated['equipped_dt'], ]); return $routeSheet; } public function downloadTable(int $id): BinaryFileResponse{ return RouteSheetService::createExcelTable($id); } }