SELECT
    t.nickname addressName,
    t.packages,
    t.priority,
    t.id,
    t.clientFk,
    t.companyFk,
    t.routeFk,
    if(a.phone, a.phone, c.phone) AS phone,
    if(a.mobile, a.mobile, c.mobile) AS mobile,
    wh.name warehouseName,
    a.city,
    a.street,
    a.postalCode,
    LPAD(a.id, 5, '0') AS addressFk,
    p.name province,
    0 AS import,
    am.name ticketAgency,
    tob.description,
    u.nickName salesPersonName,
    ipkg.itemPackingTypes
FROM route r
    LEFT JOIN ticket t ON t.routeFk = r.id
    LEFT JOIN address a ON a.id = t.addressFk
    LEFT JOIN client c ON c.id = t.clientFk
    LEFT JOIN worker w ON w.id = client_getSalesPerson(t.clientFk, CURDATE())
    LEFT JOIN account.user u ON u.id = w.id
    LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id AND tob.observationTypeFk = 3
    LEFT JOIN province p ON a.provinceFk = p.id
    LEFT JOIN warehouse wh ON wh.id = t.warehouseFk
    LEFT JOIN agencyMode am ON am.id = t.agencyModeFk
    LEFT JOIN (
        SELECT t.id AS ticketFk, 
               GROUP_CONCAT(DISTINCT(i.itemPackingTypeFk)) AS itemPackingTypes
        FROM route r
            JOIN ticket t ON t.routeFk = r.id
            JOIN sale s ON s.ticketFk = t.id
            JOIN item i ON i.id = s.itemFk
        WHERE r.id IN (?)
        GROUP BY t.id
    ) ipkg ON ipkg.ticketFk = t.id
WHERE r.id IN (?)
ORDER BY t.priority, t.id;