Untitled
unknown
javascript
a year ago
2.4 kB
6
Indexable
export function calculateTAT(serviceRequest, statusHistory) {
console.log('serviceRequest', serviceRequest)
console.log('statusHistory', statusHistory)
const createdAt = new Date(serviceRequest.createdAt);
function getEarliestDate(statusList) {
for (const status of statusList) {
const statusEntry = statusHistory.find(entry => entry.status === status);
if (statusEntry) {
return new Date(statusEntry.date);
}
}
return null
}
function getDateForStatus(status) {
const statusEntry = statusHistory.find(entry => entry.status === status);
if (statusEntry) {
return new Date(statusEntry.date);
}
return null;
}
function getLatestDate(statusList) {
for (const status of [...statusList].reverse()) {
const statusEntry = statusHistory.find(entry => entry.status === status);
if (statusEntry) {
return new Date(statusEntry.date);
}
}
return null
}
const earliestVisitStatusDate = getLatestDate(visitStatuses);
const earliestQuoteSubmissionStatusDate = getLatestDate(quoteSubmissionStatuses);
const earliestQuoteApprovalStatusDate = getLatestDate(quoteApprovalStatuses);
const earliestWorkCompletedStatusDate = getEarliestDate(workCompletedStatuses);
console.log('')
//quoteApproaval = earliestQuoate
const tat = {
visitTAT: earliestVisitStatusDate ? msToDays(earliestVisitStatusDate - createdAt) : null,
quoteSubmissionTAT: earliestQuoteSubmissionStatusDate ? msToDays(earliestQuoteSubmissionStatusDate - createdAt) : null,
quoteApprovalTAT: earliestQuoteApprovalStatusDate ? msToDays(earliestQuoteApprovalStatusDate - getDateForStatus('QUOTATION_APPROVAL_PENDING')) : null,
workCompletedTAT: earliestWorkCompletedStatusDate ? msToDays(earliestWorkCompletedStatusDate - getDateForStatus('QUOTATION_APPROVED')) : null,
visitCompleted: earliestVisitStatusDate !== null,
quoteSubmitted: earliestQuoteSubmissionStatusDate !== null,
workCompleted: earliestWorkCompletedStatusDate !== null,
quoteApproved: earliestQuoteApprovalStatusDate !== null
};
Object.keys(tat).forEach(key => {
if (key.endsWith('TAT') && tat[key] >= 1980) {
tat[key] = 'N/A'
}
})
return tat;
}
Editor is loading...
Leave a Comment