fix:차량일지 기간 선택 UI 개선 (시작일~종료일, 이번달/지난달 버튼, 조회건수)

This commit is contained in:
김보곤
2026-02-03 12:33:14 +09:00
parent 057ba589f0
commit cf37e29659
2 changed files with 80 additions and 50 deletions

View File

@@ -40,21 +40,22 @@ public function list(Request $request): JsonResponse
$request->validate([
'vehicle_id' => 'required|integer',
'year' => 'required|integer',
'month' => 'required|integer|min:1|max:12',
'start_date' => 'required|date',
'end_date' => 'required|date|after_or_equal:start_date',
]);
$vehicleId = $request->vehicle_id;
$year = $request->year;
$month = $request->month;
$startDate = $request->start_date;
$endDate = $request->end_date;
// 차량 정보
$vehicle = CorporateVehicle::where('tenant_id', $tenantId)
->findOrFail($vehicleId);
// 해당 월의 운행 기록
$startDate = sprintf('%04d-%02d-01', $year, $month);
$endDate = date('Y-m-t', strtotime($startDate));
// 전체 운행기록 수 (해당 차량)
$totalCount = VehicleLog::where('tenant_id', $tenantId)
->where('vehicle_id', $vehicleId)
->count();
$logs = VehicleLog::where('tenant_id', $tenantId)
->where('vehicle_id', $vehicleId)
@@ -76,6 +77,7 @@ public function list(Request $request): JsonResponse
'vehicle' => $vehicle,
'logs' => $logs,
'totals' => $totals,
'totalCount' => $totalCount,
],
]);
}
@@ -174,20 +176,17 @@ public function export(Request $request): StreamedResponse
$request->validate([
'vehicle_id' => 'required|integer',
'year' => 'required|integer',
'month' => 'required|integer|min:1|max:12',
'start_date' => 'required|date',
'end_date' => 'required|date|after_or_equal:start_date',
]);
$vehicleId = $request->vehicle_id;
$year = $request->year;
$month = $request->month;
$startDate = $request->start_date;
$endDate = $request->end_date;
$vehicle = CorporateVehicle::where('tenant_id', $tenantId)
->findOrFail($vehicleId);
$startDate = sprintf('%04d-%02d-01', $year, $month);
$endDate = date('Y-m-t', strtotime($startDate));
$logs = VehicleLog::where('tenant_id', $tenantId)
->where('vehicle_id', $vehicleId)
->whereBetween('log_date', [$startDate, $endDate])
@@ -208,7 +207,7 @@ public function export(Request $request): StreamedResponse
$sheet->setCellValue('E3', '구분');
$sheet->setCellValue('F3', $this->getOwnershipTypeLabel($vehicle->ownership_type));
$sheet->setCellValue('A4', '조회기간');
$sheet->setCellValue('B4', sprintf('%d년 %d월', $year, $month));
$sheet->setCellValue('B4', sprintf('%s ~ %s', $startDate, $endDate));
// 헤더
$headers = ['일자', '부서', '성명', '구분', '출발지', '도착지', '주행km', '비고'];
@@ -244,7 +243,7 @@ public function export(Request $request): StreamedResponse
$sheet->setCellValue('G' . $row, number_format($totalKm));
$sheet->setCellValue('H' . $row, '비업무: ' . number_format($personalKm) . 'km');
$filename = sprintf('운행기록부_%s_%d년%d월.xlsx', $vehicle->plate_number, $year, $month);
$filename = sprintf('운행기록부_%s_%s_%s.xlsx', $vehicle->plate_number, $startDate, $endDate);
return response()->streamDownload(function () use ($spreadsheet) {
$writer = new Xlsx($spreadsheet);