UNPKG

lml-main

Version:

This is now a mono repository published into many standalone packages.

56 lines 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = require("lodash"); const ts_utils_1 = require("@lml/ts-utils"); const stop_1 = require("./stop"); exports.jobIsActive = (state, refId) => state.jobs.flags.active === refId; exports.jobIsExpanded = (state, refId) => state.jobs.flags.allExpanded || state.jobs.flags.expanded[refId] === true; exports.jobIsShowingDirections = (state, refId) => state.jobs.flags.showingDirections === refId; exports.jobIsAllocated = (job) => job && job.currentAllocation && job.currentAllocation.courier ? true : false; exports.getCollectionStop = (job) => { if (!Array.isArray(job.stops)) { console.warn('Job does not have a valid stop', job); return null; } return job.stops.filter(s => s.type === 'collection')[0]; }; exports.getDeliveryStop = (job) => { if (!Array.isArray(job.stops)) { console.warn('Job does not have a valid stop', job); return null; } return job.stops.filter(s => s.type === 'delivery')[0]; }; exports.getCollectionWindow = (jobs) => { const stop = exports.getCollectionStop(jobs); return stop ? stop_1.getStopWindow(stop) : null; }; exports.getDeliveryWindow = (jobs) => { const stop = exports.getCollectionStop(jobs); return stop ? stop_1.getStopWindow(stop) : null; }; exports.isRejected = (job) => job.lastAction === 'REJECTED'; exports.isAccepted = (job) => job.lastAction === 'ACCEPTED'; exports.isAcknowledged = (job) => job.lastAction === 'ACK'; exports.isNotAcknowledged = (job) => job.lastAction === 'NACK'; exports.getItems = (job) => job.metadata && Number.isInteger(job.metadata.items) ? job.metadata.items : 0; exports.timeToPickup = (job) => mkTimeDiffInMinutes(job.pickupBy); exports.timeToComplete = (job) => mkTimeDiffInMinutes(job.completeBy); const mkTimeDiffInMinutes = (date) => { if (typeof date === 'string') { return Math.floor(ts_utils_1.diffNow(date) / 60000); } return 0; }; exports.isJobCurrentlyProcessed = (jobStatus) => !(jobStatus.status === 'live' || jobStatus.status === 'completed'); exports.getCollectionPostcode = (job) => { const stop = exports.getCollectionStop(job); return lodash_1.get(stop, 'location.address.postcode', 'Unknown'); }; exports.getDeliveryPostcode = (job) => { const stop = exports.getDeliveryStop(job); return lodash_1.get(stop, 'location.address.postcode', 'Unknown'); }; exports.jobTypeIsReturnToDepot = (job) => lodash_1.get(job, 'metadata.jobType') === 'return_to_depot'; exports.jobTypeIsCustomerReturn = (job) => lodash_1.get(job, 'metadata.jobType') === 'return'; //# sourceMappingURL=job.js.map