UNPKG

@vendasta/store

Version:

Components and data for Store

64 lines 10.1 kB
import { Injectable } from '@angular/core'; import { RevenueComponent, RevenuePeriod } from '@vendasta/sales-orders'; import * as i0 from "@angular/core"; export class OrderSummaryService { static getPriceSummary(items) { if (!items) { return { items: [], includesUndefinedPricing: false }; } let includesUndefinedPricing = false; const summaryItems = items.reduce((currentArray, item) => { if (!(item.lineItem.currentRevenue?.revenueComponents?.length > 0)) { includesUndefinedPricing = true; return currentArray; } item.lineItem.currentRevenue.revenueComponents.map((revenueComponent) => { if (!revenueComponent || revenueComponent.value < 0) { includesUndefinedPricing = true; return; } const period = revenueComponent.period || RevenuePeriod.ONETIME; const isStartingRevenue = revenueComponent.isStartingRevenue; const existingCurIndex = currentArray.findIndex((si) => si.currencyCode === item.lineItem.currencyCode); let summaryItem = { currencyCode: item.lineItem.currencyCode, currency: item.lineItem.currency, revenueComponents: [], }; if (existingCurIndex > -1) { summaryItem = currentArray[existingCurIndex]; } const existingFreqIndex = summaryItem.revenueComponents.findIndex((rc) => rc.period === period); const quantifiedPrice = (revenueComponent.value || 0) * item.lineItem.quantity; if (existingFreqIndex > -1) { summaryItem.revenueComponents[existingFreqIndex] = new RevenueComponent({ value: summaryItem.revenueComponents[existingFreqIndex].value + quantifiedPrice, period: period, isStartingRevenue: summaryItem.revenueComponents[existingFreqIndex].isStartingRevenue || isStartingRevenue, }); } else { summaryItem.revenueComponents.push(new RevenueComponent({ value: quantifiedPrice, period: period, isStartingRevenue: isStartingRevenue, })); } if (existingCurIndex > -1) { currentArray[existingCurIndex] = summaryItem; } else { currentArray.push(summaryItem); } }); return currentArray; }, []); return { items: summaryItems, includesUndefinedPricing: includesUndefinedPricing }; } } OrderSummaryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: OrderSummaryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); OrderSummaryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: OrderSummaryService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: OrderSummaryService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItc3VtbWFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zdG9yZS9zcmMvbGliL29yZGVyLXN1bW1hcnkvb3JkZXItc3VtbWFyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFZLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUluRixNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBbUI7UUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSx3QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFDckMsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2xFLHdCQUF3QixHQUFHLElBQUksQ0FBQztnQkFDaEMsT0FBTyxZQUFZLENBQUM7YUFDckI7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO2dCQUN0RSxJQUFJLENBQUMsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDbkQsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO29CQUNoQyxPQUFPO2lCQUNSO2dCQUVELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDO2dCQUNoRSxNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDO2dCQUU3RCxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEcsSUFBSSxXQUFXLEdBQWdCO29CQUM3QixZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZO29CQUN4QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO29CQUNoQyxpQkFBaUIsRUFBRSxFQUFFO2lCQUN0QixDQUFDO2dCQUNGLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ3pCLFdBQVcsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDOUM7Z0JBRUQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDO2dCQUNoRyxNQUFNLGVBQWUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDL0UsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDMUIsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQzt3QkFDdEUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssR0FBRyxlQUFlO3dCQUMvRSxNQUFNLEVBQUUsTUFBTTt3QkFDZCxpQkFBaUIsRUFBRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxpQkFBaUI7cUJBQzNHLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUNoQyxJQUFJLGdCQUFnQixDQUFDO3dCQUNuQixLQUFLLEVBQUUsZUFBZTt3QkFDdEIsTUFBTSxFQUFFLE1BQU07d0JBQ2QsaUJBQWlCLEVBQUUsaUJBQWlCO3FCQUNyQyxDQUFDLENBQ0gsQ0FBQztpQkFDSDtnQkFDRCxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUN6QixZQUFZLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxXQUFXLENBQUM7aUJBQzlDO3FCQUFNO29CQUNMLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQ2hDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDUCxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0IsRUFBRSxDQUFDO0lBQ3JGLENBQUM7O2dIQXpEVSxtQkFBbUI7b0hBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VycmVuY3ksIFJldmVudWVDb21wb25lbnQsIFJldmVudWVQZXJpb2QgfSBmcm9tICdAdmVuZGFzdGEvc2FsZXMtb3JkZXJzJztcbmltcG9ydCB7IFN1bW1hcnlJdGVtLCBVSUxpbmVJdGVtIH0gZnJvbSAnLi4vb3JkZXItZm9ybS9vcmRlci1pdGVtLWxpc3QvaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9yZGVyU3VtbWFyeVNlcnZpY2Uge1xuICBzdGF0aWMgZ2V0UHJpY2VTdW1tYXJ5KGl0ZW1zOiBVSUxpbmVJdGVtW10pOiB7IGl0ZW1zOiBTdW1tYXJ5SXRlbVtdOyBpbmNsdWRlc1VuZGVmaW5lZFByaWNpbmc6IGJvb2xlYW4gfSB7XG4gICAgaWYgKCFpdGVtcykge1xuICAgICAgcmV0dXJuIHsgaXRlbXM6IFtdLCBpbmNsdWRlc1VuZGVmaW5lZFByaWNpbmc6IGZhbHNlIH07XG4gICAgfVxuICAgIGxldCBpbmNsdWRlc1VuZGVmaW5lZFByaWNpbmcgPSBmYWxzZTtcbiAgICBjb25zdCBzdW1tYXJ5SXRlbXMgPSBpdGVtcy5yZWR1Y2UoKGN1cnJlbnRBcnJheSwgaXRlbSkgPT4ge1xuICAgICAgaWYgKCEoaXRlbS5saW5lSXRlbS5jdXJyZW50UmV2ZW51ZT8ucmV2ZW51ZUNvbXBvbmVudHM/Lmxlbmd0aCA+IDApKSB7XG4gICAgICAgIGluY2x1ZGVzVW5kZWZpbmVkUHJpY2luZyA9IHRydWU7XG4gICAgICAgIHJldHVybiBjdXJyZW50QXJyYXk7XG4gICAgICB9XG5cbiAgICAgIGl0ZW0ubGluZUl0ZW0uY3VycmVudFJldmVudWUucmV2ZW51ZUNvbXBvbmVudHMubWFwKChyZXZlbnVlQ29tcG9uZW50KSA9PiB7XG4gICAgICAgIGlmICghcmV2ZW51ZUNvbXBvbmVudCB8fCByZXZlbnVlQ29tcG9uZW50LnZhbHVlIDwgMCkge1xuICAgICAgICAgIGluY2x1ZGVzVW5kZWZpbmVkUHJpY2luZyA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGVyaW9kID0gcmV2ZW51ZUNvbXBvbmVudC5wZXJpb2QgfHwgUmV2ZW51ZVBlcmlvZC5PTkVUSU1FO1xuICAgICAgICBjb25zdCBpc1N0YXJ0aW5nUmV2ZW51ZSA9IHJldmVudWVDb21wb25lbnQuaXNTdGFydGluZ1JldmVudWU7XG5cbiAgICAgICAgY29uc3QgZXhpc3RpbmdDdXJJbmRleCA9IGN1cnJlbnRBcnJheS5maW5kSW5kZXgoKHNpKSA9PiBzaS5jdXJyZW5jeUNvZGUgPT09IGl0ZW0ubGluZUl0ZW0uY3VycmVuY3lDb2RlKTtcbiAgICAgICAgbGV0IHN1bW1hcnlJdGVtOiBTdW1tYXJ5SXRlbSA9IHtcbiAgICAgICAgICBjdXJyZW5jeUNvZGU6IGl0ZW0ubGluZUl0ZW0uY3VycmVuY3lDb2RlLFxuICAgICAgICAgIGN1cnJlbmN5OiBpdGVtLmxpbmVJdGVtLmN1cnJlbmN5LFxuICAgICAgICAgIHJldmVudWVDb21wb25lbnRzOiBbXSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGV4aXN0aW5nQ3VySW5kZXggPiAtMSkge1xuICAgICAgICAgIHN1bW1hcnlJdGVtID0gY3VycmVudEFycmF5W2V4aXN0aW5nQ3VySW5kZXhdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhpc3RpbmdGcmVxSW5kZXggPSBzdW1tYXJ5SXRlbS5yZXZlbnVlQ29tcG9uZW50cy5maW5kSW5kZXgoKHJjKSA9PiByYy5wZXJpb2QgPT09IHBlcmlvZCk7XG4gICAgICAgIGNvbnN0IHF1YW50aWZpZWRQcmljZSA9IChyZXZlbnVlQ29tcG9uZW50LnZhbHVlIHx8IDApICogaXRlbS5saW5lSXRlbS5xdWFudGl0eTtcbiAgICAgICAgaWYgKGV4aXN0aW5nRnJlcUluZGV4ID4gLTEpIHtcbiAgICAgICAgICBzdW1tYXJ5SXRlbS5yZXZlbnVlQ29tcG9uZW50c1tleGlzdGluZ0ZyZXFJbmRleF0gPSBuZXcgUmV2ZW51ZUNvbXBvbmVudCh7XG4gICAgICAgICAgICB2YWx1ZTogc3VtbWFyeUl0ZW0ucmV2ZW51ZUNvbXBvbmVudHNbZXhpc3RpbmdGcmVxSW5kZXhdLnZhbHVlICsgcXVhbnRpZmllZFByaWNlLFxuICAgICAgICAgICAgcGVyaW9kOiBwZXJpb2QsXG4gICAgICAgICAgICBpc1N0YXJ0aW5nUmV2ZW51ZTogc3VtbWFyeUl0ZW0ucmV2ZW51ZUNvbXBvbmVudHNbZXhpc3RpbmdGcmVxSW5kZXhdLmlzU3RhcnRpbmdSZXZlbnVlIHx8IGlzU3RhcnRpbmdSZXZlbnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN1bW1hcnlJdGVtLnJldmVudWVDb21wb25lbnRzLnB1c2goXG4gICAgICAgICAgICBuZXcgUmV2ZW51ZUNvbXBvbmVudCh7XG4gICAgICAgICAgICAgIHZhbHVlOiBxdWFudGlmaWVkUHJpY2UsXG4gICAgICAgICAgICAgIHBlcmlvZDogcGVyaW9kLFxuICAgICAgICAgICAgICBpc1N0YXJ0aW5nUmV2ZW51ZTogaXNTdGFydGluZ1JldmVudWUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleGlzdGluZ0N1ckluZGV4ID4gLTEpIHtcbiAgICAgICAgICBjdXJyZW50QXJyYXlbZXhpc3RpbmdDdXJJbmRleF0gPSBzdW1tYXJ5SXRlbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdXJyZW50QXJyYXkucHVzaChzdW1tYXJ5SXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGN1cnJlbnRBcnJheTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIHsgaXRlbXM6IHN1bW1hcnlJdGVtcywgaW5jbHVkZXNVbmRlZmluZWRQcmljaW5nOiBpbmNsdWRlc1VuZGVmaW5lZFByaWNpbmcgfTtcbiAgfVxufVxuIl19