Untitled
unknown
javascript
6 months ago
2.4 kB
2
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