/** * @Name: Cart Utils * @Creation Date: Aug 28, 2017 * @Author: sbaireddy * @Version: 1.0 : */ import { IPackage, IRateplan, IDevice, IDeviceItem, IFeature, IAccessory, IAccessoryItem } from './modal/common'; import { User } from './modal/user'; import { Cart } from './modal/cart'; import { Customer } from './modal/customer'; /** Deafult Class representing the cart utils for application. */ export default class CartUtils { private COMPONENT_NAME; /** get rateplan input */ static createRateplanInput(packageType: String, rateplan: IRateplan): any; /** get feature input */ static createFeatureInput(packageType: String, feature: IFeature): any; /** get device input */ static createDeviceInput(packageType: String, device: IDevice, financeType: string, crp: number): any; /** get accessory input */ static createAccessoryInput(packageType: String, accessory: IAccessory, financeType: string, crp: number): any; /** switchDeviceFinanceInput input */ static switchDeviceFinanceInput(packageType: String, deviceItem: IDeviceItem, financeType: string, crp: number): any; /** switch Accessory Finance input */ static switchAccessoryFinanceInput(packageType: String, accessoryItem: IAccessoryItem, financeType: string, crp: number): any; /** get createPackageInput */ static createPackageInput(packageType: String, totalLines: number, packageId: number): any; /** get adjustPriceInput */ static adjustPriceInput(cart: any): any; /** make sure non zero value */ static replaceNullWithZero(cart: Cart): Cart; static totalProductsDueToday(cart: Cart): number; static totalServicesDueMonthly(cart: Cart): number; static totalFinancesDueMonthly(cart: Cart): number; static totalDiscountsDueMonthly(cart: Cart, showAutopay: boolean): number; static totalDiscountsDueToday(cart: Cart): number; static totalDepositsDueToday(cart: Cart): number; static totalTaxDueToday(cart: Cart): number; static totalShippingDueToday(cart: Cart): number; static totalDueMonthly(cart: Cart, showAutopay: boolean): number; static totalDueToday(cart: Cart): number; static hasTaxCalculated(cart: Cart): boolean; static getTaxRate(cart: Cart): number; static estTotalTaxDueToday(cart: Cart, taxRate: number): number; static estTotalDueToday(cart: Cart): number; static canValidateAddress(addressModel: any): boolean; static validateAddressInput(address: any): any; static createAddressInput(address: any): any; /** get canSwitchCreditType */ static canSwitchCreditType(cart: Cart, creditType: string): boolean; /** get hasRateplanFeature */ static hasRateplanFeature(cart: Cart): boolean; /** get eligibleAddPackage */ static eligibleAddPackage(packageType: string, cart: Cart): any; /** get createCartInput */ static createCartInput(storeId: number, user: User): any; /** get create cart input for return/exchange/credit from original order */ static createRefCartInput(cart: Cart, refType: string, dealerCode: string): any; /** get maximumPayExra */ static maximumPayExra(cart: Cart): number; /** get voicePackageCount */ static voicePackageCount(cart: Cart): number; /** get miPackageCount */ static miPackageCount(cart: Cart): number; /** get accessoryPackageCount */ static accessoryPackageCount(cart: Cart): number; /** get eligibleForAddItem */ static eligibleForAddItem(cart: Cart, rateplan: IRateplan): boolean; static noOfLinesExceeded(cart: Cart, customer: Customer): boolean; static numberOfVoiceLines(cart: Cart, customer: Customer): number; /** isDuplicateSIMNumber */ static isDuplicateSIMNumber(cart: Cart, simNumber: string): boolean; /** get canAddByosToCart */ static canAddByosToCart(cart: Cart): boolean; /** get isBYOSOnlyOrder */ static isBYOSOnlyOrder(cart: Cart): boolean; /** get isEIPOnlyOrder */ static isEIPOnlyOrder(cart: Cart): boolean; /** get isJUMPOnlyOrder */ static isJUMPOnlyOrder(cart: Cart): boolean; /** get isFinanceOrder */ static isFinanceOrder(cart: Cart): boolean; /** get isFinanceOrder */ static isPooledPackage(cart: Cart, packageType: string): boolean; static isNCFPlanInCart(cart: Cart): boolean; static isNCFPlanInAccount(customer: Customer): boolean; static isTIPlanInCart(cart: Cart): boolean; static isTIPlanInAccount(customer: Customer): boolean; static isPooledPlanInCart(cart: Cart): boolean; static isPooledPlanInAccount(customer: Customer): boolean; static isVoicePlanInAccount(customer: Customer): boolean; static isVoiceDataInCart(cart: Cart): boolean; static hasPlanInCart(cart: Cart): boolean; static hasSubscribersInAccount(customer: Customer): boolean; static isTradeinCart(cart: Cart): boolean; static replaceAddress(addressModel: any, response: any): any; static getMaxVoiceLines(customer: Customer): number; static getMaxDataLines(customer: Customer): number; static replaceRequired(original: Cart, replace: Cart): Cart; /** get current package */ static getCurrentPackage(cart: Cart): IPackage; /** get first package */ static getFirstPackage(cart: Cart, packageType: string): IPackage; /** get active package with requested type */ static getActivePackage(cart: Cart, packageType: string): IPackage; /** get package */ static getPackage(cart: Cart, packageId: number, lineId: number): IPackage; /** add package */ static addPackage(cart: Cart, packages: IPackage[]): Cart; /** update package */ static updatePackage(cart: Cart, packageLine: IPackage): Cart; static getLineName(pack: IPackage): Object; static setPackageRoute(type: String): { 'type': string; 'routerLink': string; }; static getPrimaryLine(cart: any, item: any): string; /** Method to find isVirtualOnlyOrder in the cart*/ static isVirtualOnlyOrder(cart: Cart): boolean; /** Method to find isAALOrder in the cart*/ static isAALOrder(cart: Cart): boolean; /** Method to find feature product Ids for ACC/PROD level subscriber lines in the cart*/ static getAccProdLevelFeatureList(cart: Cart): Array; static validateSurveyInput(survey: any): any; }