@spartacus/core
Version:
Spartacus - the core framework
49 lines • 6.11 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class OrderEntryPromotionsService {
/**
* Get consumed promotions for the given order entry
*
* @param item
* @param promotions
* @returns consumed promotions for this entry
*/
getProductPromotion(item, promotions) {
const entryPromotions = [];
if (promotions && promotions.length > 0) {
for (const promotion of promotions) {
if (promotion.description &&
promotion.consumedEntries &&
promotion.consumedEntries.length > 0) {
for (const consumedEntry of promotion.consumedEntries) {
if (this.isConsumedByEntry(consumedEntry, item)) {
entryPromotions.push(promotion);
}
}
}
}
}
return entryPromotions;
}
isConsumedByEntry(consumedEntry, entry) {
const consumedEntryNumber = consumedEntry.orderEntryNumber;
if (entry && entry.entries && entry.entries.length > 0) {
for (const subEntry of entry.entries) {
if (subEntry.entryNumber === consumedEntryNumber) {
return true;
}
}
return false;
}
else {
return consumedEntryNumber === (entry === null || entry === void 0 ? void 0 : entry.entryNumber);
}
}
}
OrderEntryPromotionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderEntryPromotionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
OrderEntryPromotionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderEntryPromotionsService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: OrderEntryPromotionsService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZW50cnktcHJvbW90aW9ucy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvb2NjL2FkYXB0ZXJzL2NhcnQvY29udmVydGVycy9vcmRlci1lbnRyeS1wcm9tb3Rpb25zLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLDJCQUEyQjtJQUN0Qzs7Ozs7O09BTUc7SUFDSCxtQkFBbUIsQ0FDakIsSUFBcUIsRUFDckIsVUFBOEI7UUFFOUIsTUFBTSxlQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUM5QyxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QyxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRTtnQkFDbEMsSUFDRSxTQUFTLENBQUMsV0FBVztvQkFDckIsU0FBUyxDQUFDLGVBQWU7b0JBQ3pCLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDcEM7b0JBQ0EsS0FBSyxNQUFNLGFBQWEsSUFBSSxTQUFTLENBQUMsZUFBZSxFQUFFO3dCQUNyRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUU7NEJBQy9DLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7eUJBQ2pDO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxpQkFBaUIsQ0FDekIsYUFBMEMsRUFDMUMsS0FBVTtRQUVWLE1BQU0sbUJBQW1CLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBQzNELElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3RELEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDcEMsSUFBSSxRQUFRLENBQUMsV0FBVyxLQUFLLG1CQUFtQixFQUFFO29CQUNoRCxPQUFPLElBQUksQ0FBQztpQkFDYjthQUNGO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNO1lBQ0wsT0FBTyxtQkFBbUIsTUFBSyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsV0FBVyxDQUFBLENBQUM7U0FDbkQ7SUFDSCxDQUFDOzt3SEE5Q1UsMkJBQTJCOzRIQUEzQiwyQkFBMkIsY0FEZCxNQUFNOzJGQUNuQiwyQkFBMkI7a0JBRHZDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvbW90aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvY2FydC5tb2RlbCc7XG5pbXBvcnQgeyBQcm9tb3Rpb25PcmRlckVudHJ5Q29uc3VtZWQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbC9vcmRlci5tb2RlbCc7XG5pbXBvcnQgeyBPY2MgfSBmcm9tICcuLi8uLi8uLi9vY2MtbW9kZWxzL29jYy5tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE9yZGVyRW50cnlQcm9tb3Rpb25zU2VydmljZSB7XG4gIC8qKlxuICAgKiBHZXQgY29uc3VtZWQgcHJvbW90aW9ucyBmb3IgdGhlIGdpdmVuIG9yZGVyIGVudHJ5XG4gICAqXG4gICAqIEBwYXJhbSBpdGVtXG4gICAqIEBwYXJhbSBwcm9tb3Rpb25zXG4gICAqIEByZXR1cm5zIGNvbnN1bWVkIHByb21vdGlvbnMgZm9yIHRoaXMgZW50cnlcbiAgICovXG4gIGdldFByb2R1Y3RQcm9tb3Rpb24oXG4gICAgaXRlbT86IE9jYy5PcmRlckVudHJ5LFxuICAgIHByb21vdGlvbnM/OiBQcm9tb3Rpb25SZXN1bHRbXVxuICApOiBQcm9tb3Rpb25SZXN1bHRbXSB7XG4gICAgY29uc3QgZW50cnlQcm9tb3Rpb25zOiBQcm9tb3Rpb25SZXN1bHRbXSA9IFtdO1xuICAgIGlmIChwcm9tb3Rpb25zICYmIHByb21vdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBwcm9tb3Rpb24gb2YgcHJvbW90aW9ucykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcHJvbW90aW9uLmRlc2NyaXB0aW9uICYmXG4gICAgICAgICAgcHJvbW90aW9uLmNvbnN1bWVkRW50cmllcyAmJlxuICAgICAgICAgIHByb21vdGlvbi5jb25zdW1lZEVudHJpZXMubGVuZ3RoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbnN1bWVkRW50cnkgb2YgcHJvbW90aW9uLmNvbnN1bWVkRW50cmllcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNDb25zdW1lZEJ5RW50cnkoY29uc3VtZWRFbnRyeSwgaXRlbSkpIHtcbiAgICAgICAgICAgICAgZW50cnlQcm9tb3Rpb25zLnB1c2gocHJvbW90aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVudHJ5UHJvbW90aW9ucztcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NvbnN1bWVkQnlFbnRyeShcbiAgICBjb25zdW1lZEVudHJ5OiBQcm9tb3Rpb25PcmRlckVudHJ5Q29uc3VtZWQsXG4gICAgZW50cnk6IGFueVxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBjb25zdW1lZEVudHJ5TnVtYmVyID0gY29uc3VtZWRFbnRyeS5vcmRlckVudHJ5TnVtYmVyO1xuICAgIGlmIChlbnRyeSAmJiBlbnRyeS5lbnRyaWVzICYmIGVudHJ5LmVudHJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBzdWJFbnRyeSBvZiBlbnRyeS5lbnRyaWVzKSB7XG4gICAgICAgIGlmIChzdWJFbnRyeS5lbnRyeU51bWJlciA9PT0gY29uc3VtZWRFbnRyeU51bWJlcikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb25zdW1lZEVudHJ5TnVtYmVyID09PSBlbnRyeT8uZW50cnlOdW1iZXI7XG4gICAgfVxuICB9XG59XG4iXX0=