2019-11-04 12:55:20 +00:00
|
|
|
const Component = require(`${appPath}/core/component`);
|
2019-11-07 10:19:05 +00:00
|
|
|
const db = require(`${appPath}/core/database`);
|
2019-11-04 12:55:20 +00:00
|
|
|
const reportHeader = new Component('report-header');
|
|
|
|
const reportFooter = new Component('report-footer');
|
2019-04-10 07:45:45 +00:00
|
|
|
|
|
|
|
module.exports = {
|
2019-11-06 07:20:45 +00:00
|
|
|
name: 'driver-route',
|
2019-11-04 12:55:20 +00:00
|
|
|
async serverPrefetch() {
|
|
|
|
this.route = await this.fetchRoute(this.routeId);
|
|
|
|
this.tickets = await this.fetchTickets(this.routeId);
|
2019-04-10 07:45:45 +00:00
|
|
|
|
2019-11-04 12:55:20 +00:00
|
|
|
if (!this.route)
|
|
|
|
throw new Error('Something went wrong');
|
|
|
|
},
|
2019-04-10 07:45:45 +00:00
|
|
|
methods: {
|
2019-11-04 12:55:20 +00:00
|
|
|
fetchRoute(id) {
|
|
|
|
return db.findOne(
|
2019-04-15 12:34:33 +00:00
|
|
|
`SELECT
|
2019-04-10 07:45:45 +00:00
|
|
|
r.id,
|
2019-04-15 12:34:33 +00:00
|
|
|
r.m3,
|
|
|
|
r.created,
|
2019-04-10 07:45:45 +00:00
|
|
|
r.time,
|
2019-04-15 12:34:33 +00:00
|
|
|
u.nickName userNickName,
|
|
|
|
v.tradeMark vehicleTradeMark,
|
|
|
|
v.model vehicleModel,
|
|
|
|
v.numberPlate plateNumber,
|
|
|
|
am.name agencyName
|
2019-04-10 07:45:45 +00:00
|
|
|
FROM route r
|
2019-04-15 12:34:33 +00:00
|
|
|
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
|
2019-11-04 12:55:20 +00:00
|
|
|
WHERE r.id = :routeId`, {routeId: id});
|
2019-04-10 07:45:45 +00:00
|
|
|
},
|
2019-11-04 12:55:20 +00:00
|
|
|
fetchTickets(routeId) {
|
2019-11-18 14:04:51 +00:00
|
|
|
return db.rawSql(
|
2019-04-15 12:34:33 +00:00
|
|
|
`SELECT
|
|
|
|
t.nickname addressName,
|
|
|
|
t.packages,
|
|
|
|
t.priority,
|
|
|
|
t.id,
|
|
|
|
t.clientFk,
|
|
|
|
t.companyFk,
|
|
|
|
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
|
2019-11-20 11:42:10 +00:00
|
|
|
LEFT JOIN worker w ON w.id = client_getSalesPerson(t.clientFk, CURDATE())
|
2019-04-15 12:34:33 +00:00
|
|
|
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 = ?
|
2019-11-04 12:55:20 +00:00
|
|
|
ORDER BY t.priority, t.id`, [routeId]);
|
|
|
|
}
|
2019-04-15 12:34:33 +00:00
|
|
|
},
|
|
|
|
components: {
|
2019-11-04 12:55:20 +00:00
|
|
|
'report-header': reportHeader.build(),
|
|
|
|
'report-footer': reportFooter.build()
|
2019-04-10 07:45:45 +00:00
|
|
|
},
|
2019-11-04 12:55:20 +00:00
|
|
|
props: {
|
|
|
|
routeId: {
|
|
|
|
required: true
|
|
|
|
}
|
|
|
|
}
|
2019-04-10 07:45:45 +00:00
|
|
|
};
|