94 lines
3.4 KiB
JavaScript
Executable File
94 lines
3.4 KiB
JavaScript
Executable File
const Component = require(`${appPath}/core/component`);
|
|
const db = require(`${appPath}/core/database`);
|
|
const reportHeader = new Component('report-header');
|
|
const reportFooter = new Component('report-footer');
|
|
|
|
module.exports = {
|
|
name: 'driver-route',
|
|
async serverPrefetch() {
|
|
const routesId = this.routeId.split(',');
|
|
const routes = await this.fetchRoutes(routesId);
|
|
const tickets = await this.fetchTickets(routesId);
|
|
|
|
for (let route of routes) {
|
|
const routeTickets = tickets.filter(ticket => {
|
|
return ticket.routeFk == route.id;
|
|
});
|
|
|
|
route.tickets = routeTickets;
|
|
}
|
|
|
|
this.routes = routes;
|
|
|
|
if (!this.routes)
|
|
throw new Error('Something went wrong');
|
|
},
|
|
methods: {
|
|
fetchRoutes(routesId) {
|
|
return db.rawSql(
|
|
`SELECT
|
|
r.id,
|
|
r.m3,
|
|
r.created,
|
|
r.time,
|
|
u.nickName userNickName,
|
|
v.tradeMark vehicleTradeMark,
|
|
v.model vehicleModel,
|
|
v.numberPlate plateNumber,
|
|
am.name agencyName
|
|
FROM route r
|
|
LEFT JOIN vehicle v ON v.id = r.vehicleFk
|
|
LEFT JOIN worker w ON w.id = r.workerFk
|
|
LEFT JOIN account.user u ON u.id = w.userFk
|
|
LEFT JOIN agencyMode am ON am.id = r.agencyModeFk
|
|
WHERE r.id IN(:routesId)`, {routesId});
|
|
},
|
|
fetchTickets(routesId) {
|
|
return db.rawSql(
|
|
`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,
|
|
vn.ticketGetTotal(t.id) AS import,
|
|
am.name ticketAgency,
|
|
tob.description,
|
|
s.shipFk,
|
|
u.nickName salesPersonName
|
|
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.userFk
|
|
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 stowaway s ON s.id = t.id
|
|
WHERE r.id IN(:routesId)
|
|
ORDER BY t.priority, t.id`, {routesId});
|
|
}
|
|
},
|
|
components: {
|
|
'report-header': reportHeader.build(),
|
|
'report-footer': reportFooter.build()
|
|
},
|
|
props: {
|
|
routeId: {
|
|
required: true
|
|
}
|
|
}
|
|
};
|