mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-21 06:26:26 +00:00
fix(roadtrip): a booked night no longer shows up mid-day when the day already ends at the stay
Booking a night writes the hotel onto its check-in day as a stop, seated first or at its check-in, so the drive reaches it even without hotel bookends. With "Start and end each day at your stay" on, the evening row already ends that day at the same hotel, so the road trip drove check-out, tonight's hotel, the day's places and back to the hotel again. Days hides that stop and draws the stay at the day's edges only. seatNightBookends now passes over the stop tonight's booking wrote whenever it seats that stay as the day's evening, in the browser and in calculate_roadtrip alike. The stops keep their stored index, a hotel the traveller placed stays, and the booking's stop stays while it is the day's last one or no evening is seated. With the switch off nothing changes. Closes #2546
This commit is contained in:
@@ -62,6 +62,8 @@ interface CarrierRow {
|
||||
interface VisitRow {
|
||||
/** The booking this stop stands for on its check-in day, when there is one. */
|
||||
stay_id: number | null;
|
||||
/** The stay whose booking wrote this stop, null for one the traveller placed. */
|
||||
accommodation_id: number | null;
|
||||
check_in: string | null;
|
||||
/** The drive does not read these two (#2357): they are the booking as get_roadtrip_context reports it. */
|
||||
check_out: string | null;
|
||||
@@ -113,7 +115,7 @@ export class RoadtripPlanService {
|
||||
`SELECT a.id, a.day_id, a.order_index, a.place_id, p.name, p.lat, p.lng,
|
||||
COALESCE(a.assignment_time, p.place_time) AS time, COALESCE(a.assignment_end_time, p.end_time) AS end_time,
|
||||
p.duration_minutes, a.end_day,
|
||||
a.leg_transport_mode, a.incoming_leg_transport_mode, p.stop_type, p.fill_percent, stay.id AS stay_id, stay.check_in, stay.check_out, checkout.day_number AS checkout_day
|
||||
a.leg_transport_mode, a.incoming_leg_transport_mode, p.stop_type, p.fill_percent, a.accommodation_id, stay.id AS stay_id, stay.check_in, stay.check_out, checkout.day_number AS checkout_day
|
||||
FROM day_assignments a JOIN days d ON d.id = a.day_id JOIN places p ON p.id = a.place_id
|
||||
LEFT JOIN day_accommodations stay ON stay.id = (SELECT id FROM day_accommodations WHERE place_id = p.id AND start_day_id = d.id ORDER BY id LIMIT 1)
|
||||
LEFT JOIN days checkout ON checkout.id = stay.end_day_id
|
||||
@@ -239,6 +241,7 @@ export class RoadtripPlanService {
|
||||
leaveAt: v.end_time,
|
||||
checkInTime: v.check_in,
|
||||
night: v.stay_id !== null,
|
||||
bookedNightId: v.accommodation_id,
|
||||
dwellMinutes: v.duration_minutes,
|
||||
endDay: v.end_day === 1,
|
||||
legMode: v.leg_transport_mode,
|
||||
|
||||
Reference in New Issue
Block a user