salix/modules/zone/back/methods/zone/getUpcomingDeliveries.js

49 lines
1.2 KiB
JavaScript

module.exports = Self => {
Self.remoteMethod('getUpcomingDeliveries', {
description: 'Returns the upcomings deliveries',
accessType: 'READ',
accepts: [],
returns: {
type: ['object'],
root: true
},
http: {
path: `/getUpcomingDeliveries`,
verb: 'GET'
}
});
Self.getUpcomingDeliveries = async options => {
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);
const [zones] = await Self.rawSql('CALL vn.zone_upcomingDeliveries()', null, myOptions);
if (!zones.length) return;
const details = [];
for (let zone of zones) {
const shipped = zone.shipped;
let zoneDetail = details.find(zone => {
return zone.shipped.toString() == shipped.toString();
});
if (!zoneDetail) {
zoneDetail = {
shipped: shipped,
lines: []
};
details.push(zoneDetail);
}
zoneDetail.lines.push(zone);
}
return details;
};
};