query($sql);
$count = $stmh->rowCount();
if ($count > 0):
?>
| 차종 |
내역 |
fetch(PDO::FETCH_ASSOC)):
$num = $row['num'];
$vehicle_type = $row['vehicle_type'];
$engine_oil_data = json_decode($row['engine_oil_change_data'], true) ?? [];
$maintenance_data = json_decode($row['maintenance_data'], true) ?? [];
// 1) 엔진오일 교체 날짜 내림차순 정렬
usort($engine_oil_data, function($a, $b) {
if (empty($a['engine_oil_change_date'])) return 1;
if (empty($b['engine_oil_change_date'])) return -1;
return strtotime($b['engine_oil_change_date']) <=> strtotime($a['engine_oil_change_date']);
});
// 2) 정비 내역 날짜 내림차순 정렬
usort($maintenance_data, function($a, $b) {
if (empty($a['maintenance_date'])) return 1;
if (empty($b['maintenance_date'])) return -1;
return strtotime($b['maintenance_date']) <=> strtotime($a['maintenance_date']);
});
// 3) 팝오버용 전체 HTML과 표시용 날짜 문자열 준비
$all_records = '';
$display_dates = [];
if (!empty($engine_oil_data)) {
$all_records .= '엔진오일 교체
';
foreach ($engine_oil_data as $oil) {
$date = $oil['engine_oil_change_date'] ?? '';
$mileage = $oil['mileage'] ?? '';
if ($date || $mileage) {
$all_records .= htmlspecialchars($date).' - 주행거리: '.htmlspecialchars($mileage).' km
';
$display_dates[] = '오일' . $date;
}
}
$all_records .= '
';
}
if (!empty($maintenance_data)) {
$all_records .= '정비내역
';
foreach ($maintenance_data as $mnt) {
$date = $mnt['maintenance_date'] ?? '';
$record = $mnt['maintenance_record'] ?? '';
if ($date && $record) {
$all_records .= htmlspecialchars($date).' - '.htmlspecialchars($record).'
';
$display_dates[] = '정비' . $date;
}
}
$all_records .= '
';
}
?>
| = htmlspecialchars($vehicle_type) ?> |
50 ? '...' : '');
?>
= htmlspecialchars($display_text) ?>
-
|
0) {
// print "
";
// print "| 일자 | ";
// print " 차번 | ";
// print " 출발 ➡ 도착 | ";
// print " km | ";
// print "
";
// while($row = $stmh->fetch(PDO::FETCH_ASSOC)) {
// $num = $row['num'];
// $use_date = $row['use_date'];
// $month_day = date("m/d", strtotime($use_date));
// $car_number = substr($row['car_number'], -4); // 뒷자리 4자리만 표시
// $departure = $row['departure'] . ' ➡ ' . $row['destination'];
// $driving_distance = number_format((int)$row['driving_distance'] );
// echo "
";
// print '| ';
// print $month_day;
// print ' | ';
// print ' ';
// print $car_number;
// print ' | ';
// print ' ';
// print $departure;
// print ' | ';
// print ' ';
// print $driving_distance;
// print ' | ';
// print '
';
// }
// }
?>
| 관리자 |
차량번호 |
(월)누적 |
총누적 |
= 1
GROUP BY c.vehicle_number, c.responsible_person, c.vehicle_type, c.initial_distance, m.part, m.position
HAVING (IFNULL(c.initial_distance, 0) + (
SELECT IFNULL(SUM(l2.driving_distance), 0)
FROM " . $DB . ".juilcarlog l2
WHERE l2.car_number = c.vehicle_number
AND l2.is_deleted = 0
)) >= 10
ORDER BY c.manufacturing_date ASC, c.purchase_date ASC";
$summary_stmh = $pdo->prepare($summary_sql);
$summary_stmh->bindValue(":fromdate", $fromdate, PDO::PARAM_STR);
$summary_stmh->bindValue(":todate", $todate, PDO::PARAM_STR);
$summary_stmh->execute();
$summary_list = $summary_stmh->fetchAll(PDO::FETCH_ASSOC);
foreach ($summary_list as $summary):
$total_cumulative = $summary['initial_distance'] + $summary['monthly_distance'];
?>
| = htmlspecialchars($summary['responsible_person'] ?? '', ENT_QUOTES, 'UTF-8') ?> |
= htmlspecialchars($summary['vehicle_number'] ?? '', ENT_QUOTES, 'UTF-8') ?> |
= number_format($summary['monthly_distance']) ?> |
= number_format($summary['total_cumulative_distance']) ?> |