Report error
(pymysql.err.OperationalError) (1525, "Incorrect DATE value: ''")
[SQL: SELECT
odp.id AS offer_day_product_id,
o.id AS offer_id,
o.branch_id,
DATE(odp.odp_date_from) AS service_date,
TIME_FORMAT(odp.pickup_time, '%%H:%%i') AS pickup_time_hm,
TIME_FORMAT(odp.product_time, '%%H:%%i') AS flight_time_hm,
TIME_FORMAT(odp.dropoff_time, '%%H:%%i') AS dropoff_time_hm,
TRIM(
CONCAT(
COALESCE(NULLIF(odp.product_airline_code, ''), ''),
CASE
WHEN TRIM(COALESCE(odp.product_flight_num, '')) <> ''
THEN CONCAT(' ', TRIM(odp.product_flight_num))
ELSE ''
END
)
) AS flight_code,
COALESCE(NULLIF(TRIM(odp.product_flight_num), ''), '') AS flight_num,
COALESCE(NULLIF(TRIM(odp.product_airport_from_code), ''), '') AS airport_from_code,
COALESCE(NULLIF(TRIM(odp.product_airport_to_code), ''), '') AS airport_to_code,
CASE
WHEN TRIM(COALESCE(odp.product_airline_code, '')) <> ''
OR TRIM(COALESCE(odp.product_flight_num, '')) <> ''
THEN TRIM(
CONCAT(
TRIM(COALESCE(odp.product_airline_code, '')),
' ',
TRIM(COALESCE(odp.product_flight_num, ''))
)
)
ELSE 'NO FLIGHT'
END AS flight_display,
CASE
WHEN TRIM(COALESCE(odp.product_airport_from_code, '')) <> ''
AND TRIM(COALESCE(odp.product_airport_to_code, '')) <> ''
THEN CONCAT(TRIM(odp.product_airport_from_code), ' → ', TRIM(odp.product_airport_to_code))
WHEN TRIM(COALESCE(odp.product_airport_from_code, '')) <> ''
THEN TRIM(odp.product_airport_from_code)
WHEN TRIM(COALESCE(odp.product_airport_to_code, '')) <> ''
THEN TRIM(odp.product_airport_to_code)
ELSE ''
END AS flight_leg,
CONCAT(
' ',
TRIM(COALESCE(odp.product_airline_code, '')),
' ',
TRIM(COALESCE(odp.product_flight_num, '')),
' ',
TRIM(COALESCE(odp.product_airport_from_code, '')),
CASE
WHEN TIME_FORMAT(odp.product_time, '%%H:%%i') IS NOT NULL
THEN CONCAT(' (', TIME_FORMAT(odp.product_time, '%%H:%%i'), ')')
ELSE ''
END,
' - ',
TRIM(COALESCE(odp.product_airport_to_code, '')),
' '
) AS flight_csv_display,
CASE
WHEN LOWER(TRIM(COALESCE(odp.pickup_type, ''))) LIKE '%%hotel%%'
THEN COALESCE(
NULLIF(TRIM(d_pick_direct.name), ''),
NULLIF(TRIM(odp.division_name), ''),
'—'
)
WHEN LOWER(TRIM(COALESCE(odp.dropoff_type, ''))) LIKE '%%hotel%%'
THEN COALESCE(
NULLIF(TRIM(d_drop_direct.name), ''),
NULLIF(TRIM(odp.division_name), ''),
'—'
)
WHEN COALESCE(odp.is_incoming_fd, 0) = 1 THEN
COALESCE(
NULLIF(TRIM(l_drop.name), ''),
NULLIF(TRIM(l_pick.name), ''),
'—'
)
WHEN COALESCE(odp.is_outgoing_fd, 0) = 1 THEN
COALESCE(
NULLIF(TRIM(l_pick.name), ''),
NULLIF(TRIM(l_drop.name), ''),
'—'
)
ELSE
COALESCE(
NULLIF(TRIM(l_pick.name), ''),
NULLIF(TRIM(l_drop.name), ''),
'—'
)
END AS hotel_name,
COALESCE(NULLIF(TRIM(o.pax_name), ''), NULLIF(TRIM(odp.product_pax_name), ''), '—') AS passenger_name,
o.file_number,
o.ref_number,
o.offer_status_id,
COALESCE(NULLIF(TRIM(os.name), ''), CONCAT('Status #', o.offer_status_id)) AS offer_status_name,
o.client_id,
COALESCE(NULLIF(TRIM(c.name), ''), '—') AS client_name,
o.client_brand_id,
COALESCE(NULLIF(TRIM(cb.name), ''), '') AS client_brand_name,
COALESCE(NULLIF(TRIM(cb.code), ''), '') AS client_brand_code,
odp.supplier_id,
COALESCE(NULLIF(TRIM(s.name), ''), '—') AS supplier_name,
COALESCE(NULLIF(TRIM(odp.hotel_room_number), ''), '') AS hotel_room_number,
COALESCE(NULLIF(TRIM(tc.name), ''), NULLIF(TRIM(p.name), ''), NULLIF(TRIM(odp.product_name), ''), NULLIF(TRIM(odp.service_group_name), ''), '') AS category_name,
COALESCE(NULLIF(TRIM(odp.pickup_name), ''), '') AS pickup_type,
COALESCE(NULLIF(TRIM(odp.product_name), ''), NULLIF(TRIM(odp.service_group_name), ''), '') AS service_name,
'' AS comments,
COALESCE(odp.pax_no, o.pax_no, 0) AS pax_total,
COALESCE(odp.pax_adults, o.pax_adults, 0) AS adults,
COALESCE(odp.pax_children, o.pax_children, 0) AS children,
COALESCE(odp.pax_infants, o.pax_infants, 0) AS infants,
COALESCE(odp.is_outgoing_fd, 0) AS is_outgoing_fd,
COALESCE(odp.is_outgoing_fd_ignore, 0) AS is_outgoing_fd_ignore,
COALESCE(odp.is_incoming_fd, 0) AS is_incoming_fd,
COALESCE(odp.is_transfer_ignore, 0) AS is_transfer_ignore,
COALESCE(NULLIF(TRIM(odp.is_transfer_ignore_reason), ''), '') AS is_transfer_ignore_reason,
COALESCE(NULLIF(TRIM(odp.service_group_name), ''), '') AS service_group_name,
COALESCE(NULLIF(TRIM(odp.product_name), ''), '') AS product_name,
COALESCE(NULLIF(TRIM(odp.product_description), ''), '') AS product_description,
COALESCE(NULLIF(TRIM(odp.division_name), ''), '') AS division_name,
CASE
WHEN LOWER(CONCAT_WS(' ', COALESCE(c.name, ''), COALESCE(cb.name, ''), COALESCE(cb.code, ''))) LIKE '%%bye bye%%'
OR LOWER(CONCAT_WS(' ', COALESCE(c.name, ''), COALESCE(cb.name, ''), COALESCE(cb.code, ''))) LIKE '%%byebye%%'
THEN 'Byebye'
WHEN LOWER(CONCAT_WS(' ', COALESCE(c.name, ''), COALESCE(cb.name, ''), COALESCE(cb.code, ''))) LIKE '%%alltours%%'
OR LOWER(CONCAT_WS(' ', COALESCE(c.name, ''), COALESCE(cb.name, ''), COALESCE(cb.code, ''))) LIKE '%%allt%%'
THEN 'Alltours'
ELSE 'Other'
END AS operator_bucket,
CASE
WHEN COALESCE(odp.is_incoming_fd, 0) = 1 THEN 'arrival'
WHEN COALESCE(odp.is_outgoing_fd, 0) = 1 THEN 'departure'
ELSE 'unknown'
END AS direction,
CASE
WHEN odp.pickup_time IS NULL THEN 1
ELSE 0
END AS pickup_missing
FROM offer_day_products odp
INNER JOIN offers o
ON o.id = odp.offer_id
LEFT JOIN offer_statuses os
ON os.id = o.offer_status_id
LEFT JOIN clients c
ON c.id = o.client_id
LEFT JOIN client_brands cb
ON cb.id = o.client_brand_id
LEFT JOIN suppliers s
ON s.id = odp.supplier_id
LEFT JOIN products p
ON p.id = odp.product_id
LEFT JOIN transfer_categories tc
ON tc.id = p.transfer_category_id
/* pickup/dropoff resolution by type */
LEFT JOIN divisions d_pick_direct
ON d_pick_direct.id = odp.pickup_id
LEFT JOIN locations l_pick
ON l_pick.id = odp.pickup_id
LEFT JOIN divisions d_drop_direct
ON d_drop_direct.id = odp.dropoff_id
LEFT JOIN locations l_drop
ON l_drop.id = odp.dropoff_id
WHERE 1 = 1
AND odp.service_group_id = 3
AND COALESCE(odp.is_optional, 0) = 0
AND (%(date_from)s IS NULL OR odp.odp_date_from >= %(date_from)s)
AND (%(date_to)s IS NULL OR odp.odp_date_from <= %(date_to)s)
AND (%(branch_id)s IS NULL OR o.branch_id = %(branch_id)s)
ORDER BY
service_date,
flight_display,
pickup_time_hm,
hotel_name,
ref_number,
offer_day_product_id;]
[parameters: {'date_from': '', 'date_to': '', 'branch_id': None}]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Check DATABASE_URL and, if needed, adjust SQL in app/blueprints/reports/queries/.
Alltours Departures
Flexible grouping by flight, hotel or date • name list enabled
Current view
0 rows · 0 flights · 0 hotels · 0 pax · By flight · Detailed rows
Department: All departments
All Operators
Active only
By flight
Detailed rows
Rows0
Flights0
Hotels0
Pax0
Adults0
Children0
Infants0
PDF warning
Export Limit Reached
The maximum PDF export range is 5 days.
Please reduce the selected period and try again.
For exports covering a longer date range, please contact the application administrators:
Report error
(pymysql.err.OperationalError) (1525, "Incorrect DATE value: ''")
[SQL: SELECT
odp.id AS offer_day_product_id,
o.id AS offer_id,
o.branch_id,
DATE(odp.odp_date_from) AS service_date,
TIME_FORMAT(odp.pickup_time, '%%H:%%i') AS pickup_time_hm,
TIME_FORMAT(odp.product_time, '%%H:%%i') AS flight_time_hm,
TIME_FORMAT(odp.dropoff_time, '%%H:%%i') AS dropoff_time_hm,
TRIM(
CONCAT(
COALESCE(NULLIF(odp.product_airline_code, ''), ''),
CASE
WHEN TRIM(COALESCE(odp.product_flight_num, '')) <> ''
THEN CONCAT(' ', TRIM(odp.product_flight_num))
ELSE ''
END
)
) AS flight_code,
COALESCE(NULLIF(TRIM(odp.product_flight_num), ''), '') AS flight_num,
COALESCE(NULLIF(TRIM(odp.product_airport_from_code), ''), '') AS airport_from_code,
COALESCE(NULLIF(TRIM(odp.product_airport_to_code), ''), '') AS airport_to_code,
CASE
WHEN TRIM(COALESCE(odp.product_airline_code, '')) <> ''
OR TRIM(COALESCE(odp.product_flight_num, '')) <> ''
THEN TRIM(
CONCAT(
TRIM(COALESCE(odp.product_airline_code, '')),
' ',
TRIM(COALESCE(odp.product_flight_num, ''))
)
)
ELSE 'NO FLIGHT'
END AS flight_display,
CASE
WHEN TRIM(COALESCE(odp.product_airport_from_code, '')) <> ''
AND TRIM(COALESCE(odp.product_airport_to_code, '')) <> ''
THEN CONCAT(TRIM(odp.product_airport_from_code), ' → ', TRIM(odp.product_airport_to_code))
WHEN TRIM(COALESCE(odp.product_airport_from_code, '')) <> ''
THEN TRIM(odp.product_airport_from_code)
WHEN TRIM(COALESCE(odp.product_airport_to_code, '')) <> ''
THEN TRIM(odp.product_airport_to_code)
ELSE ''
END AS flight_leg,
CONCAT(
' ',
TRIM(COALESCE(odp.product_airline_code, '')),
' ',
TRIM(COALESCE(odp.product_flight_num, '')),
' ',
TRIM(COALESCE(odp.product_airport_from_code, '')),
CASE
WHEN TIME_FORMAT(odp.product_time, '%%H:%%i') IS NOT NULL
THEN CONCAT(' (', TIME_FORMAT(odp.product_time, '%%H:%%i'), ')')
ELSE ''
END,
' - ',
TRIM(COALESCE(odp.product_airport_to_code, '')),
' '
) AS flight_csv_display,
CASE
WHEN LOWER(TRIM(COALESCE(odp.pickup_type, ''))) LIKE '%%hotel%%'
THEN COALESCE(
NULLIF(TRIM(d_pick_direct.name), ''),
NULLIF(TRIM(odp.division_name), ''),
'—'
)
WHEN LOWER(TRIM(COALESCE(odp.dropoff_type, ''))) LIKE '%%hotel%%'
THEN COALESCE(
NULLIF(TRIM(d_drop_direct.name), ''),
NULLIF(TRIM(odp.division_name), ''),
'—'
)
WHEN COALESCE(odp.is_incoming_fd, 0) = 1 THEN
COALESCE(
NULLIF(TRIM(l_drop.name), ''),
NULLIF(TRIM(l_pick.name), ''),
'—'
)
WHEN COALESCE(odp.is_outgoing_fd, 0) = 1 THEN
COALESCE(
NULLIF(TRIM(l_pick.name), ''),
NULLIF(TRIM(l_drop.name), ''),
'—'
)
ELSE
COALESCE(
NULLIF(TRIM(l_pick.name), ''),
NULLIF(TRIM(l_drop.name), ''),
'—'
)
END AS hotel_name,
COALESCE(NULLIF(TRIM(o.pax_name), ''), NULLIF(TRIM(odp.product_pax_name), ''), '—') AS passenger_name,
o.file_number,
o.ref_number,
o.offer_status_id,
COALESCE(NULLIF(TRIM(os.name), ''), CONCAT('Status #', o.offer_status_id)) AS offer_status_name,
o.client_id,
COALESCE(NULLIF(TRIM(c.name), ''), '—') AS client_name,
o.client_brand_id,
COALESCE(NULLIF(TRIM(cb.name), ''), '') AS client_brand_name,
COALESCE(NULLIF(TRIM(cb.code), ''), '') AS client_brand_code,
odp.supplier_id,
COALESCE(NULLIF(TRIM(s.name), ''), '—') AS supplier_name,
COALESCE(NULLIF(TRIM(odp.hotel_room_number), ''), '') AS hotel_room_number,
COALESCE(NULLIF(TRIM(tc.name), ''), NULLIF(TRIM(p.name), ''), NULLIF(TRIM(odp.product_name), ''), NULLIF(TRIM(odp.service_group_name), ''), '') AS category_name,
COALESCE(NULLIF(TRIM(odp.pickup_name), ''), '') AS pickup_type,
COALESCE(NULLIF(TRIM(odp.product_name), ''), NULLIF(TRIM(odp.service_group_name), ''), '') AS service_name,
'' AS comments,
COALESCE(odp.pax_no, o.pax_no, 0) AS pax_total,
COALESCE(odp.pax_adults, o.pax_adults, 0) AS adults,
COALESCE(odp.pax_children, o.pax_children, 0) AS children,
COALESCE(odp.pax_infants, o.pax_infants, 0) AS infants,
COALESCE(odp.is_outgoing_fd, 0) AS is_outgoing_fd,
COALESCE(odp.is_outgoing_fd_ignore, 0) AS is_outgoing_fd_ignore,
COALESCE(odp.is_incoming_fd, 0) AS is_incoming_fd,
COALESCE(odp.is_transfer_ignore, 0) AS is_transfer_ignore,
COALESCE(NULLIF(TRIM(odp.is_transfer_ignore_reason), ''), '') AS is_transfer_ignore_reason,
COALESCE(NULLIF(TRIM(odp.service_group_name), ''), '') AS service_group_name,
COALESCE(NULLIF(TRIM(odp.product_name), ''), '') AS product_name,
COALESCE(NULLIF(TRIM(odp.product_description), ''), '') AS product_description,
COALESCE(NULLIF(TRIM(odp.division_name), ''), '') AS division_name,
CASE
WHEN LOWER(CONCAT_WS(' ', COALESCE(c.name, ''), COALESCE(cb.name, ''), COALESCE(cb.code, ''))) LIKE '%%bye bye%%'
OR LOWER(CONCAT_WS(' ', COALESCE(c.name, ''), COALESCE(cb.name, ''), COALESCE(cb.code, ''))) LIKE '%%byebye%%'
THEN 'Byebye'
WHEN LOWER(CONCAT_WS(' ', COALESCE(c.name, ''), COALESCE(cb.name, ''), COALESCE(cb.code, ''))) LIKE '%%alltours%%'
OR LOWER(CONCAT_WS(' ', COALESCE(c.name, ''), COALESCE(cb.name, ''), COALESCE(cb.code, ''))) LIKE '%%allt%%'
THEN 'Alltours'
ELSE 'Other'
END AS operator_bucket,
CASE
WHEN COALESCE(odp.is_incoming_fd, 0) = 1 THEN 'arrival'
WHEN COALESCE(odp.is_outgoing_fd, 0) = 1 THEN 'departure'
ELSE 'unknown'
END AS direction,
CASE
WHEN odp.pickup_time IS NULL THEN 1
ELSE 0
END AS pickup_missing
FROM offer_day_products odp
INNER JOIN offers o
ON o.id = odp.offer_id
LEFT JOIN offer_statuses os
ON os.id = o.offer_status_id
LEFT JOIN clients c
ON c.id = o.client_id
LEFT JOIN client_brands cb
ON cb.id = o.client_brand_id
LEFT JOIN suppliers s
ON s.id = odp.supplier_id
LEFT JOIN products p
ON p.id = odp.product_id
LEFT JOIN transfer_categories tc
ON tc.id = p.transfer_category_id
/* pickup/dropoff resolution by type */
LEFT JOIN divisions d_pick_direct
ON d_pick_direct.id = odp.pickup_id
LEFT JOIN locations l_pick
ON l_pick.id = odp.pickup_id
LEFT JOIN divisions d_drop_direct
ON d_drop_direct.id = odp.dropoff_id
LEFT JOIN locations l_drop
ON l_drop.id = odp.dropoff_id
WHERE 1 = 1
AND odp.service_group_id = 3
AND COALESCE(odp.is_optional, 0) = 0
AND (%(date_from)s IS NULL OR odp.odp_date_from >= %(date_from)s)
AND (%(date_to)s IS NULL OR odp.odp_date_from <= %(date_to)s)
AND (%(branch_id)s IS NULL OR o.branch_id = %(branch_id)s)
ORDER BY
service_date,
flight_display,
pickup_time_hm,
hotel_name,
ref_number,
offer_day_product_id;]
[parameters: {'date_from': '', 'date_to': '', 'branch_id': None}]
(Background on this error at: https://sqlalche.me/e/20/e3q8)