{"version":3,"file":"static/js/ccba4daa2c6992a5bf20.bundle.js","mappings":"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","sources":["webpack://@msdyn365-commerce-partners/fabrikam/../../src/action-registrar.ts?ed12","webpack://@msdyn365-commerce-partners/fabrikam/../../src/create-data-action.vnext.ts?cb4f","webpack://@msdyn365-commerce-partners/fabrikam/../../src/wrap-data-action.ts?c6a2","webpack://@msdyn365-commerce-partners/fabrikam/../../src/create-data-action-hook.ts?619e","webpack://@msdyn365-commerce-partners/fabrikam/../../src/action-error.ts?76a5","webpack://@msdyn365-commerce-partners/fabrikam/../../src/action-runtime-utils.ts?df0b","webpack://@msdyn365-commerce-partners/fabrikam/../../../src/cache/retail-cache-helper.ts?35f4","webpack://@msdyn365-commerce-partners/fabrikam/../../src/event-emitter.ts?da67","webpack://@msdyn365-commerce-partners/fabrikam/../../src/action-executor.ts?e3c4","webpack://@msdyn365-commerce-partners/fabrikam/../../src/action-context.ts?0ab9","webpack://@msdyn365-commerce-partners/fabrikam/../../src/mock-helper.ts?6126","webpack://@msdyn365-commerce-partners/fabrikam/../../../src/actions/get-catalogs.ts?b35c","webpack://@msdyn365-commerce-partners/fabrikam/../../src/ICache.ts?b706","webpack://@msdyn365-commerce-partners/fabrikam/../../src/cache-utils.ts?471a","webpack://@msdyn365-commerce-partners/fabrikam/../../src/request-cache.ts?b274","webpack://@msdyn365-commerce-partners/fabrikam/../../src/index.ts?0e3e","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/BusinessPartnerUsersDataActions.g.ts?c8e5","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/BusinessPartnersDataActions.g.ts?502e","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/CartsDataActions.g.ts?f2f8","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/CatalogsDataActions.g.ts?8b5c","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/CommerceListsDataActions.g.ts?d44a","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/CustomersDataActions.g.ts?081a","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/OrgUnitsDataActions.g.ts?c88f","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/ProductListsDataActions.g.ts?81df","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/ProductsDataActions.g.ts?8ea2","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/RecommendationsDataActions.g.ts?31c0","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/SalesOrdersDataActions.g.ts?4e0c","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/ScanResultsDataActions.g.ts?42cd","webpack://@msdyn365-commerce-partners/fabrikam/../../src/DataActions/StoreOperationsDataActions.g.ts?85ae","webpack://@msdyn365-commerce-partners/fabrikam/../src/DataServiceQuery.ts?8aab","webpack://@msdyn365-commerce-partners/fabrikam/../src/DataServiceRequest.ts?423e","webpack://@msdyn365-commerce-partners/fabrikam/../../src/Entities/CommerceModels.g.ts?1e76","webpack://@msdyn365-commerce-partners/fabrikam/../../src/Entities/CommerceTypes.g.ts?34ee","webpack://@msdyn365-commerce-partners/fabrikam/../../src/Interfaces/ICache.ts?0279","webpack://@msdyn365-commerce-partners/fabrikam/../src/async-result.ts?1ea5","webpack://@msdyn365-commerce-partners/fabrikam/../../src/exceptions/ErrorHelper.ts?deca","webpack://@msdyn365-commerce-partners/fabrikam/../../src/exceptions/ErrorParser.ts?d883","webpack://@msdyn365-commerce-partners/fabrikam/../../src/exceptions/ProxyErrorSDK.ts?c06e","webpack://@msdyn365-commerce-partners/fabrikam/../../src/exceptions/ProxyError.ts?f6d3","webpack://@msdyn365-commerce-partners/fabrikam/../../src/extensions/StringExtensions.ts?6e3d","webpack://@msdyn365-commerce-partners/fabrikam/../../src/externals/DataJS.New.ts?f131","webpack://@msdyn365-commerce-partners/fabrikam/../../src/externals/handler.ts?a98d","webpack://@msdyn365-commerce-partners/fabrikam/../../src/externals/helper.ts?18b4","webpack://@msdyn365-commerce-partners/fabrikam/../../src/logging/ConsoleEventWriter.ts?1638","webpack://@msdyn365-commerce-partners/fabrikam/../../src/logging/RetailLogger.ts?9e7e","webpack://@msdyn365-commerce-partners/fabrikam/../../src/logging/Tracer.ts?faf4","webpack://@msdyn365-commerce-partners/fabrikam/../src/retail-action.ts?fc97","webpack://@msdyn365-commerce-partners/fabrikam/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/number-parse-float.js?33d3","webpack://@msdyn365-commerce-partners/fabrikam/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.parse-float.js?752a","webpack://@msdyn365-commerce-partners/fabrikam/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.finally.js?2389"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ActionPostHook,\n ActionPostReaderHook,\n ActionPreHook,\n ActionPreReaderHook,\n IAnyAction,\n msdyn365Commerce\n} from '@msdyn365-commerce/core-internal';\nimport { LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst DEPRECATED_HOOK_TYPES = ['pre', 'post', 'preRead', 'postRead'];\n\nexport namespace ActionRegistrar {\n type ActionHook = ActionPreHook | ActionPostHook;\n\n export type ActionRegistration = {\n action?: IAnyAction;\n pre?: Set;\n post?: Set>;\n preRead?: Set;\n postRead?: Set>;\n preReader?: Set;\n postReader?: Set>;\n };\n\n interface IActionDictionary {\n [actionKey: string]: ActionRegistration;\n }\n\n const dataActionRegister: IActionDictionary = {};\n\n export const getRegistration = (id?: string): ActionRegistration | undefined => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((msdyn365Commerce).getPartnerOverrideAction && id) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const partnerDataAction = (msdyn365Commerce).getPartnerOverrideAction(id);\n if (partnerDataAction && partnerDataAction.default) {\n dataActionRegister[id].action = partnerDataAction.default;\n } else if (partnerDataAction && partnerDataAction.prototype && partnerDataAction.prototype.Action) {\n dataActionRegister[id].action = partnerDataAction;\n }\n }\n\n if (id) {\n return dataActionRegister[id];\n }\n\n return undefined;\n };\n\n export const unwrapAction = (action: IAnyAction): IAnyAction => {\n if (action && action.prototype && !action.prototype.isAction) {\n // registered action is an action wrapper. Unwrap it.\n return >action.prototype.Action;\n }\n return action;\n };\n /**\n * Gets the action registered with id\n * @param id - ID to look up action\n */\n export const getAction = (id?: string): IAnyAction | undefined => {\n if (!id) {\n return;\n }\n const registeredAction = getRegistration(id);\n if (registeredAction) {\n return >registeredAction.action;\n }\n return;\n };\n\n /**\n * registers action. Does nothing if action is already registered\n * @param id - ID to register action with\n * @param action - action to register\n */\n export const registerAction = (id: string, dataAction: IAnyAction): IAnyAction | undefined => {\n if (!id || !dataAction) {\n // unable to register no id or action\n return;\n }\n\n const actionRegister = dataActionRegister;\n\n if (actionRegister[id]) {\n const registration = actionRegister[id];\n registration.action = dataAction;\n return >actionRegister[id].action;\n } else {\n const registration = { action: dataAction };\n actionRegister[id] = registration;\n return dataAction;\n }\n };\n\n const registerHook = (\n hookType: 'pre' | 'post' | 'preRead' | 'postRead' | 'preReader' | 'postReader'\n ) => (id: string, hook: HookType) => {\n // deprecate read only hook\n if (!msdyn365Commerce.isBrowser && DEPRECATED_HOOK_TYPES.indexOf(hookType) > -1) {\n StaticTelemetry.log(\n LogLevel.Warning,\n `Data action hooks are deprecated and will be removed in later versions. Please use data action overrides to extend data actions. The related action of this ${hookType} hook is - ${id}`\n );\n }\n\n const registration = getRegistration(id);\n // coerce hook into an iterable\n const hooks = Array.isArray(hook) ? hook : [hook];\n if (!registration) {\n // If the registration does not exist init one with just the hooks\n const newRegistration: { [id: string]: unknown } = {};\n newRegistration[hookType] = new Set(hooks);\n dataActionRegister[id] = newRegistration;\n } else {\n // If the registration does exist merge new hooks with existing hooks\n const hookRegistration = registration[hookType] || new Set();\n hooks.forEach(h => {\n hookRegistration.add(h);\n });\n // @ts-ignore\n registration[hookType] = hookRegistration;\n }\n return hook;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostHook = registerHook | ActionPostHook[]>('post');\n export const registerPreHook = registerHook('pre');\n export const registerPreReadOnlyHook = registerHook('preRead');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostReadOnlyHook = registerHook | ActionPostHook[]>('postRead');\n export const registerPreReaderHook = registerHook('preReader');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostReaderHook = registerHook | ActionPostReaderHook[]>('postReader');\n\n export const getPreHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.pre;\n };\n\n export const getPostHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.post;\n };\n\n export const getPreReadHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.preRead;\n };\n\n export const getPostReadHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.postRead;\n };\n\n export const getPreReaderHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.preReader;\n };\n export const getPostReaderHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.postReader;\n };\n\n /**\n * Resolves the action and returns first action in action chain. Registers action if not yet registered\n * @param id - Action id to look up or register under\n * @param action - Action function\n */\n export const resolveAction = (id: string, action: IAnyAction): IAnyAction | undefined => {\n return getAction(id) || >registerAction(id, action) || action;\n };\n\n export const resolveRegistration = (\n id: string,\n action: IAnyAction,\n preHooks?: ActionPreHook[],\n postHooks?: ActionPostHook[],\n preReadHooks?: ActionPreHook[],\n postReadHooks?: ActionPostHook[],\n preReaderHooks?: ActionPreReaderHook[],\n postReaderHooks?: ActionPostReaderHook[]\n ) => {\n const resolvedAction = resolveAction(id, action);\n if (!resolvedAction) {\n return;\n }\n preHooks && registerPreHook(id, preHooks);\n postHooks && registerPostHook(id, postHooks);\n preReadHooks && registerPreReadOnlyHook(id, preReadHooks);\n postReadHooks && registerPostReadOnlyHook(id, postReadHooks);\n preReaderHooks && registerPreReaderHook(id, preReaderHooks);\n postReaderHooks && registerPostReaderHook(id, postReaderHooks);\n return getRegistration(id);\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IActionInput, IActionWrapperPrototype, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { dataActionOptions, wrapDataAction } from './wrap-data-action';\n\n/**\n * Higher order function which exposes the current method as an action\n * @param action The action method\n * @param isBatched If the service call can handle batched requests efficiently\n * @param input Optional parameter of a single instance or an array of IActionInputs that will be passed to the action method.\n */\nexport const createObservableDataAction = (options: dataActionOptions): IObservableAction => {\n const wrappedAction = wrapDataAction(\n options,\n (arg1: IActionInput | IActionInput[], arg2: IActionContext): AsyncResult => {\n return new AsyncResult((resolve, reject) => {\n arg2.chainAction(options.action, arg1)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n );\n (wrappedAction.prototype).setProperty('isObservable', true);\n return >wrappedAction;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAction, IActionInput, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { ActionRegistrar } from './action-registrar';\n\nexport type dataActionOptions = {\n action: IAction;\n isBatched?: boolean;\n id?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input?: (...args: any[]) => IActionInput | IActionInput[];\n};\n\ntype IActionWrap = IAction | IObservableAction;\n\n/**\n * Wraps a data action with the associated action wrap.\n * @param options\n * @param actionWrap\n */\nexport const wrapDataAction = (options: dataActionOptions, actionWrap: IActionWrap): IActionWrap => {\n if (!options) {\n throw new Error('wrapDataAction called with invalid options. Options should have atleast action defined');\n }\n\n if (!options.action) {\n throw new Error(\n `Received invalid actions when attempting to parse options. Input name: ${options.input ? options.input.name : 'undefined'}`\n );\n }\n\n let inputFunc = options.input!;\n let id = options.id;\n let isBatched = options.isBatched!;\n options.action.prototype = {\n id,\n isBatched,\n isAction: true\n };\n\n actionWrap.prototype = {\n id,\n isAction: false,\n _action: options.action,\n set RegistrationId(registrationId: string) {\n options.action.prototype.RegistrationId = registrationId;\n },\n get RegistrationId(): string {\n return options.action.prototype.RegistrationId || '';\n },\n set inputFunc(func: Function) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (inputFunc) = func;\n },\n get inputFunc(): Function {\n return inputFunc;\n },\n get isBatched(): boolean {\n return isBatched;\n },\n set isBatched(_isBatched: boolean) {\n isBatched = _isBatched;\n },\n get Action(): IAction {\n return options.action;\n },\n set Action(newAction: IAction) {\n // There are no getter/setters on the action function prototype so this behaves as expected.\n inputFunc = newAction.prototype.input || inputFunc;\n id = newAction.prototype.id || id;\n isBatched = newAction.prototype.isBatched || isBatched;\n newAction.prototype = { ...newAction.prototype, ...options.action.prototype };\n options.action = newAction;\n },\n setProperty: (propertyName: string, value: unknown) => {\n options.action.prototype[propertyName] = value;\n actionWrap.prototype[propertyName] = options.action.prototype[propertyName];\n }\n };\n if (actionWrap.prototype.id) {\n ActionRegistrar.registerAction(actionWrap.prototype.id, actionWrap);\n }\n\n return actionWrap;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ActionPostHook, ActionPostReaderHook, ActionPreHook, ActionPreReaderHook } from '@msdyn365-commerce/core-internal';\nimport { ActionRegistrar } from './action-registrar';\n\ntype dataActionHook = {\n actionId: string;\n preHook?: ActionPreHook;\n postHook?: ActionPostHook;\n preReadonlyHook?: ActionPreHook;\n postReadonlyHook?: ActionPostHook;\n preReaderHook?: ActionPreReaderHook;\n postReaderHook?: ActionPostReaderHook;\n};\n\nexport const createDataActionHook = (options: dataActionHook): void => {\n options.preHook && ActionRegistrar.registerPreHook(options.actionId, options.preHook);\n options.postHook && ActionRegistrar.registerPostHook(options.actionId, options.postHook);\n options.preReadonlyHook && ActionRegistrar.registerPreReadOnlyHook(options.actionId, options.preReadonlyHook);\n options.postReadonlyHook && ActionRegistrar.registerPostReadOnlyHook(options.actionId, options.postReadonlyHook);\n options.preReaderHook && ActionRegistrar.registerPreReaderHook(options.actionId, options.preReaderHook);\n options.postReaderHook && ActionRegistrar.registerPostReaderHook(options.actionId, options.postReaderHook);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Known action error failure states\n */\nexport const enum ActionErrorStatus {\n Timeout = 'Timeout',\n HookTimeout = 'Hook Timeout',\n ServiceUnavailable = 'Service Unavailable'\n}\n\n/**\n * Action Error Wrapper\n */\nexport class ActionError extends Error {\n public static readonly Name: string = 'ActionError';\n\n public error?: unknown;\n public status?: ActionErrorStatus;\n\n /**\n * Checks if an object is an action error\n */\n public static isActionError(error: unknown): boolean {\n return error instanceof Error && (error).name === ActionError.Name;\n }\n\n public static isTimeoutError(error: unknown): boolean {\n return error && (error).status === ActionErrorStatus.Timeout;\n }\n\n public static isServiceUnavailable(error: unknown): boolean {\n return error && (error).status === ActionErrorStatus.ServiceUnavailable;\n }\n\n /**\n * Action Errors\n * @param error Original Error\n */\n constructor(error: ActionErrorStatus | Error);\n constructor(error: Error) {\n super();\n this.name = ActionError.Name;\n if (error instanceof Error) {\n this.message = error.message;\n this.error = error;\n } else {\n if (error === ActionErrorStatus.Timeout) {\n this.status = error;\n this.message = 'Action Timeout';\n } else if (error === ActionErrorStatus.HookTimeout) {\n this.status = error;\n this.message = 'Action hook Timeout';\n } else if (error === ActionErrorStatus.ServiceUnavailable) {\n this.status = error;\n this.message = 'Action failed due to service unavailable';\n } else if (typeof error === 'string') {\n this.message = error;\n } else {\n this.error = error;\n }\n }\n\n // As of Typescript 2.1 if we extend the Error object the prototype must be set explicitly\n // See: https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, ActionError.prototype);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AppCache, ICache } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput } from '@msdyn365-commerce/core-internal';\n\n/**\n * Method to indicate if the action should look in app cache for data\n * @param input ActionInput\n */\nexport const shouldReadFromAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n return !!appCache && input && input.dataCacheType !== undefined && input.dataCacheType() !== 'none';\n};\n\n/**\n * Method to indicate if the action should write in app cache\n * @param input ActionInput\n */\nexport const shouldWriteToAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n return isAppCacheData(input, appCache);\n};\n\n/**\n * Method to indicate if the action's cache type is application\n * @param input ActionInput\n */\nexport const isAppCacheData = (input: IActionInput, appCache: ICache | null): boolean => {\n if (!appCache) {\n return false;\n }\n\n if (input) {\n if (input.dataCacheType !== undefined && input.dataCacheType() === 'application') {\n return true;\n }\n\n // if an entity has a cache setting defined, we cache that entity - caching retail proxy actions\n return (appCache).hasCacheSetting(input.getCacheObjectType());\n }\n\n return false;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheSource } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput, IRequestContext, msdyn365Commerce, verboseLogger } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { IInternalTelemetry, ITelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst GET_FROM_RETURNIDENTIFIER: string = '___GET__FROM__RETURNIDENTIIER___';\n\nexport const addLocaleInformation = (inputs: IActionInput | IActionInput[], locale: string): void => {\n const isArray = Array.isArray(inputs);\n if (isArray) {\n const actionInputs = (inputs || []) as IActionInput[];\n actionInputs.forEach(input => {\n if (input instanceof DataServiceRequest && !input.getCacheKey().endsWith(`-${locale}`)) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const tmp = input._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n input._cacheKeyFromInput = `${tmp}-${locale}`;\n }\n });\n } else {\n if (inputs instanceof DataServiceRequest && !inputs.getCacheKey().endsWith(`-${locale}`)) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const tmp = inputs._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n inputs._cacheKeyFromInput = `${tmp}-${locale}`;\n }\n }\n};\n\nconst _resolveCacheEntryReference = (\n dataServiceRequest: DataServiceRequest,\n item: any,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache?: boolean,\n isWrappingPromise?: boolean,\n isObservable: boolean = true\n) => {\n const cacheValueAsArray = (item.key as string[])\n .map(key => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n const value = requestCache.get({ typeName: cacheObjectType, key });\n if (!value && shouldReadFromAppCache && appCache) {\n appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n }\n\n if (!value || !value.item) {\n return undefined;\n }\n\n const valueItem: any = value.item;\n\n if (isAsyncResult(valueItem)) {\n return valueItem.result;\n }\n\n return valueItem;\n })\n .filter(data => data !== undefined && data !== null);\n\n if ((item.key as string[]).length > cacheValueAsArray.length) {\n return;\n }\n\n // If we are returning a Promise that represents a future collection, we need to unwrap it\n // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n\n return cacheValueAsArray && cacheValueAsArray.length > 0\n ? isReturnTypeACollection && !isWrappingPromise\n ? cacheValueAsArray\n : cacheValueAsArray[0]\n : undefined;\n};\n\nconst logTelemetrySource = (\n cacheValue: ICacheItem,\n dataServiceRequest: DataServiceRequest,\n cacheKey: string,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry\n) => {\n if (!telemetry) {\n return;\n }\n if (!msdyn365Commerce.isBrowser) {\n switch (cacheValue.s!) {\n case ICacheSource.AppCache: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'AppCache']\n });\n break;\n }\n case ICacheSource.RequestCache: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'RequestCache']\n });\n break;\n }\n default: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'Default']\n });\n break;\n }\n }\n }\n};\n\nconst readCacheEntriesBasedOnCacheKeyFromReturnType = (\n dataServiceRequest: DataServiceRequest,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache: boolean,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry,\n isObservable: boolean = true\n): any => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (cacheKeyFromReturnType.length === 0) {\n return { entry: null, shouldRefresh: false };\n }\n let shouldRefreshAll = true;\n const cacheEntries = cacheKeyFromReturnType\n .map((entry: any) => {\n const key = `${cacheKeyIdentifierFromReturnType}-${entry}`;\n\n let cacheValue = requestCache.get({ typeName: cacheObjectType, key });\n\n if (!cacheValue && shouldReadFromAppCache && appCache) {\n cacheValue = appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n }\n\n if (!cacheValue || !cacheValue.item) {\n return null;\n }\n // according to the logic, will treat the entries to shouldRefresh when all entries have shouldRefresh.\n if (!cacheValue.shouldRefresh) {\n shouldRefreshAll = false;\n }\n logTelemetrySource(cacheValue, dataServiceRequest, key, context, telemetry);\n\n return cacheValue.item;\n })\n .filter(Boolean);\n\n // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n const cacheEntriesReturn = cacheEntries && cacheEntries.length > 0 ? (isReturnTypeACollection ? cacheEntries : cacheEntries[0]) : null;\n return { entry: cacheEntriesReturn, shouldRefresh: shouldRefreshAll };\n};\n\nexport const readCacheEntries = (\n dataServiceRequest: DataServiceRequest,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache: boolean = false,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry,\n isObservable: boolean = true\n): any => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (!requestCache || (!dataServiceRequest.getCacheKey() && cacheKeyFromReturnType.length === 0) || !cacheObjectType) {\n return { entry: null, shouldRefresh: false };\n }\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n if (cacheKeyFromInput === GET_FROM_RETURNIDENTIFIER || (cacheKeyIdentifierFromReturnType && cacheKeyFromReturnType.length !== 0)) {\n const entries = readCacheEntriesBasedOnCacheKeyFromReturnType(\n dataServiceRequest,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n context,\n telemetry,\n isObservable\n );\n if (entries && entries.entry) {\n return entries;\n }\n }\n const cacheKey = { typeName: cacheObjectType, key: cacheKeyFromInput };\n\n let cachedValueBasedOnInput = requestCache.get(cacheKey);\n if (cachedValueBasedOnInput) {\n cachedValueBasedOnInput = { ...cachedValueBasedOnInput };\n } else if (shouldReadFromAppCache && appCache) {\n cachedValueBasedOnInput = appCache.copyTo(cacheKey, requestCache, isObservable);\n }\n\n if (!cachedValueBasedOnInput) {\n return readCacheEntriesBasedOnCacheKeyFromReturnType(\n dataServiceRequest,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n context,\n telemetry,\n isObservable\n );\n }\n logTelemetrySource(cachedValueBasedOnInput, dataServiceRequest, cacheKeyFromInput, context, telemetry);\n\n if (cachedValueBasedOnInput.item instanceof AsyncResult) {\n if (cachedValueBasedOnInput.item.status !== 'LOADING') {\n cachedValueBasedOnInput.item = cachedValueBasedOnInput.item.result || cachedValueBasedOnInput.item.error;\n } else {\n const asyncResult = cachedValueBasedOnInput.item.then(result => {\n if (typeof result !== 'object' || result.$ref !== true) {\n return result;\n }\n\n return _resolveCacheEntryReference(\n dataServiceRequest,\n result,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n isObservable\n );\n });\n return { entry: asyncResult, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n }\n }\n\n if (\n typeof cachedValueBasedOnInput.item !== 'object' ||\n (cachedValueBasedOnInput.item &&\n // @ts-ignore -- $ref property does not exists in type object\n cachedValueBasedOnInput.item.$ref !== true)\n ) {\n return { entry: cachedValueBasedOnInput.item, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n }\n\n const cachedValueBasedOnInputItem: any = cachedValueBasedOnInput.item;\n\n const resolvedRef = _resolveCacheEntryReference(\n dataServiceRequest,\n cachedValueBasedOnInput.item,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n isAsyncResult(cachedValueBasedOnInputItem),\n isObservable\n );\n return { entry: resolvedRef, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n};\n\nconst _saveEntityToCache = (\n dataServiceRequest: DataServiceRequest,\n data: any,\n requestCache: ICache,\n appCache: ICache,\n isCacheTypeApplication: boolean,\n isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const dataServiceRequestQuery = dataServiceRequest._query;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType)) {\n return;\n }\n\n const cacheEntries: any = {};\n const results = data;\n\n // using Object.prototype instead of Array.isArray because results can be Observable Array which can't be detected with Array.isArray\n if (!dataServiceRequestQuery.isReturnTypeACollection || Object.prototype.toString.call(results) !== '[object Array]') {\n if (cacheKeyIdentifierFromReturnType) {\n const key = `${cacheKeyIdentifierFromReturnType}-${results[cacheKeyIdentifierFromReturnType]}`;\n cacheEntries[key] = results;\n if (cacheKeyFromInput) {\n let existingCacheItem = requestCache.get({\n typeName: cacheObjectType,\n key: cacheKeyFromInput\n });\n if (existingCacheItem) {\n existingCacheItem = { ...existingCacheItem };\n }\n\n if (\n existingCacheItem &&\n existingCacheItem.item &&\n (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n (typeof existingCacheItem.item !== 'object' ||\n (existingCacheItem &&\n existingCacheItem.item &&\n // @ts-ignore -- $ref property does not exists in type object\n existingCacheItem?.item?.$ref !== true))\n ) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n cacheEntries[cacheKeyFromInput] = {\n $ref: true,\n type: cacheObjectType,\n identifier: cacheKeyIdentifierFromReturnType,\n key: [key],\n // @ts-ignore -- accessing a private class variable which is a valid JS\n count: dataServiceRequest._totalCount\n };\n }\n }\n } else {\n cacheEntries[cacheKeyFromInput] = results;\n }\n } else if (!cacheKeyIdentifierFromReturnType) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n const cacheValue = results\n .map((result: { [x: string]: any }) => {\n const identifierValue = result[cacheKeyIdentifierFromReturnType];\n if (identifierValue) {\n const key = `${cacheKeyIdentifierFromReturnType}-${identifierValue}`;\n cacheEntries[key] = result;\n return key;\n }\n })\n .filter(Boolean);\n let existingCacheItem = requestCache.get({\n typeName: cacheObjectType,\n key: cacheKeyFromInput\n });\n if (existingCacheItem) {\n existingCacheItem = { ...existingCacheItem };\n }\n if (\n existingCacheItem &&\n existingCacheItem.item &&\n (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n (typeof existingCacheItem.item !== 'object' ||\n (existingCacheItem &&\n existingCacheItem.item &&\n // @ts-ignore -- $ref property does not exists in type object\n existingCacheItem.item.$ref !== true))\n ) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n if (existingCacheItem) {\n // @ts-ignore - _cacheObjectType does not exist in type ICacheItem\n const existingCacheObjectType = existingCacheItem._cacheObjectType;\n // @ts-ignore - _cacheKeyIdentifierFromReturnType does not exist in type ICacheItem\n const existingCacheKeyIdentifierFromReturnType = existingCacheItem._cacheKeyIdentifierFromReturnType;\n // @ts-ignore - _query does not exist in type ICacheItem\n const existingCacheIsReturnTypeACollection = existingCacheItem._query.isReturnTypeACollection;\n // @ts-ignore - _totalCount does not exist in type ICacheItem\n const existingCacheTotalCount = existingCacheItem._totalCount;\n\n cacheEntries[cacheKeyFromInput] = {\n $ref: true,\n type: existingCacheObjectType,\n identifier: existingCacheKeyIdentifierFromReturnType,\n isCollection: existingCacheIsReturnTypeACollection,\n key: cacheValue,\n count: existingCacheTotalCount\n };\n }\n }\n }\n\n if (cacheEntries) {\n Object.keys(cacheEntries).map(entryKey => {\n requestCache.put(\n { typeName: cacheObjectType, key: entryKey },\n { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n );\n\n if (appCache && isCacheTypeApplication) {\n appCache.put(\n { typeName: cacheObjectType, key: entryKey },\n { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n );\n }\n });\n }\n\n return cacheEntries;\n};\n\nexport const saveCacheEntries = (\n dataServiceRequest: DataServiceRequest,\n data: AsyncResult | any,\n requestCache: ICache,\n appCache: ICache,\n isCacheTypeApplication: boolean,\n isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n // if return Entity is collection\n // if entity type has identifier/primary key\n // 1. cache array of primay key value of returned entity collection on input cache key\n // 2. cache individual entity on primary key\n // else\n // 1. cache output on input cache key\n //\n // else if entity type has identifier/primary key\n // 2. cache output entity on primary key\n if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType) || !cacheObjectType) {\n return;\n }\n\n if (data instanceof AsyncResult) {\n // For a loading Promise, cache based on input cachekey, and then cache output again once complete\n if (data.status === 'LOADING') {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n data.then((result: any) => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest._totalCount !== undefined) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.count = dataServiceRequest._totalCount;\n }\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest && dataServiceRequest._otherOdata) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.others = dataServiceRequest._otherOdata;\n }\n\n _saveEntityToCache(dataServiceRequest, result, requestCache, appCache, isCacheTypeApplication, isInstance);\n return result;\n });\n requestCache.put(\n { typeName: cacheObjectType, key: cacheKeyFromInput },\n { item: data, ...(isInstance && { instance: 'instance' }) }\n );\n\n if (appCache && isCacheTypeApplication) {\n appCache.put(\n { typeName: cacheObjectType, key: cacheKeyFromInput },\n { item: data, ...(isInstance && { instance: 'instance' }) }\n );\n }\n // For a completed promise, save the action results to the cache\n } else {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest._totalCount !== undefined) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.count = dataServiceRequest._totalCount;\n }\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest && dataServiceRequest._otherOdata) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.others = dataServiceRequest._otherOdata;\n }\n _saveEntityToCache(dataServiceRequest, data.result, requestCache, appCache, isCacheTypeApplication, isInstance);\n return data.result;\n }\n } else {\n return _saveEntityToCache(dataServiceRequest, data, requestCache, appCache, isCacheTypeApplication, isInstance);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { EventEmitter } from 'events';\n\n/** EventEmitter is available in node, but not on the browser,\n * this class attempts to polyfill that so the action context can remain Isomorphic\n */\n/* @internal*/\n\n/**\n * Type for event emitter listener callback\n */\nexport type ListenerCallback = (...args0: T) => void;\n\n/**\n * Generic cast type\n */\nexport type GenericCallback = (...args: any) => void;\n\n/**\n * Custom isomorphic event emitter implementation\n *\n * @export\n * @class CustomEventEmitter\n */\nclass CustomEventEmitter {\n private listeners: Map = new Map();\n private eventEmitter: EventEmitter | null = typeof window !== undefined ? null : new EventEmitter();\n\n public on(event: string, callback: ListenerCallback): void {\n if (!!this.eventEmitter) {\n this.eventEmitter.on(event, callback);\n } else {\n let listeners = this.listeners.get(event);\n if (!!!listeners) {\n listeners = [];\n this.listeners.set(event, listeners);\n }\n\n listeners.push(callback);\n }\n }\n\n public emit(event: string, ...args: T): boolean {\n if (!!this.eventEmitter) {\n return this.eventEmitter.emit(event, args);\n }\n\n const listeners = this.listeners.get(event);\n\n if (listeners && listeners.length) {\n listeners.forEach(listener => {\n listener(...args);\n });\n return true;\n }\n\n return false;\n }\n\n public removeAllListeners(event: string): void {\n if (!!this.eventEmitter) {\n this.eventEmitter.removeAllListeners(event);\n } else {\n this.listeners.delete(event);\n }\n }\n}\n\nexport default new CustomEventEmitter();\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey } from '@msdyn365-commerce/cache-internal';\nimport {\n CacheType,\n IActionContext,\n IActionInput,\n IAnyAction,\n IDataActionOptions,\n msdyn365Commerce,\n verboseLogger,\n checkVersionForFeature,\n getPerformanceUtils\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, ErrorTypeEnum, isAsyncResult, ProxyError } from '@msdyn365-commerce/retail-proxy';\nimport { asSystemMetadata, ITelemetry, LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\nimport { get as _get, uniqWith } from 'lodash';\nimport { toJS } from 'mobx';\nimport uuidv1 from 'uuid/v1';\n\nimport { ActionError, ActionErrorStatus } from './action-error';\nimport { ActionRegistrar } from './action-registrar';\nimport { isAppCacheData, shouldReadFromAppCache, shouldWriteToAppCache } from './action-runtime-utils';\nimport { readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\n\nconst defaultTimeoutInMS: number = 4000;\nconst defaultHookTimeoutInMS: number = 1000;\nexport const CLIENT_HYDRATE_KEY = 'clientHydrateKey';\nexport const CLIENT_HYDRATE_TYPE = 'clientHydrate';\n\nconst Timer = (timeoutInMS: number, message: unknown) => new Promise(resolve => setTimeout(resolve.bind(resolve, message), timeoutInMS));\n\nconst ActionTimer = (timeoutInMS: number) =>\n new Promise((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\nconst ObservableActionTimer = (timeoutInMS: number) =>\n new AsyncResult((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\n/* @internal */\n/**\n * This class contains the logic to batch and de-dupe the actions that can be executed.\n * This class is also responsible for checking and saving the action response to cache.\n */\nexport default class ActionExecutor {\n public readonly action: Function;\n public readonly cacheType: CacheType;\n private readonly isBatched: boolean;\n private readonly eventId: string;\n private readonly isObservable: boolean;\n\n private inputs: IActionInput[];\n /**\n * @param action the action to execute\n * @param inputs the action input\n */\n constructor(action: Function, inputs: IActionInput[], telemetry: ITelemetry, dataActionOption?: IDataActionOptions) {\n this.action = action;\n this.eventId = uuidv1();\n this.inputs = [...inputs]; // Cloning it DO NOT use the reference\n this.isBatched = action.prototype.isBatched;\n\n this.isObservable = action.prototype.isObservable;\n\n // Cache all the calls on browser\n const masterInput = inputs[0];\n\n if (masterInput && masterInput.dataCacheType) {\n this.cacheType = masterInput.dataCacheType();\n } else if (masterInput && masterInput.shouldCacheOutput) {\n this.cacheType = masterInput.shouldCacheOutput() ? 'request' : 'none';\n telemetry.trace('shouldCacheOutput property has been deprecated. Please update the IActionInput to use dataCacheType');\n } else {\n this.cacheType = (dataActionOption && dataActionOption.cacheType) || 'none';\n // for data actions who do not have dataCacheType function, we add customer defined cachtype to the action.\n // this is used for later check if the data acton should be read from app cache.\n inputs.forEach(input => {\n input.dataCacheType = () => this.cacheType;\n });\n telemetry.trace('Neither dataCacheType nor shouldCacheOutput are set. Caching strategy will fall back to \"none\"');\n }\n }\n\n /**\n *\n * @param inputs add more inputs\n */\n public addInputs(inputs: IActionInput[]): void {\n this.inputs.push(...inputs);\n }\n\n /** Execute the action */\n public async execute(\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassAppCache?: boolean,\n refreshingInputs: IActionInput[] = []\n ): Promise {\n const unique: IActionInput[] =\n refreshingInputs && refreshingInputs.length > 0\n ? this._removeDuplicates(refreshingInputs)\n : this._removeDuplicates(this.inputs);\n if (!unique.length) {\n return [];\n }\n\n const actionId = this._getActionIdFromInputs(unique);\n\n const performanceUtils = getPerformanceUtils(msdyn365Commerce, context);\n const executionId = performanceUtils?.performanceUtilsPackage.Random.Guid.generateGuid();\n\n performanceUtils?.performanceUtilsPackage.runPreReadonlyDataActionPerformanceHook({\n actionId,\n executionId,\n internalCache: performanceUtils.cache\n });\n\n const result = await this._executeDataAction(context, requestCache, appCache, bypassAppCache, refreshingInputs, unique, actionId);\n\n performanceUtils?.performanceUtilsPackage.runPostReadonlyDataActionPerformanceHook({\n actionId,\n executionId,\n internalCache: performanceUtils.cache\n });\n\n return result;\n }\n\n private async _executeDataAction(\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassAppCache: boolean | undefined,\n refreshingInputs: IActionInput[],\n unique: IActionInput[],\n actionId: string\n ): Promise {\n const isRefreshingAction = refreshingInputs && refreshingInputs.length > 0;\n\n this._runPreReadHooks(actionId, unique, context)\n .then(() => null)\n .catch(err => null);\n\n // execte preReaderHook\n this._runPreReaderHooks(actionId, unique, context)\n .then(() => null)\n .catch(err => null);\n const [uncached, needsRefresh]: IActionInput[][] = this._checkForCachedData(\n unique,\n context,\n requestCache,\n appCache,\n bypassAppCache,\n isRefreshingAction\n );\n\n if (!uncached.length) {\n // excute readOnly post hook with all cached actions ouptput\n await this._fetchOutputsAndRunPostReadHook(actionId, unique, requestCache, context);\n return needsRefresh;\n } else {\n const cachedActions = unique.filter(value => !uncached.includes(value));\n if (cachedActions.length) {\n // fetch the output for all cached data action, and run readOnly hooks. The uncached actions will be excuted later.\n await this._fetchOutputsAndRunPostReadHook(actionId, cachedActions, requestCache, context);\n }\n }\n\n let outputs: any[] = [];\n\n // VNext observable promise based flow\n // Create the AsyncResult and immediately return it\n if (this.isObservable) {\n if (this.isBatched) {\n this._executeBatchedObservableActions(uncached, requestCache, appCache, context, isRefreshingAction);\n } else {\n this._executeObservableAction(uncached[0], requestCache, appCache, context, isRefreshingAction);\n }\n return needsRefresh;\n }\n\n if (this.isBatched) {\n // TODO: Have a max batch count on the action\n outputs = await this._actionWrapper(uncached, context, isRefreshingAction);\n\n if (outputs && outputs.length !== uncached.length) {\n // TODO Throw\n context.telemetry.log(\n LogLevel.Trace,\n 'Length of input array {uncached_length} does not meet the output array {outputs_length}',\n { values: [uncached.length, outputs.length] }\n );\n }\n } else {\n outputs[0] = await this._actionWrapper(uncached[0], context, isRefreshingAction);\n }\n\n if (!outputs || outputs.length === 0) {\n return needsRefresh;\n }\n\n this._saveResponseToCache(uncached, outputs, context, requestCache, appCache);\n return needsRefresh;\n }\n\n // the retail proxy data actions who do not have return type should not interact with cache.\n private _checkShouldInteractWithCache(input: IActionInput, typeName: string | undefined): boolean {\n return !(input instanceof DataServiceRequest) || !!typeName;\n }\n\n private async _fetchOutputsAndRunPostReadHook(\n actionId: string,\n inputs: IActionInput[],\n requestCache: ICache,\n context: IActionContext\n ): Promise {\n const outputs = inputs.map(i => {\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n // if the retail data action does not have return type, we do not read the output from cache.\n let cacheItem;\n if (this._checkShouldInteractWithCache(i, cacheKey.typeName)) {\n cacheItem = requestCache.get>(cacheKey);\n }\n return !!cacheItem ? requestCache.getValue(cacheKey) : null;\n });\n this._runPostReadHooks(actionId, inputs, outputs, context)\n .then(() => null)\n .catch(err => null);\n this._runPostReaderHooks(actionId, inputs, outputs, context)\n .then(() => null)\n .catch(err => null);\n }\n private _removeDuplicates(inputs: IActionInput[]): IActionInput[] {\n if (!this.isBatched) {\n return inputs;\n }\n\n return uniqWith(\n inputs,\n (inputA: IActionInput, inputB: IActionInput) =>\n inputA.getCacheKey() === inputB.getCacheKey() && inputA.getCacheObjectType() === inputB.getCacheObjectType()\n );\n }\n\n private _getActionIdFromInputs(inputs: IActionInput | IActionInput[]): string {\n let inputsActionId;\n for (const input of Array.isArray(inputs) ? inputs : [inputs]) {\n if (typeof input.getActionId === 'function') {\n inputsActionId = input.getActionId();\n }\n }\n return inputsActionId || (>this.action).prototype.id;\n }\n\n private _getActionFromId(actionId?: string): Function {\n let { action } = this;\n if (actionId) {\n const registration = ActionRegistrar.resolveRegistration(actionId, >action);\n if (registration) {\n action = >registration.action;\n return ActionRegistrar.unwrapAction(>action);\n }\n }\n return action;\n }\n\n private async _runPreReadHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise {\n const preReadHooks = ActionRegistrar.getPreReadHooks(id);\n if (!preReadHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preReadHooksArray = Array.from(preReadHooks);\n return preReadHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPostReaderHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postReaderHooks = ActionRegistrar.getPostReaderHooks(id);\n if (!postReaderHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postReaderHooksArray = Array.from(postReaderHooks);\n return postReaderHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPreReaderHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise {\n const preReaderHooks = ActionRegistrar.getPreReaderHooks(id);\n if (!preReaderHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preReaderHooksArray = Array.from(preReaderHooks);\n return preReaderHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPreHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n context: IActionContext\n ): Promise {\n const preHooks = ActionRegistrar.getPreHooks(id);\n if (!preHooks) {\n return;\n }\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preHooksArray = Array.from(preHooks);\n return preHooksArray.reduce(async (previousTask, currentTask) => {\n const prevInput = await previousTask;\n let tmpNextInput: unknown;\n try {\n tmpNextInput = await Promise.race([timer, currentTask(prevInput, context)]);\n } catch (error) {\n throw error;\n }\n const finalNextInput: IActionInput | IActionInput[] =\n tmpNextInput === ActionErrorStatus.HookTimeout || !tmpNextInput ? prevInput : tmpNextInput;\n return Promise.resolve(finalNextInput);\n }, Promise.resolve(inputs));\n }\n\n private async _runPostReadHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postHooks = ActionRegistrar.getPostReadHooks(id);\n\n if (!postHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postReadHooksArray = Array.from(postHooks);\n return postReadHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPostHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postHooks = ActionRegistrar.getPostHooks(id);\n if (!postHooks) {\n return;\n }\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postHooksArray = Array.from(postHooks);\n return postHooksArray.reduce(async (previousTask, currentTask) => {\n const prevOutput = await previousTask;\n let tmpNextOutput: unknown;\n try {\n tmpNextOutput = await Promise.race([timer, currentTask(inputs, prevOutput, context)]);\n } catch (error) {\n throw error;\n }\n const finalNextOutput = tmpNextOutput === ActionErrorStatus.HookTimeout || !tmpNextOutput ? prevOutput : tmpNextOutput;\n return Promise.resolve(finalNextOutput);\n }, Promise.resolve(actionResult));\n }\n\n /**\n * Add performance logging before and after calling the action?\n */\n // eslint-disable-next-line complexity\n private async _actionWrapper(inputs: IActionInput | IActionInput[], context: IActionContext, isRefreshing?: boolean): Promise {\n const actionId = this._getActionIdFromInputs(inputs);\n const action = this._getActionFromId(actionId);\n\n try {\n // Run pre data action hooks\n const _inputs = await this._runPreHooks(actionId, inputs, context);\n if (_inputs) {\n inputs = _inputs;\n }\n } catch (e) {\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing pre-hooks for ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n return new ActionError(e);\n }\n let actionResult;\n try {\n const timeOut = Number(_get(context, 'requestContext.query.actionTimeout'));\n const features = _get(context, 'requestContext.features', {});\n const serverSideCustomerTimeout =\n msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.serverSideDataActionTimeoutInMs;\n const clientSideCustomerTimeout =\n msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.clientSideDataActionTimeoutInMs;\n let promises;\n if (process.env.CURRENT_ENVIRONMENT === 'node' && (features.action_timeout || serverSideCustomerTimeout)) {\n const timeOutValue = (features.action_timeout && timeOut ? timeOut : serverSideCustomerTimeout) || defaultTimeoutInMS;\n promises = [this.isObservable ? ObservableActionTimer(timeOutValue) : ActionTimer(timeOutValue), action(inputs, context)];\n } else if (typeof window !== 'undefined' && msdyn365Commerce.isBrowser && clientSideCustomerTimeout) {\n promises = [\n this.isObservable ? ObservableActionTimer(clientSideCustomerTimeout) : ActionTimer(clientSideCustomerTimeout),\n action(inputs, context)\n ];\n } else {\n promises = [action(inputs, context)];\n }\n // run the data action\n actionResult = await Promise.race(promises);\n } catch (e) {\n if (e.message && e.message.length > 0 && !e.message.includes('Action id')) {\n e.message = `Action id: ${actionId}, Error message: ${e.message}`;\n }\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n let error = new ActionError(e);\n // For AsyncResult, we need to signal that this was a rejection by throwing\n if (this.isObservable) {\n // Proxy Errors come wrapped as an array\n if (Array.isArray(e)) {\n error =\n e[0]._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n : ProxyError.toError(e[0]);\n } else {\n error =\n e._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n : new ActionError(e);\n }\n }\n\n throw error;\n }\n\n try {\n // Run post data action hooks\n const result = await this._runPostHooks(actionId, inputs, actionResult, context);\n if (result) {\n actionResult = result;\n }\n this._runPostReadHooks(actionId, inputs, actionResult, context)\n .then(() => null)\n .catch(err => null);\n this._runPostReaderHooks(actionId, inputs, actionResult, context)\n .then(() => null)\n .catch(err => null);\n } catch (e) {\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing post-hooks for ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n }\n return actionResult;\n }\n\n private _shouldUseInstanceCache = () => {\n return checkVersionForFeature('instance_cache') || msdyn365Commerce.platformSettings?.shouldUseInstanceCache;\n };\n\n private _saveResponseToCache(\n uncached: IActionInput[],\n outputs: any[],\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null\n ): void {\n uncached.forEach((i, idx) => {\n const actionId = this._getActionIdFromInputs(i);\n if (i instanceof DataServiceRequest && !!i.getCacheObjectType()) {\n try {\n const appCacheData = appCache;\n const disableUsingInstanceCache =\n context.requestContext.features && context.requestContext.features.disable_instance_cache;\n const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n saveCacheEntries(i, outputs[idx], requestCache, appCacheData, shouldWriteToAppCache(i, appCache), usingInstanceCache);\n } catch (e) {\n const { action } = this;\n const actionName = actionId || (action && action.name) || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution action '{actionName}', returning null\",\n {\n values: [asSystemMetadata(actionName)],\n exception: e\n },\n LogLevel.Trace\n );\n\n return null;\n }\n } else {\n const entityId = i.getCacheKey();\n const entityType = i.getCacheObjectType();\n\n if (!!entityId && !!entityType) {\n const entry = outputs[idx];\n const cacheKey = { typeName: entityType, key: entityId };\n if (ActionError.isActionError(entry)) {\n if (!ActionError.isTimeoutError(entry)) {\n requestCache.put(cacheKey, { item: ((entry)).error, error: true });\n }\n // else do nothing\n } else {\n if (appCache && shouldWriteToAppCache(i, appCache)) {\n appCache.put(cacheKey, { item: entry });\n }\n const cacheEntry = { item: entry };\n if (i.dataCacheType && i.dataCacheType() === 'instance') {\n Object.assign(cacheEntry, { instance: 'instance' });\n }\n requestCache.put(cacheKey, cacheEntry);\n }\n }\n }\n });\n }\n\n /**\n * Method that executes a set of batchable observable data actions\n * @param uncached The uncached action inputs\n * @param requestCache The request cache\n * @param appCache The application cache, if available\n * @param context The action context\n */\n private _executeBatchedObservableActions(\n uncached: IActionInput[],\n requestCache: ICache,\n appCache: ICache | null,\n context: IActionContext,\n isRefreshing: boolean = false\n ): void {\n const unresolvedSet = new Set();\n const uncachedInputs: IActionInput[] = [];\n // Create an OP for each input in the batch that does not yet exist in cache\n const asyncOutputs = uncached\n .map((input, index) => {\n unresolvedSet.add(index);\n const executor = (resolve: any, reject: any) => {\n // When the side promise completes, update each individual OP to have it's piece of the entire batched result\n new Promise((innerResolve, innerReject) => {\n const onEventIdCompletion = (value: any) => {\n innerResolve(<{}>value);\n };\n\n const onEventIdFinalCompletion = () => {\n innerResolve();\n };\n\n const onEventIdFailure = (error: any) => {\n innerReject(error);\n };\n\n // Standard success event\n EventHelper.on(`${this.eventId}-complete-${index}-${input.getCacheKey()}`, onEventIdCompletion);\n\n // No response closing event\n EventHelper.on(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`, onEventIdFinalCompletion);\n\n // Failure event\n EventHelper.on(`${this.eventId}-failure`, onEventIdFailure);\n })\n .then(result => {\n EventHelper.removeAllListeners(`${this.eventId}-complete-${index}-${input.getCacheKey()}`);\n EventHelper.removeAllListeners(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`);\n resolve(result);\n })\n .catch(error => {\n EventHelper.removeAllListeners(`${this.eventId}-failure`);\n reject(error);\n });\n };\n\n // Already cached OP logic (rerun)\n // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n let cachedPromise;\n if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n }\n if (cachedPromise && isAsyncResult(cachedPromise) && !isRefreshing) {\n (>cachedPromise).run(executor);\n return;\n }\n\n // Not yet cached OP logic (initialize, run)\n uncachedInputs.push(input);\n return new AsyncResult(executor);\n })\n .filter(Boolean);\n\n // Save never before cached OPs to cache\n this._saveResponseToCache(uncachedInputs, asyncOutputs, context, requestCache, appCache);\n\n // Run the actual action\n this._actionWrapper(uncached, context, isRefreshing)\n .then((actionResults: unknown[]) => {\n // Emit events with the associated result so that each individual OP in the cache\n // can be updated appropriately\n actionResults.forEach((actionResult, index) => {\n unresolvedSet.delete(index);\n EventHelper.emit(`${this.eventId}-complete-${index}-${uncached[index].getCacheKey()}`, actionResult);\n });\n })\n .catch(error => {\n EventHelper.emit(`${this.eventId}-failure`, error);\n })\n .finally(() => {\n // In the event some inputs do not have results, we need to resolve the promises anyhow\n unresolvedSet.forEach(unresolvedIndex => {\n const index = unresolvedIndex;\n EventHelper.emit(`${this.eventId}-final-complete-${index}-${uncached[index].getCacheKey()}`);\n });\n });\n }\n\n /**\n * Executes a standard (non-batched) observable data action\n * @param input The action input\n * @param requestCache The request cache\n * @param appCache The application cache, if available\n * @param context The action context\n */\n private _executeObservableAction(\n input: IActionInput,\n requestCache: ICache,\n appCache: ICache | null,\n context: IActionContext,\n isRefreshing: boolean = false\n ): void {\n const cacheKey = { key: input.getCacheKey(), typeName: input.getCacheObjectType() };\n const executor = (resolve: any, reject: any) => {\n this._actionWrapper(input, context, isRefreshing)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n // If error is timeout error, lookup app-cache if there\n // is a valid entity for the given cacheKey in app-cache\n if (ActionError.isServiceUnavailable(error) && isAppCacheData(input, appCache)) {\n const cachedItem = appCache?.getValue(cacheKey);\n if (cachedItem) {\n return resolve(cachedItem);\n }\n }\n return reject(error);\n });\n };\n // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n let cachedPromise;\n if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n }\n // If OP is already in cache, just rerun it\n if (cachedPromise && isAsyncResult(cachedPromise) && !isRefreshing) {\n (>cachedPromise).run(executor);\n return;\n }\n\n // Uncached promises need to be saved to cache\n const asyncOutput = new AsyncResult(executor);\n this._saveResponseToCache([input], [asyncOutput], context, requestCache, appCache);\n }\n\n private _checkForCachedData(\n inputs: IActionInput[],\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassCache?: boolean,\n refreshing?: boolean\n ): IActionInput[][] {\n const mock = _get(context, 'requestContext.query.actionMock');\n\n if (mock) {\n inputs = this._interceptCacheForMocks(inputs, context, requestCache);\n }\n\n const clientHydrateCacheKey: ICacheKey = {\n key: CLIENT_HYDRATE_KEY,\n typeName: CLIENT_HYDRATE_TYPE\n };\n const isClientHydrate = requestCache.getValue(clientHydrateCacheKey);\n const disableUsingInstanceCache = context.requestContext.features && context.requestContext.features.disable_instance_cache;\n const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n // if the cache type is set a none don't check cache for data and return inputs for execution\n // lazyresponse == true means it has been called from load-data on browser. In this case, data is already present in request-cache due to run on server side\n if (this.cacheType === 'none' || refreshing) {\n // we should keep read from cache when a dataAction\n // 1. run on server\n // 2. none cache type\n // 3. action running as part of initial page load (client hydration).\n // This is important to stay consistent with what we render on server.\n // 4. when instance cache feature is on.\n if (!(this.cacheType === 'none' && inputs[0].runOn === 'server' && isClientHydrate && usingInstanceCache) || refreshing) {\n return [inputs, []];\n }\n }\n\n const uncached: IActionInput[] = [];\n const refresh: IActionInput[] = [];\n // eslint-disable-next-line complexity\n inputs.forEach((i, idx) => {\n const actionId = this._getActionIdFromInputs(i);\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n // if the retail proxy action does not have return type, we do not check if its in the cache\n if (i instanceof DataServiceRequest && !cacheKey.typeName) {\n uncached.push(i);\n return;\n }\n let cacheItem: ICacheItem | undefined = requestCache.get(cacheKey);\n if (cacheItem && isAsyncResult(cacheItem.item) && (>cacheItem.item).status === 'FAILED') {\n if (!i.runOn || i.runOn !== 'serverOnly') {\n uncached.push(i);\n }\n } else if (cacheItem && cacheItem.item && cacheItem.item.status === 'LOADING' && cacheItem.item.runOn === 'client') {\n // Ideally, an action configured to runOn client should never interfere with actions running on server.\n // However, it is possible that parent action with runon 'server' could be dependent on an action that is configured\n // by partner to be runOn 'client'. In this case, the child action implicitly becomes a server action. Therefore, lets\n // include such actions in the uncached list so that it gets picked and executed later.\n uncached.push(i);\n } else if (i instanceof DataServiceRequest) {\n try {\n if (bypassCache && context.requestContext.features && !!!context.requestContext.features.disable_bypass_request_cache) {\n uncached.push(i);\n } else {\n const appCacheData = appCache;\n const cacheEntries = readCacheEntries(\n i,\n requestCache,\n appCacheData,\n !!!bypassCache && shouldReadFromAppCache(i, appCache),\n context.requestContext,\n undefined,\n !!this.isObservable\n );\n if (!cacheEntries.entry) {\n uncached.push(i);\n }\n if (cacheEntries && cacheEntries.shouldRefresh) {\n refresh.push(i);\n }\n }\n } catch (e) {\n const { action } = this;\n const actionName = actionId || (action && action.name) || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution action '{actionName}', returning null\",\n {\n values: [asSystemMetadata(actionName)],\n exception: e\n },\n LogLevel.Trace\n );\n uncached.push(i);\n }\n } else {\n if (bypassCache && context.requestContext.features && !context.requestContext.features.disable_bypass_request_cache) {\n uncached.push(i);\n } else {\n if (!cacheItem && !!!bypassCache && appCache && shouldReadFromAppCache(i, appCache)) {\n cacheItem = appCache.copyTo(cacheKey, requestCache, !!this.isObservable);\n if (cacheItem && cacheItem.shouldRefresh) {\n refresh.push(i);\n }\n }\n\n if (!cacheItem || !cacheItem.item) {\n uncached.push(i);\n return;\n }\n }\n }\n });\n return [uncached, refresh];\n }\n\n /**\n * Searches cache for mocks matching the inputs\n * @param inputs Current action inputs\n * @param context Current action context\n * @param requestCache Current request cache\n */\n private _interceptCacheForMocks(inputs: IActionInput[], context: IActionContext, requestCache: ICache): IActionInput[] {\n const uncached: IActionInput[] = [];\n const actionId: string = this.action.prototype.id;\n inputs.forEach(i => {\n let mockItem = this._getMockItem(i.getCacheObjectType(), i.getCacheKey(), requestCache);\n if (!mockItem && actionId) {\n mockItem = this._getMockItem(actionId, i.getCacheKey(), requestCache);\n }\n let existingItem;\n if (this._checkShouldInteractWithCache(i, i.getCacheObjectType())) {\n existingItem = requestCache.get({ typeName: i.getCacheObjectType(), key: i.getCacheKey() });\n }\n\n if (!!mockItem && !!mockItem.item && !existingItem) {\n const mockItemJSObject = toJS(mockItem.item);\n if (this.isObservable) {\n requestCache.put(\n { typeName: i.getCacheObjectType(), key: i.getCacheKey() },\n { item: AsyncResult.resolve(mockItemJSObject) }\n );\n } else {\n requestCache.put({ typeName: i.getCacheObjectType(), key: i.getCacheKey() }, { item: toJS(mockItemJSObject) });\n }\n } else {\n uncached.push(i);\n }\n });\n return uncached;\n }\n\n private _getMockItem(cacheNamespace: string, cacheKey: string, requestCache: ICache): ICacheItem | undefined {\n return (\n requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:${cacheKey}` }) ||\n requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:*` })\n );\n }\n\n private _convertToJSError(e: any): Error {\n // Proxy Error usually comes wrapped in an array\n // If it is, unbox it and conver to regular Error\n if (Array.isArray(e)) {\n const proxyError: ProxyError = e[0];\n if (proxyError.ErrorCode) {\n return ProxyError.toError(proxyError);\n }\n } else if (e.ErrorCode) {\n return ProxyError.toError(e);\n }\n // Return regular Error if not ProxyError\n return new Error(e.message || '');\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey, ICacheSource, RequestCache } from '@msdyn365-commerce/cache-internal';\nimport {\n IAction,\n IActionContext,\n IActionInput,\n IDataActionOptions,\n msdyn365Commerce,\n verboseLogger\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport {\n asSystemMetadata,\n GenericConsoleLogger,\n ITelemetry,\n LogLevel,\n StaticTelemetry,\n Telemetry\n} from '@msdyn365-commerce/telemetry-internal';\nimport uuidv1 from 'uuid/v1';\nimport ActionExecutor from './action-executor';\nimport { ActionRegistrar } from './action-registrar';\nimport { shouldWriteToAppCache } from './action-runtime-utils';\nimport { addLocaleInformation, readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\n\n/**\n * Cache key for actions which needs to be refreshed after page render\n */\nexport const REFRESH_ACTIONS_CACHE_KEY: ICacheKey = {\n typeName: '__REFRESH_CONFIGS_TYPE__',\n key: '__refresh_cache_key'\n};\n\n/**\n * This interface is used in ActionContext only, for saving information needed to refresh data actions.\n *\n */\nexport interface IRefreshConfigs {\n actionInputs: IActionInput[];\n paramExecutor: ActionExecutor;\n}\n/**\n * This class contains the primary logic which controls the execution flow of the action runtime\n *\n */\n/* @internal*/\n/**\n *\n */\nexport class ActionContext implements IActionContext {\n public static maxDepth: number = 200;\n\n public readonly executionParams: ActionExecutor[] = [];\n public readonly requestContext: any;\n\n /**\n * Telemetry object to log information\n */\n public telemetry: ITelemetry;\n\n private readonly requestCache: ICache;\n private readonly appCache: ICache | null = null;\n private readonly cacheKeyMap: string[] = [];\n private readonly refreshConfigs: IRefreshConfigs[] = [];\n\n /**\n * Action context creates a new instance for every tier of execution,\n * This number specifies the depth/current tier in the execution flow\n */\n private readonly currentExecutionTier: number;\n\n /**\n * Thread ID\n */\n private readonly threadId: string;\n\n /**\n * Event ID\n * Unique ID for each action context, automatically generated\n */\n private readonly eventId: string;\n\n /**\n * Whether the current context as executed\n */\n private hasRun: boolean = false;\n\n /**\n * When this number is > 0, the current context will wait for all the actions to\n * be queued before kicking off execution.\n * This number is decremented for every action that is successful in current tier.\n */\n private expectedActionsInCurrentTier: number;\n\n /**\n * variable tracking the current number of actions that are in queue, context will wait for this to match the expected count\n */\n private currentActionsInQueue: number = 0;\n\n /**\n * Object to track the next tier number.\n */\n private nextTierCounter: { next: number } = { next: 0 };\n\n /**\n * When true will span a new independent action context when an action is executed resetting depth limits\n * Otherwise will invoke the action in the current context.\n */\n private spawnChildOnExecute: boolean = false;\n\n /**\n * @param currentExecutionTier: Current execution tier in the data fetch pipeline, max is currently 7\n * @param expectedActionCount: This value specifies the expected number of actions to be queued before\n * we kick off execution in the current tier\n */\n constructor(args: {\n id: string;\n requestContext: any;\n requestCache: ICache;\n appCache: ICache | null;\n currentExecutionTier?: number;\n expectedActionCount?: number;\n spawnChildOnExecute?: boolean;\n telemetry?: ITelemetry;\n }) {\n const {\n id,\n requestContext,\n requestCache,\n appCache,\n currentExecutionTier,\n expectedActionCount,\n spawnChildOnExecute,\n telemetry\n } = args;\n this.threadId = id;\n this.eventId = uuidv1();\n\n this.currentExecutionTier = currentExecutionTier || 0;\n if (this.currentExecutionTier === 0) {\n this.nextTierCounter = { next: 0 };\n }\n\n this.expectedActionsInCurrentTier = expectedActionCount || 0;\n this.requestCache = requestCache;\n this.requestContext = requestContext || {};\n this.spawnChildOnExecute = Boolean(spawnChildOnExecute);\n\n // If a telemetry object has been passed in use that telemetry object, otherwise create a new Telemetry object\n if (telemetry) {\n this.telemetry = telemetry;\n } else {\n // register default console logger\n const moduleTelemetry = new Telemetry();\n const isDebug = requestContext.params && requestContext.params.isDebug;\n\n // register tracelogger only in development environment or debug is true.\n (process.env.NODE_ENV === 'development' || isDebug) &&\n moduleTelemetry.registerTraceLogger({ traceLogger: GenericConsoleLogger, options: { isDebug: isDebug } });\n\n this.telemetry = moduleTelemetry;\n }\n\n /**\n * @deprecated\n * Trace is an alias for telemetry.log(LogLevel.Trace, message)\n * Use the telemetry object directly.\n */\n this.trace = (message: string) => {\n this.telemetry.log(LogLevel.Debug, message);\n };\n\n // enable app cache only if the disable_app_cache feature switch is false\n if (requestContext.features && !!!requestContext.features.disable_app_cache) {\n this.appCache = appCache;\n }\n }\n\n public getRefreshActions(): IRefreshConfigs[] {\n return this.refreshConfigs;\n }\n\n /**\n * Chains an action method to the current context for execution\n * @param action - action method\n * @param inputs - action input\n */\n public chainAction(\n _action: IAction,\n inputs: IActionInput | IActionInput[],\n actionOption?: IDataActionOptions\n ): Promise {\n const action = ActionRegistrar.unwrapAction(_action);\n addLocaleInformation(inputs, this.requestContext.locale);\n if (!action || !inputs) {\n // Decrement the expected actions on this tier since this action was incorrectly configured\n this.expectedActionsInCurrentTier--;\n if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n return Promise.resolve(null);\n }\n\n if (!this.hasRun) {\n return this.runAllActionsInQueue().then(() => null);\n }\n\n return Promise.resolve(null);\n }\n\n if (this.isMaxDepthExceeded()) {\n this.debug('Max depth exceeded - not running further.');\n return Promise.resolve(null);\n }\n\n if (this.hasRun) {\n // If the parent action decides to queue another action after the current tier completes execution\n // then set the hasRun to false, so the action can fire right away\n this.hasRun = false;\n this.executionParams.length = 0;\n this.currentActionsInQueue = 0;\n }\n\n this.currentActionsInQueue++;\n const isBatched = action.prototype.isBatched;\n const inputsArray = (isBatched ? inputs : [inputs]);\n\n let current = this.executionParams.find(a => a.action === action);\n if (current && isBatched) {\n current.addInputs(inputsArray);\n } else {\n const inputIdentifier = `${inputsArray[0].getCacheObjectType()}||${inputsArray[0].getCacheKey()}`;\n if (!this.cacheKeyMap.find(key => key === inputIdentifier)) {\n current = new ActionExecutor(action, inputsArray, this.telemetry, actionOption);\n this.executionParams.push(current);\n this.cacheKeyMap.push(inputIdentifier);\n }\n }\n\n const asyncResult = new AsyncResult(async (resolve, reject) => {\n if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n // Hold the thread until the entire tier is populated\n await new Promise((innerResolve: Function) => {\n const onEventIdCompletion = (tierNum: number) => {\n if (tierNum === this.currentExecutionTier) {\n innerResolve();\n }\n };\n EventHelper.on<[number]>(`${this.eventId}:completed`, onEventIdCompletion);\n });\n EventHelper.removeAllListeners(`${this.eventId}:completed`);\n }\n\n if (!this.hasRun) {\n await this.runAllActionsInQueue();\n }\n\n const outputs = inputsArray.map(i => {\n if (i instanceof DataServiceRequest) {\n try {\n const appCacheData = this.appCache;\n const entry = readCacheEntries(i, this.requestCache, appCacheData, false, this.requestContext, StaticTelemetry);\n return entry.entry;\n } catch (e) {\n this.debug(\n `Error execution action type '[${i && i.getCacheObjectType()}' and cache key '[{${i &&\n i.getCacheKey()}}]', returning null`\n );\n return null;\n }\n } else {\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n const cacheItem = this.requestCache.get>(cacheKey);\n const cacheValue = !!cacheItem ? this.requestCache.getValue(cacheKey) : null;\n\n if (cacheItem && !!cacheItem.error) {\n throw cacheValue;\n } else {\n if (cacheItem && !msdyn365Commerce.isBrowser) {\n if (cacheItem.refreshStartTimeInMS) {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. last refresh time {lastRefresh}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata(cacheItem.refreshStartTimeInMS)\n ]\n }\n );\n }\n switch (cacheItem.s!) {\n case ICacheSource.AppCache: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('AppCache')\n ]\n }\n );\n break;\n }\n case ICacheSource.RequestCache: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('RequestCache')\n ]\n }\n );\n break;\n }\n default: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('Undefined')\n ]\n }\n );\n }\n }\n }\n return cacheValue;\n }\n }\n });\n\n this.cacheKeyMap.splice(0, this.cacheKeyMap.length);\n\n // Batched observable actions need to be merged into a single AsyncResult\n if (isBatched && action.prototype.isObservable) {\n resolve(\n Promise.all(outputs).then(results => {\n // Because AsyncResult sometimes get mangled by MobX, we need to ensure mangled ones are still unwrapped\n return results.map(result => {\n return result && result._type === 'AsyncResult' ? result.result : result;\n });\n })\n );\n } else {\n // We need to pass along the metadata explicitly to the outer AsyncResult\n if (isAsyncResult(outputs[0]) && !isBatched) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n outputs[0].then(() => {\n asyncResult.metadata = outputs[0].metadata;\n });\n }\n\n resolve(isBatched ? outputs : (outputs.length && outputs[0]) || null);\n }\n });\n\n return asyncResult;\n }\n\n /**\n * Helper method to update cache\n * @param input The input\n * @param data The data\n */\n public update(inputs: IActionInput | IActionInput[], data: T): T {\n if (inputs && data) {\n // If an array of actionInputs has been passed, an equal amount of data items must be present\n const dataArray = (Array.isArray(inputs) ? data : [data]);\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (inputArray.length !== dataArray.length) {\n throw new Error('Array of action inputs was passed to actionContext Update, and did not match length of input data array.');\n }\n addLocaleInformation(inputArray, this.requestContext.locale);\n inputArray.map((i, idx) => {\n if (i instanceof DataServiceRequest) {\n try {\n const appCacheData = this.appCache;\n saveCacheEntries(i, dataArray[idx], this.requestCache, appCacheData, shouldWriteToAppCache(i, this.appCache));\n } catch (e) {\n this.debug(\n `Error in updating cache with input '[${i.getCacheObjectType()}]' - '[${i.getCacheKey()}]', returning null`\n );\n this.error(e);\n }\n } else {\n // When updating OPs, only result can be updated, passed OPs will also be unwrapped.\n if (isAsyncResult(dataArray[idx])) {\n dataArray[idx] = (>dataArray[idx]).result;\n }\n\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n this.requestCache.put(cacheKey, { item: dataArray[idx] });\n if (this.appCache && shouldWriteToAppCache(i, this.appCache)) {\n this.appCache.put(cacheKey, { item: dataArray[idx] });\n }\n }\n });\n\n if (Array.isArray(inputs)) {\n return (inputs.map(input => {\n return this.requestCache.getValue({ typeName: input.getCacheObjectType(), key: input.getCacheKey() });\n }));\n } else {\n return this.requestCache.getValue({ typeName: inputs.getCacheObjectType(), key: inputs.getCacheKey() });\n }\n }\n\n // For scenarios where data/input was bad, we just return original data\n return data;\n }\n\n /**\n * Helper method to log trace using telemetry\n * @param message message to log to console\n */\n public trace = (message: string): void => {\n this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to log error using telemetry\n * @param message message to log to console\n */\n public error = (message: string): void => {\n this.telemetry.log(LogLevel.Error, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to log debug using telemetry\n * @param message message to log to console\n */\n public debug = (message: string): void => {\n this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to data cache from cache\n * if cachekey is null or empty, it returns all entries of cacheObjectType\n * @param cacheObjectType entity type that was cached\n * @param cacheKey cache key against which the object is cached\n * @throws if cacheObjecttype is null or empty\n */\n public get(cacheObjectType: string, cacheKey: string): T | T[] | null {\n if (!cacheObjectType) {\n throw new Error('Cannot have null or empty cacheObjectType');\n }\n\n if (!cacheKey) {\n throw new Error('Cannot have null or empty cacheKey');\n }\n\n const preparedCacheKey = { typeName: cacheObjectType, key: cacheKey };\n let cachedItem = this.requestCache.get(preparedCacheKey);\n\n if (process.env.CURRENT_ENVIRONMENT === 'node' && !cachedItem && this.appCache) {\n cachedItem = this.appCache.get(preparedCacheKey);\n }\n\n if (!cachedItem) {\n return null;\n }\n\n if (typeof cachedItem.item !== 'object' || cachedItem.item.$ref !== true) {\n return cachedItem.item;\n }\n\n return Array.isArray(cachedItem.item.key) ? (cachedItem.item.key)\n .map(key => this.getItemFromCache({ typeName: cacheObjectType, key }))\n .filter(Boolean) : null;\n }\n\n /**\n * Helper method to data cache from cache\n * if cachekey is null or empty, it returns all entries of cacheObjectType\n * @param input The input\n * @param data The data\n * @throws if cacheObjecttype is null or empty\n */\n public getAll(cacheObjectType: string): T[] | null {\n if (!cacheObjectType) {\n throw new Error('Cannot have null or empty cacheObjectType');\n }\n\n let cachedEntries = this.requestCache.getAllItems(cacheObjectType);\n if (!cachedEntries) {\n if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n cachedEntries = this.appCache && this.appCache.getAllItems(cacheObjectType);\n }\n\n if (!cachedEntries) {\n return null;\n }\n }\n\n return Object.keys(cachedEntries)\n .filter(key => typeof cachedEntries![key].item !== 'object' || cachedEntries![key].item.$ref !== true)\n .map(key => cachedEntries![key].item);\n }\n\n /**\n * Executes all the actions in the current context in parallel\n */\n public async runAllActionsInQueue(): Promise {\n const { threadId, requestContext, requestCache, appCache, nextTierCounter, executionParams } = this;\n if (!executionParams.length) {\n this.trace('No actions to execute - not running further.');\n return;\n }\n // Increment the tier each pass through run all actions\n if (this.isMaxDepthExceeded()) {\n this.trace('Max depth exceeded - not running further.');\n return;\n }\n\n // When kicking off the next tier,\n // set the max number of chain actions the can be expected from child actions\n // equal to the number of actions that are executing in current tier\n const expectedNumberOfChildThreads = executionParams.length;\n\n let nextTierStartingDepth;\n if (this.spawnChildOnExecute) {\n nextTierStartingDepth = nextTierCounter.next + 1;\n } else {\n nextTierStartingDepth = ++nextTierCounter.next;\n }\n\n const nextTier = new ActionContext({\n id: threadId,\n requestContext: requestContext,\n requestCache: requestCache,\n appCache: appCache,\n currentExecutionTier: nextTierStartingDepth,\n expectedActionCount: expectedNumberOfChildThreads,\n telemetry: this.telemetry\n });\n\n const refreshconfigslocal: Set = new Set();\n\n nextTier.nextTierCounter = { next: nextTierStartingDepth };\n // DO NOT Trace using current action context, use only secondaryContext to remain consistent with actions\n const promises: Promise[] = executionParams.map(param => {\n // TODO: should we read from input about the cacheability?\n return param\n .execute(nextTier, requestCache, appCache, this.requestContext.query && !!this.requestContext.query.cachebypass, [])\n .then(refreshActions => {\n // refresh the data actions which need to be refreshed.\n if (refreshActions.length) {\n refreshconfigslocal.add({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n\n this.refreshConfigs.push({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n\n const cacheValue = requestCache.get(REFRESH_ACTIONS_CACHE_KEY);\n const refreshConfigs = cacheValue ? cacheValue.item : [];\n refreshConfigs.push({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n requestCache.put(REFRESH_ACTIONS_CACHE_KEY, {\n item: refreshConfigs\n });\n }\n\n // If the current chain action completes execution\n // decrement the max number of threads that we expect\n // from the next tier\n nextTier.expectedActionsInCurrentTier--;\n\n if (!nextTier.hasRun) {\n // First check if the next tier has any actions\n // then check if the number of thread match expected\n if (\n nextTier.currentActionsInQueue > 0 &&\n nextTier.currentActionsInQueue === nextTier.expectedActionsInCurrentTier\n ) {\n return nextTier.runAllActionsInQueue();\n }\n }\n });\n });\n\n // Wait until all the actions in current tier are run to completion\n return Promise.all(promises)\n .then(() => {\n if (refreshconfigslocal.size > 0 && requestContext.features && !!requestContext.features.disable_appcache_refresh_await) {\n refreshconfigslocal.forEach(rf => {\n const refreshRequestCache = new RequestCache();\n const refreshContext = new ActionContext({\n id: 'Refresh Context',\n requestContext: requestContext,\n requestCache: new RequestCache(),\n telemetry: this.telemetry,\n appCache: appCache,\n spawnChildOnExecute: true\n });\n\n rf.paramExecutor\n .execute(\n refreshContext,\n refreshRequestCache,\n this.appCache,\n this.requestContext.query && !!this.requestContext.query.cachebypass,\n rf.actionInputs\n )\n .then(() =>\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n `BackgroundRefresh - Executed refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n )\n )\n .catch(error => {\n StaticTelemetry.log(\n LogLevel.Warning,\n `BackgroundRefresh - Error execution refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n );\n });\n });\n }\n this._endCurrentTier();\n })\n .catch(error => {\n this._endCurrentTier();\n throw error;\n });\n }\n\n /**\n * Returns true if current tier has exceeded max depth\n */\n private isMaxDepthExceeded = (): boolean => {\n const maxDepth =\n (this.requestContext &&\n this.requestContext.app &&\n this.requestContext.app.platform &&\n this.requestContext.app.platform.maxDepth) ||\n ActionContext.maxDepth;\n return this.nextTierCounter.next > maxDepth;\n };\n\n /**\n * Retrieves item from request cache and fallsback to app cache if not found\n */\n private getItemFromCache = (cacheKey: ICacheKey): T | undefined => {\n let cachedItem = this.requestCache.get(cacheKey);\n\n if (cachedItem) {\n return cachedItem.item;\n }\n\n if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n cachedItem = this.appCache.get(cacheKey);\n }\n\n return cachedItem ? cachedItem.item : undefined;\n };\n\n /**\n * Signals the end of current tier so actions can return the response\n */\n private _endCurrentTier = (): void => {\n this.hasRun = true;\n EventHelper.emit(`${this.eventId}:completed`, this.currentExecutionTier);\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RequestCache } from '@msdyn365-commerce/cache-internal';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ActionContext } from './action-context';\n\n/**\n * Creates a mock but usable ActionContext.\n * @param context The partial context to add to the return action context.\n *\n * DEPRECATED: Please use buildMockActionContext and pass in a constructed\n * ActionContext to build a hydrated mock action context\n * Example:\n * const actionContext = buildMockActionContext(new ActionContext({\n * id: 'mock-context',\n * requestCache: new RequestCache(),\n * requestContext: {},\n * appCache: null\n * }));\n *\n */\nexport const buildHydratedMockActionContext = (context?: Partial): IActionContext => {\n return new ActionContext({\n id: 'mock-context',\n requestCache: new RequestCache(),\n requestContext: (context && context.requestContext) || {},\n appCache: null\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport {\n CacheType,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core-internal';\nimport { getCatalogsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CatalogsDataActions.g';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\nconst buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\n};\n\n/**\n * Input for get-catalogs data action.\n */\nexport class CatalogsInput implements IActionInput {\n public readonly channelId: number;\n\n public readonly customerAccountNumber?: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly locale?: string;\n\n public constructor(context: IRequestContext, customerAccountNumber?: string) {\n this.channelId = context.apiSettings.channelId ? Number(context.apiSettings.channelId) : 0;\n this.customerAccountNumber = customerAccountNumber ? customerAccountNumber : context.user.customerAccountNumber;\n this.apiSettings = context.apiSettings;\n this.locale = context.locale || '';\n }\n\n /**\n * Get Cache Key.\n * @returns - Cache key string.\n */\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- customer account number can be undefined.\n public getCacheKey = (): string => buildCacheKey(`${this.channelId}|${this.customerAccountNumber}`, this.apiSettings, this.locale);\n\n /**\n * Get Cache object type.\n * @returns - Cache object type.\n */\n public getCacheObjectType = (): string => 'productCatalogs';\n\n /**\n * Get data cache type.\n * @returns - Cache type enum.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - The input data passed to the createInput method.\n * @param customerAccountNumber - Customer account number.\n * @returns - Catalogs input.\n */\nexport const createCatalogsInput = (inputData: ICreateActionContext>, customerAccountNumber?: string): IActionInput => {\n if (!inputData.requestContext.user.isAuthenticated) {\n throw new Error('Unable to get product catalog. User is not authenticated.');\n }\n return new CatalogsInput(inputData.requestContext, customerAccountNumber);\n};\n\n/**\n * Calls the Retail API and returns the product catalog for an user.\n * @param input - Catalogs Input.\n * @param context - Current context.\n * @returns - Product catalog for the user.\n */\nexport async function getCatalogAction(input: CatalogsInput, context: IActionContext): Promise {\n const productCatalogs = await getCatalogsAsync({ callerContext: context }, input.channelId, true);\n return productCatalogs;\n}\n\n/**\n * The GetProductCatalogs Data Action\n * Returns product catalogs.\n */\nexport const getCatalogActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-catalogs',\n action: getCatalogAction as IAction,\n input: createCatalogsInput\n});\n\nexport default getCatalogActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core-internal';\n\nexport enum ICacheSource {\n RequestCache,\n AppCache\n}\n\nexport interface ICacheKey {\n key: string;\n typeName: string;\n}\n\nexport interface ICacheItem {\n item: T;\n shouldRefresh?: boolean;\n error?: boolean;\n instance?: string;\n // property to indicate the source whether it is app/request\n s?: ICacheSource;\n /**\n * Flag to track the when the item start refreshing.\n */\n refreshStartTimeInMS?: number;\n lastRefreshTime?: Date;\n}\n\nexport interface ICompressCache {\n data: T;\n isCompressed: boolean;\n}\n\nexport interface ICacheItemOptions {\n ttr?: number;\n ttl?: number;\n cacheKeySuffix?: string;\n}\nexport interface ICacheStats {\n keys?: number;\n hits?: number;\n misses?: number;\n totalKeySize?: number;\n totalValueSize?: number;\n valueSizePerKey?: object;\n}\n\n/**\n * Interface exposing methods for caching\n */\nexport interface ICache {\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n * @param options {ICacheItemOptions} - Optional cache item options\n */\n put(cacheKey: ICacheKey, item: ICacheItem, options?: ICacheItemOptions): boolean;\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {ICacheItem} - cached value against the given cache key\n */\n get(cacheKey: ICacheKey): ICacheItem | undefined;\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {T} - cached value against the given cache key\n */\n getValue(cacheKey: ICacheKey): T | undefined;\n\n /**\n * @function {getAllItems} - Method to get all cached items for a given type\n * @param typeName {typeName} - typeName for which all items need to be fetched\n * @return {ICacheItem} - dictionary of cache items of the given typeName\n */\n getAllItems(typeName: string): IDictionary> | undefined;\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n copyTo(cacheKey: ICacheKey, toCache: ICache, isObservable?: boolean): ICacheItem | undefined;\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey[]} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n del(cacheKey: ICacheKey): boolean;\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n flushAll(): void;\n\n /**\n * @function {getStats} - Returns statstics about the cache (number of keys, value size in bytes, etc)\n */\n getStats?(): ICacheStats;\n\n /**\n * @function {flushStats} - Flush the stats\n */\n flushStats?(): void;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICacheKey } from './ICache';\n\nexport const normalizeCacheKey = (cacheKey: ICacheKey): ICacheKey => {\n return {\n typeName: cacheKey.typeName.toUpperCase(),\n key: cacheKey.key.toUpperCase()\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core-internal';\nimport { isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { observable, set, transaction } from 'mobx';\nimport { normalizeCacheKey } from './cache-utils';\nimport { ICache, ICacheItem, ICacheKey, ICacheSource } from './ICache';\n\n/**\n * Client cache implementation\n */\nexport class RequestCache implements ICache {\n private internalCache: { [typeName: string]: IDictionary> } = {};\n\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n */\n public put(cacheKey: ICacheKey, item: ICacheItem): boolean {\n if (!cacheKey.typeName) {\n throw new Error(`Invalid type (${cacheKey.typeName} specified)`);\n }\n\n if (!cacheKey.key) {\n throw new Error(`Invalid key (${cacheKey.key} specified) for typeName: ${cacheKey.typeName}`);\n }\n\n item.s = item.s !== undefined ? item.s : ICacheSource.RequestCache;\n const { typeName, key } = normalizeCacheKey(cacheKey);\n if (this.internalCache[typeName] === undefined) {\n this.internalCache[typeName] = {};\n }\n return transaction(() => {\n let cacheItem: ICacheItem = >this.internalCache[typeName][key];\n\n // For updating AsyncResults, only update result\n if (cacheItem && isAsyncResult(cacheItem.item)) {\n if (cacheItem.item.status !== 'LOADING') {\n set(cacheItem.item, 'status', 'LOADING');\n }\n set(cacheItem.item, 'result', item.item);\n // Auto resolve promises whos result is being set, as they are essentially being force-completed\n set(cacheItem.item, 'status', 'SUCCESS');\n } else if (cacheItem) {\n set(cacheItem, 'item', item.item);\n } else {\n if (!isAsyncResult(item.item)) {\n cacheItem = observable>({ ...item }, undefined, {\n deep: true,\n name: `T:${typeName}_K:${key}`\n });\n } else {\n cacheItem = item;\n }\n this.internalCache[typeName][key] = cacheItem;\n }\n\n return true;\n });\n }\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {IAny} - cached value against the given cache key\n */\n public get(cacheKey: ICacheKey): ICacheItem | undefined {\n if (!cacheKey) {\n throw new Error(`Invalid cacheKey: ${cacheKey}`);\n }\n\n if (!cacheKey.typeName) {\n throw new Error(`Invalid cacheKey type: ${cacheKey.typeName}`);\n }\n\n cacheKey = normalizeCacheKey(cacheKey);\n return this.internalCache[cacheKey.typeName] ? >this.internalCache[cacheKey.typeName][cacheKey.key] : undefined;\n }\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {IAny} - cached value against the given cache key\n */\n public getAllItems(typeName: string): IDictionary> | undefined {\n if (!typeName) {\n throw new Error(`typeName cannot be empty`);\n }\n\n return >>this.internalCache[typeName.toUpperCase()];\n }\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {IAny} - cached value against the given cache key\n */\n public getValue(cacheKey: ICacheKey): T | undefined {\n const cachedItem: ICacheItem | undefined = this.get(cacheKey);\n return cachedItem ? this._value(cachedItem) : undefined;\n }\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n public copyTo(cacheKey: ICacheKey, toCache: ICache): ICacheItem | undefined {\n throw new Error('Not Implemented');\n }\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n public del(cacheKey: ICacheKey): boolean {\n cacheKey = normalizeCacheKey(cacheKey);\n const cacheType = this.internalCache[cacheKey.typeName];\n if (cacheType && cacheType[cacheKey.key]) {\n delete cacheType[cacheKey.key];\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n public flushAll(): void {\n this.internalCache = {};\n }\n\n /**\n * @function {keys} - Method to fetch all the keys in the cache\n * @return {string[]} - returns a list of all the keys in the cache\n */\n public keys(): string[] {\n return Object.keys(this.internalCache);\n }\n\n /**\n * Get the value out of a cache item\n * This returns the raw value of the item, it will *not* be a MobX observable value\n * @param item The observable cache item to retireve the value from\n */\n private _value(item: ICacheItem): T {\n return item.item;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './create-data-action';\nexport * from './create-data-action.vnext';\nexport * from './create-data-action-hook';\nexport * from './action-context';\nexport * from './action-executor';\nexport * from './cache/client-cache';\nexport * from './cache/simple-cache';\nexport * from './event-emitter';\nexport * from './mock-helper';\nexport * from './cache/retail-cache-helper';\nexport * from './action-registrar';\nexport * from './helpers';\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { BusinessPartnerUser, AccountStatementRequest, BusinessPartnerOperationRequest } from '../Entities/CommerceTypes.g';\n import { BusinessPartnerUserClass, BusinessPartnerOperationRequestClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function businessPartnerUsersQuery(b2BUserId?: string): DataServiceQuery {\n var key = (b2BUserId) ? { B2BUserId: b2BUserId } : null;\n return new DataServiceQuery(\"BusinessPartnerUsers\", \"BusinessPartnerUser\", BusinessPartnerUserClass, key);\n }\n \n export function createCreateInput(entity: BusinessPartnerUser): IDataServiceRequest {\n return businessPartnerUsersQuery().create(entity);\n }\n\n export function createBusinessPartnerUserAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: BusinessPartnerUser): IDataServiceRequest {\n return businessPartnerUsersQuery(entity.B2BUserId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: BusinessPartnerUser): IDataServiceRequest {\n return businessPartnerUsersQuery(entity.B2BUserId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(b2BUserId: string): IDataServiceRequest {\n return businessPartnerUsersQuery(b2BUserId).read();\n }\n\n export function readAsync(context: IContext, b2BUserId: string): AsyncResult {\n const request = createReadAsync(b2BUserId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return businessPartnerUsersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createRequestAccountStatementInput(b2BUserId: string, accountStatementParameters?: AccountStatementRequest | null): IDataServiceRequest { \n const query = businessPartnerUsersQuery(b2BUserId);\n return query.createDataServiceRequestForOperation('RequestAccountStatement', true, '', '', {bypassCache: 'get', returnEntity: ''}, {accountStatementParameters: accountStatementParameters });\n } \n \n export function requestAccountStatementAsync(context: IContext, b2BUserId: string, accountStatementParameters?: AccountStatementRequest | null):AsyncResult {\n const request = createRequestAccountStatementInput(b2BUserId, accountStatementParameters);\n return executeAction(request, context);\n } \n \n export function createRequestInvoiceCopyInput(b2BUserId: string, invoiceId: string | null, deliveryType: number): IDataServiceRequest { \n const query = businessPartnerUsersQuery(b2BUserId);\n return query.createDataServiceRequestForOperation('RequestInvoiceCopy', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invoiceId: invoiceId, deliveryType: deliveryType });\n } \n \n export function requestInvoiceCopyAsync(context: IContext, b2BUserId: string, invoiceId: string | null, deliveryType: number):AsyncResult {\n const request = createRequestInvoiceCopyInput(b2BUserId, invoiceId, deliveryType);\n return executeAction(request, context);\n } \n \n export function createGetOperationRequestsInput(queryResultSettings: IQueryResultSettings, b2BUserId: string, startDateTime: Date, endDateTime: Date): IDataServiceRequest { \n const query = businessPartnerUsersQuery(b2BUserId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOperationRequests', true, BusinessPartnerOperationRequestClass, 'true', {bypassCache: 'none', returnEntity: 'BusinessPartnerOperationRequest'}, {startDateTime: startDateTime, endDateTime: endDateTime });\n } \n \n export function getOperationRequestsAsync(context: IContext, b2BUserId: string, startDateTime: Date, endDateTime: Date):AsyncResult {\n const request = createGetOperationRequestsInput(context.queryResultSettings, b2BUserId, startDateTime, endDateTime);\n return executeAction(request, context);\n } \n \n export function createGetCurrentInput(): IDataServiceRequest { \n const query = businessPartnerUsersQuery();\n return query.createDataServiceRequestForOperation('GetCurrent', false, BusinessPartnerUserClass, 'false', {bypassCache: 'none', returnEntity: 'BusinessPartnerUser'}, { });\n } \n \n export function getCurrentAsync(context: IContext, ):AsyncResult {\n const request = createGetCurrentInput();\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { BusinessPartner, OrderShipments, BusinessPartnerProspect, BusinessPartnerUser } from '../Entities/CommerceTypes.g';\n import { BusinessPartnerClass, OrderShipmentsClass, BusinessPartnerProspectClass, BusinessPartnerUserClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function businessPartnersQuery(businessPartnerId?: string): DataServiceQuery {\n var key = (businessPartnerId) ? { BusinessPartnerId: businessPartnerId } : null;\n return new DataServiceQuery(\"BusinessPartners\", \"BusinessPartner\", BusinessPartnerClass, key);\n }\n \n export function createCreateInput(entity: BusinessPartner): IDataServiceRequest {\n return businessPartnersQuery().create(entity);\n }\n\n export function createBusinessPartnerAsync(context: IContext, entity: BusinessPartner): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: BusinessPartner): IDataServiceRequest {\n return businessPartnersQuery(entity.BusinessPartnerId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: BusinessPartner): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: BusinessPartner): IDataServiceRequest {\n return businessPartnersQuery(entity.BusinessPartnerId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: BusinessPartner): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(businessPartnerId: string): IDataServiceRequest {\n return businessPartnersQuery(businessPartnerId).read();\n }\n\n export function readAsync(context: IContext, businessPartnerId: string): AsyncResult {\n const request = createReadAsync(businessPartnerId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return businessPartnersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOrderHistoryInput(queryResultSettings: IQueryResultSettings, businessPartnerId: string, ): IDataServiceRequest { \n const query = businessPartnersQuery(businessPartnerId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderHistory', false, OrderShipmentsClass, 'true', {bypassCache: 'none', returnEntity: 'OrderShipments'}, { });\n } \n \n export function getOrderHistoryAsync(context: IContext, businessPartnerId: string):AsyncResult {\n const request = createGetOrderHistoryInput(context.queryResultSettings, businessPartnerId);\n return executeAction(request, context);\n } \n \n export function createCreateProspectInput(businessPartnerProspect?: BusinessPartnerProspect | null): IDataServiceRequest { \n const query = businessPartnersQuery();\n return query.createDataServiceRequestForOperation('CreateProspect', true, BusinessPartnerProspectClass, 'false', {bypassCache: 'get', returnEntity: 'BusinessPartnerProspect'}, {businessPartnerProspect: businessPartnerProspect });\n } \n \n export function createProspectAsync(context: IContext, businessPartnerProspect?: BusinessPartnerProspect | null):AsyncResult {\n const request = createCreateProspectInput(businessPartnerProspect);\n return executeAction(request, context);\n } \n \n export function createGetCurrentInput(): IDataServiceRequest { \n const query = businessPartnersQuery();\n return query.createDataServiceRequestForOperation('GetCurrent', false, BusinessPartnerClass, 'false', {bypassCache: 'none', returnEntity: 'BusinessPartner'}, { });\n } \n \n export function getCurrentAsync(context: IContext, ):AsyncResult {\n const request = createGetCurrentInput();\n return executeAction(request, context);\n } \n \n export function createGetUsersInput(queryResultSettings: IQueryResultSettings, businessPartnerId: string, ): IDataServiceRequest { \n const query = businessPartnersQuery(businessPartnerId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUsers', false, BusinessPartnerUserClass, 'true', {bypassCache: 'none', returnEntity: 'BusinessPartnerUser'}, { });\n } \n \n export function getUsersAsync(context: IContext, businessPartnerId: string):AsyncResult {\n const request = createGetUsersInput(context.queryResultSettings, businessPartnerId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Cart, CartSearchCriteria, TokenizedPaymentCard, CartTenderLine, SalesOrder, LoyaltyPointRedemptionEstimate, TenderLine, LineShippingAddress, SalesLineDeliveryOption, CartDeliveryPreferences, Address, DeliveryOption, LineDeliverySpecification, DeliverySpecification, ReasonCodeLine, CartLine, ReturnCartLine, TenderDiscountLine, ReceiptRetrievalCriteria, Receipt, RecallInvoicedSalesLineLookup, CardPaymentAcceptSettings, CommerceProperty, CardPaymentAcceptPoint, RetrievePaymentResultSettings, CardPaymentAcceptResult, CartPromotions, CartPromotionLine, CartLineUserAlerts, ChargeCode, TenderTypeAmount, CartLineValidationResults } from '../Entities/CommerceTypes.g';\n import { CartClass, SalesOrderClass, LoyaltyPointRedemptionEstimateClass, TenderLineClass, SalesLineDeliveryOptionClass, CartDeliveryPreferencesClass, DeliveryOptionClass, TenderDiscountLineClass, ReceiptClass, CardPaymentAcceptPointClass, CardPaymentAcceptResultClass, CartPromotionsClass, CartPromotionLineClass, CartLineUserAlertsClass, ChargeCodeClass, TenderTypeAmountClass, CartLineValidationResultsClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function cartsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"Carts\", \"Cart\", CartClass, key);\n }\n \n export function createCreateInput(entity: Cart): IDataServiceRequest {\n return cartsQuery().create(entity);\n }\n\n export function createCartAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Cart): IDataServiceRequest {\n return cartsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Cart): IDataServiceRequest {\n return cartsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return cartsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return cartsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, cartSearchCriteria?: CartSearchCriteria | null): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, CartClass, 'true', {bypassCache: 'none', returnEntity: 'Cart'}, {cartSearchCriteria: cartSearchCriteria });\n } \n \n export function searchAsync(context: IContext, cartSearchCriteria?: CartSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, cartSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createCheckoutInput(id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Checkout', true, SalesOrderClass, 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {receiptEmail: receiptEmail, tokenizedPaymentCard: tokenizedPaymentCard, receiptNumberSequence: receiptNumberSequence, cartTenderLines: cartTenderLines, cartVersion: cartVersion });\n } \n \n export function checkoutAsync(context: IContext, id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createCheckoutInput(id, receiptEmail, tokenizedPaymentCard, receiptNumberSequence, cartTenderLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id: string, loyaltyCardId?: string | null, currencyCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetMaxLoyaltyPointsToRedeemForTransactionBalance', true, LoyaltyPointRedemptionEstimateClass, 'false', {bypassCache: 'none', returnEntity: 'LoyaltyPointRedemptionEstimate'}, {loyaltyCardId: loyaltyCardId, currencyCode: currencyCode });\n } \n \n export function getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync(context: IContext, id: string, loyaltyCardId?: string | null, currencyCode?: string | null):AsyncResult {\n const request = createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id, loyaltyCardId, currencyCode);\n return executeAction(request, context);\n } \n \n export function createGetPaymentsHistoryInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPaymentsHistory', true, TenderLineClass, 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, { });\n } \n \n export function getPaymentsHistoryAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPaymentsHistoryInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createGetLineDeliveryOptionsByChannelIdInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLineDeliveryOptionsByChannelId', true, SalesLineDeliveryOptionClass, 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, channelId: channelId, filterOption: filterOption });\n } \n \n export function getLineDeliveryOptionsByChannelIdAsync(context: IContext, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null):AsyncResult {\n const request = createGetLineDeliveryOptionsByChannelIdInput(context.queryResultSettings, id, lineShippingAddresses, channelId, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetLineDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLineDeliveryOptions', true, SalesLineDeliveryOptionClass, 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, filterOption: filterOption });\n } \n \n export function getLineDeliveryOptionsAsync(context: IContext, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null):AsyncResult {\n const request = createGetLineDeliveryOptionsInput(context.queryResultSettings, id, lineShippingAddresses, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryPreferencesInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetDeliveryPreferences', true, CartDeliveryPreferencesClass, 'false', {bypassCache: 'none', returnEntity: 'CartDeliveryPreferences'}, { });\n } \n \n export function getDeliveryPreferencesAsync(context: IContext, id: string):AsyncResult {\n const request = createGetDeliveryPreferencesInput(id);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, DeliveryOptionClass, 'true', {bypassCache: 'none', returnEntity: 'DeliveryOption'}, {shippingAddress: shippingAddress, cartLineIds: cartLineIds, filterOption: filterOption, ignoreLinesWithDeliveryMode: ignoreLinesWithDeliveryMode });\n } \n \n export function getDeliveryOptionsAsync(context: IContext, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings, id, shippingAddress, cartLineIds, filterOption, ignoreLinesWithDeliveryMode);\n return executeAction(request, context);\n } \n \n export function createUpdateLineDeliverySpecificationsInput(id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateLineDeliverySpecifications', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {lineDeliverySpecifications: lineDeliverySpecifications });\n } \n \n export function updateLineDeliverySpecificationsAsync(context: IContext, id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null):AsyncResult {\n const request = createUpdateLineDeliverySpecificationsInput(id, lineDeliverySpecifications);\n return executeAction(request, context);\n } \n \n export function createUpdateDeliverySpecificationInput(id: string, deliverySpecification?: DeliverySpecification | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateDeliverySpecification', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {deliverySpecification: deliverySpecification });\n } \n \n export function updateDeliverySpecificationAsync(context: IContext, id: string, deliverySpecification?: DeliverySpecification | null):AsyncResult {\n const request = createUpdateDeliverySpecificationInput(id, deliverySpecification);\n return executeAction(request, context);\n } \n \n export function createAddChargeInput(id: string, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCharge', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n } \n \n export function addChargeAsync(context: IContext, id: string, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult {\n const request = createAddChargeInput(id, moduleTypeValue, chargeCode, amount);\n return executeAction(request, context);\n } \n \n export function createOverrideChargeInput(id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCharge', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n } \n \n export function overrideChargeAsync(context: IContext, id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createOverrideChargeInput(id, chargeLineId, amount, reasonCodeLines);\n return executeAction(request, context);\n } \n \n export function createAddCartLineChargeInput(id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCartLineCharge', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n } \n \n export function addCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult {\n const request = createAddCartLineChargeInput(id, cartLineId, moduleTypeValue, chargeCode, amount);\n return executeAction(request, context);\n } \n \n export function createOverrideCartLineChargeInput(id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCartLineCharge', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n } \n \n export function overrideCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createOverrideCartLineChargeInput(id, cartLineId, chargeLineId, amount, reasonCodeLines);\n return executeAction(request, context);\n } \n \n export function createVoidInput(id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Void', true, SalesOrderClass, 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {reasonCodeLines: reasonCodeLines, cartVersion: cartVersion });\n } \n \n export function voidAsync(context: IContext, id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createVoidInput(id, reasonCodeLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCartLines', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n } \n \n export function addCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createAddCartLinesInput(id, cartLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddReturnCartLinesInput(id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddReturnCartLines', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {returnCartLines: returnCartLines, returnTransactionSearchLocation: returnTransactionSearchLocation, cartVersion: cartVersion });\n } \n \n export function addReturnCartLinesAsync(context: IContext, id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null):AsyncResult {\n const request = createAddReturnCartLinesInput(id, returnCartLines, returnTransactionSearchLocation, cartVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateCartLines', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n } \n \n export function updateCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createUpdateCartLinesInput(id, cartLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createVoidCartLinesInput(id: string, cartLines?: CartLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('VoidCartLines', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines });\n } \n \n export function voidCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult {\n const request = createVoidCartLinesInput(id, cartLines);\n return executeAction(request, context);\n } \n \n export function createRemoveCartLinesInput(id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveCartLines', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineIds: cartLineIds });\n } \n \n export function removeCartLinesAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createRemoveCartLinesInput(id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createAddTenderLineInput(id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddTenderLine', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartTenderLine: cartTenderLine, cartVersion: cartVersion });\n } \n \n export function addTenderLineAsync(context: IContext, id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createAddTenderLineInput(id, cartTenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createCalculateTenderDiscountInput(id: string, tenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('CalculateTenderDiscount', true, TenderDiscountLineClass, 'false', {bypassCache: 'get', returnEntity: 'TenderDiscountLine'}, {tenderLine: tenderLine, cartVersion: cartVersion });\n } \n \n export function calculateTenderDiscountAsync(context: IContext, id: string, tenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createCalculateTenderDiscountInput(id, tenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddPreprocessedTenderLineInput(id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddPreprocessedTenderLine', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {preprocessedTenderLine: preprocessedTenderLine, cartVersion: cartVersion });\n } \n \n export function addPreprocessedTenderLineAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createAddPreprocessedTenderLineInput(id, preprocessedTenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createValidateTenderLineForAddInput(id: string, tenderLine?: TenderLine | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ValidateTenderLineForAdd', true, '', '', {bypassCache: 'get', returnEntity: ''}, {tenderLine: tenderLine });\n } \n \n export function validateTenderLineForAddAsync(context: IContext, id: string, tenderLine?: TenderLine | null):AsyncResult {\n const request = createValidateTenderLineForAddInput(id, tenderLine);\n return executeAction(request, context);\n } \n \n export function createUpdateTenderLineSignatureInput(id: string, tenderLineId?: string | null, signatureData?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateTenderLineSignature', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, signatureData: signatureData });\n } \n \n export function updateTenderLineSignatureAsync(context: IContext, id: string, tenderLineId?: string | null, signatureData?: string | null):AsyncResult {\n const request = createUpdateTenderLineSignatureInput(id, tenderLineId, signatureData);\n return executeAction(request, context);\n } \n \n export function createGetDeclinedOrVoidedCardReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeclinedOrVoidedCardReceipts', true, ReceiptClass, 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {preprocessedTenderLine: preprocessedTenderLine, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getDeclinedOrVoidedCardReceiptsAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetDeclinedOrVoidedCardReceiptsInput(context.queryResultSettings, id, preprocessedTenderLine, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createCopyInput(id: string, targetCartType: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Copy', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {targetCartType: targetCartType });\n } \n \n export function copyAsync(context: IContext, id: string, targetCartType: number):AsyncResult {\n const request = createCopyInput(id, targetCartType);\n return executeAction(request, context);\n } \n \n export function createAddInvoicedSalesLinesToCartInput(transactionId: string | null, invoicedSalesLinesIds: number[]): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('AddInvoicedSalesLinesToCart', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoicedSalesLinesIds: invoicedSalesLinesIds });\n } \n \n export function addInvoicedSalesLinesToCartAsync(context: IContext, transactionId: string | null, invoicedSalesLinesIds: number[]):AsyncResult {\n const request = createAddInvoicedSalesLinesToCartInput(transactionId, invoicedSalesLinesIds);\n return executeAction(request, context);\n } \n \n export function createRecallInvoicedSalesLinesInput(id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RecallInvoicedSalesLines', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {recallInvoicedSalesLineLookups: recallInvoicedSalesLineLookups });\n } \n \n export function recallInvoicedSalesLinesAsync(context: IContext, id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null):AsyncResult {\n const request = createRecallInvoicedSalesLinesInput(id, recallInvoicedSalesLineLookups);\n return executeAction(request, context);\n } \n \n export function createVoidTenderLineInput(id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('VoidTenderLine', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, reasonCodeLines: reasonCodeLines, isPreprocessed: isPreprocessed, forceVoid: forceVoid });\n } \n \n export function voidTenderLineAsync(context: IContext, id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null):AsyncResult {\n const request = createVoidTenderLineInput(id, tenderLineId, reasonCodeLines, isPreprocessed, forceVoid);\n return executeAction(request, context);\n } \n \n export function createIssueGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('IssueGiftCard', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function issueGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createIssueGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createRefillGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RefillGiftCard', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function refillGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createRefillGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createCashOutGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('CashOutGiftCard', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function cashOutGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createCashOutGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createSuspendInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Suspend', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function suspendAsync(context: IContext, id: string):AsyncResult {\n const request = createSuspendInput(id);\n return executeAction(request, context);\n } \n \n export function createSuspendWithJournalInput(id: string, journalCartId?: string | null, receiptNumberSequence?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('SuspendWithJournal', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {journalCartId: journalCartId, receiptNumberSequence: receiptNumberSequence });\n } \n \n export function suspendWithJournalAsync(context: IContext, id: string, journalCartId?: string | null, receiptNumberSequence?: string | null):AsyncResult {\n const request = createSuspendWithJournalInput(id, journalCartId, receiptNumberSequence);\n return executeAction(request, context);\n } \n \n export function createResumeInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Resume', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function resumeAsync(context: IContext, id: string):AsyncResult {\n const request = createResumeInput(id);\n return executeAction(request, context);\n } \n \n export function createResumeFromReceiptIdInput(receiptId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('ResumeFromReceiptId', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {receiptId: receiptId });\n } \n \n export function resumeFromReceiptIdAsync(context: IContext, receiptId?: string | null):AsyncResult {\n const request = createResumeFromReceiptIdInput(receiptId);\n return executeAction(request, context);\n } \n \n export function createRemoveDiscountCodesInput(id: string, discountCodes?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveDiscountCodes', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCodes: discountCodes });\n } \n \n export function removeDiscountCodesAsync(context: IContext, id: string, discountCodes?: string[] | null):AsyncResult {\n const request = createRemoveDiscountCodesInput(id, discountCodes);\n return executeAction(request, context);\n } \n \n export function createGetSuspendedInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSuspended', true, CartClass, 'true', {bypassCache: 'none', returnEntity: 'Cart'}, { });\n } \n \n export function getSuspendedAsync(context: IContext, ):AsyncResult {\n const request = createGetSuspendedInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createOverrideCartLinePriceInput(id: string, cartLineId: string | null, price: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCartLinePrice', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price });\n } \n \n export function overrideCartLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number):AsyncResult {\n const request = createOverrideCartLinePriceInput(id, cartLineId, price);\n return executeAction(request, context);\n } \n \n export function createGetCardPaymentAcceptPointInput(id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetCardPaymentAcceptPoint', true, CardPaymentAcceptPointClass, 'false', {bypassCache: 'none', returnEntity: 'CardPaymentAcceptPoint'}, {cardPaymentAcceptSettings: cardPaymentAcceptSettings, extensionProperties: extensionProperties });\n } \n \n export function getCardPaymentAcceptPointAsync(context: IContext, id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetCardPaymentAcceptPointInput(id, cardPaymentAcceptSettings, extensionProperties);\n return executeAction(request, context);\n } \n \n export function createRetrieveCardPaymentAcceptResultInput(resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RetrieveCardPaymentAcceptResult', true, CardPaymentAcceptResultClass, 'false', {bypassCache: 'get', returnEntity: 'CardPaymentAcceptResult'}, {resultAccessCode: resultAccessCode, extensionProperties: extensionProperties, cartId: cartId, settings: settings });\n } \n \n export function retrieveCardPaymentAcceptResultAsync(context: IContext, resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null):AsyncResult {\n const request = createRetrieveCardPaymentAcceptResultInput(resultAccessCode, extensionProperties, cartId, settings);\n return executeAction(request, context);\n } \n \n export function createRecallOrderInput(transactionId?: string | null, salesId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallOrder', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, salesId: salesId });\n } \n \n export function recallOrderAsync(context: IContext, transactionId?: string | null, salesId?: string | null):AsyncResult {\n const request = createRecallOrderInput(transactionId, salesId);\n return executeAction(request, context);\n } \n \n export function createRecallQuoteInput(transactionId?: string | null, quoteId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallQuote', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, quoteId: quoteId });\n } \n \n export function recallQuoteAsync(context: IContext, transactionId?: string | null, quoteId?: string | null):AsyncResult {\n const request = createRecallQuoteInput(transactionId, quoteId);\n return executeAction(request, context);\n } \n \n export function createRecalculateOrderInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RecalculateOrder', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function recalculateOrderAsync(context: IContext, id: string):AsyncResult {\n const request = createRecalculateOrderInput(id);\n return executeAction(request, context);\n } \n \n export function createResetAllChargesInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ResetAllCharges', false, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function resetAllChargesAsync(context: IContext, id: string):AsyncResult {\n const request = createResetAllChargesInput(id);\n return executeAction(request, context);\n } \n \n export function createGetPromotionsInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetPromotions', true, CartPromotionsClass, 'false', {bypassCache: 'none', returnEntity: 'CartPromotions'}, { });\n } \n \n export function getPromotionsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPromotionsInput(id);\n return executeAction(request, context);\n } \n \n export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, CartPromotionLineClass, 'true', {bypassCache: 'none', returnEntity: 'CartPromotionLine'}, {cartLineIds: cartLineIds });\n } \n \n export function getAvailablePromotionsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createGetAvailablePromotionsInput(context.queryResultSettings, id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createRecallSalesInvoiceInput(transactionId?: string | null, invoiceId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallSalesInvoice', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoiceId: invoiceId });\n } \n \n export function recallSalesInvoiceAsync(context: IContext, transactionId?: string | null, invoiceId?: string | null):AsyncResult {\n const request = createRecallSalesInvoiceInput(transactionId, invoiceId);\n return executeAction(request, context);\n } \n \n export function createAddOrderInvoiceInput(id: string, invoiceId?: string | null, lineDescription?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddOrderInvoice', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceId: invoiceId, lineDescription: lineDescription });\n } \n \n export function addOrderInvoiceAsync(context: IContext, id: string, invoiceId?: string | null, lineDescription?: string | null):AsyncResult {\n const request = createAddOrderInvoiceInput(id, invoiceId, lineDescription);\n return executeAction(request, context);\n } \n \n export function createAddInvoicesInput(id: string, invoiceIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddInvoices', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceIds: invoiceIds });\n } \n \n export function addInvoicesAsync(context: IContext, id: string, invoiceIds?: string[] | null):AsyncResult {\n const request = createAddInvoicesInput(id, invoiceIds);\n return executeAction(request, context);\n } \n \n export function createUpdateCommissionSalesGroupInput(transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('UpdateCommissionSalesGroup', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, cartLineId: cartLineId, commissionSalesGroup: commissionSalesGroup, isUserInitiated: isUserInitiated });\n } \n \n export function updateCommissionSalesGroupAsync(context: IContext, transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean):AsyncResult {\n const request = createUpdateCommissionSalesGroupInput(transactionId, cartLineId, commissionSalesGroup, isUserInitiated);\n return executeAction(request, context);\n } \n \n export function createAddCouponsInput(id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCoupons', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes, isLegacyDiscountCode: isLegacyDiscountCode });\n } \n \n export function addCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null):AsyncResult {\n const request = createAddCouponsInput(id, couponCodes, isLegacyDiscountCode);\n return executeAction(request, context);\n } \n \n export function createRemoveCouponsInput(id: string, couponCodes?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveCoupons', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes });\n } \n \n export function removeCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null):AsyncResult {\n const request = createRemoveCouponsInput(id, couponCodes);\n return executeAction(request, context);\n } \n \n export function createGetCartLineUserAlertsForAddInput(queryResultSettings: IQueryResultSettings, id: string, cartLines?: CartLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCartLineUserAlertsForAdd', true, CartLineUserAlertsClass, 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLines: cartLines });\n } \n \n export function getCartLineUserAlertsForAddAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult {\n const request = createGetCartLineUserAlertsForAddInput(context.queryResultSettings, id, cartLines);\n return executeAction(request, context);\n } \n \n export function createGetCartLineUserAlertsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCartLineUserAlerts', true, CartLineUserAlertsClass, 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLineIds: cartLineIds });\n } \n \n export function getCartLineUserAlertsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createGetCartLineUserAlertsInput(context.queryResultSettings, id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createGetChargeCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChargeCodes', false, ChargeCodeClass, 'true', {bypassCache: 'none', returnEntity: 'ChargeCode'}, { });\n } \n \n export function getChargeCodesAsync(context: IContext, ):AsyncResult {\n const request = createGetChargeCodesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetReceiptTypesInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptTypes', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getReceiptTypesAsync(context: IContext, id: string):AsyncResult {\n const request = createGetReceiptTypesInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createSetInvoiceLinePriceInput(id: string, cartLineId: string | null, price: number, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('SetInvoiceLinePrice', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price, cartVersion: cartVersion });\n } \n \n export function setInvoiceLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number, cartVersion?: number | null):AsyncResult {\n const request = createSetInvoiceLinePriceInput(id, cartLineId, price, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddDiscountCodeInput(id: string, discountCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddDiscountCode', true, CartClass, 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCode: discountCode });\n } \n \n export function addDiscountCodeAsync(context: IContext, id: string, discountCode?: string | null):AsyncResult {\n const request = createAddDiscountCodeInput(id, discountCode);\n return executeAction(request, context);\n } \n \n export function createGetReturnOptionsInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReturnOptions', false, TenderTypeAmountClass, 'true', {bypassCache: 'none', returnEntity: 'TenderTypeAmount'}, { });\n } \n \n export function getReturnOptionsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetReturnOptionsInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createValidateForCheckoutInput(id: string, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ValidateForCheckout', false, CartLineValidationResultsClass, 'false', {bypassCache: 'get', returnEntity: 'CartLineValidationResults'}, {cartVersion: cartVersion });\n } \n \n export function validateForCheckoutAsync(context: IContext, id: string, cartVersion?: number | null):AsyncResult {\n const request = createValidateForCheckoutInput(id, cartVersion);\n return executeAction(request, context);\n } \n \n export function createGetTenderSuggestionsInput(queryResultSettings: IQueryResultSettings, id: string, tenderTypeId?: string | null, currencyCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTenderSuggestions', false, TenderLineClass, 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, {tenderTypeId: tenderTypeId, currencyCode: currencyCode });\n } \n \n export function getTenderSuggestionsAsync(context: IContext, id: string, tenderTypeId?: string | null, currencyCode?: string | null):AsyncResult {\n const request = createGetTenderSuggestionsInput(context.queryResultSettings, id, tenderTypeId, currencyCode);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ProductCatalog } from '../Entities/CommerceTypes.g';\n import { ProductCatalogClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function catalogsQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Catalogs\", \"ProductCatalog\", ProductCatalogClass, key);\n }\n \n export function createCreateInput(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery().create(entity);\n }\n\n export function createProductCatalogAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return catalogsQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return catalogsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCatalogsInput(queryResultSettings: IQueryResultSettings, channelId: number, activeOnly: boolean): IDataServiceRequest { \n const query = catalogsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogs', true, ProductCatalogClass, 'true', {bypassCache: 'none', returnEntity: 'ProductCatalog'}, {channelId: channelId, activeOnly: activeOnly });\n } \n \n export function getCatalogsAsync(context: IContext, channelId: number, activeOnly: boolean):AsyncResult {\n const request = createGetCatalogsInput(context.queryResultSettings, channelId, activeOnly);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Category, AttributeCategory } from '../Entities/CommerceTypes.g';\n import { CategoryClass, AttributeCategoryClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function categoriesQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Categories\", \"Category\", CategoryClass, key);\n }\n \n export function createCreateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery().create(entity);\n }\n\n export function createCategoryAsync(context: IContext, entity: Category): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Category): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Category): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return categoriesQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return categoriesQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCategoriesInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId?: number | null): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCategories', true, CategoryClass, 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getCategoriesAsync(context: IContext, channelId: number, catalogId?: number | null):AsyncResult {\n const request = createGetCategoriesInput(context.queryResultSettings, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetAttributesInput(queryResultSettings: IQueryResultSettings, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributes', false, AttributeCategoryClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {categoryId: categoryId });\n } \n \n export function getAttributesAsync(context: IContext, categoryId: number):AsyncResult {\n const request = createGetAttributesInput(context.queryResultSettings, categoryId);\n return executeAction(request, context);\n } \n \n export function createGetCatalogAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryIds: number[]): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogAttributes', true, AttributeCategoryClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {catalogId: catalogId, categoryIds: categoryIds });\n } \n \n export function getCatalogAttributesAsync(context: IContext, catalogId: number, categoryIds: number[]):AsyncResult {\n const request = createGetCatalogAttributesInput(context.queryResultSettings, catalogId, categoryIds);\n return executeAction(request, context);\n } \n \n export function createGetChildrenInput(queryResultSettings: IQueryResultSettings, channelId: number, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChildren', true, CategoryClass, 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, categoryId: categoryId });\n } \n \n export function getChildrenAsync(context: IContext, channelId: number, categoryId: number):AsyncResult {\n const request = createGetChildrenInput(context.queryResultSettings, channelId, categoryId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { CommerceList, CommerceListLine, CommerceListContributor, CommerceListInvitation } from '../Entities/CommerceTypes.g';\n import { CommerceListClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function commerceListsQuery(id?: number): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"CommerceLists\", \"CommerceList\", CommerceListClass, key);\n }\n \n export function createCreateInput(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery().create(entity);\n }\n\n export function createCommerceListAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: number): IDataServiceRequest {\n return commerceListsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: number): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return commerceListsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetByCustomerInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest { \n const query = commerceListsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByCustomer', true, CommerceListClass, 'true', {bypassCache: 'none', returnEntity: 'CommerceList'}, {customerId: customerId });\n } \n \n export function getByCustomerAsync(context: IContext, customerId?: string | null):AsyncResult {\n const request = createGetByCustomerInput(context.queryResultSettings, customerId);\n return executeAction(request, context);\n } \n \n export function createAddLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('AddLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function addLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createAddLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createUpdateLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function updateLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createUpdateLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createRemoveLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function removeLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createRemoveLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createMoveLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('MoveLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n } \n \n export function moveLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\n const request = createMoveLinesInput(commerceListLines, destinationId);\n return executeAction(request, context);\n } \n \n export function createCopyLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('CopyLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n } \n \n export function copyLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\n const request = createCopyLinesInput(commerceListLines, destinationId);\n return executeAction(request, context);\n } \n \n export function createAddContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('AddContributors', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n } \n \n export function addContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\n const request = createAddContributorsInput(id, commerceListContributors);\n return executeAction(request, context);\n } \n \n export function createRemoveContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveContributors', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n } \n \n export function removeContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\n const request = createRemoveContributorsInput(id, commerceListContributors);\n return executeAction(request, context);\n } \n \n export function createCreateInvitationsInput(id: number, commerceListInvitations?: CommerceListInvitation[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('CreateInvitations', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListInvitations: commerceListInvitations });\n } \n \n export function createInvitationsAsync(context: IContext, id: number, commerceListInvitations?: CommerceListInvitation[] | null):AsyncResult {\n const request = createCreateInvitationsInput(id, commerceListInvitations);\n return executeAction(request, context);\n } \n \n export function createAcceptInvitationInput(invitationToken?: string | null, customerId?: string | null): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('AcceptInvitation', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invitationToken: invitationToken, customerId: customerId });\n } \n \n export function acceptInvitationAsync(context: IContext, invitationToken?: string | null, customerId?: string | null):AsyncResult {\n const request = createAcceptInvitationInput(invitationToken, customerId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Customer, CustomerSearchCriteria, GlobalCustomer, CustomerSearchByFieldCriteria, CustomerTimelineItem, CustomerRefiner, SalesOrder, OrderShipments, PurchaseHistory, CustomerSearchField, CustomerTimelineItemTypeMap, CustomerTimelineRefiner, CustomerTitle } from '../Entities/CommerceTypes.g';\n import { CustomerClass, GlobalCustomerClass, CustomerTimelineItemClass, CustomerRefinerClass, SalesOrderClass, OrderShipmentsClass, PurchaseHistoryClass, CustomerSearchFieldClass, CustomerTimelineItemTypeMapClass, CustomerTimelineRefinerClass, CustomerTitleClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function customersQuery(accountNumber?: string): DataServiceQuery {\n var key = (accountNumber !== null && accountNumber !== undefined) ? { AccountNumber: accountNumber } : null;\n return new DataServiceQuery(\"Customers\", \"Customer\", CustomerClass, key);\n }\n \n export function createCreateInput(entity: Customer): IDataServiceRequest {\n return customersQuery().create(entity);\n }\n\n export function createCustomerAsync(context: IContext, entity: Customer): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Customer): IDataServiceRequest {\n return customersQuery(entity.AccountNumber).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Customer): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Customer): IDataServiceRequest {\n return customersQuery(entity.AccountNumber).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Customer): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(accountNumber: string): IDataServiceRequest {\n return customersQuery(accountNumber).read();\n }\n\n export function readAsync(context: IContext, accountNumber: string): AsyncResult {\n const request = createReadAsync(accountNumber);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return customersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, customerSearchCriteria?: CustomerSearchCriteria | null): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, GlobalCustomerClass, 'true', {bypassCache: 'none', returnEntity: 'GlobalCustomer'}, {customerSearchCriteria: customerSearchCriteria });\n } \n \n export function searchAsync(context: IContext, customerSearchCriteria?: CustomerSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, customerSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchByFieldsInput(queryResultSettings: IQueryResultSettings, customerSearchByFieldCriteria?: CustomerSearchByFieldCriteria | null): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByFields', true, GlobalCustomerClass, 'true', {bypassCache: 'none', returnEntity: 'GlobalCustomer'}, {CustomerSearchByFieldCriteria: customerSearchByFieldCriteria });\n } \n \n export function searchByFieldsAsync(context: IContext, customerSearchByFieldCriteria?: CustomerSearchByFieldCriteria | null):AsyncResult {\n const request = createSearchByFieldsInput(context.queryResultSettings, customerSearchByFieldCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByAccountNumbersInput(queryResultSettings: IQueryResultSettings, accountNumbers: string[] | null, searchLocationValue: number): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByAccountNumbers', true, CustomerClass, 'true', {bypassCache: 'none', returnEntity: 'Customer'}, {accountNumbers: accountNumbers, searchLocationValue: searchLocationValue });\n } \n \n export function getByAccountNumbersAsync(context: IContext, accountNumbers: string[] | null, searchLocationValue: number):AsyncResult {\n const request = createGetByAccountNumbersInput(context.queryResultSettings, accountNumbers, searchLocationValue);\n return executeAction(request, context);\n } \n \n export function createCreateCustomerTimelineItemInput(customerTimelineItem?: CustomerTimelineItem | null): IDataServiceRequest { \n const query = customersQuery();\n return query.createDataServiceRequestForOperation('CreateCustomerTimelineItem', true, CustomerTimelineItemClass, 'false', {bypassCache: 'get', returnEntity: 'CustomerTimelineItem'}, {customerTimelineItem: customerTimelineItem });\n } \n \n export function createCustomerTimelineItemAsync(context: IContext, customerTimelineItem?: CustomerTimelineItem | null):AsyncResult {\n const request = createCreateCustomerTimelineItemInput(customerTimelineItem);\n return executeAction(request, context);\n } \n \n export function createUpdateCustomerTimelineItemInput(customerTimelineItem?: CustomerTimelineItem | null): IDataServiceRequest { \n const query = customersQuery();\n return query.createDataServiceRequestForOperation('UpdateCustomerTimelineItem', true, CustomerTimelineItemClass, 'false', {bypassCache: 'get', returnEntity: 'CustomerTimelineItem'}, {customerTimelineItem: customerTimelineItem });\n } \n \n export function updateCustomerTimelineItemAsync(context: IContext, customerTimelineItem?: CustomerTimelineItem | null):AsyncResult {\n const request = createUpdateCustomerTimelineItemInput(customerTimelineItem);\n return executeAction(request, context);\n } \n \n export function createGetRefinersInput(queryResultSettings: IQueryResultSettings, searchCriteria: CustomerSearchCriteria | null, refinerSourceTypes: number[]): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefiners', true, CustomerRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerRefiner'}, {searchCriteria: searchCriteria, refinerSourceTypes: refinerSourceTypes });\n } \n \n export function getRefinersAsync(context: IContext, searchCriteria: CustomerSearchCriteria | null, refinerSourceTypes: number[]):AsyncResult {\n const request = createGetRefinersInput(context.queryResultSettings, searchCriteria, refinerSourceTypes);\n return executeAction(request, context);\n } \n \n export function createGetOrderHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderHistory', true, SalesOrderClass, 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, { });\n } \n \n export function getOrderHistoryAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetOrderHistoryInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetOrderShipmentsHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, nextPageToken?: string | null): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderShipmentsHistory', true, OrderShipmentsClass, 'true', {bypassCache: 'none', returnEntity: 'OrderShipments'}, {nextPageToken: nextPageToken });\n } \n \n export function getOrderShipmentsHistoryAsync(context: IContext, accountNumber: string, nextPageToken?: string | null):AsyncResult {\n const request = createGetOrderShipmentsHistoryInput(context.queryResultSettings, accountNumber, nextPageToken);\n return executeAction(request, context);\n } \n \n export function createPostNonTransactionalActivityLoyaltyPointsInput(loyaltyCardId: string | null, channelId: number, affiliationId: number, activityTypeId?: string | null): IDataServiceRequest { \n const query = customersQuery();\n return query.createDataServiceRequestForOperation('PostNonTransactionalActivityLoyaltyPoints', true, '', '', {bypassCache: 'get', returnEntity: ''}, {loyaltyCardId: loyaltyCardId, channelId: channelId, affiliationId: affiliationId, activityTypeId: activityTypeId });\n } \n \n export function postNonTransactionalActivityLoyaltyPointsAsync(context: IContext, loyaltyCardId: string | null, channelId: number, affiliationId: number, activityTypeId?: string | null):AsyncResult {\n const request = createPostNonTransactionalActivityLoyaltyPointsInput(loyaltyCardId, channelId, affiliationId, activityTypeId);\n return executeAction(request, context);\n } \n \n export function createGetPurchaseHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPurchaseHistory', false, PurchaseHistoryClass, 'true', {bypassCache: 'none', returnEntity: 'PurchaseHistory'}, { });\n } \n \n export function getPurchaseHistoryAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetPurchaseHistoryInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetCustomerSearchFieldsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerSearchFields', false, CustomerSearchFieldClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerSearchField'}, { });\n } \n \n export function getCustomerSearchFieldsAsync(context: IContext, ):AsyncResult {\n const request = createGetCustomerSearchFieldsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetCustomerTimelineItemTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerTimelineItemTypes', false, CustomerTimelineItemTypeMapClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineItemTypeMap'}, { });\n } \n \n export function getCustomerTimelineItemTypesAsync(context: IContext, ):AsyncResult {\n const request = createGetCustomerTimelineItemTypesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetCustomerTimelineItemsInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerTimelineItems', false, CustomerTimelineItemClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineItem'}, { });\n } \n \n export function getCustomerTimelineItemsAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetCustomerTimelineItemsInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetCustomerTimelineRefinersInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerTimelineRefiners', false, CustomerTimelineRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineRefiner'}, { });\n } \n \n export function getCustomerTimelineRefinersAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetCustomerTimelineRefinersInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetTitlesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTitles', false, CustomerTitleClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerTitle'}, { });\n } \n \n export function getTitlesAsync(context: IContext, ):AsyncResult {\n const request = createGetTitlesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { OrgUnit, TillLayout, SearchStoreCriteria, SearchArea, OrgUnitLocation, OrgUnitLocationSearchCriteria, ChannelConfiguration, StoreHours, ChannelDeliveryOption, OrgUnitAvailability, ItemUnit, ProductDimensionCombination, OrgUnitAvailabilitySearchCriteria, TerminalInfo } from '../Entities/CommerceTypes.g';\n import { OrgUnitClass, TillLayoutClass, OrgUnitLocationClass, ChannelConfigurationClass, StoreHoursClass, ChannelDeliveryOptionClass, OrgUnitAvailabilityClass, TerminalInfoClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function orgUnitsQuery(orgUnitNumber?: string): DataServiceQuery {\n var key = (orgUnitNumber) ? { OrgUnitNumber: orgUnitNumber } : null;\n return new DataServiceQuery(\"OrgUnits\", \"OrgUnit\", OrgUnitClass, key);\n }\n \n export function createCreateInput(entity: OrgUnit): IDataServiceRequest {\n return orgUnitsQuery().create(entity);\n }\n\n export function createOrgUnitAsync(context: IContext, entity: OrgUnit): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: OrgUnit): IDataServiceRequest {\n return orgUnitsQuery(entity.OrgUnitNumber).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: OrgUnit): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: OrgUnit): IDataServiceRequest {\n return orgUnitsQuery(entity.OrgUnitNumber).delete();\n }\n\n export function deleteAsync(context: IContext, entity: OrgUnit): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(orgUnitNumber: string): IDataServiceRequest {\n return orgUnitsQuery(orgUnitNumber).read();\n }\n\n export function readAsync(context: IContext, orgUnitNumber: string): AsyncResult {\n const request = createReadAsync(orgUnitNumber);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return orgUnitsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetTillLayoutInput(height?: number | null, width?: number | null, includeImage?: boolean | null): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetTillLayout', true, TillLayoutClass, 'false', {bypassCache: 'none', returnEntity: 'TillLayout'}, {height: height, width: width, includeImage: includeImage });\n } \n \n export function getTillLayoutAsync(context: IContext, height?: number | null, width?: number | null, includeImage?: boolean | null):AsyncResult {\n const request = createGetTillLayoutInput(height, width, includeImage);\n return executeAction(request, context);\n } \n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, storeSearchCriteria?: SearchStoreCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, OrgUnitClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnit'}, {storeSearchCriteria: storeSearchCriteria });\n } \n \n export function searchAsync(context: IContext, storeSearchCriteria?: SearchStoreCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, storeSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetOrgUnitLocationsByAreaInput(queryResultSettings: IQueryResultSettings, searchArea?: SearchArea | null, deliveryModeTypeFilter?: number | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrgUnitLocationsByArea', true, OrgUnitLocationClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnitLocation'}, {searchArea: searchArea, deliveryModeTypeFilter: deliveryModeTypeFilter });\n } \n \n export function getOrgUnitLocationsByAreaAsync(context: IContext, searchArea?: SearchArea | null, deliveryModeTypeFilter?: number | null):AsyncResult {\n const request = createGetOrgUnitLocationsByAreaInput(context.queryResultSettings, searchArea, deliveryModeTypeFilter);\n return executeAction(request, context);\n } \n \n export function createSearchOrgUnitLocationsInput(queryResultSettings: IQueryResultSettings, orgUnitLocationSearchCriteria?: OrgUnitLocationSearchCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchOrgUnitLocations', true, OrgUnitLocationClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnitLocation'}, {orgUnitLocationSearchCriteria: orgUnitLocationSearchCriteria });\n } \n \n export function searchOrgUnitLocationsAsync(context: IContext, orgUnitLocationSearchCriteria?: OrgUnitLocationSearchCriteria | null):AsyncResult {\n const request = createSearchOrgUnitLocationsInput(context.queryResultSettings, orgUnitLocationSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetOrgUnitConfigurationInput(): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetOrgUnitConfiguration', true, ChannelConfigurationClass, 'false', {bypassCache: 'none', returnEntity: 'ChannelConfiguration'}, { });\n } \n \n export function getOrgUnitConfigurationAsync(context: IContext, ):AsyncResult {\n const request = createGetOrgUnitConfigurationInput();\n return executeAction(request, context);\n } \n \n export function createGetStoreHoursInput(storeNumber?: string | null): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetStoreHours', false, StoreHoursClass, 'false', {bypassCache: 'none', returnEntity: 'StoreHours'}, {storeNumber: storeNumber });\n } \n \n export function getStoreHoursAsync(context: IContext, storeNumber?: string | null):AsyncResult {\n const request = createGetStoreHoursInput(storeNumber);\n return executeAction(request, context);\n } \n \n export function createGetChannelDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, channelIds: number[], filterOption?: number | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelDeliveryOptions', true, ChannelDeliveryOptionClass, 'true', {bypassCache: 'none', returnEntity: 'ChannelDeliveryOption'}, {channelIds: channelIds, filterOption: filterOption });\n } \n \n export function getChannelDeliveryOptionsAsync(context: IContext, channelIds: number[], filterOption?: number | null):AsyncResult {\n const request = createGetChannelDeliveryOptionsInput(context.queryResultSettings, channelIds, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetAvailableInventoryInput(queryResultSettings: IQueryResultSettings, itemId?: string | null, variantId?: string | null, barcode?: string | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableInventory', true, OrgUnitAvailabilityClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {itemId: itemId, variantId: variantId, barcode: barcode });\n } \n \n export function getAvailableInventoryAsync(context: IContext, itemId?: string | null, variantId?: string | null, barcode?: string | null):AsyncResult {\n const request = createGetAvailableInventoryInput(context.queryResultSettings, itemId, variantId, barcode);\n return executeAction(request, context);\n } \n \n export function createGetAvailableInventoryNearbyInput(queryResultSettings: IQueryResultSettings, itemIds?: ItemUnit[] | null, searchArea?: SearchArea | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableInventoryNearby', true, OrgUnitAvailabilityClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {itemIds: itemIds, searchArea: searchArea });\n } \n \n export function getAvailableInventoryNearbyAsync(context: IContext, itemIds?: ItemUnit[] | null, searchArea?: SearchArea | null):AsyncResult {\n const request = createGetAvailableInventoryNearbyInput(context.queryResultSettings, itemIds, searchArea);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilityByDimensionsInput(queryResultSettings: IQueryResultSettings, inventLocationIds: string[] | null, productId: number, productDimensionCombinations?: ProductDimensionCombination[] | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailabilityByDimensions', true, OrgUnitAvailabilityClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {inventLocationIds: inventLocationIds, productId: productId, productDimensionCombinations: productDimensionCombinations });\n } \n \n export function getProductAvailabilityByDimensionsAsync(context: IContext, inventLocationIds: string[] | null, productId: number, productDimensionCombinations?: ProductDimensionCombination[] | null):AsyncResult {\n const request = createGetProductAvailabilityByDimensionsInput(context.queryResultSettings, inventLocationIds, productId, productDimensionCombinations);\n return executeAction(request, context);\n } \n \n export function createSearchProductAvailabilityInput(queryResultSettings: IQueryResultSettings, productId: number, orgUnitAvailabilitySearchCriteria?: OrgUnitAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchProductAvailability', true, OrgUnitAvailabilityClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {productId: productId, orgUnitAvailabilitySearchCriteria: orgUnitAvailabilitySearchCriteria });\n } \n \n export function searchProductAvailabilityAsync(context: IContext, productId: number, orgUnitAvailabilitySearchCriteria?: OrgUnitAvailabilitySearchCriteria | null):AsyncResult {\n const request = createSearchProductAvailabilityInput(context.queryResultSettings, productId, orgUnitAvailabilitySearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetTerminalInfoInput(queryResultSettings: IQueryResultSettings, orgUnitNumber: string, deviceType: number): IDataServiceRequest { \n const query = orgUnitsQuery(orgUnitNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTerminalInfo', false, TerminalInfoClass, 'true', {bypassCache: 'none', returnEntity: 'TerminalInfo'}, {deviceType: deviceType });\n } \n \n export function getTerminalInfoAsync(context: IContext, orgUnitNumber: string, deviceType: number):AsyncResult {\n const request = createGetTerminalInfoInput(context.queryResultSettings, orgUnitNumber, deviceType);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilityInput(queryResultSettings: IQueryResultSettings, productId: number): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailability', false, OrgUnitAvailabilityClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {productId: productId });\n } \n \n export function getProductAvailabilityAsync(context: IContext, productId: number):AsyncResult {\n const request = createGetProductAvailabilityInput(context.queryResultSettings, productId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ProductList, ProductListSearchCriteria, ProductListLine } from '../Entities/CommerceTypes.g';\n import { ProductListClass, ProductListLineClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function productListsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"ProductLists\", \"ProductList\", ProductListClass, key);\n }\n \n export function createCreateInput(entity: ProductList): IDataServiceRequest {\n return productListsQuery().create(entity);\n }\n\n export function createProductListAsync(context: IContext, entity: ProductList): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ProductList): IDataServiceRequest {\n return productListsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ProductList): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ProductList): IDataServiceRequest {\n return productListsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ProductList): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return productListsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return productListsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductListSearchCriteria | null): IDataServiceRequest { \n const query = productListsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, ProductListClass, 'true', {bypassCache: 'none', returnEntity: 'ProductList'}, {searchCriteria: searchCriteria });\n } \n \n export function searchAsync(context: IContext, searchCriteria?: ProductListSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, searchText?: string | null): IDataServiceRequest { \n const query = productListsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductListLines', true, ProductListLineClass, 'true', {bypassCache: 'none', returnEntity: 'ProductListLine'}, {searchText: searchText });\n } \n \n export function getProductListLinesAsync(context: IContext, id: string, searchText?: string | null):AsyncResult {\n const request = createGetProductListLinesInput(context.queryResultSettings, id, searchText);\n return executeAction(request, context);\n } \n \n export function createAddProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \n const query = productListsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('AddProductListLines', true, ProductListLineClass, 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\n } \n \n export function addProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\n const request = createAddProductListLinesInput(context.queryResultSettings, id, productListLines);\n return executeAction(request, context);\n } \n \n export function createUpdateProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \n const query = productListsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('UpdateProductListLines', true, ProductListLineClass, 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\n } \n \n export function updateProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\n const request = createUpdateProductListLinesInput(context.queryResultSettings, id, productListLines);\n return executeAction(request, context);\n } \n \n export function createRemoveProductListLinesInput(id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \n const query = productListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveProductListLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {productListLines: productListLines });\n } \n \n export function removeProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\n const request = createRemoveProductListLinesInput(id, productListLines);\n return executeAction(request, context);\n } \n \n export function createCopyCartToProductListInput(id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null): IDataServiceRequest { \n const query = productListsQuery(id);\n return query.createDataServiceRequestForOperation('CopyCartToProductList', true, ProductListClass, 'false', {bypassCache: 'get', returnEntity: 'ProductList'}, {cartId: cartId, isRewrite: isRewrite, isQuantityAggregate: isQuantityAggregate });\n } \n \n export function copyCartToProductListAsync(context: IContext, id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null):AsyncResult {\n const request = createCopyCartToProductListInput(id, cartId, isRewrite, isQuantityAggregate);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Product, ProductSearchCriteria, ProductRefiner, ProductDimension, ProductVariantResolutionOnKitSelectionContext, ProductDimensionValue, ProductDimensionAvailabilitySearchCriteria, ProductDimensionValueInventoryAvailability, SimpleProduct, ComponentInSlotRelation, ProductComparisonLine, ProductSearchResult, ProductRefinerValue, Address, ProductDeliveryOptions, ChangedProductsSearchCriteria, ReadChangedProductsSession, DeletedListingsResult, AssortedProductIdentity, ProductExistenceCriteria, ProductExistenceId, ProductRating, ProductAssortmentInterval, ListingPublishStatus, AttributeProduct, ProductPrice, ProductAvailableQuantity, ProjectionDomain, AffiliationLoyaltyTier, ProductComponent, SearchSuggestion, CategoryPathLookup, CategoryPathResult, UnitOfMeasure, ProductLookupClause, AttributeValue, MediaLocation, MediaBlob, ProductRelationType, ProductWarrantiesMapping, ProductWarehouse, ProductWarehouseInventoryInformation, InventoryAvailabilitySearchCriteria } from '../Entities/CommerceTypes.g';\n import { ProductClass, ProductRefinerClass, ProductDimensionValueClass, ProductDimensionValueInventoryAvailabilityClass, SimpleProductClass, ProductComparisonLineClass, ProductSearchResultClass, ProductDeliveryOptionsClass, ReadChangedProductsSessionClass, DeletedListingsResultClass, AssortedProductIdentityClass, ProductExistenceIdClass, ProductRatingClass, ProductAssortmentIntervalClass, AttributeProductClass, ProductPriceClass, ProductAvailableQuantityClass, ProductComponentClass, SearchSuggestionClass, CategoryPathResultClass, UnitOfMeasureClass, ProductRefinerValueClass, AttributeValueClass, MediaLocationClass, MediaBlobClass, ProductRelationTypeClass, ProductWarrantiesMappingClass, ProductWarehouseInventoryInformationClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function productsQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Products\", \"Product\", ProductClass, key);\n }\n \n export function createCreateInput(entity: Product): IDataServiceRequest {\n return productsQuery().create(entity);\n }\n\n export function createProductAsync(context: IContext, entity: Product): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Product): IDataServiceRequest {\n return productsQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Product): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Product): IDataServiceRequest {\n return productsQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Product): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return productsQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return productsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, ProductClass, 'true', {bypassCache: 'none', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function searchAsync(context: IContext, productSearchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetRefinersInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefiners', true, ProductRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function getRefinersAsync(context: IContext, productSearchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createGetRefinersInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDimensionValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, dimension: number, matchingDimensionValues?: ProductDimension[] | null, kitVariantResolutionContext?: ProductVariantResolutionOnKitSelectionContext | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDimensionValues', true, ProductDimensionValueClass, 'true', {bypassCache: 'none', returnEntity: 'ProductDimensionValue'}, {channelId: channelId, dimension: dimension, matchingDimensionValues: matchingDimensionValues, kitVariantResolutionContext: kitVariantResolutionContext });\n } \n \n export function getDimensionValuesAsync(context: IContext, recordId: number, channelId: number, dimension: number, matchingDimensionValues?: ProductDimension[] | null, kitVariantResolutionContext?: ProductVariantResolutionOnKitSelectionContext | null):AsyncResult {\n const request = createGetDimensionValuesInput(context.queryResultSettings, recordId, channelId, dimension, matchingDimensionValues, kitVariantResolutionContext);\n return executeAction(request, context);\n } \n \n export function createGetDimensionValuesWithEstimatedAvailabilitiesInput(queryResultSettings: IQueryResultSettings, recordId: number, searchCriteria?: ProductDimensionAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDimensionValuesWithEstimatedAvailabilities', true, ProductDimensionValueInventoryAvailabilityClass, 'true', {bypassCache: 'none', returnEntity: 'ProductDimensionValueInventoryAvailability'}, {searchCriteria: searchCriteria });\n } \n \n export function getDimensionValuesWithEstimatedAvailabilitiesAsync(context: IContext, recordId: number, searchCriteria?: ProductDimensionAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetDimensionValuesWithEstimatedAvailabilitiesInput(context.queryResultSettings, recordId, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetVariantsByDimensionValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, matchingDimensionValues?: ProductDimension[] | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetVariantsByDimensionValues', true, SimpleProductClass, 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, matchingDimensionValues: matchingDimensionValues });\n } \n \n export function getVariantsByDimensionValuesAsync(context: IContext, recordId: number, channelId: number, matchingDimensionValues?: ProductDimension[] | null):AsyncResult {\n const request = createGetVariantsByDimensionValuesInput(context.queryResultSettings, recordId, channelId, matchingDimensionValues);\n return executeAction(request, context);\n } \n \n export function createGetVariantsByComponentsInSlotsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, matchingSlotToComponentRelationship?: ComponentInSlotRelation[] | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetVariantsByComponentsInSlots', true, SimpleProductClass, 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, matchingSlotToComponentRelationship: matchingSlotToComponentRelationship });\n } \n \n export function getVariantsByComponentsInSlotsAsync(context: IContext, recordId: number, channelId: number, matchingSlotToComponentRelationship?: ComponentInSlotRelation[] | null):AsyncResult {\n const request = createGetVariantsByComponentsInSlotsInput(context.queryResultSettings, recordId, channelId, matchingSlotToComponentRelationship);\n return executeAction(request, context);\n } \n \n export function createGetByIdsInput(queryResultSettings: IQueryResultSettings, channelId: number, productIds: number[], inventLocationId?: string | null, catalogId?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByIds', true, SimpleProductClass, 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productIds: productIds, inventLocationId: inventLocationId, catalogId: catalogId });\n } \n \n export function getByIdsAsync(context: IContext, channelId: number, productIds: number[], inventLocationId?: string | null, catalogId?: number | null):AsyncResult {\n const request = createGetByIdsInput(context.queryResultSettings, channelId, productIds, inventLocationId, catalogId);\n return executeAction(request, context);\n } \n \n export function createCompareInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Compare', true, ProductComparisonLineClass, 'true', {bypassCache: 'get', returnEntity: 'ProductComparisonLine'}, {channelId: channelId, catalogId: catalogId, productIds: productIds });\n } \n \n export function compareAsync(context: IContext, channelId: number, catalogId: number, productIds: number[]):AsyncResult {\n const request = createCompareInput(context.queryResultSettings, channelId, catalogId, productIds);\n return executeAction(request, context);\n } \n \n export function createGetRecommendedProductsInput(queryResultSettings: IQueryResultSettings, productIds: number[], customerId?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRecommendedProducts', true, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {productIds: productIds, customerId: customerId });\n } \n \n export function getRecommendedProductsAsync(context: IContext, productIds: number[], customerId?: string | null):AsyncResult {\n const request = createGetRecommendedProductsInput(context.queryResultSettings, productIds, customerId);\n return executeAction(request, context);\n } \n \n export function createRefineSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('RefineSearchByCategory', true, ProductSearchResultClass, 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId, refinementCriteria: refinementCriteria });\n } \n \n export function refineSearchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult {\n const request = createRefineSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId, refinementCriteria);\n return executeAction(request, context);\n } \n \n export function createRefineSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('RefineSearchByText', true, ProductSearchResultClass, 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText, refinementCriteria: refinementCriteria });\n } \n \n export function refineSearchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult {\n const request = createRefineSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText, refinementCriteria);\n return executeAction(request, context);\n } \n \n export function createGetProductSearchRefinersInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductSearchRefiners', true, ProductRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {searchCriteria: searchCriteria });\n } \n \n export function getProductSearchRefinersAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createGetProductSearchRefinersInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, productIds: number[], address?: Address | null, filterOption?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, ProductDeliveryOptionsClass, 'true', {bypassCache: 'none', returnEntity: 'ProductDeliveryOptions'}, {productIds: productIds, address: address, filterOption: filterOption });\n } \n \n export function getDeliveryOptionsAsync(context: IContext, productIds: number[], address?: Address | null, filterOption?: number | null):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings, productIds, address, filterOption);\n return executeAction(request, context);\n } \n \n export function createChangesInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Changes', true, ProductClass, 'true', {bypassCache: 'get', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function changesAsync(context: IContext, productSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createChangesInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createBeginReadChangedProductsInput(changedProductSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('BeginReadChangedProducts', true, ReadChangedProductsSessionClass, 'false', {bypassCache: 'get', returnEntity: 'ReadChangedProductsSession'}, {changedProductSearchCriteria: changedProductSearchCriteria });\n } \n \n export function beginReadChangedProductsAsync(context: IContext, changedProductSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createBeginReadChangedProductsInput(changedProductSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createReadChangedProductsInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ReadChangedProducts', true, ProductClass, 'true', {bypassCache: 'none', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function readChangedProductsAsync(context: IContext, productSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createReadChangedProductsInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeletedListingsInput(catalogId: number, skip: number, top: number): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetDeletedListings', true, DeletedListingsResultClass, 'false', {bypassCache: 'none', returnEntity: 'DeletedListingsResult'}, {catalogId: catalogId, skip: skip, top: top });\n } \n \n export function getDeletedListingsAsync(context: IContext, catalogId: number, skip: number, top: number):AsyncResult {\n const request = createGetDeletedListingsInput(catalogId, skip, top);\n return executeAction(request, context);\n } \n \n export function createGetAssortedProductIdsInput(queryResultSettings: IQueryResultSettings, productIds: number[], includeFutureAssortedProducts: boolean): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAssortedProductIds', true, AssortedProductIdentityClass, 'true', {bypassCache: 'none', returnEntity: 'AssortedProductIdentity'}, {productIds: productIds, includeFutureAssortedProducts: includeFutureAssortedProducts });\n } \n \n export function getAssortedProductIdsAsync(context: IContext, productIds: number[], includeFutureAssortedProducts: boolean):AsyncResult {\n const request = createGetAssortedProductIdsInput(context.queryResultSettings, productIds, includeFutureAssortedProducts);\n return executeAction(request, context);\n } \n \n export function createCheckProductsExistenceInput(queryResultSettings: IQueryResultSettings, productExistenceCriteria?: ProductExistenceCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('CheckProductsExistence', true, ProductExistenceIdClass, 'true', {bypassCache: 'get', returnEntity: 'ProductExistenceId'}, {productExistenceCriteria: productExistenceCriteria });\n } \n \n export function checkProductsExistenceAsync(context: IContext, productExistenceCriteria?: ProductExistenceCriteria | null):AsyncResult {\n const request = createCheckProductsExistenceInput(context.queryResultSettings, productExistenceCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeletedCatalogsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeletedCatalogs', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getDeletedCatalogsAsync(context: IContext, ):AsyncResult {\n const request = createGetDeletedCatalogsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetDeletedLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeletedLanguages', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getDeletedLanguagesAsync(context: IContext, ):AsyncResult {\n const request = createGetDeletedLanguagesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetProductRatingsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductRatings', true, ProductRatingClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRating'}, {productIds: productIds });\n } \n \n export function getProductRatingsAsync(context: IContext, productIds: number[]):AsyncResult {\n const request = createGetProductRatingsInput(context.queryResultSettings, productIds);\n return executeAction(request, context);\n } \n \n export function createGetProductAssortmentIntervalsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAssortmentIntervals', true, ProductAssortmentIntervalClass, 'true', {bypassCache: 'none', returnEntity: 'ProductAssortmentInterval'}, {productIds: productIds });\n } \n \n export function getProductAssortmentIntervalsAsync(context: IContext, productIds: number[]):AsyncResult {\n const request = createGetProductAssortmentIntervalsInput(context.queryResultSettings, productIds);\n return executeAction(request, context);\n } \n \n export function createDeleteListingsByCatalogsInput(catalogIds: number[]): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('DeleteListingsByCatalogs', true, '', '', {bypassCache: 'get', returnEntity: ''}, {catalogIds: catalogIds });\n } \n \n export function deleteListingsByCatalogsAsync(context: IContext, catalogIds: number[]):AsyncResult {\n const request = createDeleteListingsByCatalogsInput(catalogIds);\n return executeAction(request, context);\n } \n \n export function createDeleteListingsByLanguagesInput(languages?: string[] | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('DeleteListingsByLanguages', true, '', '', {bypassCache: 'get', returnEntity: ''}, {languages: languages });\n } \n \n export function deleteListingsByLanguagesAsync(context: IContext, languages?: string[] | null):AsyncResult {\n const request = createDeleteListingsByLanguagesInput(languages);\n return executeAction(request, context);\n } \n \n export function createEndReadChangedProductsInput(session?: ReadChangedProductsSession | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('EndReadChangedProducts', true, '', '', {bypassCache: 'get', returnEntity: ''}, {session: session });\n } \n \n export function endReadChangedProductsAsync(context: IContext, session?: ReadChangedProductsSession | null):AsyncResult {\n const request = createEndReadChangedProductsInput(session);\n return executeAction(request, context);\n } \n \n export function createUpdateListingPublishingStatusInput(publishingStatuses?: ListingPublishStatus[] | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('UpdateListingPublishingStatus', true, '', '', {bypassCache: 'get', returnEntity: ''}, {publishingStatuses: publishingStatuses });\n } \n \n export function updateListingPublishingStatusAsync(context: IContext, publishingStatuses?: ListingPublishStatus[] | null):AsyncResult {\n const request = createUpdateListingPublishingStatusInput(publishingStatuses);\n return executeAction(request, context);\n } \n \n export function createGetCatalogProductAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogProductAttributes', true, AttributeProductClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, {catalogId: catalogId });\n } \n \n export function getCatalogProductAttributesAsync(context: IContext, catalogId: number):AsyncResult {\n const request = createGetCatalogProductAttributesInput(context.queryResultSettings, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetPricesInput(queryResultSettings: IQueryResultSettings, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPrices', true, ProductPriceClass, 'true', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {itemId: itemId, inventoryDimensionId: inventoryDimensionId, barcode: barcode, customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, quantity: quantity });\n } \n \n export function getPricesAsync(context: IContext, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number):AsyncResult {\n const request = createGetPricesInput(context.queryResultSettings, itemId, inventoryDimensionId, barcode, customerAccountNumber, unitOfMeasureSymbol, quantity);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilitiesInput(queryResultSettings: IQueryResultSettings, itemIds: number[], channelId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailabilities', true, ProductAvailableQuantityClass, 'true', {bypassCache: 'none', returnEntity: 'ProductAvailableQuantity'}, {itemIds: itemIds, channelId: channelId });\n } \n \n export function getProductAvailabilitiesAsync(context: IContext, itemIds: number[], channelId: number):AsyncResult {\n const request = createGetProductAvailabilitiesInput(context.queryResultSettings, itemIds, channelId);\n return executeAction(request, context);\n } \n \n export function createGetActivePricesInput(queryResultSettings: IQueryResultSettings, projectDomain: ProjectionDomain | null, productIds: number[], activeDate: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null, includeVariantPriceRange?: boolean | null, includeAttainablePricesAndDiscounts?: boolean | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetActivePrices', true, ProductPriceClass, 'true', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {projectDomain: projectDomain, productIds: productIds, activeDate: activeDate, customerId: customerId, affiliationLoyaltyTiers: affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice: includeSimpleDiscountsInContextualPrice, includeVariantPriceRange: includeVariantPriceRange, includeAttainablePricesAndDiscounts: includeAttainablePricesAndDiscounts });\n } \n \n export function getActivePricesAsync(context: IContext, projectDomain: ProjectionDomain | null, productIds: number[], activeDate: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null, includeVariantPriceRange?: boolean | null, includeAttainablePricesAndDiscounts?: boolean | null):AsyncResult {\n const request = createGetActivePricesInput(context.queryResultSettings, projectDomain, productIds, activeDate, customerId, affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice, includeVariantPriceRange, includeAttainablePricesAndDiscounts);\n return executeAction(request, context);\n } \n \n export function createGetFilteredSlotComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, slotId: number, selectedComponents?: ComponentInSlotRelation[] | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFilteredSlotComponents', true, ProductComponentClass, 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, slotId: slotId, selectedComponents: selectedComponents });\n } \n \n export function getFilteredSlotComponentsAsync(context: IContext, recordId: number, channelId: number, slotId: number, selectedComponents?: ComponentInSlotRelation[] | null):AsyncResult {\n const request = createGetFilteredSlotComponentsInput(context.queryResultSettings, recordId, channelId, slotId, selectedComponents);\n return executeAction(request, context);\n } \n \n export function createGetComponentByProductSlotRelationInput(channelId: number, componentRelation?: ComponentInSlotRelation | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetComponentByProductSlotRelation', true, ProductComponentClass, 'false', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, componentRelation: componentRelation });\n } \n \n export function getComponentByProductSlotRelationAsync(context: IContext, channelId: number, componentRelation?: ComponentInSlotRelation | null):AsyncResult {\n const request = createGetComponentByProductSlotRelationInput(channelId, componentRelation);\n return executeAction(request, context);\n } \n \n export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null, hitPrefix?: string | null, hitSuffix?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSearchSuggestions', false, SearchSuggestionClass, 'true', {bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {channelId: channelId, catalogId: catalogId, searchText: searchText, hitPrefix: hitPrefix, hitSuffix: hitSuffix });\n } \n \n export function getSearchSuggestionsAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null, hitPrefix?: string | null, hitSuffix?: string | null):AsyncResult {\n const request = createGetSearchSuggestionsInput(context.queryResultSettings, channelId, catalogId, searchText, hitPrefix, hitSuffix);\n return executeAction(request, context);\n } \n \n export function createGetCategoryPathsInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryPathLookups?: CategoryPathLookup[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCategoryPaths', true, CategoryPathResultClass, 'true', {bypassCache: 'none', returnEntity: 'CategoryPathResult'}, {channelId: channelId, catalogId: catalogId, CategoryPathLookups: categoryPathLookups });\n } \n \n export function getCategoryPathsAsync(context: IContext, channelId: number, catalogId: number, categoryPathLookups?: CategoryPathLookup[] | null):AsyncResult {\n const request = createGetCategoryPathsInput(context.queryResultSettings, channelId, catalogId, categoryPathLookups);\n return executeAction(request, context);\n } \n \n export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings, recordId: number, ): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, UnitOfMeasureClass, 'true', {bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n } \n \n export function getUnitsOfMeasureAsync(context: IContext, recordId: number):AsyncResult {\n const request = createGetUnitsOfMeasureInput(context.queryResultSettings, recordId);\n return executeAction(request, context);\n } \n \n export function createSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByCategory', false, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId });\n } \n \n export function searchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number):AsyncResult {\n const request = createSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId);\n return executeAction(request, context);\n } \n \n export function createSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByText', false, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText });\n } \n \n export function searchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null):AsyncResult {\n const request = createSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText);\n return executeAction(request, context);\n } \n \n export function createSearchByCriteriaInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByCriteria', true, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {searchCriteria: searchCriteria });\n } \n \n export function searchByCriteriaAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createSearchByCriteriaInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByLookupClausesInput(queryResultSettings: IQueryResultSettings, channelId: number, productLookupClauses?: ProductLookupClause[] | null, catalogId?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByLookupClauses', true, SimpleProductClass, 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productLookupClauses: productLookupClauses, catalogId: catalogId });\n } \n \n export function getByLookupClausesAsync(context: IContext, channelId: number, productLookupClauses?: ProductLookupClause[] | null, catalogId?: number | null):AsyncResult {\n const request = createGetByLookupClausesInput(context.queryResultSettings, channelId, productLookupClauses, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetRefinersByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinersByCategory', false, ProductRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, categoryId: categoryId });\n } \n \n export function getRefinersByCategoryAsync(context: IContext, catalogId: number, categoryId: number):AsyncResult {\n const request = createGetRefinersByCategoryInput(context.queryResultSettings, catalogId, categoryId);\n return executeAction(request, context);\n } \n \n export function createGetRefinersByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinersByText', false, ProductRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, searchText: searchText });\n } \n \n export function getRefinersByTextAsync(context: IContext, catalogId: number, searchText?: string | null):AsyncResult {\n const request = createGetRefinersByTextInput(context.queryResultSettings, catalogId, searchText);\n return executeAction(request, context);\n } \n \n export function createGetRefinerValuesByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinerValuesByCategory', false, ProductRefinerValueClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, categoryId: categoryId, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n } \n \n export function getRefinerValuesByCategoryAsync(context: IContext, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number):AsyncResult {\n const request = createGetRefinerValuesByCategoryInput(context.queryResultSettings, catalogId, categoryId, refinerId, refinerSourceValue);\n return executeAction(request, context);\n } \n \n export function createGetRefinerValuesByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinerValuesByText', false, ProductRefinerValueClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, searchText: searchText, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n } \n \n export function getRefinerValuesByTextAsync(context: IContext, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number):AsyncResult {\n const request = createGetRefinerValuesByTextInput(context.queryResultSettings, catalogId, searchText, refinerId, refinerSourceValue);\n return executeAction(request, context);\n } \n \n export function createGetChannelProductAttributesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelProductAttributes', false, AttributeProductClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, { });\n } \n \n export function getChannelProductAttributesAsync(context: IContext, ):AsyncResult {\n const request = createGetChannelProductAttributesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetByIdInput(recordId: number, channelId: number): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('GetById', false, SimpleProductClass, 'false', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId });\n } \n \n export function getByIdAsync(context: IContext, recordId: number, channelId: number):AsyncResult {\n const request = createGetByIdInput(recordId, channelId);\n return executeAction(request, context);\n } \n \n export function createGetAttributeValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeValues', false, AttributeValueClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeValue'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getAttributeValuesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetAttributeValuesInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetMediaLocationsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMediaLocations', false, MediaLocationClass, 'true', {bypassCache: 'none', returnEntity: 'MediaLocation'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getMediaLocationsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetMediaLocationsInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetMediaBlobsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMediaBlobs', false, MediaBlobClass, 'true', {bypassCache: 'none', returnEntity: 'MediaBlob'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getMediaBlobsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetMediaBlobsInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetDefaultComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDefaultComponents', false, ProductComponentClass, 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId });\n } \n \n export function getDefaultComponentsAsync(context: IContext, recordId: number, channelId: number):AsyncResult {\n const request = createGetDefaultComponentsInput(context.queryResultSettings, recordId, channelId);\n return executeAction(request, context);\n } \n \n export function createGetSlotComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, slotId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSlotComponents', false, ProductComponentClass, 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, slotId: slotId });\n } \n \n export function getSlotComponentsAsync(context: IContext, recordId: number, channelId: number, slotId: number):AsyncResult {\n const request = createGetSlotComponentsInput(context.queryResultSettings, recordId, channelId, slotId);\n return executeAction(request, context);\n } \n \n export function createGetAllRelationTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAllRelationTypes', false, ProductRelationTypeClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, { });\n } \n \n export function getAllRelationTypesAsync(context: IContext, ):AsyncResult {\n const request = createGetAllRelationTypesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetRelationTypesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRelationTypes', false, ProductRelationTypeClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getRelationTypesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetRelationTypesInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetRelatedProductsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number, relationTypeId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRelatedProducts', false, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, relationTypeId: relationTypeId });\n } \n \n export function getRelatedProductsAsync(context: IContext, recordId: number, channelId: number, catalogId: number, relationTypeId: number):AsyncResult {\n const request = createGetRelatedProductsInput(context.queryResultSettings, recordId, channelId, catalogId, relationTypeId);\n return executeAction(request, context);\n } \n \n export function createGetApplicableWarrantiesInput(queryResultSettings: IQueryResultSettings, catalogId: number, warrantableProductIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetApplicableWarranties', true, ProductWarrantiesMappingClass, 'true', {bypassCache: 'none', returnEntity: 'ProductWarrantiesMapping'}, {catalogId: catalogId, warrantableProductIds: warrantableProductIds });\n } \n \n export function getApplicableWarrantiesAsync(context: IContext, catalogId: number, warrantableProductIds: number[]):AsyncResult {\n const request = createGetApplicableWarrantiesInput(context.queryResultSettings, catalogId, warrantableProductIds);\n return executeAction(request, context);\n } \n \n export function createGetPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('GetPrice', false, ProductPriceClass, 'false', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol });\n } \n \n export function getPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null):AsyncResult {\n const request = createGetPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol);\n return executeAction(request, context);\n } \n \n export function createCalculateProductPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('CalculateProductPrice', true, ProductPriceClass, 'false', {bypassCache: 'get', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, loyaltyCardId: loyaltyCardId, affiliationLoyaltyTiers: affiliationLoyaltyTiers });\n } \n \n export function calculateProductPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null):AsyncResult {\n const request = createCalculateProductPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol, loyaltyCardId, affiliationLoyaltyTiers);\n return executeAction(request, context);\n } \n \n export function createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetEstimatedProductWarehouseAvailability', true, ProductWarehouseInventoryInformationClass, 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {productWarehouses: productWarehouses, quantityUnitType: quantityUnitType });\n } \n \n export function getEstimatedProductWarehouseAvailabilityAsync(context: IContext, productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null):AsyncResult {\n const request = createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses, quantityUnitType);\n return executeAction(request, context);\n } \n \n export function createGetEstimatedAvailabilityInput(searchCriteria?: InventoryAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetEstimatedAvailability', true, ProductWarehouseInventoryInformationClass, 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {searchCriteria: searchCriteria });\n } \n \n export function getEstimatedAvailabilityAsync(context: IContext, searchCriteria?: InventoryAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedAvailabilityInput(searchCriteria);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Recommendation, RecommendationCriteria, RecommendedElement } from '../Entities/CommerceTypes.g';\n import { RecommendationClass, RecommendedElementClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function recommendationsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"Recommendations\", \"Recommendation\", RecommendationClass, key);\n }\n \n export function createCreateInput(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery().create(entity);\n }\n\n export function createRecommendationAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return recommendationsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return recommendationsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetElementsInput(queryResultSettings: IQueryResultSettings, id: string, recommendationCriteria?: RecommendationCriteria | null): IDataServiceRequest { \n const query = recommendationsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetElements', true, RecommendedElementClass, 'true', {bypassCache: 'none', returnEntity: 'RecommendedElement'}, {recommendationCriteria: recommendationCriteria });\n } \n \n export function getElementsAsync(context: IContext, id: string, recommendationCriteria?: RecommendationCriteria | null):AsyncResult {\n const request = createGetElementsInput(context.queryResultSettings, id, recommendationCriteria);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { SalesOrder, SalesOrderSearchCriteria, OrderSearchCriteria, FulfillmentLineSearchCriteria, FulfillmentLine, ReceiptRetrievalCriteria, Receipt, SearchReceiptCriteria, ElectronicAddress, ChannelReferenceLookupCriteria, ShipFulfillmentLine, FulfillmentLineParameter, RejectFulfillmentLine, SalesInvoice, OrderInvoice, InvoiceSearchCriteria, InvoiceDetailsSearchCriteria, SalesLine, PickAndPackSalesLineParameter, PickingList, FulfillmentLineUserAlerts, CommerceProperty, CheckInForOrderPickupConfirmation, PackingSlipData } from '../Entities/CommerceTypes.g';\n import { SalesOrderClass, FulfillmentLineClass, ReceiptClass, SalesInvoiceClass, OrderInvoiceClass, SalesLineClass, PickingListClass, FulfillmentLineUserAlertsClass, CheckInForOrderPickupConfirmationClass, PackingSlipDataClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function salesOrdersQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"SalesOrders\", \"SalesOrder\", SalesOrderClass, key);\n }\n \n export function createCreateInput(entity: SalesOrder): IDataServiceRequest {\n return salesOrdersQuery().create(entity);\n }\n\n export function createSalesOrderAsync(context: IContext, entity: SalesOrder): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: SalesOrder): IDataServiceRequest {\n return salesOrdersQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: SalesOrder): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: SalesOrder): IDataServiceRequest {\n return salesOrdersQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: SalesOrder): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return salesOrdersQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return salesOrdersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, salesOrderSearchCriteria?: SalesOrderSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, SalesOrderClass, 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesOrderSearchCriteria: salesOrderSearchCriteria });\n } \n \n export function searchAsync(context: IContext, salesOrderSearchCriteria?: SalesOrderSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, salesOrderSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchSalesTransactionsByReceiptIdInput(queryResultSettings: IQueryResultSettings, receiptId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchSalesTransactionsByReceiptId', true, SalesOrderClass, 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {receiptId: receiptId });\n } \n \n export function searchSalesTransactionsByReceiptIdAsync(context: IContext, receiptId?: string | null):AsyncResult {\n const request = createSearchSalesTransactionsByReceiptIdInput(context.queryResultSettings, receiptId);\n return executeAction(request, context);\n } \n \n export function createSearchOrdersInput(queryResultSettings: IQueryResultSettings, orderSearchCriteria?: OrderSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchOrders', true, SalesOrderClass, 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {orderSearchCriteria: orderSearchCriteria });\n } \n \n export function searchOrdersAsync(context: IContext, orderSearchCriteria?: OrderSearchCriteria | null):AsyncResult {\n const request = createSearchOrdersInput(context.queryResultSettings, orderSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentLinesInput(queryResultSettings: IQueryResultSettings, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentLines', true, FulfillmentLineClass, 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLine'}, {fulfillmentLineSearchCriteria: fulfillmentLineSearchCriteria });\n } \n \n export function getFulfillmentLinesAsync(context: IContext, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null):AsyncResult {\n const request = createGetFulfillmentLinesInput(context.queryResultSettings, fulfillmentLineSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceipts', true, ReceiptClass, 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getReceiptsAsync(context: IContext, id: string, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetReceiptsInput(context.queryResultSettings, id, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createSendReceiptInput(searchCriteria?: SearchReceiptCriteria | null, recipientAddresses?: ElectronicAddress[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('SendReceipt', true, '', '', {bypassCache: 'get', returnEntity: ''}, {searchCriteria: searchCriteria, recipientAddresses: recipientAddresses });\n } \n \n export function sendReceiptAsync(context: IContext, searchCriteria?: SearchReceiptCriteria | null, recipientAddresses?: ElectronicAddress[] | null):AsyncResult {\n const request = createSendReceiptInput(searchCriteria, recipientAddresses);\n return executeAction(request, context);\n } \n \n export function createGetGiftReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, salesLineNumbers: number[], receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetGiftReceipts', true, ReceiptClass, 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {SalesLineNumbers: salesLineNumbers, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getGiftReceiptsAsync(context: IContext, id: string, salesLineNumbers: number[], receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetGiftReceiptsInput(context.queryResultSettings, id, salesLineNumbers, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByReceiptIdInput(queryResultSettings: IQueryResultSettings, receiptId?: string | null, orderStoreNumber?: string | null, orderTerminalId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByReceiptId', true, SalesOrderClass, 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {receiptId: receiptId, orderStoreNumber: orderStoreNumber, orderTerminalId: orderTerminalId });\n } \n \n export function getByReceiptIdAsync(context: IContext, receiptId?: string | null, orderStoreNumber?: string | null, orderTerminalId?: string | null):AsyncResult {\n const request = createGetByReceiptIdInput(context.queryResultSettings, receiptId, orderStoreNumber, orderTerminalId);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrderDetailsByTransactionIdInput(transactionId: string | null, searchLocationValue: number): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetSalesOrderDetailsByTransactionId', false, SalesOrderClass, 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {transactionId: transactionId, searchLocationValue: searchLocationValue });\n } \n \n export function getSalesOrderDetailsByTransactionIdAsync(context: IContext, transactionId: string | null, searchLocationValue: number):AsyncResult {\n const request = createGetSalesOrderDetailsByTransactionIdInput(transactionId, searchLocationValue);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrderDetailsBySalesIdInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetSalesOrderDetailsBySalesId', false, SalesOrderClass, 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesId: salesId });\n } \n \n export function getSalesOrderDetailsBySalesIdAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createGetSalesOrderDetailsBySalesIdInput(salesId);\n return executeAction(request, context);\n } \n \n export function createGetOrderByChannelReferenceLookupCriteriaInput(channelReferenceLookupCriteria?: ChannelReferenceLookupCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetOrderByChannelReferenceLookupCriteria', true, SalesOrderClass, 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {channelReferenceLookupCriteria: channelReferenceLookupCriteria });\n } \n \n export function getOrderByChannelReferenceLookupCriteriaAsync(context: IContext, channelReferenceLookupCriteria?: ChannelReferenceLookupCriteria | null):AsyncResult {\n const request = createGetOrderByChannelReferenceLookupCriteriaInput(channelReferenceLookupCriteria);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrderDetailsByQuotationIdInput(quotationId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetSalesOrderDetailsByQuotationId', false, SalesOrderClass, 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {quotationId: quotationId });\n } \n \n export function getSalesOrderDetailsByQuotationIdAsync(context: IContext, quotationId?: string | null):AsyncResult {\n const request = createGetSalesOrderDetailsByQuotationIdInput(quotationId);\n return executeAction(request, context);\n } \n \n export function createShipFulfillmentLinesInput(shipFulfillmentLines?: ShipFulfillmentLine[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('ShipFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {ShipFulfillmentLines: shipFulfillmentLines });\n } \n \n export function shipFulfillmentLinesAsync(context: IContext, shipFulfillmentLines?: ShipFulfillmentLine[] | null):AsyncResult {\n const request = createShipFulfillmentLinesInput(shipFulfillmentLines);\n return executeAction(request, context);\n } \n \n export function createAcceptFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('AcceptFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function acceptFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createAcceptFulfillmentLinesInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createPickFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('PickFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function pickFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createPickFulfillmentLinesInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createPackFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('PackFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function packFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createPackFulfillmentLinesInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createMarkFulfillmentLinesAsPackedInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('MarkFulfillmentLinesAsPacked', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function markFulfillmentLinesAsPackedAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createMarkFulfillmentLinesAsPackedInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createMarkAsPickedInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('MarkAsPicked', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function markAsPickedAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createMarkAsPickedInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentPickingListsInput(queryResultSettings: IQueryResultSettings, pickingListFulfillmentLine?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentPickingLists', true, ReceiptClass, 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {pickingListFulfillmentLine: pickingListFulfillmentLine, hardwareProfileId: hardwareProfileId });\n } \n \n export function getFulfillmentPickingListsAsync(context: IContext, pickingListFulfillmentLine?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFulfillmentPickingListsInput(context.queryResultSettings, pickingListFulfillmentLine, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentPackingSlipsInput(queryResultSettings: IQueryResultSettings, packFulfillmentLines?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentPackingSlips', true, ReceiptClass, 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {packFulfillmentLines: packFulfillmentLines, hardwareProfileId: hardwareProfileId });\n } \n \n export function getFulfillmentPackingSlipsAsync(context: IContext, packFulfillmentLines?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFulfillmentPackingSlipsInput(context.queryResultSettings, packFulfillmentLines, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentPackingSlipsByIdInput(queryResultSettings: IQueryResultSettings, salesId?: string | null, packingSlipId?: string | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentPackingSlipsById', true, ReceiptClass, 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {salesId: salesId, PackingSlipId: packingSlipId, hardwareProfileId: hardwareProfileId });\n } \n \n export function getFulfillmentPackingSlipsByIdAsync(context: IContext, salesId?: string | null, packingSlipId?: string | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFulfillmentPackingSlipsByIdInput(context.queryResultSettings, salesId, packingSlipId, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createRejectFulfillmentLinesInput(rejectFulfillmentLines?: RejectFulfillmentLine[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('RejectFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {RejectFulfillmentLines: rejectFulfillmentLines });\n } \n \n export function rejectFulfillmentLinesAsync(context: IContext, rejectFulfillmentLines?: RejectFulfillmentLine[] | null):AsyncResult {\n const request = createRejectFulfillmentLinesInput(rejectFulfillmentLines);\n return executeAction(request, context);\n } \n \n export function createGetInvoicesBySalesIdInput(queryResultSettings: IQueryResultSettings, salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInvoicesBySalesId', true, SalesInvoiceClass, 'true', {bypassCache: 'none', returnEntity: 'SalesInvoice'}, {salesId: salesId });\n } \n \n export function getInvoicesBySalesIdAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createGetInvoicesBySalesIdInput(context.queryResultSettings, salesId);\n return executeAction(request, context);\n } \n \n export function createGetOrderInvoicesInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderInvoices', true, OrderInvoiceClass, 'true', {bypassCache: 'none', returnEntity: 'OrderInvoice'}, {customerId: customerId });\n } \n \n export function getOrderInvoicesAsync(context: IContext, customerId?: string | null):AsyncResult {\n const request = createGetOrderInvoicesInput(context.queryResultSettings, customerId);\n return executeAction(request, context);\n } \n \n export function createGetInvoicesInput(queryResultSettings: IQueryResultSettings, invoiceSearchCriteria?: InvoiceSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInvoices', true, OrderInvoiceClass, 'true', {bypassCache: 'none', returnEntity: 'OrderInvoice'}, {invoiceSearchCriteria: invoiceSearchCriteria });\n } \n \n export function getInvoicesAsync(context: IContext, invoiceSearchCriteria?: InvoiceSearchCriteria | null):AsyncResult {\n const request = createGetInvoicesInput(context.queryResultSettings, invoiceSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetInvoiceDetailsInput(invoiceDetailsSearchCriteria?: InvoiceDetailsSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetInvoiceDetails', true, SalesInvoiceClass, 'false', {bypassCache: 'none', returnEntity: 'SalesInvoice'}, {invoiceDetailsSearchCriteria: invoiceDetailsSearchCriteria });\n } \n \n export function getInvoiceDetailsAsync(context: IContext, invoiceDetailsSearchCriteria?: InvoiceDetailsSearchCriteria | null):AsyncResult {\n const request = createGetInvoiceDetailsInput(invoiceDetailsSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetInvoicedSalesLinesBySalesIdsInput(queryResultSettings: IQueryResultSettings, salesIds?: string[] | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInvoicedSalesLinesBySalesIds', true, SalesLineClass, 'true', {bypassCache: 'none', returnEntity: 'SalesLine'}, {salesIds: salesIds });\n } \n \n export function getInvoicedSalesLinesBySalesIdsAsync(context: IContext, salesIds?: string[] | null):AsyncResult {\n const request = createGetInvoicedSalesLinesBySalesIdsInput(context.queryResultSettings, salesIds);\n return executeAction(request, context);\n } \n \n export function createCreatePickingListInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CreatePickingList', true, '', '', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId });\n } \n \n export function createPickingListAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createCreatePickingListInput(salesId);\n return executeAction(request, context);\n } \n \n export function createCreatePickingListForItemsInput(salesId?: string | null, pickAndPackSalesLineParameters?: PickAndPackSalesLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CreatePickingListForItems', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId, pickAndPackSalesLineParameters: pickAndPackSalesLineParameters });\n } \n \n export function createPickingListForItemsAsync(context: IContext, salesId?: string | null, pickAndPackSalesLineParameters?: PickAndPackSalesLineParameter[] | null):AsyncResult {\n const request = createCreatePickingListForItemsInput(salesId, pickAndPackSalesLineParameters);\n return executeAction(request, context);\n } \n \n export function createGetPickingListsInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPickingLists', false, PickingListClass, 'true', {bypassCache: 'none', returnEntity: 'PickingList'}, { });\n } \n \n export function getPickingListsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPickingListsInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createCreatePackingSlipInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CreatePackingSlip', true, '', '', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId });\n } \n \n export function createPackingSlipAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createCreatePackingSlipInput(salesId);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentLineUserAlertsInput(queryResultSettings: IQueryResultSettings, fulfillmentLineParameter: FulfillmentLineParameter[] | null, fulfillmentOperation: number): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentLineUserAlerts', true, FulfillmentLineUserAlertsClass, 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLineUserAlerts'}, {FulfillmentLineParameter: fulfillmentLineParameter, FulfillmentOperation: fulfillmentOperation });\n } \n \n export function getFulfillmentLineUserAlertsAsync(context: IContext, fulfillmentLineParameter: FulfillmentLineParameter[] | null, fulfillmentOperation: number):AsyncResult {\n const request = createGetFulfillmentLineUserAlertsInput(context.queryResultSettings, fulfillmentLineParameter, fulfillmentOperation);\n return executeAction(request, context);\n } \n \n export function createCheckInForOrderPickupInput(channelId: number, packingSlipId?: string | null, channelReferenceId?: string | null, extensionProperties?: CommerceProperty[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CheckInForOrderPickup', true, CheckInForOrderPickupConfirmationClass, 'false', {bypassCache: 'get', returnEntity: 'CheckInForOrderPickupConfirmation'}, {channelId: channelId, PackingSlipId: packingSlipId, channelReferenceId: channelReferenceId, extensionProperties: extensionProperties });\n } \n \n export function checkInForOrderPickupAsync(context: IContext, channelId: number, packingSlipId?: string | null, channelReferenceId?: string | null, extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createCheckInForOrderPickupInput(channelId, packingSlipId, channelReferenceId, extensionProperties);\n return executeAction(request, context);\n } \n \n export function createGetPackingSlipsDataInput(queryResultSettings: IQueryResultSettings, salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPackingSlipsData', false, PackingSlipDataClass, 'true', {bypassCache: 'none', returnEntity: 'PackingSlipData'}, {salesId: salesId });\n } \n \n export function getPackingSlipsDataAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createGetPackingSlipsDataInput(context.queryResultSettings, salesId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ScanResult } from '../Entities/CommerceTypes.g';\n import { ScanResultClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function scanResultsQuery(scannedText?: string): DataServiceQuery {\n var key = (scannedText) ? { ScannedText: scannedText } : null;\n return new DataServiceQuery(\"ScanResults\", \"ScanResult\", ScanResultClass, key);\n }\n \n export function createCreateInput(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery().create(entity);\n }\n\n export function createScanResultAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery(entity.ScannedText).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery(entity.ScannedText).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(scannedText: string): IDataServiceRequest {\n return scanResultsQuery(scannedText).read();\n }\n\n export function readAsync(context: IContext, scannedText: string): AsyncResult {\n const request = createReadAsync(scannedText);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return scanResultsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n ","\n // \n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { DeliveryOption, Affiliation, ReasonCodeLine, DiscountsSearchCriteria, Promotion, PaymentMerchantInformation, StoreSafe, ShiftReconciliationLineRetrievalCriteria, ShiftReconciliationLine, ReceiptMask, SearchSuggestionCriteria, SearchSuggestion, DeviceActivationResult, CreateHardwareStationTokenResult, ValidateHardwareStationTokenResult, Barcode, ButtonGrid, GetButtonGridsByIdsCriteria, MediaBlob, CardTypeInfo, CityInfo, CountryRegionInfo, OnlineChannel, CountyInfo, CreditMemo, TerminalDataDownloadRequestInfo, DataDownloadParameters, TerminalDataUploadRequestInfo, DataUploadParameters, DownloadSession, OfflineTerminalState, NumberSequenceSeedData, ReceiptNumberResetInfo, LoyaltyRewardPointActivity, CurrencyRequest, CurrencyAmount, DiscountCode, DistrictInfo, HardwareStationProfile, HardwareProfile, LocalizedString, OperationPermission, ReasonCode, CommerceProperty, ReportDataSet, IncomeExpenseAccount, StateProvinceInfo, ZipCodeInfo, KitTransaction, LoyaltyCard, LoyaltyCardTransaction, TransactionSearchCriteria, Transaction, GiftCard, NonSalesTransaction, DropAndDeclareTransaction, TaxOverride, CustomerBalances, NameValuePair, LinkToExistingCustomerResult, OfflineSyncStatsLine, StorageAccessToken, Framework, TaskGuidesSearchResult, Recording, AttributeDefinitionCriteria, AttributeDefinition, AttributeGroupDefinitionCriteria, AttributeGroupDefinition, FiscalTransaction, SalesOrder, AuditEvent, InventoryAvailableToPromise, NotificationItem, FiscalIntegrationDocumentRetrievalCriteria, FiscalIntegrationDocument, FiscalIntegrationRegistrationResult, FiscalIntegrationRegistrationProcess, FiscalIntegrationSupportedEvents, FiscalIntegrationTechnicalProfile, FiscalIntegrationFiscalRegistrationProcessSummary, FiscalIntegrationTechnicalProfileSearchCriteria, FiscalIntegrationServiceInfo, FiscalIntegrationServiceStatus, FiscalIntegrationServiceCommunicationResult, FeatureState, FiscalIntegrationSequentialSignatureData, PickupTimeslotAvailabilitySearchCriteria, PickupTimeslotAvailability, Cart, OperationalInsightsConfiguration, CashDeclaration, CustomerGroup, ChannelDeliveryOptionConfiguration, ChannelIdentity, ChannelSearchCriteria, EnvironmentConfiguration, SearchConfiguration, ExtensionPackageDefinition, ExtensionProfile, DeviceConfiguration, VisualProfile, SupportedLanguage, SalesTaxGroup, TenderType, UnitOfMeasure, Currency, CommissionSalesGroup, ChannelInventoryConfiguration, ChannelPurchaseConfiguration, InventoryJournalNameSearchCriteria, InventoryJournalName, Device, UserDefinedSecretCertificateResult, ExtensibleEnumerationContainer, AddressPurpose, ReturnPolicy, EmailReceiptSettings, } from '../Entities/CommerceTypes.g';\n import { ReceiptMaskClass, DeliveryOptionClass, AffiliationClass, PromotionClass, PaymentMerchantInformationClass, StoreSafeClass, ShiftReconciliationLineClass, SearchSuggestionClass, DeviceActivationResultClass, CreateHardwareStationTokenResultClass, ValidateHardwareStationTokenResultClass, BarcodeClass, ButtonGridClass, MediaBlobClass, CardTypeInfoClass, CityInfoClass, CountryRegionInfoClass, OnlineChannelClass, CountyInfoClass, CreditMemoClass, DataDownloadParametersClass, DataUploadParametersClass, DownloadSessionClass, NumberSequenceSeedDataClass, ReceiptNumberResetInfoClass, LoyaltyRewardPointActivityClass, CurrencyAmountClass, DiscountCodeClass, DistrictInfoClass, HardwareStationProfileClass, HardwareProfileClass, LocalizedStringClass, OperationPermissionClass, ReasonCodeClass, ReportDataSetClass, IncomeExpenseAccountClass, StateProvinceInfoClass, ZipCodeInfoClass, KitTransactionClass, LoyaltyCardClass, LoyaltyCardTransactionClass, TransactionClass, GiftCardClass, NonSalesTransactionClass, DropAndDeclareTransactionClass, TaxOverrideClass, CustomerBalancesClass, LinkToExistingCustomerResultClass, OfflineSyncStatsLineClass, StorageAccessTokenClass, FrameworkClass, TaskGuidesSearchResultClass, RecordingClass, AttributeDefinitionClass, AttributeGroupDefinitionClass, AuditEventClass, InventoryAvailableToPromiseClass, SalesOrderClass, NotificationItemClass, FiscalIntegrationDocumentClass, FiscalIntegrationRegistrationProcessClass, FiscalIntegrationSupportedEventsClass, FiscalIntegrationTechnicalProfileClass, FiscalIntegrationFiscalRegistrationProcessSummaryClass, FiscalIntegrationServiceStatusClass, FiscalIntegrationServiceCommunicationResultClass, FeatureStateClass, FiscalIntegrationSequentialSignatureDataClass, FiscalTransactionClass, PickupTimeslotAvailabilityClass, CartClass, OperationalInsightsConfigurationClass, CashDeclarationClass, CustomerGroupClass, ChannelDeliveryOptionConfigurationClass, ChannelIdentityClass, EnvironmentConfigurationClass, SearchConfigurationClass, ExtensionPackageDefinitionClass, ExtensionProfileClass, DeviceConfigurationClass, VisualProfileClass, SupportedLanguageClass, SalesTaxGroupClass, TenderTypeClass, UnitOfMeasureClass, CurrencyClass, CommissionSalesGroupClass, ChannelInventoryConfigurationClass, ChannelPurchaseConfigurationClass, InventoryJournalNameClass, DeviceClass, UserDefinedSecretCertificateResultClass, ExtensibleEnumerationContainerClass, AddressPurposeClass, ReturnPolicyClass, EmailReceiptSettingsClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n function storeQuery(): DataServiceQuery {\n return new DataServiceQuery();\n }\n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', false, DeliveryOptionClass, 'true', { bypassCache: 'none', returnEntity: 'DeliveryOption'}, { });\n }\n\n export function getDeliveryOptionsAsync(context: IContext):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createRoundAmountByTenderTypeInput(amount: number, tenderTypeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RoundAmountByTenderType', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {amount: amount, tenderTypeId: tenderTypeId });\n }\n\n export function roundAmountByTenderTypeAsync(context: IContext, amount: number, tenderTypeId?: string | null):AsyncResult {\n const request = createRoundAmountByTenderTypeInput(amount, tenderTypeId);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsByNameInput(queryResultSettings: IQueryResultSettings, affiliationNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliationsByName', true, AffiliationClass, 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, {affiliationNames: affiliationNames });\n }\n\n export function getAffiliationsByNameAsync(context: IContext, affiliationNames?: string[] | null):AsyncResult {\n const request = createGetAffiliationsByNameInput(context.queryResultSettings, affiliationNames);\n return executeAction(request, context);\n }\n \n export function createVoidSuspendedTransactionsInput(suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('VoidSuspendedTransactions', true, '', '', { bypassCache: 'get', returnEntity: ''}, {suspendedCartIds: suspendedCartIds, shiftId: shiftId, shiftTerminalId: shiftTerminalId, reasonCodeLines: reasonCodeLines });\n }\n\n export function voidSuspendedTransactionsAsync(context: IContext, suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createVoidSuspendedTransactionsInput(suspendedCartIds, shiftId, shiftTerminalId, reasonCodeLines);\n return executeAction(request, context);\n }\n \n export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: DiscountsSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, PromotionClass, 'true', { bypassCache: 'none', returnEntity: 'Promotion'}, {searchCriteria: searchCriteria });\n }\n\n export function getAvailablePromotionsAsync(context: IContext, searchCriteria?: DiscountsSearchCriteria | null):AsyncResult {\n const request = createGetAvailablePromotionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetMerchantPropertiesByServiceAccountIdInput(queryResultSettings: IQueryResultSettings, serviceAccountIds?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMerchantPropertiesByServiceAccountId', true, PaymentMerchantInformationClass, 'true', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {serviceAccountIds: serviceAccountIds });\n }\n\n export function getMerchantPropertiesByServiceAccountIdAsync(context: IContext, serviceAccountIds?: string[] | null):AsyncResult {\n const request = createGetMerchantPropertiesByServiceAccountIdInput(context.queryResultSettings, serviceAccountIds);\n return executeAction(request, context);\n }\n \n export function createGetStoreSafesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStoreSafes', true, StoreSafeClass, 'true', { bypassCache: 'none', returnEntity: 'StoreSafe'}, { });\n }\n\n export function getStoreSafesAsync(context: IContext):AsyncResult {\n const request = createGetStoreSafesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetShiftReconciliationLinesInput(queryResultSettings: IQueryResultSettings, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetShiftReconciliationLines', true, ShiftReconciliationLineClass, 'true', { bypassCache: 'none', returnEntity: 'ShiftReconciliationLine'}, {shiftReconciliationLineRetrievalCriteria: shiftReconciliationLineRetrievalCriteria });\n }\n\n export function getShiftReconciliationLinesAsync(context: IContext, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null):AsyncResult {\n const request = createGetShiftReconciliationLinesInput(context.queryResultSettings, shiftReconciliationLineRetrievalCriteria);\n return executeAction(request, context);\n }\n \n export function createReconcileLinesInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ReconcileLines', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines, Description: description });\n }\n\n export function reconcileLinesAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null):AsyncResult {\n const request = createReconcileLinesInput(shiftReconciliationLines, description);\n return executeAction(request, context);\n }\n \n export function createUndoReconciliationInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UndoReconciliation', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines });\n }\n\n export function undoReconciliationAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null):AsyncResult {\n const request = createUndoReconciliationInput(shiftReconciliationLines);\n return executeAction(request, context);\n }\n \n export function createGetReceiptMasksInput(queryResultSettings: IQueryResultSettings, receiptTransactionType?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptMasks', true, ReceiptMaskClass, 'true', { bypassCache: 'none', returnEntity: 'ReceiptMask'}, {receiptTransactionType: receiptTransactionType });\n }\n\n export function getReceiptMasksAsync(context: IContext, receiptTransactionType?: number | null):AsyncResult {\n const request = createGetReceiptMasksInput(context.queryResultSettings, receiptTransactionType);\n return executeAction(request, context);\n }\n \n export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, searchSuggestionCriteria?: SearchSuggestionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSearchSuggestions', true, SearchSuggestionClass, 'true', { bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {searchSuggestionCriteria: searchSuggestionCriteria });\n }\n\n export function getSearchSuggestionsAsync(context: IContext, searchSuggestionCriteria?: SearchSuggestionCriteria | null):AsyncResult {\n const request = createGetSearchSuggestionsInput(context.queryResultSettings, searchSuggestionCriteria);\n return executeAction(request, context);\n }\n \n export function createStartSessionInput(transactionId: string | null, overrideSession: boolean): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('StartSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId, overrideSession: overrideSession });\n }\n\n export function startSessionAsync(context: IContext, transactionId: string | null, overrideSession: boolean):AsyncResult {\n const request = createStartSessionInput(transactionId, overrideSession);\n return executeAction(request, context);\n }\n \n export function createEndSessionInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('EndSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function endSessionAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createEndSessionInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createActivateDeviceInput(deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ActivateDevice', true, DeviceActivationResultClass, 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, forceActivate: forceActivate, deviceType: deviceType });\n }\n\n export function activateDeviceAsync(context: IContext, deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null):AsyncResult {\n const request = createActivateDeviceInput(deviceNumber, terminalId, deviceId, forceActivate, deviceType);\n return executeAction(request, context);\n }\n \n export function createMassActivateDeviceInput(deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('MassActivateDevice', true, DeviceActivationResultClass, 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, deviceType: deviceType });\n }\n\n export function massActivateDeviceAsync(context: IContext, deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null):AsyncResult {\n const request = createMassActivateDeviceInput(deviceNumber, terminalId, deviceId, deviceType);\n return executeAction(request, context);\n }\n \n export function createDeactivateDeviceInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeactivateDevice', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function deactivateDeviceAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createDeactivateDeviceInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createCreateHardwareStationTokenInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateHardwareStationToken', true, CreateHardwareStationTokenResultClass, 'false', { bypassCache: 'get', returnEntity: 'CreateHardwareStationTokenResult'}, { });\n }\n\n export function createHardwareStationTokenAsync(context: IContext):AsyncResult {\n const request = createCreateHardwareStationTokenInput();\n return executeAction(request, context);\n }\n \n export function createValidateHardwareStationTokenInput(deviceNumber?: string | null, hardwareStationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateHardwareStationToken', true, ValidateHardwareStationTokenResultClass, 'false', { bypassCache: 'get', returnEntity: 'ValidateHardwareStationTokenResult'}, {deviceNumber: deviceNumber, hardwareStationToken: hardwareStationToken });\n }\n\n export function validateHardwareStationTokenAsync(context: IContext, deviceNumber?: string | null, hardwareStationToken?: string | null):AsyncResult {\n const request = createValidateHardwareStationTokenInput(deviceNumber, hardwareStationToken);\n return executeAction(request, context);\n }\n \n export function createGetBarcodeByIdInput(barcodeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBarcodeById', true, BarcodeClass, 'false', { bypassCache: 'none', returnEntity: 'Barcode'}, {barcodeId: barcodeId });\n }\n\n export function getBarcodeByIdAsync(context: IContext, barcodeId?: string | null):AsyncResult {\n const request = createGetBarcodeByIdInput(barcodeId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridByIdInput(buttonGridId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetButtonGridById', true, ButtonGridClass, 'false', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {buttonGridId: buttonGridId });\n }\n\n export function getButtonGridByIdAsync(context: IContext, buttonGridId?: string | null):AsyncResult {\n const request = createGetButtonGridByIdInput(buttonGridId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsWithoutImageInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsWithoutImage', true, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsWithoutImageAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsWithoutImageInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByIdsInput(queryResultSettings: IQueryResultSettings, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByIds', true, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {getButtonGridsByIdsCriteria: getButtonGridsByIdsCriteria });\n }\n\n export function getButtonGridsByIdsAsync(context: IContext, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null):AsyncResult {\n const request = createGetButtonGridsByIdsInput(context.queryResultSettings, getButtonGridsByIdsCriteria);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobsByPictureIdsInput(queryResultSettings: IQueryResultSettings, pictureIds: number[]): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetImageBlobsByPictureIds', true, MediaBlobClass, 'true', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {pictureIds: pictureIds });\n }\n\n export function getImageBlobsByPictureIdsAsync(context: IContext, pictureIds: number[]):AsyncResult {\n const request = createGetImageBlobsByPictureIdsInput(context.queryResultSettings, pictureIds);\n return executeAction(request, context);\n }\n \n export function createGetCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCardTypes', true, CardTypeInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CardTypeInfo'}, { });\n }\n\n export function getCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createResolveCardTypesInput(queryResultSettings: IQueryResultSettings, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ResolveCardTypes', true, CardTypeInfoClass, 'true', { bypassCache: 'get', returnEntity: 'CardTypeInfo'}, {cardNumberPrefix: cardNumberPrefix, cardType: cardType, paymentToken: paymentToken });\n }\n\n export function resolveCardTypesAsync(context: IContext, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null):AsyncResult {\n const request = createResolveCardTypesInput(context.queryResultSettings, cardNumberPrefix, cardType, paymentToken);\n return executeAction(request, context);\n }\n \n export function createGetSupportedPaymentCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSupportedPaymentCardTypes', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getSupportedPaymentCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetSupportedPaymentCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCitiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCities', true, CityInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CityInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId });\n }\n\n export function getCitiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null):AsyncResult {\n const request = createGetCitiesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsForShippingInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsForShipping', false, CountryRegionInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsForShippingAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsForShippingInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsByLanguageIdInput(queryResultSettings: IQueryResultSettings, languageId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsByLanguageId', true, CountryRegionInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, {languageId: languageId });\n }\n\n export function getCountryRegionsByLanguageIdAsync(context: IContext, languageId?: string | null):AsyncResult {\n const request = createGetCountryRegionsByLanguageIdInput(context.queryResultSettings, languageId);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelInput(channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannel', false, OnlineChannelClass, 'false', { bypassCache: 'none', returnEntity: 'OnlineChannel'}, {channelId: channelId });\n }\n\n export function getOnlineChannelAsync(context: IContext, channelId: number):AsyncResult {\n const request = createGetOnlineChannelInput(channelId);\n return executeAction(request, context);\n }\n \n export function createGetCountiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCounties', true, CountyInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountyInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId });\n }\n\n export function getCountiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null):AsyncResult {\n const request = createGetCountiesInput(context.queryResultSettings, countryRegionId, stateProvinceId);\n return executeAction(request, context);\n }\n \n export function createGetCreditMemoByIdInput(creditMemoId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCreditMemoById', true, CreditMemoClass, 'false', { bypassCache: 'none', returnEntity: 'CreditMemo'}, {creditMemoId: creditMemoId });\n }\n\n export function getCreditMemoByIdAsync(context: IContext, creditMemoId?: string | null):AsyncResult {\n const request = createGetCreditMemoByIdInput(creditMemoId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetTerminalDataStoreNameInput(terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetTerminalDataStoreName', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId });\n }\n\n export function getTerminalDataStoreNameAsync(context: IContext, terminalId?: string | null):AsyncResult {\n const request = createGetTerminalDataStoreNameInput(terminalId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadLinkInput(dataStoreName: string | null, downloadSessionId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadLink', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName, downloadSessionId: downloadSessionId });\n }\n\n export function getDownloadLinkAsync(context: IContext, dataStoreName: string | null, downloadSessionId: number):AsyncResult {\n const request = createGetDownloadLinkInput(dataStoreName, downloadSessionId);\n return executeAction(request, context);\n }\n \n export function createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataDownloadParametersByTerminal', true, DataDownloadParametersClass, 'false', { bypassCache: 'none', returnEntity: 'DataDownloadParameters'}, {TerminalDataDownloadRequestInfo: terminalDataDownloadRequestInfo });\n }\n\n export function getDataDownloadParametersByTerminalAsync(context: IContext, terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null):AsyncResult {\n const request = createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataUploadParametersByTerminal', true, DataUploadParametersClass, 'false', { bypassCache: 'none', returnEntity: 'DataUploadParameters'}, {TerminalDataUploadRequestInfo: terminalDataUploadRequestInfo });\n }\n\n export function getDataUploadParametersByTerminalAsync(context: IContext, terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null):AsyncResult {\n const request = createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDownloadSessions', true, DownloadSessionClass, 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetInitialDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInitialDownloadSessions', true, DownloadSessionClass, 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getInitialDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetInitialDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadJobDefinitionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUploadJobDefinitions', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadJobDefinitionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadJobDefinitionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUploadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createPostOfflineTransactionsInput(offlineTransactionForMPOS?: string[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('PostOfflineTransactions', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {offlineTransactionForMPOS: offlineTransactionForMPOS });\n }\n\n export function postOfflineTransactionsAsync(context: IContext, offlineTransactionForMPOS?: string[] | null):AsyncResult {\n const request = createPostOfflineTransactionsInput(offlineTransactionForMPOS);\n return executeAction(request, context);\n }\n \n export function createSetOfflineTerminalStateInput(offlineTerminalState?: OfflineTerminalState | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOfflineTerminalState', true, '', '', { bypassCache: 'get', returnEntity: ''}, {offlineTerminalState: offlineTerminalState });\n }\n\n export function setOfflineTerminalStateAsync(context: IContext, offlineTerminalState?: OfflineTerminalState | null):AsyncResult {\n const request = createSetOfflineTerminalStateInput(offlineTerminalState);\n return executeAction(request, context);\n }\n \n export function createGetRetailTrialPlanOfferInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetRetailTrialPlanOffer', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getRetailTrialPlanOfferAsync(context: IContext):AsyncResult {\n const request = createGetRetailTrialPlanOfferInput();\n return executeAction(request, context);\n }\n \n export function createGetLatestNumberSequenceInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLatestNumberSequence', true, NumberSequenceSeedDataClass, 'true', { bypassCache: 'none', returnEntity: 'NumberSequenceSeedData'}, { });\n }\n\n export function getLatestNumberSequenceAsync(context: IContext):AsyncResult {\n const request = createGetLatestNumberSequenceInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReceiptNumberResetInfoInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptNumberResetInfo', true, ReceiptNumberResetInfoClass, 'true', { bypassCache: 'none', returnEntity: 'ReceiptNumberResetInfo'}, { });\n }\n\n export function getReceiptNumberResetInfoAsync(context: IContext):AsyncResult {\n const request = createGetReceiptNumberResetInfoInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimeline', true, LoyaltyRewardPointActivityClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimelineForExpiredPoints', true, LoyaltyRewardPointActivityClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createCalculateTotalCurrencyAmountInput(currenciesAmount?: CurrencyRequest[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateTotalCurrencyAmount', true, CurrencyAmountClass, 'false', { bypassCache: 'get', returnEntity: 'CurrencyAmount'}, {currenciesAmount: currenciesAmount });\n }\n\n export function calculateTotalCurrencyAmountAsync(context: IContext, currenciesAmount?: CurrencyRequest[] | null):AsyncResult {\n const request = createCalculateTotalCurrencyAmountInput(currenciesAmount);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodeInput(discountCode?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDiscountCode', true, DiscountCodeClass, 'false', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {discountCode: discountCode });\n }\n\n export function getDiscountCodeAsync(context: IContext, discountCode?: string | null):AsyncResult {\n const request = createGetDiscountCodeInput(discountCode);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByOfferIdInput(queryResultSettings: IQueryResultSettings, offerId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByOfferId', true, DiscountCodeClass, 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {offerId: offerId });\n }\n\n export function getDiscountCodesByOfferIdAsync(context: IContext, offerId?: string | null):AsyncResult {\n const request = createGetDiscountCodesByOfferIdInput(context.queryResultSettings, offerId);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByKeywordInput(queryResultSettings: IQueryResultSettings, keyword: string | null, activeDate: Date): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByKeyword', true, DiscountCodeClass, 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {keyword: keyword, activeDate: activeDate });\n }\n\n export function getDiscountCodesByKeywordAsync(context: IContext, keyword: string | null, activeDate: Date):AsyncResult {\n const request = createGetDiscountCodesByKeywordInput(context.queryResultSettings, keyword, activeDate);\n return executeAction(request, context);\n }\n \n export function createGetDistrictsInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDistricts', true, DistrictInfoClass, 'true', { bypassCache: 'none', returnEntity: 'DistrictInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName });\n }\n\n export function getDistrictsAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null):AsyncResult {\n const request = createGetDistrictsInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName);\n return executeAction(request, context);\n }\n \n export function createGetHardwareStationProfilesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetHardwareStationProfiles', true, HardwareStationProfileClass, 'true', { bypassCache: 'none', returnEntity: 'HardwareStationProfile'}, { });\n }\n\n export function getHardwareStationProfilesAsync(context: IContext):AsyncResult {\n const request = createGetHardwareStationProfilesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetHardwareProfileByIdInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetHardwareProfileById', true, HardwareProfileClass, 'false', { bypassCache: 'none', returnEntity: 'HardwareProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getHardwareProfileByIdAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetHardwareProfileByIdInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetLocalizedStringsInput(queryResultSettings: IQueryResultSettings, languageId?: string | null, textId?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLocalizedStrings', true, LocalizedStringClass, 'true', { bypassCache: 'none', returnEntity: 'LocalizedString'}, {languageId: languageId, textId: textId });\n }\n\n export function getLocalizedStringsAsync(context: IContext, languageId?: string | null, textId?: number | null):AsyncResult {\n const request = createGetLocalizedStringsInput(context.queryResultSettings, languageId, textId);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionByIdInput(operationId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationPermissionById', true, OperationPermissionClass, 'false', { bypassCache: 'none', returnEntity: 'OperationPermission'}, {operationId: operationId });\n }\n\n export function getOperationPermissionByIdAsync(context: IContext, operationId: number):AsyncResult {\n const request = createGetOperationPermissionByIdInput(operationId);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesByIdInput(queryResultSettings: IQueryResultSettings, reasonCodeGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodesById', true, ReasonCodeClass, 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, {reasonCodeGroupId: reasonCodeGroupId });\n }\n\n export function getReasonCodesByIdAsync(context: IContext, reasonCodeGroupId?: string | null):AsyncResult {\n const request = createGetReasonCodesByIdInput(context.queryResultSettings, reasonCodeGroupId);\n return executeAction(request, context);\n }\n \n export function createSearchReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SearchReportDataSet', true, ReportDataSetClass, 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function searchReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createSearchReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetReportDataSetByIdInput(reportId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReportDataSetById', true, ReportDataSetClass, 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId });\n }\n\n export function getReportDataSetByIdAsync(context: IContext, reportId?: string | null):AsyncResult {\n const request = createGetReportDataSetByIdInput(reportId);\n return executeAction(request, context);\n }\n \n export function createGetSrsReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSrsReportDataSet', true, ReportDataSetClass, 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function getSrsReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createGetSrsReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetIncomeExpenseAccountsInput(queryResultSettings: IQueryResultSettings, incomeExpenseAccountType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetIncomeExpenseAccounts', true, IncomeExpenseAccountClass, 'true', { bypassCache: 'none', returnEntity: 'IncomeExpenseAccount'}, {incomeExpenseAccountType: incomeExpenseAccountType });\n }\n\n export function getIncomeExpenseAccountsAsync(context: IContext, incomeExpenseAccountType: number):AsyncResult {\n const request = createGetIncomeExpenseAccountsInput(context.queryResultSettings, incomeExpenseAccountType);\n return executeAction(request, context);\n }\n \n export function createGetStateProvincesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStateProvinces', true, StateProvinceInfoClass, 'true', { bypassCache: 'none', returnEntity: 'StateProvinceInfo'}, {countryRegionId: countryRegionId });\n }\n\n export function getStateProvincesAsync(context: IContext, countryRegionId?: string | null):AsyncResult {\n const request = createGetStateProvincesInput(context.queryResultSettings, countryRegionId);\n return executeAction(request, context);\n }\n \n export function createGetZipCodesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetZipCodes', true, ZipCodeInfoClass, 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName, district: district });\n }\n\n export function getZipCodesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null):AsyncResult {\n const request = createGetZipCodesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName, district);\n return executeAction(request, context);\n }\n \n export function createGetAddressFromZipCodeInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, zipPostalCode?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressFromZipCode', true, ZipCodeInfoClass, 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, zipPostalCode: zipPostalCode });\n }\n\n export function getAddressFromZipCodeAsync(context: IContext, countryRegionId?: string | null, zipPostalCode?: string | null):AsyncResult {\n const request = createGetAddressFromZipCodeInput(context.queryResultSettings, countryRegionId, zipPostalCode);\n return executeAction(request, context);\n }\n \n export function createDisassembleKitTransactionsInput(kitTransaction?: KitTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DisassembleKitTransactions', true, KitTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'KitTransaction'}, {kitTransaction: kitTransaction });\n }\n\n export function disassembleKitTransactionsAsync(context: IContext, kitTransaction?: KitTransaction | null):AsyncResult {\n const request = createDisassembleKitTransactionsInput(kitTransaction);\n return executeAction(request, context);\n }\n \n export function createIssueLoyaltyCardInput(loyaltyCard?: LoyaltyCard | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('IssueLoyaltyCard', true, LoyaltyCardClass, 'false', { bypassCache: 'get', returnEntity: 'LoyaltyCard'}, {loyaltyCard: loyaltyCard });\n }\n\n export function issueLoyaltyCardAsync(context: IContext, loyaltyCard?: LoyaltyCard | null):AsyncResult {\n const request = createIssueLoyaltyCardInput(loyaltyCard);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardInput(cardNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetLoyaltyCard', true, LoyaltyCardClass, 'false', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {cardNumber: cardNumber });\n }\n\n export function getLoyaltyCardAsync(context: IContext, cardNumber?: string | null):AsyncResult {\n const request = createGetLoyaltyCardInput(cardNumber);\n return executeAction(request, context);\n }\n \n export function createGetCustomerLoyaltyCardsInput(queryResultSettings: IQueryResultSettings, accountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerLoyaltyCards', true, LoyaltyCardClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {accountNumber: accountNumber });\n }\n\n export function getCustomerLoyaltyCardsAsync(context: IContext, accountNumber?: string | null):AsyncResult {\n const request = createGetCustomerLoyaltyCardsInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardTransactionsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyCardTransactions', true, LoyaltyCardTransactionClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCardTransaction'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyCardTransactionsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyCardTransactionsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointsExpiringSoonInput(queryResultSettings: IQueryResultSettings, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointsExpiringSoon', true, LoyaltyRewardPointActivityClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId, daysToExpiry: daysToExpiry });\n }\n\n export function getLoyaltyRewardPointsExpiringSoonAsync(context: IContext, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number):AsyncResult {\n const request = createGetLoyaltyRewardPointsExpiringSoonInput(context.queryResultSettings, cardNumber, rewardPointId, daysToExpiry);\n return executeAction(request, context);\n }\n \n export function createSearchJournalTransactionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: TransactionSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalTransactions', true, TransactionClass, 'true', { bypassCache: 'none', returnEntity: 'Transaction'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalTransactionsAsync(context: IContext, searchCriteria?: TransactionSearchCriteria | null):AsyncResult {\n const request = createSearchJournalTransactionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInput(giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCard', true, GiftCardClass, 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId, tenderTypeId: tenderTypeId, pin: pin, expirationMonth: expirationMonth, expirationYear: expirationYear });\n }\n\n export function getGiftCardAsync(context: IContext, giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null):AsyncResult {\n const request = createGetGiftCardInput(giftCardId, tenderTypeId, pin, expirationMonth, expirationYear);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInquiryInput(giftCardId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCardInquiry', true, GiftCardClass, 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId });\n }\n\n export function getGiftCardInquiryAsync(context: IContext, giftCardId?: string | null):AsyncResult {\n const request = createGetGiftCardInquiryInput(giftCardId);\n return executeAction(request, context);\n }\n \n export function createGetNonSalesTransactionsInput(queryResultSettings: IQueryResultSettings, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNonSalesTransactions', true, NonSalesTransactionClass, 'true', { bypassCache: 'none', returnEntity: 'NonSalesTransaction'}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId, nonSalesTenderTypeValue: nonSalesTenderTypeValue });\n }\n\n export function getNonSalesTransactionsAsync(context: IContext, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number):AsyncResult {\n const request = createGetNonSalesTransactionsInput(context.queryResultSettings, shiftId, shiftTerminalId, nonSalesTenderTypeValue);\n return executeAction(request, context);\n }\n \n export function createCreateNonSalesTransactionInput(nonSalesTransaction?: NonSalesTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateNonSalesTransaction', true, NonSalesTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'NonSalesTransaction'}, {nonSalesTransaction: nonSalesTransaction });\n }\n\n export function createNonSalesTransactionAsync(context: IContext, nonSalesTransaction?: NonSalesTransaction | null):AsyncResult {\n const request = createCreateNonSalesTransactionInput(nonSalesTransaction);\n return executeAction(request, context);\n }\n \n export function createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction?: DropAndDeclareTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateDropAndDeclareTransaction', true, DropAndDeclareTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'DropAndDeclareTransaction'}, {dropAndDeclareTransaction: dropAndDeclareTransaction });\n }\n\n export function createDropAndDeclareTransactionAsync(context: IContext, dropAndDeclareTransaction?: DropAndDeclareTransaction | null):AsyncResult {\n const request = createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction);\n return executeAction(request, context);\n }\n \n export function createGetTaxOverridesInput(queryResultSettings: IQueryResultSettings, overrideBy?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTaxOverrides', true, TaxOverrideClass, 'true', { bypassCache: 'none', returnEntity: 'TaxOverride'}, {overrideBy: overrideBy });\n }\n\n export function getTaxOverridesAsync(context: IContext, overrideBy?: string | null):AsyncResult {\n const request = createGetTaxOverridesInput(context.queryResultSettings, overrideBy);\n return executeAction(request, context);\n }\n \n export function createGetCustomerBalanceInput(accountNumber?: string | null, invoiceAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCustomerBalance', true, CustomerBalancesClass, 'false', { bypassCache: 'none', returnEntity: 'CustomerBalances'}, {accountNumber: accountNumber, invoiceAccountNumber: invoiceAccountNumber });\n }\n\n export function getCustomerBalanceAsync(context: IContext, accountNumber?: string | null, invoiceAccountNumber?: string | null):AsyncResult {\n const request = createGetCustomerBalanceInput(accountNumber, invoiceAccountNumber);\n return executeAction(request, context);\n }\n \n export function createInitiateLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('InitiateLinkToExistingCustomer', true, LinkToExistingCustomerResultClass, 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken, emailTemplateId: emailTemplateId, emailProperties: emailProperties });\n }\n\n export function initiateLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null):AsyncResult {\n const request = createInitiateLinkToExistingCustomerInput(email, activationToken, emailTemplateId, emailProperties);\n return executeAction(request, context);\n }\n \n export function createFinalizeLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('FinalizeLinkToExistingCustomer', true, LinkToExistingCustomerResultClass, 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken });\n }\n\n export function finalizeLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null):AsyncResult {\n const request = createFinalizeLinkToExistingCustomerInput(email, activationToken);\n return executeAction(request, context);\n }\n \n export function createUnlinkFromExistingCustomerInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UnlinkFromExistingCustomer', true, '', '', { bypassCache: 'get', returnEntity: ''}, { });\n }\n\n export function unlinkFromExistingCustomerAsync(context: IContext):AsyncResult {\n const request = createUnlinkFromExistingCustomerInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflineSyncStatusInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOfflineSyncStatus', true, OfflineSyncStatsLineClass, 'true', { bypassCache: 'none', returnEntity: 'OfflineSyncStatsLine'}, { });\n }\n\n export function getOfflineSyncStatusAsync(context: IContext):AsyncResult {\n const request = createGetOfflineSyncStatusInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCount', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOfflinePendingTransactionCountAsync(context: IContext):AsyncResult {\n const request = createGetOfflinePendingTransactionCountInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountByShiftInput(shiftId: number, shiftTerminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCountByShift', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId });\n }\n\n export function getOfflinePendingTransactionCountByShiftAsync(context: IContext, shiftId: number, shiftTerminalId?: string | null):AsyncResult {\n const request = createGetOfflinePendingTransactionCountByShiftInput(shiftId, shiftTerminalId);\n return executeAction(request, context);\n }\n \n export function createUpdateDownloadSessionInput(downloadSession?: DownloadSession | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateDownloadSession', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {downloadSession: downloadSession });\n }\n\n export function updateDownloadSessionAsync(context: IContext, downloadSession?: DownloadSession | null):AsyncResult {\n const request = createUpdateDownloadSessionInput(downloadSession);\n return executeAction(request, context);\n }\n \n export function createUpdateApplicationVersionInput(appVersion?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateApplicationVersion', true, '', '', { bypassCache: 'get', returnEntity: ''}, {appVersion: appVersion });\n }\n\n export function updateApplicationVersionAsync(context: IContext, appVersion?: string | null):AsyncResult {\n const request = createUpdateApplicationVersionInput(appVersion);\n return executeAction(request, context);\n }\n \n export function createGetStorageAccessTokenForUploadInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetStorageAccessTokenForUpload', true, StorageAccessTokenClass, 'false', { bypassCache: 'none', returnEntity: 'StorageAccessToken'}, { });\n }\n\n export function getStorageAccessTokenForUploadAsync(context: IContext):AsyncResult {\n const request = createGetStorageAccessTokenForUploadInput();\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibrariesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibraries', true, FrameworkClass, 'true', { bypassCache: 'none', returnEntity: 'Framework'}, { });\n }\n\n export function getBusinessProcessModelLibrariesAsync(context: IContext):AsyncResult {\n const request = createGetBusinessProcessModelLibrariesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId: number, hierarchyDepth: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibrary', true, FrameworkClass, 'false', { bypassCache: 'none', returnEntity: 'Framework'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, hierarchyDepth: hierarchyDepth });\n }\n\n export function getBusinessProcessModelLibraryAsync(context: IContext, businessProcessModelFrameworkLineId: number, hierarchyDepth: number):AsyncResult {\n const request = createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId, hierarchyDepth);\n return executeAction(request, context);\n }\n \n export function createSearchTaskGuidesByTitleInput(queryResultSettings: IQueryResultSettings, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchTaskGuidesByTitle', true, TaskGuidesSearchResultClass, 'true', { bypassCache: 'none', returnEntity: 'TaskGuidesSearchResult'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, taskGuideSearchText: taskGuideSearchText, queryTypeValue: queryTypeValue });\n }\n\n export function searchTaskGuidesByTitleAsync(context: IContext, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number):AsyncResult {\n const request = createSearchTaskGuidesByTitleInput(context.queryResultSettings, businessProcessModelFrameworkLineId, taskGuideSearchText, queryTypeValue);\n return executeAction(request, context);\n }\n \n export function createGenerateBusinessProcessModelPackageInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateBusinessProcessModelPackage', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateBusinessProcessModelPackageAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateBusinessProcessModelPackageInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createDownloadRecordingInput(businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DownloadRecording', true, RecordingClass, 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function downloadRecordingAsync(context: IContext, businessProcessModelLineId: number):AsyncResult {\n const request = createDownloadRecordingInput(businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createLoadRecordingFromFileInput(recordingUrl?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('LoadRecordingFromFile', true, RecordingClass, 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {recordingUrl: recordingUrl });\n }\n\n export function loadRecordingFromFileAsync(context: IContext, recordingUrl?: string | null):AsyncResult {\n const request = createLoadRecordingFromFileInput(recordingUrl);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingFileInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingFile', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingFileAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingFileInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateTrainingDocumentInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateTrainingDocument', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateTrainingDocumentAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateTrainingDocumentInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingBundleInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingBundle', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingBundleAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingBundleInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createUploadRecordingInput(taskRecording: Recording | null, businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UploadRecording', true, '', '', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording, businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function uploadRecordingAsync(context: IContext, taskRecording: Recording | null, businessProcessModelLineId: number):AsyncResult {\n const request = createUploadRecordingInput(taskRecording, businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createGetAttributeDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeDefinitions', true, AttributeDefinitionClass, 'true', { bypassCache: 'none', returnEntity: 'AttributeDefinition'}, {attributeDefinitionCriteria: attributeDefinitionCriteria });\n }\n\n export function getAttributeDefinitionsAsync(context: IContext, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeDefinitionsInput(context.queryResultSettings, attributeDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAttributeGroupDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeGroupDefinitions', true, AttributeGroupDefinitionClass, 'true', { bypassCache: 'none', returnEntity: 'AttributeGroupDefinition'}, {attributeGroupDefinitionCriteria: attributeGroupDefinitionCriteria });\n }\n\n export function getAttributeGroupDefinitionsAsync(context: IContext, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeGroupDefinitionsInput(context.queryResultSettings, attributeGroupDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalTransactionInput(fiscalTransaction?: FiscalTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalTransaction', true, '', '', { bypassCache: 'get', returnEntity: ''}, {fiscalTransaction: fiscalTransaction });\n }\n\n export function saveFiscalTransactionAsync(context: IContext, fiscalTransaction?: FiscalTransaction | null):AsyncResult {\n const request = createSaveFiscalTransactionInput(fiscalTransaction);\n return executeAction(request, context);\n }\n \n export function createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint?: SalesOrder | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidatePrintReceiptCopyAllowed', true, '', '', { bypassCache: 'get', returnEntity: ''}, {salesOrderToPrint: salesOrderToPrint });\n }\n\n export function validatePrintReceiptCopyAllowedAsync(context: IContext, salesOrderToPrint?: SalesOrder | null):AsyncResult {\n const request = createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint);\n return executeAction(request, context);\n }\n \n export function createRegisterAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAuditEvent', true, '', '', { bypassCache: 'get', returnEntity: ''}, {auditEvent: auditEvent });\n }\n\n export function registerAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createRegisterAndGetAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAndGetAuditEvent', true, AuditEventClass, 'false', { bypassCache: 'get', returnEntity: 'AuditEvent'}, {auditEvent: auditEvent });\n }\n\n export function registerAndGetAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAndGetAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createGetInventoryAvailableToPromiseInput(queryResultSettings: IQueryResultSettings, productId: number, itemId?: string | null, inventLocationId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInventoryAvailableToPromise', true, InventoryAvailableToPromiseClass, 'true', { bypassCache: 'none', returnEntity: 'InventoryAvailableToPromise'}, {productId: productId, itemId: itemId, inventLocationId: inventLocationId });\n }\n\n export function getInventoryAvailableToPromiseAsync(context: IContext, productId: number, itemId?: string | null, inventLocationId?: string | null):AsyncResult {\n const request = createGetInventoryAvailableToPromiseInput(context.queryResultSettings, productId, itemId, inventLocationId);\n return executeAction(request, context);\n }\n \n export function createGetSalesOrdersWithNoFiscalTransactionsInput(queryResultSettings: IQueryResultSettings, storeNumber?: string | null, terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesOrdersWithNoFiscalTransactions', true, SalesOrderClass, 'true', { bypassCache: 'none', returnEntity: 'SalesOrder'}, {storeNumber: storeNumber, terminalId: terminalId });\n }\n\n export function getSalesOrdersWithNoFiscalTransactionsAsync(context: IContext, storeNumber?: string | null, terminalId?: string | null):AsyncResult {\n const request = createGetSalesOrdersWithNoFiscalTransactionsInput(context.queryResultSettings, storeNumber, terminalId);\n return executeAction(request, context);\n }\n \n export function createGetNotificationsInput(queryResultSettings: IQueryResultSettings, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNotifications', true, NotificationItemClass, 'true', { bypassCache: 'none', returnEntity: 'NotificationItem'}, {subscribedOperations: subscribedOperations, extensionProperties: extensionProperties });\n }\n\n export function getNotificationsAsync(context: IContext, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetNotificationsInput(context.queryResultSettings, subscribedOperations, extensionProperties);\n return executeAction(request, context);\n }\n \n export function createAcknowledgeNotificationsInput(lastPullDateTime: Date): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('AcknowledgeNotifications', true, '', '', { bypassCache: 'get', returnEntity: ''}, {lastPullDateTime: lastPullDateTime });\n }\n\n export function acknowledgeNotificationsAsync(context: IContext, lastPullDateTime: Date):AsyncResult {\n const request = createAcknowledgeNotificationsInput(lastPullDateTime);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationNonFiscalDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationNonFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceSetupDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceSetupDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceReadDataDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceReadDataDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ProcessFiscalIntegrationFiscalServiceReadDataResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, documentToProcess: documentToProcess, connectorType: connectorType });\n }\n\n export function processFiscalIntegrationFiscalServiceReadDataResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null):AsyncResult {\n const request = createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId, functionalityProfileGroupId, documentToProcess, connectorType);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalIntegrationRegistrationResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function saveFiscalIntegrationRegistrationResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null):AsyncResult {\n const request = createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId, functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationRegistrationProcessInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationRegistrationProcess', true, FiscalIntegrationRegistrationProcessClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationRegistrationProcess'}, { });\n }\n\n export function getFiscalIntegrationRegistrationProcessAsync(context: IContext):AsyncResult {\n const request = createGetFiscalIntegrationRegistrationProcessInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelSupportedFiscalIntegrationEventsByGroup', true, FiscalIntegrationSupportedEventsClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSupportedEvents'}, {functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getChannelSupportedFiscalIntegrationEventsByGroupAsync(context: IContext, functionalityProfileGroupId?: string | null):AsyncResult {\n const request = createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfiles', true, FiscalIntegrationTechnicalProfileClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesInput(context.queryResultSettings, hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIds', true, FiscalIntegrationTechnicalProfileClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(context.queryResultSettings, hardwareProfileId, functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalRegistrationProcessSummary', true, FiscalIntegrationFiscalRegistrationProcessSummaryClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationFiscalRegistrationProcessSummary'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalRegistrationProcessSummaryAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createBackupFiscalRegistrationProcessContextInput(terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('BackupFiscalRegistrationProcessContext', true, '', '', { bypassCache: 'get', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId, fiscalProcessCompleted: fiscalProcessCompleted, fiscalIntegrationSerializedContext: fiscalIntegrationSerializedContext });\n }\n\n export function backupFiscalRegistrationProcessContextAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null):AsyncResult {\n const request = createBackupFiscalRegistrationProcessContextInput(terminalId, storeNumber, channelId, fiscalProcessCompleted, fiscalIntegrationSerializedContext);\n return executeAction(request, context);\n }\n \n export function createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId: string | null, storeNumber: string | null, channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetActiveFiscalRegistrationProcessContextBackup', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId });\n }\n\n export function getActiveFiscalRegistrationProcessContextBackupAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number):AsyncResult {\n const request = createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId, storeNumber, channelId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesBySearchCriteria', true, FiscalIntegrationTechnicalProfileClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria: fiscalIntegrationTechnicalProfileSearchCriteria });\n }\n\n export function getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync(context: IContext, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(context.queryResultSettings, hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationServiceStatus', true, FiscalIntegrationServiceStatusClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationServiceStatus'}, {fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function getFiscalIntegrationServiceStatusAsync(context: IContext, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createSubmitFiscalIntegrationDocumentInput(documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SubmitFiscalIntegrationDocument', true, FiscalIntegrationServiceCommunicationResultClass, 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationServiceCommunicationResult'}, {documentToSubmit: documentToSubmit, fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function submitFiscalIntegrationDocumentAsync(context: IContext, documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createSubmitFiscalIntegrationDocumentInput(documentToSubmit, fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createGetFeatureStatesInput(queryResultSettings: IQueryResultSettings, featureNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFeatureStates', true, FeatureStateClass, 'true', { bypassCache: 'none', returnEntity: 'FeatureState'}, {featureNames: featureNames });\n }\n\n export function getFeatureStatesAsync(context: IContext, featureNames?: string[] | null):AsyncResult {\n const request = createGetFeatureStatesInput(context.queryResultSettings, featureNames);\n return executeAction(request, context);\n }\n \n export function createGetLastFiscalIntegrationSequentialSignaturesInput(queryResultSettings: IQueryResultSettings, sequentialKeys?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLastFiscalIntegrationSequentialSignatures', true, FiscalIntegrationSequentialSignatureDataClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSequentialSignatureData'}, {sequentialKeys: sequentialKeys });\n }\n\n export function getLastFiscalIntegrationSequentialSignaturesAsync(context: IContext, sequentialKeys?: string[] | null):AsyncResult {\n const request = createGetLastFiscalIntegrationSequentialSignaturesInput(context.queryResultSettings, sequentialKeys);\n return executeAction(request, context);\n }\n \n export function createCreateFiscalTransactionInput(functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateFiscalTransaction', true, FiscalTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'FiscalTransaction'}, {functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function createFiscalTransactionAsync(context: IContext, functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number):AsyncResult {\n const request = createCreateFiscalTransactionInput(functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetEstimatedPickupTimeslotAvailabilitiesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEstimatedPickupTimeslotAvailabilities', true, PickupTimeslotAvailabilityClass, 'true', { bypassCache: 'none', returnEntity: 'PickupTimeslotAvailability'}, {searchCriteria: searchCriteria });\n }\n\n export function getEstimatedPickupTimeslotAvailabilitiesAsync(context: IContext, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedPickupTimeslotAvailabilitiesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createCalculateSalesDocumentInput(salesDocument?: Cart | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateSalesDocument', true, CartClass, 'false', { bypassCache: 'get', returnEntity: 'Cart'}, {salesDocument: salesDocument });\n }\n\n export function calculateSalesDocumentAsync(context: IContext, salesDocument?: Cart | null):AsyncResult {\n const request = createCalculateSalesDocumentInput(salesDocument);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGrids', false, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, { });\n }\n\n export function getButtonGridsAsync(context: IContext):AsyncResult {\n const request = createGetButtonGridsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByScreenSizeInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByScreenSize', false, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsByScreenSizeAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsByScreenSizeInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetOperationalInsightsConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationalInsightsConfiguration', false, OperationalInsightsConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'OperationalInsightsConfiguration'}, { });\n }\n\n export function getOperationalInsightsConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetOperationalInsightsConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetCashDeclarationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCashDeclarations', false, CashDeclarationClass, 'true', { bypassCache: 'none', returnEntity: 'CashDeclaration'}, { });\n }\n\n export function getCashDeclarationsAsync(context: IContext):AsyncResult {\n const request = createGetCashDeclarationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegions', false, CountryRegionInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCustomerGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerGroups', false, CustomerGroupClass, 'true', { bypassCache: 'none', returnEntity: 'CustomerGroup'}, { });\n }\n\n export function getCustomerGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCustomerGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetChannelDeliveryOptionConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelDeliveryOptionConfiguration', false, ChannelDeliveryOptionConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'ChannelDeliveryOptionConfiguration'}, { });\n }\n\n export function getChannelDeliveryOptionConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetChannelDeliveryOptionConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelsByTypeInput(queryResultSettings: IQueryResultSettings, channelType?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelsByType', false, ChannelIdentityClass, 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {channelType: channelType });\n }\n\n export function getChannelsByTypeAsync(context: IContext, channelType?: string | null):AsyncResult {\n const request = createGetChannelsByTypeInput(context.queryResultSettings, channelType);\n return executeAction(request, context);\n }\n \n export function createGetChannelsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannels', false, ChannelIdentityClass, 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, { });\n }\n\n export function getChannelsAsync(context: IContext):AsyncResult {\n const request = createGetChannelsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchChannelsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ChannelSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchChannels', true, ChannelIdentityClass, 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {searchCriteria: searchCriteria });\n }\n\n export function searchChannelsAsync(context: IContext, searchCriteria?: ChannelSearchCriteria | null):AsyncResult {\n const request = createSearchChannelsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetEnvironmentConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetEnvironmentConfiguration', false, EnvironmentConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'EnvironmentConfiguration'}, { });\n }\n\n export function getEnvironmentConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetEnvironmentConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetSearchConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSearchConfiguration', false, SearchConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'SearchConfiguration'}, { });\n }\n\n export function getSearchConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetSearchConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetExtensionPackageDefinitionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensionPackageDefinitions', false, ExtensionPackageDefinitionClass, 'true', { bypassCache: 'none', returnEntity: 'ExtensionPackageDefinition'}, { });\n }\n\n export function getExtensionPackageDefinitionsAsync(context: IContext):AsyncResult {\n const request = createGetExtensionPackageDefinitionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetExtensionProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetExtensionProfile', false, ExtensionProfileClass, 'false', { bypassCache: 'none', returnEntity: 'ExtensionProfile'}, { });\n }\n\n export function getExtensionProfileAsync(context: IContext):AsyncResult {\n const request = createGetExtensionProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetDeviceConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDeviceConfiguration', false, DeviceConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'DeviceConfiguration'}, { });\n }\n\n export function getDeviceConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetDeviceConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetVisualProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetVisualProfile', false, VisualProfileClass, 'false', { bypassCache: 'none', returnEntity: 'VisualProfile'}, { });\n }\n\n export function getVisualProfileAsync(context: IContext):AsyncResult {\n const request = createGetVisualProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLanguages', false, SupportedLanguageClass, 'true', { bypassCache: 'none', returnEntity: 'SupportedLanguage'}, { });\n }\n\n export function getLanguagesAsync(context: IContext):AsyncResult {\n const request = createGetLanguagesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliations', false, AffiliationClass, 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, { });\n }\n\n export function getAffiliationsAsync(context: IContext):AsyncResult {\n const request = createGetAffiliationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOperationPermissions', false, OperationPermissionClass, 'true', { bypassCache: 'none', returnEntity: 'OperationPermission'}, { });\n }\n\n export function getOperationPermissionsAsync(context: IContext):AsyncResult {\n const request = createGetOperationPermissionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodes', false, ReasonCodeClass, 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnOrderReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReturnOrderReasonCodes', false, ReasonCodeClass, 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReturnOrderReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReturnOrderReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetSalesTaxGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesTaxGroups', false, SalesTaxGroupClass, 'true', { bypassCache: 'none', returnEntity: 'SalesTaxGroup'}, { });\n }\n\n export function getSalesTaxGroupsAsync(context: IContext):AsyncResult {\n const request = createGetSalesTaxGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetTenderTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTenderTypes', false, TenderTypeClass, 'true', { bypassCache: 'none', returnEntity: 'TenderType'}, { });\n }\n\n export function getTenderTypesAsync(context: IContext):AsyncResult {\n const request = createGetTenderTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, UnitOfMeasureClass, 'true', { bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n }\n\n export function getUnitsOfMeasureAsync(context: IContext):AsyncResult {\n const request = createGetUnitsOfMeasureInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodes', false, DiscountCodeClass, 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, { });\n }\n\n export function getDiscountCodesAsync(context: IContext):AsyncResult {\n const request = createGetDiscountCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrencies', false, CurrencyClass, 'true', { bypassCache: 'none', returnEntity: 'Currency'}, { });\n }\n\n export function getCurrenciesAsync(context: IContext):AsyncResult {\n const request = createGetCurrenciesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesAmountInput(queryResultSettings: IQueryResultSettings, currencyCode: string | null, amount: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrenciesAmount', false, CurrencyAmountClass, 'true', { bypassCache: 'none', returnEntity: 'CurrencyAmount'}, {currencyCode: currencyCode, amount: amount });\n }\n\n export function getCurrenciesAmountAsync(context: IContext, currencyCode: string | null, amount: number):AsyncResult {\n const request = createGetCurrenciesAmountInput(context.queryResultSettings, currencyCode, amount);\n return executeAction(request, context);\n }\n \n export function createGetCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCommissionSalesGroups', false, CommissionSalesGroupClass, 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, { });\n }\n\n export function getCommissionSalesGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCommissionSalesGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings, searchText?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchCommissionSalesGroups', false, CommissionSalesGroupClass, 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, {searchText: searchText });\n }\n\n export function searchCommissionSalesGroupsAsync(context: IContext, searchText?: string | null):AsyncResult {\n const request = createSearchCommissionSalesGroupsInput(context.queryResultSettings, searchText);\n return executeAction(request, context);\n }\n \n export function createGetPaymentMerchantInformationInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentMerchantInformation', false, PaymentMerchantInformationClass, 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getPaymentMerchantInformationAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetPaymentMerchantInformationInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetPaymentPropertiesIfModifiedInput(hardwareProfileId?: string | null, merchantInformationHash?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentPropertiesIfModified', false, PaymentMerchantInformationClass, 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId, merchantInformationHash: merchantInformationHash });\n }\n\n export function getPaymentPropertiesIfModifiedAsync(context: IContext, hardwareProfileId?: string | null, merchantInformationHash?: string | null):AsyncResult {\n const request = createGetPaymentPropertiesIfModifiedInput(hardwareProfileId, merchantInformationHash);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelPublishStatusInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannelPublishStatus', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOnlineChannelPublishStatusAsync(context: IContext):AsyncResult {\n const request = createGetOnlineChannelPublishStatusInput();\n return executeAction(request, context);\n }\n \n export function createSetOnlineChannelPublishStatusInput(publishingStatus: number, statusMessage?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOnlineChannelPublishStatus', true, '', '', { bypassCache: 'get', returnEntity: ''}, {publishingStatus: publishingStatus, statusMessage: statusMessage });\n }\n\n export function setOnlineChannelPublishStatusAsync(context: IContext, publishingStatus: number, statusMessage?: string | null):AsyncResult {\n const request = createSetOnlineChannelPublishStatusInput(publishingStatus, statusMessage);\n return executeAction(request, context);\n }\n \n export function createGetInventoryConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetInventoryConfiguration', false, ChannelInventoryConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'ChannelInventoryConfiguration'}, { });\n }\n\n export function getInventoryConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetInventoryConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetPurchaseConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPurchaseConfiguration', false, ChannelPurchaseConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'ChannelPurchaseConfiguration'}, { });\n }\n\n export function getPurchaseConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetPurchaseConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createSearchJournalNamesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryJournalNameSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalNames', true, InventoryJournalNameClass, 'true', { bypassCache: 'none', returnEntity: 'InventoryJournalName'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalNamesAsync(context: IContext, searchCriteria?: InventoryJournalNameSearchCriteria | null):AsyncResult {\n const request = createSearchJournalNamesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAvailableDevicesInput(queryResultSettings: IQueryResultSettings, deviceType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableDevices', false, DeviceClass, 'true', { bypassCache: 'none', returnEntity: 'Device'}, {deviceType: deviceType });\n }\n\n export function getAvailableDevicesAsync(context: IContext, deviceType: number):AsyncResult {\n const request = createGetAvailableDevicesInput(context.queryResultSettings, deviceType);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretStringInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretString', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretStringAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretStringInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretCertificateInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretCertificate', false, UserDefinedSecretCertificateResultClass, 'false', { bypassCache: 'none', returnEntity: 'UserDefinedSecretCertificateResult'}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretCertificateAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretCertificateInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobInput(imageId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetImageBlob', false, MediaBlobClass, 'false', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {imageId: imageId });\n }\n\n export function getImageBlobAsync(context: IContext, imageId: number):AsyncResult {\n const request = createGetImageBlobInput(imageId);\n return executeAction(request, context);\n }\n \n export function createGetExtensibleEnumerationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensibleEnumerations', false, ExtensibleEnumerationContainerClass, 'true', { bypassCache: 'none', returnEntity: 'ExtensibleEnumerationContainer'}, { });\n }\n\n export function getExtensibleEnumerationsAsync(context: IContext):AsyncResult {\n const request = createGetExtensibleEnumerationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAddressPurposesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressPurposes', false, AddressPurposeClass, 'true', { bypassCache: 'none', returnEntity: 'AddressPurpose'}, { });\n }\n\n export function getAddressPurposesAsync(context: IContext):AsyncResult {\n const request = createGetAddressPurposesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnPolicyInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReturnPolicy', false, ReturnPolicyClass, 'false', { bypassCache: 'none', returnEntity: 'ReturnPolicy'}, { });\n }\n\n export function getReturnPolicyAsync(context: IContext):AsyncResult {\n const request = createGetReturnPolicyInput();\n return executeAction(request, context);\n }\n \n export function createGetEmailReceiptSettingsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEmailReceiptSettings', false, EmailReceiptSettingsClass, 'true', { bypassCache: 'none', returnEntity: 'EmailReceiptSettings'}, { });\n }\n\n export function getEmailReceiptSettingsAsync(context: IContext):AsyncResult {\n const request = createGetEmailReceiptSettingsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { DataServiceRequest } from './DataServiceRequest';\nimport { IDataServiceOptions, IDataServiceQueryInternal, IDataServiceRequest, IQueryResultSettings } from './Interfaces';\n\n/**\n * Represents a data service query object.\n */\nexport class DataServiceQuery {\n private _query: IDataServiceQueryInternal;\n\n /**\n * Creates a new instance of DataServiceQuery.\n * @param {IDataServiceRequestFactory} dataServiceRequestFactory The data service request factory.\n * @param {string} [entitySet] The entity set name.\n * @param {string} [entityType] The entity type name.\n * @param {any} [returntype] The return type of query.\n * @param {any} [key] Entity key.\n */\n constructor(entitySet?: string, entityType?: string, returnType?: any, key?: any) {\n this._query = {\n entitySet,\n entityType,\n key,\n returnType,\n tokens: {},\n // by default all action will skip reading from cache before making execute call\n options: { bypassCache: 'get', returnEntity: entityType },\n resultSettings: { Paging: {}, Sorting: {} }\n };\n }\n\n /**\n * Query result settings.\n *\n * @param {string} value The value of query result settings.\n */\n public resultSettings(value: IQueryResultSettings): DataServiceQuery {\n if (!value) {\n value = {};\n }\n\n this._query.resultSettings = {};\n this._query.resultSettings.Paging = value.Paging || {};\n this._query.resultSettings.Sorting = value.Sorting || {};\n this._query.resultSettings.count = value.count;\n\n return this;\n }\n\n /**\n * Filter Clause.\n * @param {string} value The filter value.\n */\n public filter(value: string): DataServiceQuery {\n this._query.filterSettings = value;\n\n return this;\n }\n\n /**\n * Top clause\n * @param {string} value The number of top rows to select.\n */\n public top(value: number): DataServiceQuery {\n this._query.resultSettings.Paging.Top = value;\n\n return this;\n }\n\n /**\n * Skip clause\n * @param {string} value The number of rows to skip\n */\n public skip(value: number): DataServiceQuery {\n this._query.resultSettings.Paging.Skip = value;\n\n return this;\n }\n\n /**\n * Expand clause\n * @param {string} propertyName The property name to expand.\n */\n public expand(propertyName: string): DataServiceQuery {\n if (this._query.expands == null) {\n this._query.expands = [];\n }\n\n this._query.expands.push(propertyName);\n return this;\n }\n\n /**\n * Request number of total row available.\n */\n public inlineCount(): DataServiceQuery {\n this._query.inlineCount = true;\n\n return this;\n }\n\n /**\n * Order by clause.\n * @param {string} value The field name for ordering.\n */\n public orderBy(value: string): DataServiceQuery {\n if (!this._query.resultSettings.Sorting.Columns) {\n this._query.resultSettings.Sorting.Columns = [];\n }\n\n this._query.resultSettings.Sorting.Columns.push({ ColumnName: value });\n\n return this;\n }\n\n /**\n * Transforms the request into a create request.\n * @param {string} object The object.\n * @return {IDataServiceRequest} The data service request.\n */\n public create(object: any): IDataServiceRequest {\n this._query.action = 'Create';\n this._query.data = this._createODataParameters(object);\n this._query.options.bypassCache = 'none';\n return this._createRequest();\n }\n\n /**\n * Transforms the request into a read request.\n * @return {IDataServiceRequest} The data service request.\n */\n public read(): IDataServiceRequest {\n if (this._query.key || (this._query.entitySet === 'Customers' && this._query.key !== null && this._query.key !== undefined)) {\n this._query.action = 'Read';\n } else {\n this._query.action = 'ReadAll';\n this._query.isReturnTypeACollection = true;\n }\n\n this._query.options.bypassCache = 'none';\n return this._createRequest();\n }\n\n /**\n * Transforms the request into an update request.\n * @param {string} object The object.\n * @return {IDataServiceRequest} The data service request.\n */\n public update(object: any): IDataServiceRequest {\n this._query.action = 'Update';\n this._query.data = this._createODataParameters(object);\n\n return this._createRequest();\n }\n\n /**\n * Transforms the request into a delete request.\n * @return {DataServiceRequest} The data service request.\n */\n public delete(): IDataServiceRequest {\n this._query.action = 'Delete';\n\n return this._createRequest();\n }\n\n public setGetAllRecords(): void {\n this._query.resultSettings.Paging.Top = -1;\n }\n\n public isGetAllRecords(): boolean {\n return this._query.resultSettings.Paging.Top === -1;\n }\n\n public createDataServiceRequestForOperation(\n operationName: string,\n isAction: boolean,\n returnType: any,\n isReturnTypeACollection: string,\n options: IDataServiceOptions,\n data?: unknown\n ): IDataServiceRequest {\n this._query.returnType = returnType;\n this._query.isAction = isAction;\n this._query.isReturnTypeACollection = isReturnTypeACollection === 'true';\n this._query.action = operationName;\n this._query.data = this._createODataParameters(data);\n this._query.options = { ...{ bypassCache: 'get', returnEntity: 'CUSTOM-ENTITY' }, ...options };\n\n if (this._query.isReturnTypeACollection && !this._query.resultSettings.Paging.Top) {\n // for paginated requests, where we didn't specify page size, set to fetch all records\n this.setGetAllRecords();\n }\n\n return this._createRequest();\n }\n\n private _createODataParameters(data: unknown) {\n return data ? { parameters: data } : undefined;\n }\n\n private _createRequest(): IDataServiceRequest {\n return new DataServiceRequest(this._query);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { toJS } from 'mobx';\n\nimport { ApiVersion, EntityIdentifier, SortColumn } from './Entities/CommerceTypes.g';\n\nimport {\n BypassCache,\n CacheType,\n ICallerContext,\n IDataServiceQueryInternal,\n IDataServiceRequest,\n IDictionary,\n IPartialCookieContext\n} from './Interfaces';\nimport {\n modelManagersRetailServerRequestError,\n modelManagersRetailServerRequestFinished,\n modelManagersRetailServerRequestStarted,\n Tracer,\n Utils\n} from './logging';\n\nimport { ProxyError } from './exceptions';\nimport { ErrorParser } from './exceptions/ErrorParser';\nimport {\n convertToString,\n EMPTY,\n format,\n hasElements,\n isEmpty,\n isNullOrWhitespace,\n isObjectNotEmptyOrNull\n} from './extensions/StringExtensions';\n\nimport { IODataRequest, ODataHttpRequest } from './externals/DataJS.New';\nexport const ODATA_HAS_NEXT_PAGE_PROPERTY = '@odata.nextLink';\nexport const GET: string = 'GET';\nexport const POST: string = 'POST';\nexport const PATCH: string = 'PATCH';\nexport const DELETE: string = 'DELETE';\nexport const GET_FROM_RETURNIDENTIFIER: string = '___GET__FROM__RETURNIDENTIIER___';\nexport const ODATA_TOTAL_COUNT_PROPERTY = '@odata.count';\n\nconst ApiTimeoutInMilliSecond = 10000;\nconst OPERATINGUNITNUMBER_HEADERNAME = 'OUN';\nconst AUTHORIZATION_HEADERNAME = 'Authorization';\nconst ACCEPT_LANGUAGE = 'Accept-Language';\nconst REQUEST_ID = 'RequestId';\nconst APPSESSION_ID = 'AppSessionId';\nconst USERSESSION_ID = 'UserSessionId';\nconst DEFAULT_HEADER: { [headerName: string]: string } = {\n Prefer: 'return=representation'\n};\nconst OBO_REQUEST = 'isOBORequest';\nconst GET_ACCOUNT_SELECTION_COOKIE = 'getAccountSelectionCookie';\nconst CUSTOMER_ACCOUNT_NUMBER = 'CAN';\n\n/***\n * Parses the odata result returned from server.\n *\n * @param {any} data The result returned from server.\n * @param {any} resultType The entity type to parse the result as.\n */\nexport function parseOdataResult(data: any, resultType: any): any {\n if (!data) {\n return data;\n }\n\n if (!data.value) {\n return resultType ? new resultType(data) : data;\n }\n\n const resultSet = data.value;\n\n if (resultType) {\n if (Object.prototype.toString.call(resultSet) === '[object Array]') {\n for (let i = 0; i < resultSet.length; i++) {\n resultSet[i] = new resultType(resultSet[i]);\n }\n }\n }\n\n // hasNextPage only apply to array which is typeof 'object'\n typeof resultSet === 'object' ? (resultSet.hasNextPage = !(data[ODATA_HAS_NEXT_PAGE_PROPERTY] === undefined)) : null;\n return resultSet;\n}\n\n/**\n * Represents a data service request object.\n */\nexport class DataServiceRequest implements IDataServiceRequest {\n private get batchRequestUri(): string {\n return this._callerContext.requestContext.apiSettings.baseUrl + '/$batch';\n }\n\n /**\n * Gets Locale for the current data service factory instance.\n */\n public get locale(): string {\n return this._callerContext.requestContext.locale;\n }\n\n /**\n * Sets Locale for the current data service factory instance.\n */\n public set locale(locale: string) {\n this._callerContext.requestContext.locale = locale;\n }\n\n /**\n * get cacheKeyFromInput.\n */\n public get cacheKeyFromInput(): string {\n return this._cacheKeyFromInput;\n }\n\n /**\n * get cacheKeyIdentifierFromReturnType.\n */\n public get cacheKeyIdentifierFromReturnType(): string {\n return this._cacheKeyIdentifierFromReturnType;\n }\n\n /**\n * get cacheObjectType.\n */\n public get cacheObjectType(): string {\n return this._cacheObjectType;\n }\n\n /**\n * get cacheKeyFromReturnType.\n */\n public get cacheKeyFromReturnType(): string[] {\n return this._cacheKeyFromReturnType;\n }\n\n /**\n * get totalCount.\n */\n public get totalCount(): number {\n return this._totalCount;\n }\n\n /**\n * get query.\n */\n public get query(): IDataServiceQueryInternal {\n return this._query;\n }\n\n /**\n * Gets query parameters for data service request.\n */\n public queryParams(): T {\n return this._query.data.parameters as T;\n }\n\n /**\n * Gets Odata properties\n */\n public get otherOdataProperties(): IDictionary {\n return this._otherOdata;\n }\n\n private _actionId: string;\n private _cacheObjectType: string;\n private _cacheKeyFromInput: string;\n private _cacheKeyFromReturnType: string[] = [];\n private _cacheKeyIdentifierFromReturnType: string;\n\n private _query: IDataServiceQueryInternal;\n private _callerContext: ICallerContext;\n private _requestUri: string;\n private _method: string;\n private _id: number;\n private _hasOperationName: boolean;\n private _totalCount: number;\n private _otherOdata: IDictionary;\n\n private static buildBatchRequest(batchRequestUri: string, requests: DataServiceRequest[]): IODataRequest {\n let requestId = 1;\n\n // Creates an empty batch request.\n const odataBatchRequest: IODataRequest = {\n requestUri: batchRequestUri,\n method: POST,\n data: { __batchRequests: [] }\n };\n\n const batchRequests = odataBatchRequest.data.__batchRequests;\n let changeRequests: IODataRequest[];\n\n requests.forEach(request => {\n request._id = requestId++;\n\n const odataRequest: IODataRequest = {\n requestUri: request._requestUri,\n method: request._method,\n data: DataServiceRequest.toJson(request._query.data),\n headers: { 'Content-ID': request.id(), Prefer: 'return=representation' }\n };\n\n if (request._method === GET) {\n batchRequests.push(odataRequest);\n } else {\n if (!changeRequests) {\n changeRequests = [];\n batchRequests.push({ __changeRequests: changeRequests });\n }\n changeRequests.push(odataRequest);\n }\n });\n\n return odataBatchRequest;\n }\n\n /**\n * Parse the batch responses.\n * @param {any[]} batchResponses The server responses.\n * @param {any[]} requests The request objects.\n * @param {any[]} responses The responses passed down to the success callback.\n */\n private static parseBatchResponses(batchResponses: any[], requests: any[], responses: any[]): ProxyError[] {\n let errors: ProxyError[] = new Array();\n\n batchResponses.forEach(response => {\n if (response.__changeResponses) {\n errors = errors.concat(DataServiceRequest.parseBatchResponses(response.__changeResponses, requests, responses));\n } else {\n if (!response.message) {\n const requestId = parseInt(response.headers['Content-ID'], 10);\n\n responses[requestId] = parseOdataResult(response.data, requests[requestId - 1]._query.returnType);\n } else {\n errors = errors.concat(ErrorParser.parseErrorMessage(response));\n }\n }\n });\n\n return errors;\n }\n\n /**\n * TODO - check if below function can be replaced with JSON.stringify.\n * Helper function to convert data into a stringified JSON object.\n * @param {any} parent The container of the element.\n * @param {any} data The data to be converted to a stringified JSON object.\n * @param {boolean} [modifyDataInPlace] Whether the object passed should be modified in place. If not, a clone is created instead.\n */\n private static toJson(data: any, parent?: any, modifyDataInPlace?: boolean): string {\n let clone = data;\n\n if (data === null) {\n return null;\n } else if (typeof data !== 'object') {\n // if data type is primitive type, no need to process further\n // as calling jquery extend or calling foreach prop on string type\n // will transform string to array of chars which will be incorrect result.\n return data;\n }\n\n if (data && data.parameters) {\n data = data.parameters;\n parent = null;\n } else {\n parent = data;\n }\n\n // clones the data object instead of changing it, if no modifications in place\n if (!modifyDataInPlace) {\n clone = { ...data };\n }\n\n for (const prop in clone) {\n if (clone.hasOwnProperty(prop)) {\n const property = clone[prop];\n\n // only non-undefined properties are added to the object\n if (typeof property !== 'undefined') {\n let value;\n if (property === null) {\n value = null;\n } else if (typeof property === 'object') {\n if (property instanceof Array) {\n value = DataServiceRequest.arrayToJson(property, parent, modifyDataInPlace);\n } else if (property instanceof Date) {\n value = DataServiceRequest.toDateTimeOffset(property);\n } else {\n // recursively stringifies objects\n value = DataServiceRequest.toJson(property, clone, modifyDataInPlace);\n }\n } else {\n value = property;\n }\n\n clone[prop] = value;\n }\n }\n }\n\n return clone;\n }\n\n /**\n * Helper function to convert array into a stringified JSON object following OData specifications.\n * @param {Array} array The data to be converted to a stringified JSON object.\n * @param {any} parent The container of the array.\n * @param {boolean} [modifyDataInPlace] Whether the object passed should be modified in place. If not, a clone is created instead.\n */\n private static arrayToJson(array: any[], parent: any, modifyDataInPlace?: boolean): any {\n const data = [];\n for (let i = 0; i < array.length; i++) {\n data[i] = DataServiceRequest.toJson(array[i], array, modifyDataInPlace);\n }\n\n // if array is not a top level data on an action\n return data;\n }\n\n /**\n * Add offset fields to Date object for serialization purposes.\n * @param {Date} dateTime The date.\n * @return {Date} The date with __edmType and __offset fields injected.\n */\n private static toDateTimeOffset(dateTime: Date): Date {\n if (!(dateTime as any).__edmType || !(dateTime as any).__offset) {\n const pad: (val: number) => string = (val: number) => (val < 10 ? '0' + val : val.toString());\n const sign: string = dateTime.getTimezoneOffset() > 0 ? '-' : '+';\n const offset: number = Math.abs(dateTime.getTimezoneOffset());\n const hours: string = pad(Math.floor(offset / 60));\n const minutes: string = pad(offset % 60);\n\n (dateTime as any).__edmType = 'Edm.DateTimeOffset';\n (dateTime as any).__offset = sign + hours + ':' + minutes;\n }\n\n return dateTime;\n }\n\n /**\n * Formats entity key(s) in request Uri.\n * @param {any} key The key dictionary.\n * @return {string} The formated string of the key(s).\n */\n private static formatKey(key: any): string {\n let result: string = EMPTY;\n\n if (key) {\n const formattedKey = [];\n let propertyName: string = EMPTY;\n\n for (const property in key) {\n if (key.hasOwnProperty(property)) {\n propertyName = property;\n if (typeof key[propertyName] === 'string') {\n formattedKey.push(propertyName + `='${key[propertyName]}'`);\n } else {\n formattedKey.push(propertyName + '=' + key[propertyName]);\n }\n }\n }\n\n if (formattedKey.length === 1) {\n if (typeof key[propertyName] === 'string') {\n result = `'${key[propertyName]}'`;\n } else {\n result = key[propertyName];\n }\n } else {\n result = formattedKey.join();\n }\n }\n\n return result;\n }\n\n /**\n * Formats function parameters in request Uri.\n * @param {any} parameters The parameter dictionary.\n * @return {string} The formated and encoded string of the parameters.\n */\n private static formatFunctionParameter(parameters: any): string {\n let result: string = EMPTY;\n\n if (parameters) {\n for (const parameter in parameters) {\n if (parameters.hasOwnProperty(parameter)) {\n const paramValue = parameters[parameter];\n\n if (!isEmpty(result)) {\n result += ',';\n }\n\n if (paramValue === undefined) {\n // handles undefined value\n continue;\n } else if (typeof paramValue === 'string') {\n // handles string type value\n result += parameter + `='${encodeURIComponent(paramValue)}'`;\n } else {\n // handles null and other types value\n result += parameter + '=' + encodeURIComponent(paramValue);\n }\n }\n }\n }\n\n return result;\n }\n\n // TODO - use node url api for url parsing\n private static addParameter(requestUri: string, key: string, value: any): string {\n if (value) {\n let parameterSeparator = '?';\n\n if (requestUri.indexOf(parameterSeparator) > 0) {\n parameterSeparator = '&';\n }\n\n return requestUri + parameterSeparator + key + '=' + value;\n } else {\n return requestUri;\n }\n }\n\n private static getActionIdFromInput(query: IDataServiceQueryInternal) {\n return `@msdyn365-commerce/retail-proxy/${query.entitySet}/${query.action}`;\n }\n\n private static getCacheObjectValueFromReturnType(returnType: any): string {\n // return type can be actual class itself like CategoryClass instead of string 'CategoryClass'\n const cacheObjectTypeValue = typeof returnType === 'function' ? returnType.name : returnType;\n return cacheObjectTypeValue.replace('Class', '');\n }\n\n private static buildCacheFromInput(query: IDataServiceQueryInternal, cacheKeyIdentifierFromReturnType: string): string {\n // TODO if return type have distinct primary key (and not a collection), cache key for action will be computed primary key\n\n let cacheKey = {};\n // if query have key like { RecordId: 56873008 }\n query.key && (cacheKey = { ...query.key });\n // parameters are input to function like query.createDataServiceRequestForOperation('GetCategories', true, CategoryClass, 'true', { channelId })\n // => {channelId} is parameters.\n query.data && query.data.parameters && (cacheKey = { ...cacheKey, ...(query.data.parameters as {}) });\n query.resultSettings &&\n (cacheKey = {\n ...cacheKey,\n ...query.resultSettings.Paging,\n ...query.resultSettings.Sorting\n });\n query.filterSettings && (cacheKey['filter'] = query.filterSettings);\n isObjectNotEmptyOrNull(query.tokens) && (cacheKey['token'] = query.tokens);\n // TODO - add OUN in cache key\n const cacheKeyValue =\n convertToString(cacheKey) ||\n (cacheKeyIdentifierFromReturnType ? GET_FROM_RETURNIDENTIFIER : `${query.entitySet}|${query.entityType}|NOKEY`);\n Tracer.Information(`{CacheKey - CacheValue} : ${cacheKey} - ${cacheKeyValue}`);\n return cacheKeyValue;\n }\n\n private static getDataCacheType(query: IDataServiceQueryInternal): CacheType {\n // cache all result in request cacheisObjectNotEmptyOrNull\n //\n // Follow following rule for app cache\n // -------------------------------------------------------------------------------------\n // scenario app cache\n // -------------------------------------------------------------------------------------\n // 1. if returnType is - true\n // a. Category\n // b. Product\n // c. OrgUnit\n // d. ProductCatalog\n // e. Warehouse\n if (query.entitySet === 'Carts' && query.action === 'GetMaxLoyaltyPointsToRedeemForTransactionBalance') {\n return 'none';\n }\n\n return query.options.bypassCache === 'get' || query.options.bypassCache === 'getAndPut' ? 'none' : 'request';\n }\n\n constructor(query: IDataServiceQueryInternal) {\n Tracer.Information('DataServiceRequest.constructor()');\n this._query = toJS(query, { recurseEverything: true });\n this._hasOperationName = false;\n\n switch (query.action) {\n case 'Read':\n case 'ReadAll':\n this._method = GET;\n break;\n\n case 'Create':\n this._method = POST;\n break;\n\n case 'Update':\n this._method = PATCH;\n break;\n\n case 'Delete':\n this._method = DELETE;\n break;\n\n default:\n if (query.isAction) {\n // Sets the HTTP method to be POST for actions\n this._method = POST;\n } else {\n // Sets the HTTP method to be GET for functions\n this._method = GET;\n }\n\n this._hasOperationName = true;\n }\n\n this._actionId = DataServiceRequest.getActionIdFromInput(query);\n\n this._cacheObjectType = DataServiceRequest.getCacheObjectValueFromReturnType(query.options.returnEntity);\n // TODO - handle Key when it is array like SHIFT case\n const entityIdentifier = this._cacheObjectType === 'SimpleProduct' ? 'Product' : this._cacheObjectType;\n this._cacheKeyIdentifierFromReturnType = EntityIdentifier[entityIdentifier] && EntityIdentifier[entityIdentifier].Key;\n\n this._cacheKeyFromInput = DataServiceRequest.buildCacheFromInput(this._query, this._cacheKeyIdentifierFromReturnType);\n }\n\n /**\n * Gets the Request Identifier.\n * Auto-generated unique identifier if executed in batch. Used to fetch the response from batch result array.\n */\n public id(): number {\n return this._id;\n }\n\n public getActionId = () => this._actionId;\n\n public getCacheObjectType = () => this._cacheObjectType;\n\n public getCacheKey = () => this._cacheKeyFromInput;\n\n public dataCacheType = () => DataServiceRequest.getDataCacheType(this._query);\n\n public shouldCacheOutput = () => true;\n\n public overrideCacheType = (bypassCache: BypassCache) => {\n bypassCache && (this._query.options.bypassCache = bypassCache);\n };\n\n /**\n * Executes the request.\n * @param {any} callerContext The caller context.\n * @return {IAsyncResult} The async result.\n */\n public execute(callerContext: ICallerContext): Promise {\n if (\n !callerContext.requestContext ||\n !callerContext.requestContext.apiSettings ||\n !callerContext.requestContext.apiSettings.oun ||\n !callerContext.requestContext.apiSettings.baseUrl\n ) {\n throw new Error(`CallerContext missing required request parameters - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n if (!callerContext.requestContext.locale) {\n throw new Error(`CallerContext missing locale - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n this._callerContext = callerContext;\n this._requestUri = this.getRequestUri();\n let result: Promise;\n const headers: { [headerName: string]: string } = this.buildQueryHeader();\n\n if (\n !this._query.isReturnTypeACollection ||\n (this._query.resultSettings &&\n this._query.resultSettings.Paging &&\n this._query.resultSettings.Paging.Top &&\n this._query.resultSettings.Paging.Top >= 0)\n ) {\n result = this.loadPage(headers);\n } else {\n result = this.getAllPages(headers, 0);\n }\n\n return result;\n }\n\n // Need to build batch handler ----------- PENDING\n /**\n * Executes the batch requests.\n * @param {DataServiceRequest[]} requests The collection of requests to execute.\n * @param {any} [callerContext] The caller context.\n * @return {IAsyncResult} The async result. Responses at index I correlates to request with identifier I.\n */\n public executeBatch(requests: DataServiceRequest[], callerContext?: ICallerContext): Promise {\n if (\n !callerContext.requestContext ||\n !callerContext.requestContext.apiSettings ||\n !callerContext.requestContext.apiSettings.oun ||\n !callerContext.requestContext.apiSettings.baseUrl\n ) {\n throw new Error(`CallerContext missing required request parameters - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n if (!callerContext.requestContext.locale) {\n throw new Error(`CallerContext missing locale - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n this._callerContext = callerContext;\n this._requestUri = this.getRequestUri();\n\n return new Promise((resolve, reject) => {\n ODataHttpRequest(\n DataServiceRequest.buildBatchRequest(this.batchRequestUri, requests),\n (data: any) => {\n const responses: any[] = new Array();\n const errors: ProxyError[] = DataServiceRequest.parseBatchResponses(data.__batchResponses, requests, responses);\n\n if (errors.length === 0) {\n Tracer.Information(this.batchRequestUri + ' success');\n resolve(responses);\n } else {\n Tracer.Errors(errors, this.batchRequestUri + ' failed.');\n reject(errors);\n }\n },\n (error: any) => {\n Tracer.Error(this.batchRequestUri + ' failed');\n reject(ErrorParser.parseErrorMessage(error));\n }\n );\n });\n }\n\n /**\n * Gets the Request Uri.\n */\n private getRequestUri(): string {\n let requestUri: string = this._callerContext.requestContext.apiSettings.baseUrl + 'Commerce';\n if (this._query.entitySet) {\n requestUri = `${requestUri}/${this._query.entitySet}`;\n\n if (this._query.key) {\n requestUri = `${requestUri}(${DataServiceRequest.formatKey(this._query.key)})`;\n } else if (this._query.entitySet === 'Customers' && this._query.key !== null && this._query.key !== undefined) {\n requestUri = `${requestUri}('')`;\n }\n }\n\n // Appends the action (POST) or function (GET) name to the Uri\n if (this._hasOperationName) {\n requestUri += '/' + this._query.action;\n\n // Construct OData function Url with parameters. [e.g. Func(), Func(param1='',param2='')]\n if (!this._query.isAction && this._query.data && this._query.data.parameters) {\n requestUri += '(' + DataServiceRequest.formatFunctionParameter(this._query.data.parameters) + ')';\n }\n }\n\n if (this._query.isReturnTypeACollection) {\n requestUri = DataServiceRequest.addParameter(\n requestUri,\n '$top',\n this._query.resultSettings && this._query.resultSettings.Paging\n ? this._query.resultSettings.Paging.Top\n : ApiTimeoutInMilliSecond\n ); // Config.defaultPageSize);\n requestUri = DataServiceRequest.addParameter(\n requestUri,\n '$skip',\n this._query.resultSettings && this._query.resultSettings.Paging ? this._query.resultSettings.Paging.Skip : 0\n );\n requestUri = DataServiceRequest.addParameter(requestUri, '$inlinecount', this._query.inlineCount ? 'allpages' : null);\n\n if (this._query.resultSettings.count) {\n requestUri = DataServiceRequest.addParameter(requestUri, '$count', 'true');\n }\n\n requestUri = DataServiceRequest.addParameter(\n requestUri,\n '$filter',\n this._query.filterSettings ? this._query.filterSettings : 0\n );\n\n if (this._query.resultSettings && this._query.resultSettings.Sorting && this._query.resultSettings.Sorting.Columns) {\n const orderByColumns = [];\n this._query.resultSettings.Sorting.Columns.forEach((column: SortColumn) => {\n if (!isNullOrWhitespace(column.ColumnName || EMPTY)) {\n orderByColumns.push(format('{0}%20{1}', column.ColumnName, column.IsDescending ? 'desc' : 'asc'));\n }\n });\n if (orderByColumns.length > 0) {\n requestUri = DataServiceRequest.addParameter(requestUri, '$orderby', orderByColumns.join(','));\n }\n }\n }\n\n if (this._query.expands && hasElements(this._query.expands)) {\n requestUri = DataServiceRequest.addParameter(requestUri, '$expand', this._query.expands.join());\n }\n\n if (!isNullOrWhitespace(ApiVersion)) {\n requestUri = DataServiceRequest.addParameter(requestUri, 'api-version', ApiVersion);\n }\n\n return requestUri;\n }\n\n /**\n * Executes paginated requests for all entities.\n * @param {AsyncResult{T}} asyncResult The async result.\n * @param {{ [headerName: string]: string }} headerName the headers for the request.\n * @param {number} skip The offset.\n * @param {Array} The array result.\n */\n private getAllPages(headers: { [headerName: string]: string }, skip: number, results?: T[]): Promise {\n skip = skip || 0;\n const top = 1000; // Config.defaultPageSize;\n this._query.resultSettings = this._query.resultSettings || {};\n this._query.resultSettings.Paging = this._query.resultSettings.Paging || {};\n this._query.resultSettings.Paging.Top = top;\n results = results || [];\n\n return this.loadPage(headers, skip)\n .then((loadPageResults: T) => {\n if (loadPageResults) {\n if (typeof (loadPageResults as any).length === 'number') {\n results = results.concat(loadPageResults);\n\n if ((loadPageResults as any).length < top) {\n // This page contains less items than top\n if ((loadPageResults as any).hasNextPage) {\n // This means the pagesize defined on server side is smaller than the top\n skip += (loadPageResults as any).length;\n return this.getAllPages(headers, skip, results); // Try to fetch the next page\n } else {\n // No more pages need to fetch\n return Promise.resolve((results as any) as T);\n }\n } else {\n // This page contains exact amount of item as the top, should not contain more\n skip += top;\n return this.getAllPages(headers, skip, results); // Try to fetch the next page\n }\n } else {\n // The pageResult is a single item\n results.push((loadPageResults as unknown) as T);\n return Promise.resolve((results as unknown) as T);\n }\n }\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Builds the header to be sent as part of the request.\n * @returns {{ [headerName: string]: string }} a key value pair collection of header names and header values.\n */\n private buildQueryHeader(): { [headerName: string]: string } {\n const headers: { [headerName: string]: string } = {};\n headers['from-keystone'] = 'true';\n\n // copy default values from default header\n for (const headerName in DEFAULT_HEADER) {\n if (DEFAULT_HEADER.hasOwnProperty(headerName)) {\n headers[headerName] = DEFAULT_HEADER[headerName];\n }\n }\n\n // Copy operating unit number if present for C2 (if an operation is done by a customer or by anonymous user) scenarios.\n if (!isNullOrWhitespace(this._callerContext.requestContext.apiSettings.oun)) {\n headers[OPERATINGUNITNUMBER_HEADERNAME] = this._callerContext.requestContext.apiSettings.oun;\n }\n\n // Add accept-language header to send user preferred locale to server.\n headers[ACCEPT_LANGUAGE] = this._callerContext.requestContext.locale;\n\n // Add custom AppInsights headers\n headers[REQUEST_ID] = this._callerContext.requestContext.operationId;\n\n // OBO request\n const { user, cookies } = this._callerContext.requestContext;\n if (user.hasOwnProperty(OBO_REQUEST)) {\n const isOBORequest = user[OBO_REQUEST];\n if (cookies.hasOwnProperty(GET_ACCOUNT_SELECTION_COOKIE)) {\n const accountSelectionCookie = cookies[GET_ACCOUNT_SELECTION_COOKIE];\n const accountSelectionCustomerId = accountSelectionCookie();\n if (!isNullOrWhitespace(accountSelectionCustomerId) && isOBORequest) {\n const accountSelectionCustomerIdParts: string[] = accountSelectionCustomerId.split(':');\n headers[CUSTOMER_ACCOUNT_NUMBER] = accountSelectionCustomerIdParts[1];\n } else if (isOBORequest) {\n headers[CUSTOMER_ACCOUNT_NUMBER] = null;\n }\n }\n }\n\n // add any tokens as part of the header\n for (const tokenName in this._query.tokens) {\n if (this._query.tokens.hasOwnProperty(tokenName)) {\n const tokenValue: string = this._query.tokens[tokenName];\n\n if (!isNullOrWhitespace(tokenValue)) {\n headers[tokenName] = tokenValue;\n }\n }\n }\n\n // Now check whether authentication token is present or not, if present it will be added into Authorization header.\n if (\n this._callerContext &&\n this._callerContext.requestContext.user &&\n !isNullOrWhitespace(this._callerContext.requestContext.user.token)\n ) {\n headers[AUTHORIZATION_HEADERNAME] = `id_token ${this._callerContext.requestContext.user.token}`;\n }\n\n // Check if an Bearer access token is being provided. If present it will be added into Authorization header\n if (\n this._callerContext &&\n this._callerContext.requestContext &&\n !isNullOrWhitespace(this._callerContext.requestContext.accessToken)\n ) {\n headers[AUTHORIZATION_HEADERNAME] = `Bearer ${this._callerContext.requestContext.accessToken}`;\n }\n\n // Add AppSessionId and UserSessionId to request header\n if (this._callerContext.requestContext[`cookies`]) {\n const cookieData: IPartialCookieContext = this._callerContext.requestContext[`cookies`];\n const appSessionCookie = cookieData.get('ai_session');\n const userSessionCookie = cookieData.get('ai_user');\n\n if (appSessionCookie && appSessionCookie.status === 'FOUND') {\n const appSessionId = appSessionCookie.value?.split('|')[0];\n headers[APPSESSION_ID] = appSessionId;\n }\n if (userSessionCookie && userSessionCookie.status === 'FOUND') {\n const userSessionId = userSessionCookie.value?.split('|')[0];\n headers[USERSESSION_ID] = userSessionId;\n }\n }\n\n return headers;\n }\n\n /**\n * Executes request for one page.\n * @param {AsyncResult} The async result.\n * @param {{ [headerName: string]: string }} headerName the headers for the request.\n */\n private loadPage(headers: { [headerName: string]: string }, skip?: number): Promise {\n if (skip) {\n this._query.resultSettings = this._query.resultSettings || {};\n this._query.resultSettings.Paging = this._query.resultSettings.Paging || {};\n this._query.resultSettings.Paging.Skip = skip;\n }\n\n const requestId = Utils.generateGuid();\n modelManagersRetailServerRequestStarted(requestId, this._requestUri);\n\n return new Promise((resolve, reject) => {\n // This is the pipe for all OData API calls.\n ODataHttpRequest(\n {\n requestUri: this.getRequestUri(),\n method: this._method,\n data: DataServiceRequest.toJson(this._query.data),\n headers\n },\n (data: any) => {\n modelManagersRetailServerRequestFinished(requestId, this._requestUri);\n const resultSet = parseOdataResult(data, this._query.returnType);\n\n if (data) {\n if (data[ODATA_TOTAL_COUNT_PROPERTY]) {\n this._totalCount = data[ODATA_TOTAL_COUNT_PROPERTY];\n }\n const otherOdata = DataServiceRequest.setMetadata(data);\n if (otherOdata) {\n this._otherOdata = otherOdata;\n }\n }\n\n if (this._cacheKeyIdentifierFromReturnType) {\n if (Object.prototype.toString.call(resultSet) === '[object Array]') {\n this._cacheKeyFromReturnType.concat(\n resultSet.map(result => result[this._cacheKeyIdentifierFromReturnType]).filter(Boolean)\n );\n } else if (typeof resultSet === 'object') {\n this._cacheKeyFromReturnType.push(resultSet[this._cacheKeyIdentifierFromReturnType]);\n }\n }\n\n resolve(resultSet);\n },\n (error: any) => {\n modelManagersRetailServerRequestError(requestId, this._requestUri, error.message);\n reject(ErrorParser.parseErrorMessage(error));\n }\n );\n });\n }\n\n /**\n * Sets all the Odata propeties from retail api on DataServiceRequest\n * @param data retail api call data\n */\n private static setMetadata(data: any): IDictionary | undefined {\n // Sets all the Odata properties on DataServiceRequest\n const odataList = Object.keys(data).filter(key => {\n if (key !== ODATA_TOTAL_COUNT_PROPERTY) {\n return key.indexOf('@odata') === 0;\n }\n });\n\n if (odataList.length > 0) {\n const odata = odataList.reduce(function(newData, key) {\n const newKey = key.replace('@odata.', '');\n newData[newKey] = data[key];\n return newData;\n }, {});\n\n return odata;\n }\n return undefined;\n }\n}\n","\n import * as Entities from './CommerceTypes.g';\n import { jsonLightReadStringPropertyValue } from '../externals';\n\n const entityDictionary = {};\n \n /**\n * Category entity class.\n */\n export class CategoryClass implements Entities.Category {\n public RecordId: number;\n public OfflineImage: string;\n public Name: string;\n public ParentCategory: number;\n public DisplayOrder: number;\n public LocalizedDescription: string;\n public Images: Entities.MediaLocation[];\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.Name = \n odataObject.Name;\n \n this.ParentCategory = \n (odataObject.ParentCategory != null) ? parseInt(odataObject.ParentCategory, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.LocalizedDescription = \n odataObject.LocalizedDescription;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryClass'] = CategoryClass;\n \n /**\n * Cart entity class.\n */\n export class CartClass implements Entities.Cart {\n public AffiliationLines: Entities.AffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public AmountPaid: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public IsTaxIncludedInPrice: boolean;\n public BeginDateTime: Date;\n public BusinessDate: Date;\n public CancellationChargeAmount: number;\n public EstimatedShippingAmount: number;\n public CartLines: Entities.CartLine[];\n public CartTypeValue: number;\n public ChannelId: number;\n public ChargeAmount: number;\n public CustomerOrderRemainingBalance: number;\n public ChargeLines: Entities.ChargeLine[];\n public TaxViewLines: Entities.TaxViewLine[];\n public Comment: string;\n public InvoiceComment: string;\n public Coupons: Entities.Coupon[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public DiscountCodes: string[];\n public Id: string;\n public SuspendedCartId: string;\n public TransactionTypeValue: number;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public IsReturnByReceipt: boolean;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsSuspended: boolean;\n public LoyaltyCardId: string;\n public ModifiedDateTime: Date;\n public Name: string;\n public OrderNumber: string;\n public AvailableDepositAmount: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public PrepaymentAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PromotionLines: string[];\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public SalesId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public NetPrice: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public WarehouseId: string;\n public IsCreatedOffline: boolean;\n public CartStatusValue: number;\n public ReceiptTransactionTypeValue: number;\n public CommissionSalesGroup: string;\n public Version: number;\n public TotalItems: number;\n public HasTaxCalculationTriggered: boolean;\n public MerchantProperties: Entities.PaymentMerchantInformation[];\n public HasChargeCalculationTriggered: boolean;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationLines = undefined;\n if (odataObject.AffiliationLines) {\n this.AffiliationLines = [];\n for (var i = 0; i < odataObject.AffiliationLines.length; i++) {\n if (odataObject.AffiliationLines[i] != null) {\n if (odataObject.AffiliationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLines[i] = new entityDictionary[className](odataObject.AffiliationLines[i])\n }\n } else {\n this.AffiliationLines[i] = new AffiliationLoyaltyTierClass(odataObject.AffiliationLines[i]);\n }\n } else {\n this.AffiliationLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CancellationChargeAmount = \n (odataObject.CancellationChargeAmount != null) ? parseFloat(odataObject.CancellationChargeAmount) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.CartLines = undefined;\n if (odataObject.CartLines) {\n this.CartLines = [];\n for (var i = 0; i < odataObject.CartLines.length; i++) {\n if (odataObject.CartLines[i] != null) {\n if (odataObject.CartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLines[i] = new entityDictionary[className](odataObject.CartLines[i])\n }\n } else {\n this.CartLines[i] = new CartLineClass(odataObject.CartLines[i]);\n }\n } else {\n this.CartLines[i] = undefined;\n }\n }\n }\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxViewLines = undefined;\n if (odataObject.TaxViewLines) {\n this.TaxViewLines = [];\n for (var i = 0; i < odataObject.TaxViewLines.length; i++) {\n if (odataObject.TaxViewLines[i] != null) {\n if (odataObject.TaxViewLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxViewLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxViewLines[i] = new entityDictionary[className](odataObject.TaxViewLines[i])\n }\n } else {\n this.TaxViewLines[i] = new TaxViewLineClass(odataObject.TaxViewLines[i]);\n }\n } else {\n this.TaxViewLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.Id = \n odataObject.Id;\n \n this.SuspendedCartId = \n odataObject.SuspendedCartId;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.OrderNumber = \n odataObject.OrderNumber;\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.PrepaymentAppliedOnPickup = \n (odataObject.PrepaymentAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.SalesId = \n odataObject.SalesId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.CartStatusValue = \n odataObject.CartStatusValue;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.Version = \n (odataObject.Version != null) ? parseInt(odataObject.Version, 10) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.MerchantProperties = undefined;\n if (odataObject.MerchantProperties) {\n this.MerchantProperties = [];\n for (var i = 0; i < odataObject.MerchantProperties.length; i++) {\n if (odataObject.MerchantProperties[i] != null) {\n if (odataObject.MerchantProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.MerchantProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MerchantProperties[i] = new entityDictionary[className](odataObject.MerchantProperties[i])\n }\n } else {\n this.MerchantProperties[i] = new PaymentMerchantInformationClass(odataObject.MerchantProperties[i]);\n }\n } else {\n this.MerchantProperties[i] = undefined;\n }\n }\n }\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartClass'] = CartClass;\n \n /**\n * Customer entity class.\n */\n export class CustomerClass implements Entities.Customer {\n public AccountNumber: string;\n public RecordId: number;\n public CreatedDateTime: Date;\n public ChargeGroup: string;\n public PriceGroup: string;\n public IsCustomerTaxInclusive: boolean;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Cellphone: string;\n public Email: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public Name: string;\n public PersonNameId: number;\n public FirstName: string;\n public MiddleName: string;\n public LastName: string;\n public DirectoryPartyRecordId: number;\n public PartyNumber: string;\n public CustomerTypeValue: number;\n public Language: string;\n public CustomerGroup: string;\n public CurrencyCode: string;\n public CNPJCPFNumber: string;\n public IdentificationNumber: string;\n public InvoiceAccount: string;\n public MandatoryCreditLimit: boolean;\n public CreditRating: string;\n public CreditLimit: number;\n public Balance: number;\n public Blocked: boolean;\n public BlockedType: number;\n public UseOrderNumberReference: boolean;\n public OrganizationId: string;\n public UsePurchaseRequest: boolean;\n public MultilineDiscountGroup: string;\n public TotalDiscountGroup: string;\n public LineDiscountGroup: string;\n public TaxGroup: string;\n public SalesTaxGroup: string;\n public CommissionSalesGroupId: string;\n public TaxExemptNumber: string;\n public VatNumber: string;\n public TaxOffice: string;\n public NonChargeableAccount: boolean;\n public Tag: string;\n public ReceiptSettings: number;\n public ReceiptEmail: string;\n public OptOutPersonalization: boolean;\n public OptOutWebActivityTracking: boolean;\n public RetailCustomerTableRecordId: number;\n public OfflineImage: string;\n public IsAsyncCustomer: boolean;\n public NewCustomerPartyNumber: string;\n public CustomerAffiliations: Entities.CustomerAffiliation[];\n public Addresses: Entities.Address[];\n public Attributes: Entities.CustomerAttribute[];\n public Images: Entities.MediaLocation[];\n public TitleRecordId: number;\n public IsFloorLimitBlocked: boolean;\n public IsB2b: boolean;\n public IsB2bAdmin: boolean;\n public BusinessPartnerId: string;\n public Contacts: Entities.ContactInfo[];\n public AllowOnAccountPayment: boolean;\n public DefaultPaymentMethod: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.PriceGroup = \n odataObject.PriceGroup;\n \n this.IsCustomerTaxInclusive = \n odataObject.IsCustomerTaxInclusive;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Cellphone = \n odataObject.Cellphone;\n \n this.Email = \n odataObject.Email;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.PersonNameId = \n (odataObject.PersonNameId != null) ? parseInt(odataObject.PersonNameId, 10) : undefined;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.MiddleName = \n odataObject.MiddleName;\n \n this.LastName = \n odataObject.LastName;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Language = \n odataObject.Language;\n \n this.CustomerGroup = \n odataObject.CustomerGroup;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CNPJCPFNumber = \n odataObject.CNPJCPFNumber;\n \n this.IdentificationNumber = \n odataObject.IdentificationNumber;\n \n this.InvoiceAccount = \n odataObject.InvoiceAccount;\n \n this.MandatoryCreditLimit = \n odataObject.MandatoryCreditLimit;\n \n this.CreditRating = \n odataObject.CreditRating;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.BlockedType = \n odataObject.BlockedType;\n \n this.UseOrderNumberReference = \n odataObject.UseOrderNumberReference;\n \n this.OrganizationId = \n odataObject.OrganizationId;\n \n this.UsePurchaseRequest = \n odataObject.UsePurchaseRequest;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.TotalDiscountGroup = \n odataObject.TotalDiscountGroup;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.CommissionSalesGroupId = \n odataObject.CommissionSalesGroupId;\n \n this.TaxExemptNumber = \n odataObject.TaxExemptNumber;\n \n this.VatNumber = \n odataObject.VatNumber;\n \n this.TaxOffice = \n odataObject.TaxOffice;\n \n this.NonChargeableAccount = \n odataObject.NonChargeableAccount;\n \n this.Tag = \n odataObject.Tag;\n \n this.ReceiptSettings = \n odataObject.ReceiptSettings;\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.OptOutPersonalization = \n odataObject.OptOutPersonalization;\n \n this.OptOutWebActivityTracking = \n odataObject.OptOutWebActivityTracking;\n \n this.RetailCustomerTableRecordId = \n (odataObject.RetailCustomerTableRecordId != null) ? parseInt(odataObject.RetailCustomerTableRecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.NewCustomerPartyNumber = \n odataObject.NewCustomerPartyNumber;\n \n this.CustomerAffiliations = undefined;\n if (odataObject.CustomerAffiliations) {\n this.CustomerAffiliations = [];\n for (var i = 0; i < odataObject.CustomerAffiliations.length; i++) {\n if (odataObject.CustomerAffiliations[i] != null) {\n if (odataObject.CustomerAffiliations[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAffiliations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAffiliations[i] = new entityDictionary[className](odataObject.CustomerAffiliations[i])\n }\n } else {\n this.CustomerAffiliations[i] = new CustomerAffiliationClass(odataObject.CustomerAffiliations[i]);\n }\n } else {\n this.CustomerAffiliations[i] = undefined;\n }\n }\n }\n \n this.Addresses = undefined;\n if (odataObject.Addresses) {\n this.Addresses = [];\n for (var i = 0; i < odataObject.Addresses.length; i++) {\n if (odataObject.Addresses[i] != null) {\n if (odataObject.Addresses[i]['@odata.type'] != null) {\n var className: string = odataObject.Addresses[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Addresses[i] = new entityDictionary[className](odataObject.Addresses[i])\n }\n } else {\n this.Addresses[i] = new AddressClass(odataObject.Addresses[i]);\n }\n } else {\n this.Addresses[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.TitleRecordId = \n (odataObject.TitleRecordId != null) ? parseInt(odataObject.TitleRecordId, 10) : undefined;\n \n this.IsFloorLimitBlocked = \n odataObject.IsFloorLimitBlocked;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.IsB2bAdmin = \n odataObject.IsB2bAdmin;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new ContactInfoClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.AllowOnAccountPayment = \n odataObject.AllowOnAccountPayment;\n \n this.DefaultPaymentMethod = \n odataObject.DefaultPaymentMethod;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerClass'] = CustomerClass;\n \n /**\n * Employee entity class.\n */\n export class EmployeeClass implements Entities.Employee {\n public StaffId: string;\n public NameOnReceipt: string;\n public Name: string;\n public CultureName: string;\n public NumberOfDaysToPasswordExpiry: number;\n public Permissions: Entities.EmployeePermissions;\n public Images: Entities.MediaLocation[];\n public DefaultImage: string;\n public DefaultCommissionSalesGroup: string;\n public IdentifierTypeValue: number;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.NameOnReceipt = \n odataObject.NameOnReceipt;\n \n this.Name = \n odataObject.Name;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.NumberOfDaysToPasswordExpiry = \n odataObject.NumberOfDaysToPasswordExpiry;\n \n if (odataObject.Permissions == null) {\n this.Permissions = undefined;\n } else if (odataObject.Permissions['@odata.type'] == null) {\n this.Permissions = new EmployeePermissionsClass(odataObject.Permissions);\n } else {\n var className: string = odataObject.Permissions['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Permissions = new entityDictionary[className](odataObject.Permissions)\n }\n }\n\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.DefaultCommissionSalesGroup = \n odataObject.DefaultCommissionSalesGroup;\n \n this.IdentifierTypeValue = \n odataObject.IdentifierTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeClass'] = EmployeeClass;\n \n /**\n * Checklist entity class.\n */\n export class ChecklistClass implements Entities.Checklist {\n public RecordId: number;\n public Tasks: Entities.ChecklistTask[];\n public Version: string;\n public ProcessId: string;\n public Name: string;\n public Description: string;\n public AssignedToChannelId: number;\n public AssignedToWorkerPersonnelNumber: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public TargetDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Tasks = undefined;\n if (odataObject.Tasks) {\n this.Tasks = [];\n for (var i = 0; i < odataObject.Tasks.length; i++) {\n if (odataObject.Tasks[i] != null) {\n if (odataObject.Tasks[i]['@odata.type'] != null) {\n var className: string = odataObject.Tasks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Tasks[i] = new entityDictionary[className](odataObject.Tasks[i])\n }\n } else {\n this.Tasks[i] = new ChecklistTaskClass(odataObject.Tasks[i]);\n }\n } else {\n this.Tasks[i] = undefined;\n }\n }\n }\n \n this.Version = \n odataObject.Version;\n \n this.ProcessId = \n odataObject.ProcessId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.AssignedToChannelId = \n (odataObject.AssignedToChannelId != null) ? parseInt(odataObject.AssignedToChannelId, 10) : undefined;\n \n this.AssignedToWorkerPersonnelNumber = \n odataObject.AssignedToWorkerPersonnelNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TargetDateTime = \n (odataObject.TargetDateTime instanceof Date) ? odataObject.TargetDateTime\n : (odataObject.TargetDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TargetDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistClass'] = ChecklistClass;\n \n /**\n * SalesOrder entity class.\n */\n export class SalesOrderClass implements Entities.SalesOrder {\n public DocumentStatusValue: number;\n public RecordId: number;\n public StatusValue: number;\n public McrOrderStopped: boolean;\n public Shipments: Entities.Shipment[];\n public AggregateInventoryQuantities: Entities.InventoryQuantities;\n public UnifiedDeliveryInformation: Entities.DeliveryInformation;\n public PaymentStatusValue: number;\n public DetailedOrderStatusValue: number;\n public AffiliationLoyaltyTierLines: Entities.SalesAffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public EstimatedShippingAmount: number;\n public AmountPaid: number;\n public CustomerOrderRemainingBalance: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public AvailableDepositAmount: number;\n public BeginDateTime: Date;\n public CreatedDateTime: Date;\n public BusinessDate: Date;\n public CalculatedDepositAmount: number;\n public CancellationCharge: number;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public ChargeAmount: number;\n public ChargeLines: Entities.ChargeLine[];\n public Comment: string;\n public Coupons: Entities.Coupon[];\n public InvoiceComment: string;\n public ContactInformationCollection: Entities.ContactInformation[];\n public CurrencyCode: string;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public CustomerOrderTypeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountCodes: string[];\n public EntryStatusValue: number;\n public GrossAmount: number;\n public HasLoyaltyPayment: boolean;\n public Id: string;\n public InternalTransactionId: string;\n public SuspendedTransactionId: string;\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public InventoryLocationId: string;\n public IsCreatedOffline: boolean;\n public IsReturnByReceipt: boolean;\n public IsSuspended: boolean;\n public IsTaxIncludedInPrice: boolean;\n public IsTaxExemptedForPriceInclusive: boolean;\n public LineDiscount: number;\n public LineDiscountCalculationTypeValue: number;\n public LoyaltyCardId: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyManualDiscountAmount: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ModifiedDateTime: Date;\n public Name: string;\n public NetAmount: number;\n public NetAmountWithoutTax: number;\n public NetAmountWithNoTax: number;\n public NetAmountWithTax: number;\n public NumberOfItems: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PeriodicDiscountAmount: number;\n public TenderDiscountAmount: number;\n public PrepaymentAmountAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public SalesId: string;\n public SalesPaymentDifference: number;\n public SalesLines: Entities.SalesLine[];\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public StatementCode: string;\n public StoreId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxAmountExclusive: number;\n public TaxAmountInclusive: number;\n public TaxLines: Entities.TaxLine[];\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalDiscount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public TransactionTypeValue: number;\n public TaxCalculationTypeValue: number;\n public SalesInvoiceAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public HasTaxCalculationTriggered: boolean;\n public HasChargeCalculationTriggered: boolean;\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public CustomerName: string;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public LanguageId: string;\n public SalesAgreementRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.McrOrderStopped = \n odataObject.McrOrderStopped;\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n if (odataObject.AggregateInventoryQuantities == null) {\n this.AggregateInventoryQuantities = undefined;\n } else if (odataObject.AggregateInventoryQuantities['@odata.type'] == null) {\n this.AggregateInventoryQuantities = new InventoryQuantitiesClass(odataObject.AggregateInventoryQuantities);\n } else {\n var className: string = odataObject.AggregateInventoryQuantities['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregateInventoryQuantities = new entityDictionary[className](odataObject.AggregateInventoryQuantities)\n }\n }\n\n \n if (odataObject.UnifiedDeliveryInformation == null) {\n this.UnifiedDeliveryInformation = undefined;\n } else if (odataObject.UnifiedDeliveryInformation['@odata.type'] == null) {\n this.UnifiedDeliveryInformation = new DeliveryInformationClass(odataObject.UnifiedDeliveryInformation);\n } else {\n var className: string = odataObject.UnifiedDeliveryInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnifiedDeliveryInformation = new entityDictionary[className](odataObject.UnifiedDeliveryInformation)\n }\n }\n\n \n this.PaymentStatusValue = \n odataObject.PaymentStatusValue;\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.AffiliationLoyaltyTierLines = undefined;\n if (odataObject.AffiliationLoyaltyTierLines) {\n this.AffiliationLoyaltyTierLines = [];\n for (var i = 0; i < odataObject.AffiliationLoyaltyTierLines.length; i++) {\n if (odataObject.AffiliationLoyaltyTierLines[i] != null) {\n if (odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLoyaltyTierLines[i] = new entityDictionary[className](odataObject.AffiliationLoyaltyTierLines[i])\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = new SalesAffiliationLoyaltyTierClass(odataObject.AffiliationLoyaltyTierLines[i]);\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CalculatedDepositAmount = \n (odataObject.CalculatedDepositAmount != null) ? parseFloat(odataObject.CalculatedDepositAmount) : undefined;\n \n this.CancellationCharge = \n (odataObject.CancellationCharge != null) ? parseFloat(odataObject.CancellationCharge) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.ContactInformationCollection = undefined;\n if (odataObject.ContactInformationCollection) {\n this.ContactInformationCollection = [];\n for (var i = 0; i < odataObject.ContactInformationCollection.length; i++) {\n if (odataObject.ContactInformationCollection[i] != null) {\n if (odataObject.ContactInformationCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ContactInformationCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ContactInformationCollection[i] = new entityDictionary[className](odataObject.ContactInformationCollection[i])\n }\n } else {\n this.ContactInformationCollection[i] = new ContactInformationClass(odataObject.ContactInformationCollection[i]);\n }\n } else {\n this.ContactInformationCollection[i] = undefined;\n }\n }\n }\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.CustomerOrderTypeValue = \n odataObject.CustomerOrderTypeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.EntryStatusValue = \n odataObject.EntryStatusValue;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.HasLoyaltyPayment = \n odataObject.HasLoyaltyPayment;\n \n this.Id = \n odataObject.Id;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.SuspendedTransactionId = \n odataObject.SuspendedTransactionId;\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.IsTaxExemptedForPriceInclusive = \n odataObject.IsTaxExemptedForPriceInclusive;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LineDiscountCalculationTypeValue = \n odataObject.LineDiscountCalculationTypeValue;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyManualDiscountAmount = \n (odataObject.LoyaltyManualDiscountAmount != null) ? parseFloat(odataObject.LoyaltyManualDiscountAmount) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetAmountWithNoTax = \n (odataObject.NetAmountWithNoTax != null) ? parseFloat(odataObject.NetAmountWithNoTax) : undefined;\n \n this.NetAmountWithTax = \n (odataObject.NetAmountWithTax != null) ? parseFloat(odataObject.NetAmountWithTax) : undefined;\n \n this.NumberOfItems = \n (odataObject.NumberOfItems != null) ? parseFloat(odataObject.NumberOfItems) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PeriodicDiscountAmount = \n (odataObject.PeriodicDiscountAmount != null) ? parseFloat(odataObject.PeriodicDiscountAmount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.PrepaymentAmountAppliedOnPickup = \n (odataObject.PrepaymentAmountAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAmountAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPaymentDifference = \n (odataObject.SalesPaymentDifference != null) ? parseFloat(odataObject.SalesPaymentDifference) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TaxCalculationTypeValue = \n odataObject.TaxCalculationTypeValue;\n \n this.SalesInvoiceAmount = \n (odataObject.SalesInvoiceAmount != null) ? parseFloat(odataObject.SalesInvoiceAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.SalesAgreementRecordId = \n (odataObject.SalesAgreementRecordId != null) ? parseInt(odataObject.SalesAgreementRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderClass'] = SalesOrderClass;\n \n /**\n * Shift entity class.\n */\n export class ShiftClass implements Entities.Shift {\n public ShiftId: number;\n public TerminalId: string;\n public StartingAmountTotal: number;\n public FloatingEntryAmountTotal: number;\n public AddToTenderAmountTotal: number;\n public SafeDropTotal: number;\n public BankDropTotal: number;\n public RemoveTenderAmountTotal: number;\n public DeclareTenderAmountTotal: number;\n public OverShortTotal: number;\n public TenderedTotal: number;\n public ChangeTotal: number;\n public IncomeAccountTotal: number;\n public ExpenseAccountTotal: number;\n public CashDrawer: string;\n public StoreRecordId: number;\n public StoreId: string;\n public StaffId: string;\n public CurrentStaffId: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public CloseDateTime: Date;\n public ClosedAtTerminalId: string;\n public ClosedAtShiftId: number;\n public CurrentTerminalId: string;\n public SalesTotal: number;\n public StatusDateTime: Date;\n public ReturnsTotal: number;\n public PaidToAccountTotal: number;\n public TaxTotal: number;\n public ChargeTotal: number;\n public DiscountTotal: number;\n public RoundedAmountTotal: number;\n public CustomerCount: number;\n public SaleTransactionCount: number;\n public NoSaleTransactionCount: number;\n public VoidTransactionCount: number;\n public LogOnTransactionCount: number;\n public SuspendedTransactionCount: number;\n public TransactionCount: number;\n public ReceiptsCount: number;\n public ReturnsCount: number;\n public GoodsSoldQty: number;\n public ServicesSoldQty: number;\n public ReceiptCopiesCount: number;\n public ReceiptCopiesTotal: number;\n public PriceOverrideTotal: number;\n public SuspendedTotal: number;\n public SalesTotalIncludingTax: number;\n public SalesTotalExcludingTax: number;\n public SalesGrandTotal: number;\n public ReturnsGrandTotal: number;\n public TaxLines: Entities.ShiftTaxLine[];\n public TenderLines: Entities.ShiftTenderLine[];\n public AccountLines: Entities.ShiftAccountLine[];\n public IsShared: boolean;\n public StartingAmountRunningTotal: number;\n public GiftCardsTotal: number;\n public GiftCardCashOutTotal: number;\n public VoidedSalesTotal: number;\n public ShiftSalesTotal: number;\n public ShiftReturnsTotal: number;\n public HasPendingOfflineTransactions: number;\n public NumberOfUnreconciledLines: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.StartingAmountTotal = \n (odataObject.StartingAmountTotal != null) ? parseFloat(odataObject.StartingAmountTotal) : undefined;\n \n this.FloatingEntryAmountTotal = \n (odataObject.FloatingEntryAmountTotal != null) ? parseFloat(odataObject.FloatingEntryAmountTotal) : undefined;\n \n this.AddToTenderAmountTotal = \n (odataObject.AddToTenderAmountTotal != null) ? parseFloat(odataObject.AddToTenderAmountTotal) : undefined;\n \n this.SafeDropTotal = \n (odataObject.SafeDropTotal != null) ? parseFloat(odataObject.SafeDropTotal) : undefined;\n \n this.BankDropTotal = \n (odataObject.BankDropTotal != null) ? parseFloat(odataObject.BankDropTotal) : undefined;\n \n this.RemoveTenderAmountTotal = \n (odataObject.RemoveTenderAmountTotal != null) ? parseFloat(odataObject.RemoveTenderAmountTotal) : undefined;\n \n this.DeclareTenderAmountTotal = \n (odataObject.DeclareTenderAmountTotal != null) ? parseFloat(odataObject.DeclareTenderAmountTotal) : undefined;\n \n this.OverShortTotal = \n (odataObject.OverShortTotal != null) ? parseFloat(odataObject.OverShortTotal) : undefined;\n \n this.TenderedTotal = \n (odataObject.TenderedTotal != null) ? parseFloat(odataObject.TenderedTotal) : undefined;\n \n this.ChangeTotal = \n (odataObject.ChangeTotal != null) ? parseFloat(odataObject.ChangeTotal) : undefined;\n \n this.IncomeAccountTotal = \n (odataObject.IncomeAccountTotal != null) ? parseFloat(odataObject.IncomeAccountTotal) : undefined;\n \n this.ExpenseAccountTotal = \n (odataObject.ExpenseAccountTotal != null) ? parseFloat(odataObject.ExpenseAccountTotal) : undefined;\n \n this.CashDrawer = \n odataObject.CashDrawer;\n \n this.StoreRecordId = \n (odataObject.StoreRecordId != null) ? parseInt(odataObject.StoreRecordId, 10) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.CurrentStaffId = \n odataObject.CurrentStaffId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CloseDateTime = \n (odataObject.CloseDateTime instanceof Date) ? odataObject.CloseDateTime\n : (odataObject.CloseDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CloseDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ClosedAtTerminalId = \n odataObject.ClosedAtTerminalId;\n \n this.ClosedAtShiftId = \n (odataObject.ClosedAtShiftId != null) ? parseInt(odataObject.ClosedAtShiftId, 10) : undefined;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this.SalesTotal = \n (odataObject.SalesTotal != null) ? parseFloat(odataObject.SalesTotal) : undefined;\n \n this.StatusDateTime = \n (odataObject.StatusDateTime instanceof Date) ? odataObject.StatusDateTime\n : (odataObject.StatusDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StatusDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReturnsTotal = \n (odataObject.ReturnsTotal != null) ? parseFloat(odataObject.ReturnsTotal) : undefined;\n \n this.PaidToAccountTotal = \n (odataObject.PaidToAccountTotal != null) ? parseFloat(odataObject.PaidToAccountTotal) : undefined;\n \n this.TaxTotal = \n (odataObject.TaxTotal != null) ? parseFloat(odataObject.TaxTotal) : undefined;\n \n this.ChargeTotal = \n (odataObject.ChargeTotal != null) ? parseFloat(odataObject.ChargeTotal) : undefined;\n \n this.DiscountTotal = \n (odataObject.DiscountTotal != null) ? parseFloat(odataObject.DiscountTotal) : undefined;\n \n this.RoundedAmountTotal = \n (odataObject.RoundedAmountTotal != null) ? parseFloat(odataObject.RoundedAmountTotal) : undefined;\n \n this.CustomerCount = \n odataObject.CustomerCount;\n \n this.SaleTransactionCount = \n odataObject.SaleTransactionCount;\n \n this.NoSaleTransactionCount = \n odataObject.NoSaleTransactionCount;\n \n this.VoidTransactionCount = \n odataObject.VoidTransactionCount;\n \n this.LogOnTransactionCount = \n odataObject.LogOnTransactionCount;\n \n this.SuspendedTransactionCount = \n odataObject.SuspendedTransactionCount;\n \n this.TransactionCount = \n odataObject.TransactionCount;\n \n this.ReceiptsCount = \n odataObject.ReceiptsCount;\n \n this.ReturnsCount = \n odataObject.ReturnsCount;\n \n this.GoodsSoldQty = \n (odataObject.GoodsSoldQty != null) ? parseFloat(odataObject.GoodsSoldQty) : undefined;\n \n this.ServicesSoldQty = \n (odataObject.ServicesSoldQty != null) ? parseFloat(odataObject.ServicesSoldQty) : undefined;\n \n this.ReceiptCopiesCount = \n odataObject.ReceiptCopiesCount;\n \n this.ReceiptCopiesTotal = \n (odataObject.ReceiptCopiesTotal != null) ? parseFloat(odataObject.ReceiptCopiesTotal) : undefined;\n \n this.PriceOverrideTotal = \n (odataObject.PriceOverrideTotal != null) ? parseFloat(odataObject.PriceOverrideTotal) : undefined;\n \n this.SuspendedTotal = \n (odataObject.SuspendedTotal != null) ? parseFloat(odataObject.SuspendedTotal) : undefined;\n \n this.SalesTotalIncludingTax = \n (odataObject.SalesTotalIncludingTax != null) ? parseFloat(odataObject.SalesTotalIncludingTax) : undefined;\n \n this.SalesTotalExcludingTax = \n (odataObject.SalesTotalExcludingTax != null) ? parseFloat(odataObject.SalesTotalExcludingTax) : undefined;\n \n this.SalesGrandTotal = \n (odataObject.SalesGrandTotal != null) ? parseFloat(odataObject.SalesGrandTotal) : undefined;\n \n this.ReturnsGrandTotal = \n (odataObject.ReturnsGrandTotal != null) ? parseFloat(odataObject.ReturnsGrandTotal) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new ShiftTaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new ShiftTenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.AccountLines = undefined;\n if (odataObject.AccountLines) {\n this.AccountLines = [];\n for (var i = 0; i < odataObject.AccountLines.length; i++) {\n if (odataObject.AccountLines[i] != null) {\n if (odataObject.AccountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AccountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AccountLines[i] = new entityDictionary[className](odataObject.AccountLines[i])\n }\n } else {\n this.AccountLines[i] = new ShiftAccountLineClass(odataObject.AccountLines[i]);\n }\n } else {\n this.AccountLines[i] = undefined;\n }\n }\n }\n \n this.IsShared = \n odataObject.IsShared;\n \n this.StartingAmountRunningTotal = \n (odataObject.StartingAmountRunningTotal != null) ? parseFloat(odataObject.StartingAmountRunningTotal) : undefined;\n \n this.GiftCardsTotal = \n (odataObject.GiftCardsTotal != null) ? parseFloat(odataObject.GiftCardsTotal) : undefined;\n \n this.GiftCardCashOutTotal = \n (odataObject.GiftCardCashOutTotal != null) ? parseFloat(odataObject.GiftCardCashOutTotal) : undefined;\n \n this.VoidedSalesTotal = \n (odataObject.VoidedSalesTotal != null) ? parseFloat(odataObject.VoidedSalesTotal) : undefined;\n \n this.ShiftSalesTotal = \n (odataObject.ShiftSalesTotal != null) ? parseFloat(odataObject.ShiftSalesTotal) : undefined;\n \n this.ShiftReturnsTotal = \n (odataObject.ShiftReturnsTotal != null) ? parseFloat(odataObject.ShiftReturnsTotal) : undefined;\n \n this.HasPendingOfflineTransactions = \n odataObject.HasPendingOfflineTransactions;\n \n this.NumberOfUnreconciledLines = \n (odataObject.NumberOfUnreconciledLines != null) ? parseFloat(odataObject.NumberOfUnreconciledLines) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftClass'] = ShiftClass;\n \n /**\n * StockCountJournal entity class.\n */\n export class StockCountJournalClass implements Entities.StockCountJournal {\n public JournalId: string;\n public RecordId: string;\n public Description: string;\n public InventLocationId: string;\n public DataAreaId: string;\n public StockCountTransactionLines: Entities.StockCountJournalTransaction[];\n public Worker: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Description = \n odataObject.Description;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.StockCountTransactionLines = undefined;\n if (odataObject.StockCountTransactionLines) {\n this.StockCountTransactionLines = [];\n for (var i = 0; i < odataObject.StockCountTransactionLines.length; i++) {\n if (odataObject.StockCountTransactionLines[i] != null) {\n if (odataObject.StockCountTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.StockCountTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.StockCountTransactionLines[i] = new entityDictionary[className](odataObject.StockCountTransactionLines[i])\n }\n } else {\n this.StockCountTransactionLines[i] = new StockCountJournalTransactionClass(odataObject.StockCountTransactionLines[i]);\n }\n } else {\n this.StockCountTransactionLines[i] = undefined;\n }\n }\n }\n \n this.Worker = \n odataObject.Worker;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalClass'] = StockCountJournalClass;\n \n /**\n * OrgUnit entity class.\n */\n export class OrgUnitClass implements Entities.OrgUnit {\n public OrgUnitNumber: string;\n public RecordId: number;\n public InventoryLocationId: string;\n public OMOperatingUnitNumber: string;\n public TaxGroup: string;\n public FunctionalityProfileId: string;\n public UseCustomerBasedTax: boolean;\n public UseCustomerBasedTaxExemption: boolean;\n public UseDestinationBasedTax: boolean;\n public Currency: string;\n public TimeZoneCode: number;\n public OrgUnitAddress: Entities.Address;\n public OrgUnitFullAddress: string;\n public OrgUnitName: string;\n public Latitude: number;\n public Longitude: number;\n public EmailReceiptProfileId: string;\n public ShippingWarehouseAddress: Entities.Address;\n public TaxRegistrations: Entities.TaxRegistration[];\n public EventNotificationProfileId: string;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.OMOperatingUnitNumber = \n odataObject.OMOperatingUnitNumber;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseCustomerBasedTaxExemption = \n odataObject.UseCustomerBasedTaxExemption;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.Currency = \n odataObject.Currency;\n \n this.TimeZoneCode = \n odataObject.TimeZoneCode;\n \n if (odataObject.OrgUnitAddress == null) {\n this.OrgUnitAddress = undefined;\n } else if (odataObject.OrgUnitAddress['@odata.type'] == null) {\n this.OrgUnitAddress = new AddressClass(odataObject.OrgUnitAddress);\n } else {\n var className: string = odataObject.OrgUnitAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitAddress = new entityDictionary[className](odataObject.OrgUnitAddress)\n }\n }\n\n \n this.OrgUnitFullAddress = \n odataObject.OrgUnitFullAddress;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.EmailReceiptProfileId = \n odataObject.EmailReceiptProfileId;\n \n if (odataObject.ShippingWarehouseAddress == null) {\n this.ShippingWarehouseAddress = undefined;\n } else if (odataObject.ShippingWarehouseAddress['@odata.type'] == null) {\n this.ShippingWarehouseAddress = new AddressClass(odataObject.ShippingWarehouseAddress);\n } else {\n var className: string = odataObject.ShippingWarehouseAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingWarehouseAddress = new entityDictionary[className](odataObject.ShippingWarehouseAddress)\n }\n }\n\n \n this.TaxRegistrations = undefined;\n if (odataObject.TaxRegistrations) {\n this.TaxRegistrations = [];\n for (var i = 0; i < odataObject.TaxRegistrations.length; i++) {\n if (odataObject.TaxRegistrations[i] != null) {\n if (odataObject.TaxRegistrations[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxRegistrations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxRegistrations[i] = new entityDictionary[className](odataObject.TaxRegistrations[i])\n }\n } else {\n this.TaxRegistrations[i] = new TaxRegistrationClass(odataObject.TaxRegistrations[i]);\n }\n } else {\n this.TaxRegistrations[i] = undefined;\n }\n }\n }\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitClass'] = OrgUnitClass;\n \n /**\n * Product entity class.\n */\n export class ProductClass implements Entities.Product {\n public RecordId: number;\n public ProductName: string;\n public ProductNumber: string;\n public Description: string;\n public IsMasterProduct: boolean;\n public IsKit: boolean;\n public ItemId: string;\n public HasLinkedProducts: boolean;\n public Rules: Entities.ProductRules;\n public DefaultUnitOfMeasure: string;\n public Name: string;\n public Locale: string;\n public OfflineImage: string;\n public IsRemote: boolean;\n public ChangeTrackingInformation: Entities.ProductChangeTrackingInformation;\n public Image: Entities.RichMediaLocations;\n public UnitsOfMeasureSymbol: string[];\n public LinkedProducts: Entities.LinkedProduct[];\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public RetailContext: Entities.ProjectionDomain;\n public PrimaryCategoryId: number;\n public CategoryIds: number[];\n public DisplayOrderInCategories: Entities.DisplayOrderInCategory[];\n public RelatedProducts: Entities.RelatedProduct[];\n public ProductsRelatedToThis: Entities.RelatedProduct[];\n public ProductSchema: string[];\n public ProductProperties: Entities.ProductPropertyTranslation[];\n public CompositionInformation: Entities.ProductCompositionInformation;\n public ParentKits: Entities.KitComponent[];\n public SearchName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.Description = \n odataObject.Description;\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.IsKit = \n odataObject.IsKit;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n if (odataObject.Rules == null) {\n this.Rules = undefined;\n } else if (odataObject.Rules['@odata.type'] == null) {\n this.Rules = new ProductRulesClass(odataObject.Rules);\n } else {\n var className: string = odataObject.Rules['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Rules = new entityDictionary[className](odataObject.Rules)\n }\n }\n\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.Name = \n odataObject.Name;\n \n this.Locale = \n odataObject.Locale;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsRemote = \n odataObject.IsRemote;\n \n if (odataObject.ChangeTrackingInformation == null) {\n this.ChangeTrackingInformation = undefined;\n } else if (odataObject.ChangeTrackingInformation['@odata.type'] == null) {\n this.ChangeTrackingInformation = new ProductChangeTrackingInformationClass(odataObject.ChangeTrackingInformation);\n } else {\n var className: string = odataObject.ChangeTrackingInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChangeTrackingInformation = new entityDictionary[className](odataObject.ChangeTrackingInformation)\n }\n }\n\n \n if (odataObject.Image == null) {\n this.Image = undefined;\n } else if (odataObject.Image['@odata.type'] == null) {\n this.Image = new RichMediaLocationsClass(odataObject.Image);\n } else {\n var className: string = odataObject.Image['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Image = new entityDictionary[className](odataObject.Image)\n }\n }\n\n \n this.UnitsOfMeasureSymbol = undefined;\n if (odataObject.UnitsOfMeasureSymbol) {\n this.UnitsOfMeasureSymbol = [];\n for (var i = 0; i < odataObject.UnitsOfMeasureSymbol.length; i++) {\n if (odataObject.UnitsOfMeasureSymbol[i] != null) {\n this.UnitsOfMeasureSymbol[i] = \n odataObject.UnitsOfMeasureSymbol[i];\n } else {\n this.UnitsOfMeasureSymbol[i] = undefined;\n }\n }\n }\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new LinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n if (odataObject.RetailContext == null) {\n this.RetailContext = undefined;\n } else if (odataObject.RetailContext['@odata.type'] == null) {\n this.RetailContext = new ProjectionDomainClass(odataObject.RetailContext);\n } else {\n var className: string = odataObject.RetailContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RetailContext = new entityDictionary[className](odataObject.RetailContext)\n }\n }\n\n \n this.PrimaryCategoryId = \n (odataObject.PrimaryCategoryId != null) ? parseInt(odataObject.PrimaryCategoryId, 10) : undefined;\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.DisplayOrderInCategories = undefined;\n if (odataObject.DisplayOrderInCategories) {\n this.DisplayOrderInCategories = [];\n for (var i = 0; i < odataObject.DisplayOrderInCategories.length; i++) {\n if (odataObject.DisplayOrderInCategories[i] != null) {\n if (odataObject.DisplayOrderInCategories[i]['@odata.type'] != null) {\n var className: string = odataObject.DisplayOrderInCategories[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DisplayOrderInCategories[i] = new entityDictionary[className](odataObject.DisplayOrderInCategories[i])\n }\n } else {\n this.DisplayOrderInCategories[i] = new DisplayOrderInCategoryClass(odataObject.DisplayOrderInCategories[i]);\n }\n } else {\n this.DisplayOrderInCategories[i] = undefined;\n }\n }\n }\n \n this.RelatedProducts = undefined;\n if (odataObject.RelatedProducts) {\n this.RelatedProducts = [];\n for (var i = 0; i < odataObject.RelatedProducts.length; i++) {\n if (odataObject.RelatedProducts[i] != null) {\n if (odataObject.RelatedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.RelatedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RelatedProducts[i] = new entityDictionary[className](odataObject.RelatedProducts[i])\n }\n } else {\n this.RelatedProducts[i] = new RelatedProductClass(odataObject.RelatedProducts[i]);\n }\n } else {\n this.RelatedProducts[i] = undefined;\n }\n }\n }\n \n this.ProductsRelatedToThis = undefined;\n if (odataObject.ProductsRelatedToThis) {\n this.ProductsRelatedToThis = [];\n for (var i = 0; i < odataObject.ProductsRelatedToThis.length; i++) {\n if (odataObject.ProductsRelatedToThis[i] != null) {\n if (odataObject.ProductsRelatedToThis[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductsRelatedToThis[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductsRelatedToThis[i] = new entityDictionary[className](odataObject.ProductsRelatedToThis[i])\n }\n } else {\n this.ProductsRelatedToThis[i] = new RelatedProductClass(odataObject.ProductsRelatedToThis[i]);\n }\n } else {\n this.ProductsRelatedToThis[i] = undefined;\n }\n }\n }\n \n this.ProductSchema = undefined;\n if (odataObject.ProductSchema) {\n this.ProductSchema = [];\n for (var i = 0; i < odataObject.ProductSchema.length; i++) {\n if (odataObject.ProductSchema[i] != null) {\n this.ProductSchema[i] = \n odataObject.ProductSchema[i];\n } else {\n this.ProductSchema[i] = undefined;\n }\n }\n }\n \n this.ProductProperties = undefined;\n if (odataObject.ProductProperties) {\n this.ProductProperties = [];\n for (var i = 0; i < odataObject.ProductProperties.length; i++) {\n if (odataObject.ProductProperties[i] != null) {\n if (odataObject.ProductProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductProperties[i] = new entityDictionary[className](odataObject.ProductProperties[i])\n }\n } else {\n this.ProductProperties[i] = new ProductPropertyTranslationClass(odataObject.ProductProperties[i]);\n }\n } else {\n this.ProductProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.CompositionInformation == null) {\n this.CompositionInformation = undefined;\n } else if (odataObject.CompositionInformation['@odata.type'] == null) {\n this.CompositionInformation = new ProductCompositionInformationClass(odataObject.CompositionInformation);\n } else {\n var className: string = odataObject.CompositionInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CompositionInformation = new entityDictionary[className](odataObject.CompositionInformation)\n }\n }\n\n \n this.ParentKits = undefined;\n if (odataObject.ParentKits) {\n this.ParentKits = [];\n for (var i = 0; i < odataObject.ParentKits.length; i++) {\n if (odataObject.ParentKits[i] != null) {\n if (odataObject.ParentKits[i]['@odata.type'] != null) {\n var className: string = odataObject.ParentKits[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ParentKits[i] = new entityDictionary[className](odataObject.ParentKits[i])\n }\n } else {\n this.ParentKits[i] = new KitComponentClass(odataObject.ParentKits[i]);\n }\n } else {\n this.ParentKits[i] = undefined;\n }\n }\n }\n \n this.SearchName = \n odataObject.SearchName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductClass'] = ProductClass;\n \n /**\n * ProductCatalog entity class.\n */\n export class ProductCatalogClass implements Entities.ProductCatalog {\n public RecordId: number;\n public Name: string;\n public Description: string;\n public Language: string;\n public IsSnapshotEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public CreatedOn: Date;\n public ModifiedOn: Date;\n public PublishedOn: Date;\n public Images: Entities.MediaLocation[];\n public ChannelId: number;\n public DefaultImage: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.Language = \n odataObject.Language;\n \n this.IsSnapshotEnabled = \n odataObject.IsSnapshotEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedOn = \n (odataObject.CreatedOn instanceof Date) ? odataObject.CreatedOn\n : (odataObject.CreatedOn != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ModifiedOn = \n (odataObject.ModifiedOn instanceof Date) ? odataObject.ModifiedOn\n : (odataObject.ModifiedOn != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PublishedOn = \n (odataObject.PublishedOn instanceof Date) ? odataObject.PublishedOn\n : (odataObject.PublishedOn != null) ? jsonLightReadStringPropertyValue(odataObject.PublishedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductCatalogClass'] = ProductCatalogClass;\n \n /**\n * CommerceList entity class.\n */\n export class CommerceListClass implements Entities.CommerceList {\n public Id: number;\n public Name: string;\n public CustomerId: string;\n public CustomerName: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public IsCollaborative: boolean;\n public CreatedDateTime: Date;\n public DueDateTime: Date;\n public CommerceListTypeValue: number;\n public CommerceListLines: Entities.CommerceListLine[];\n public CommerceListContributors: Entities.CommerceListContributor[];\n public CommerceListInvitations: Entities.CommerceListInvitation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsCollaborative = \n odataObject.IsCollaborative;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommerceListTypeValue = \n odataObject.CommerceListTypeValue;\n \n this.CommerceListLines = undefined;\n if (odataObject.CommerceListLines) {\n this.CommerceListLines = [];\n for (var i = 0; i < odataObject.CommerceListLines.length; i++) {\n if (odataObject.CommerceListLines[i] != null) {\n if (odataObject.CommerceListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListLines[i] = new entityDictionary[className](odataObject.CommerceListLines[i])\n }\n } else {\n this.CommerceListLines[i] = new CommerceListLineClass(odataObject.CommerceListLines[i]);\n }\n } else {\n this.CommerceListLines[i] = undefined;\n }\n }\n }\n \n this.CommerceListContributors = undefined;\n if (odataObject.CommerceListContributors) {\n this.CommerceListContributors = [];\n for (var i = 0; i < odataObject.CommerceListContributors.length; i++) {\n if (odataObject.CommerceListContributors[i] != null) {\n if (odataObject.CommerceListContributors[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListContributors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListContributors[i] = new entityDictionary[className](odataObject.CommerceListContributors[i])\n }\n } else {\n this.CommerceListContributors[i] = new CommerceListContributorClass(odataObject.CommerceListContributors[i]);\n }\n } else {\n this.CommerceListContributors[i] = undefined;\n }\n }\n }\n \n this.CommerceListInvitations = undefined;\n if (odataObject.CommerceListInvitations) {\n this.CommerceListInvitations = [];\n for (var i = 0; i < odataObject.CommerceListInvitations.length; i++) {\n if (odataObject.CommerceListInvitations[i] != null) {\n if (odataObject.CommerceListInvitations[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListInvitations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListInvitations[i] = new entityDictionary[className](odataObject.CommerceListInvitations[i])\n }\n } else {\n this.CommerceListInvitations[i] = new CommerceListInvitationClass(odataObject.CommerceListInvitations[i]);\n }\n } else {\n this.CommerceListInvitations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListClass'] = CommerceListClass;\n \n /**\n * ProductList entity class.\n */\n export class ProductListClass implements Entities.ProductList {\n public Id: string;\n public Name: string;\n public CustomerId: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public ProductListTypeValue: number;\n public DataAreaId: string;\n public ProductListLines: Entities.ProductListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductListTypeValue = \n odataObject.ProductListTypeValue;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductListLines = undefined;\n if (odataObject.ProductListLines) {\n this.ProductListLines = [];\n for (var i = 0; i < odataObject.ProductListLines.length; i++) {\n if (odataObject.ProductListLines[i] != null) {\n if (odataObject.ProductListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductListLines[i] = new entityDictionary[className](odataObject.ProductListLines[i])\n }\n } else {\n this.ProductListLines[i] = new ProductListLineClass(odataObject.ProductListLines[i]);\n }\n } else {\n this.ProductListLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListClass'] = ProductListClass;\n \n /**\n * Recommendation entity class.\n */\n export class RecommendationClass implements Entities.Recommendation {\n public Id: string;\n public RecommendationTypeValue: number;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.RecommendationTypeValue = \n odataObject.RecommendationTypeValue;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationClass'] = RecommendationClass;\n \n /**\n * TransferOrder entity class.\n */\n export class TransferOrderClass implements Entities.TransferOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityShipRemaining: number;\n public QuantityReceiveRemaining: number;\n public ShipDate: Date;\n public ReceiveDate: Date;\n public DeliveryModeId: string;\n public OrderLines: Entities.TransferOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityShipRemaining = \n (odataObject.QuantityShipRemaining != null) ? parseFloat(odataObject.QuantityShipRemaining) : undefined;\n \n this.QuantityReceiveRemaining = \n (odataObject.QuantityReceiveRemaining != null) ? parseFloat(odataObject.QuantityReceiveRemaining) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new TransferOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderClass'] = TransferOrderClass;\n \n /**\n * PurchaseOrder entity class.\n */\n export class PurchaseOrderClass implements Entities.PurchaseOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public TotalReceived: number;\n public OrderLines: Entities.PurchaseOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PurchaseOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderClass'] = PurchaseOrderClass;\n \n /**\n * PickingList entity class.\n */\n export class PickingListClass implements Entities.PickingList {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationId: string;\n public DeliveryDate: Date;\n public DeliveryMode: string;\n public TotalReceived: number;\n public OrderLines: Entities.PickingListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PickingListLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListClass'] = PickingListClass;\n \n /**\n * Warehouse entity class.\n */\n export class WarehouseClass implements Entities.Warehouse {\n public InventLocation: string;\n public Name: string;\n public IsWMSEnabled: boolean;\n public DefaultInventoryStatus: string;\n public DefaultReceiptLocation: string;\n public DefaultLocationId: string;\n public DefaultIssueLocation: string;\n public Address: Entities.Address;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InventLocation = \n odataObject.InventLocation;\n \n this.Name = \n odataObject.Name;\n \n this.IsWMSEnabled = \n odataObject.IsWMSEnabled;\n \n this.DefaultInventoryStatus = \n odataObject.DefaultInventoryStatus;\n \n this.DefaultReceiptLocation = \n odataObject.DefaultReceiptLocation;\n \n this.DefaultLocationId = \n odataObject.DefaultLocationId;\n \n this.DefaultIssueLocation = \n odataObject.DefaultIssueLocation;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseClass'] = WarehouseClass;\n \n /**\n * ScanResult entity class.\n */\n export class ScanResultClass implements Entities.ScanResult {\n public ScannedText: string;\n public MaskTypeValue: number;\n public Barcode: Entities.Barcode;\n public Product: Entities.SimpleProduct;\n public LoyaltyCard: Entities.LoyaltyCard;\n public GiftCard: Entities.GiftCard;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Customer: Entities.Customer;\n \n // Navigation properties names\n public static customerPropertyName: string = \"Customer\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ScannedText = \n odataObject.ScannedText;\n \n this.MaskTypeValue = \n odataObject.MaskTypeValue;\n \n if (odataObject.Barcode == null) {\n this.Barcode = undefined;\n } else if (odataObject.Barcode['@odata.type'] == null) {\n this.Barcode = new BarcodeClass(odataObject.Barcode);\n } else {\n var className: string = odataObject.Barcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Barcode = new entityDictionary[className](odataObject.Barcode)\n }\n }\n\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n if (odataObject.LoyaltyCard == null) {\n this.LoyaltyCard = undefined;\n } else if (odataObject.LoyaltyCard['@odata.type'] == null) {\n this.LoyaltyCard = new LoyaltyCardClass(odataObject.LoyaltyCard);\n } else {\n var className: string = odataObject.LoyaltyCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCard = new entityDictionary[className](odataObject.LoyaltyCard)\n }\n }\n\n \n if (odataObject.GiftCard == null) {\n this.GiftCard = undefined;\n } else if (odataObject.GiftCard['@odata.type'] == null) {\n this.GiftCard = new GiftCardClass(odataObject.GiftCard);\n } else {\n var className: string = odataObject.GiftCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.GiftCard = new entityDictionary[className](odataObject.GiftCard)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Customer == null) {\n this.Customer = undefined;\n } else if (odataObject.Customer['@odata.type'] == null) {\n this.Customer = new CustomerClass(odataObject.Customer);\n } else {\n var className: string = odataObject.Customer['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Customer = new entityDictionary[className](odataObject.Customer)\n }\n }\n\n \n }\n }\n entityDictionary['ScanResultClass'] = ScanResultClass;\n \n /**\n * SalesOrderContextualOperationsMap entity class.\n */\n export class SalesOrderContextualOperationsMapClass implements Entities.SalesOrderContextualOperationsMap {\n public Id: string;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public SalesOrder: Entities.SalesOrder;\n \n // Navigation properties names\n public static salesOrderPropertyName: string = \"SalesOrder\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.SalesOrder == null) {\n this.SalesOrder = undefined;\n } else if (odataObject.SalesOrder['@odata.type'] == null) {\n this.SalesOrder = new SalesOrderClass(odataObject.SalesOrder);\n } else {\n var className: string = odataObject.SalesOrder['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesOrder = new entityDictionary[className](odataObject.SalesOrder)\n }\n }\n\n \n }\n }\n entityDictionary['SalesOrderContextualOperationsMapClass'] = SalesOrderContextualOperationsMapClass;\n \n /**\n * InventoryInboundOutboundDocument entity class.\n */\n export class InventoryInboundOutboundDocumentClass implements Entities.InventoryInboundOutboundDocument {\n public WorkDocumentId: string;\n public TerminalId: string;\n public CommitRequestId: string;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public OperationTypeValue: number;\n public StatusValue: number;\n public ReceiptId: string;\n public Note: string;\n public OperationResultMessage: string;\n public DocumentId: string;\n public LongVersion: number;\n public SourceDocument: Entities.InventoryInboundOutboundSourceDocument;\n public SourceDocumentTypeValue: number;\n public CreatedDateTime: Date;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public TransactionDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CommitRequestId = \n odataObject.CommitRequestId;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.Note = \n odataObject.Note;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n if (odataObject.SourceDocument == null) {\n this.SourceDocument = undefined;\n } else if (odataObject.SourceDocument['@odata.type'] == null) {\n this.SourceDocument = new InventoryInboundOutboundSourceDocumentClass(odataObject.SourceDocument);\n } else {\n var className: string = odataObject.SourceDocument['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocument = new entityDictionary[className](odataObject.SourceDocument)\n }\n }\n\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.TransactionDate = \n (odataObject.TransactionDate instanceof Date) ? odataObject.TransactionDate\n : (odataObject.TransactionDate != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentClass'] = InventoryInboundOutboundDocumentClass;\n \n /**\n * BusinessPartner entity class.\n */\n export class BusinessPartnerClass implements Entities.BusinessPartner {\n public BusinessPartnerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerClass'] = BusinessPartnerClass;\n \n /**\n * BusinessPartnerUser entity class.\n */\n export class BusinessPartnerUserClass implements Entities.BusinessPartnerUser {\n public B2BUserId: string;\n public BusinessPartnerId: string;\n public FirstName: string;\n public LastName: string;\n public Email: string;\n public SpendingLimit: number;\n public LastOperationId: string;\n public StatusValue: number;\n public IsAdmin: boolean;\n public AccountNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.B2BUserId = \n odataObject.B2BUserId;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.Email = \n odataObject.Email;\n \n this.SpendingLimit = \n (odataObject.SpendingLimit != null) ? parseFloat(odataObject.SpendingLimit) : undefined;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.IsAdmin = \n odataObject.IsAdmin;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerUserClass'] = BusinessPartnerUserClass;\n \n /**\n * SuspendedCart entity class.\n */\n export class SuspendedCartClass implements Entities.SuspendedCart {\n public Id: string;\n public ReceiptId: string;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Cart: Entities.Cart;\n \n // Navigation properties names\n public static cartPropertyName: string = \"Cart\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Cart == null) {\n this.Cart = undefined;\n } else if (odataObject.Cart['@odata.type'] == null) {\n this.Cart = new CartClass(odataObject.Cart);\n } else {\n var className: string = odataObject.Cart['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Cart = new entityDictionary[className](odataObject.Cart)\n }\n }\n\n \n }\n }\n entityDictionary['SuspendedCartClass'] = SuspendedCartClass;\n \n /**\n * CountryRegion entity class.\n */\n export class CountryRegionClass implements Entities.CountryRegion {\n public CountryRegionId: string;\n public IsoCode: string;\n public ShortName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsoCode = \n odataObject.IsoCode;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionClass'] = CountryRegionClass;\n \n /**\n * ExtensibleEnumeration entity class.\n */\n export class ExtensibleEnumerationClass implements Entities.ExtensibleEnumeration {\n public Name: string;\n public Value: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['ExtensibleEnumerationClass'] = ExtensibleEnumerationClass;\n \n /**\n * ExtensibleEnumeration_1OfT entity class.\n */\n export class ExtensibleEnumeration_1OfTClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleEnumeration_1OfT {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.Framework.ExtensibleEnumeration_1OfT\";\n \n }\n }\n entityDictionary['ExtensibleEnumeration_1OfTClass'] = ExtensibleEnumeration_1OfTClass;\n \n /**\n * ExtensibleTransactionType entity class.\n */\n export class ExtensibleTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleTransactionTypeClass'] = ExtensibleTransactionTypeClass;\n \n /**\n * ExtensibleSalesTransactionType entity class.\n */\n export class ExtensibleSalesTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleSalesTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleSalesTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleSalesTransactionTypeClass'] = ExtensibleSalesTransactionTypeClass;\n \n /**\n * FulfillmentLineStatus entity class.\n */\n export class FulfillmentLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineStatus\";\n \n }\n }\n entityDictionary['FulfillmentLineStatusClass'] = FulfillmentLineStatusClass;\n \n /**\n * FulfillmentLineDeliveryType entity class.\n */\n export class FulfillmentLineDeliveryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineDeliveryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineDeliveryType\";\n \n }\n }\n entityDictionary['FulfillmentLineDeliveryTypeClass'] = FulfillmentLineDeliveryTypeClass;\n \n /**\n * ExtensibleAddressType entity class.\n */\n export class ExtensibleAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAddressType\";\n \n }\n }\n entityDictionary['ExtensibleAddressTypeClass'] = ExtensibleAddressTypeClass;\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity class.\n */\n export class ExtensibleLoyaltyRewardPointActivityEntryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleLoyaltyRewardPointActivityEntryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleLoyaltyRewardPointActivityEntryType\";\n \n }\n }\n entityDictionary['ExtensibleLoyaltyRewardPointActivityEntryTypeClass'] = ExtensibleLoyaltyRewardPointActivityEntryTypeClass;\n \n /**\n * ExtensibleAttributeDataType entity class.\n */\n export class ExtensibleAttributeDataTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAttributeDataType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAttributeDataType\";\n \n }\n }\n entityDictionary['ExtensibleAttributeDataTypeClass'] = ExtensibleAttributeDataTypeClass;\n \n /**\n * ReleasedProductServiceType entity class.\n */\n export class ReleasedProductServiceTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReleasedProductServiceType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReleasedProductServiceType\";\n \n }\n }\n entityDictionary['ReleasedProductServiceTypeClass'] = ReleasedProductServiceTypeClass;\n \n /**\n * ExtensibleElectronicAddressType entity class.\n */\n export class ExtensibleElectronicAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleElectronicAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleElectronicAddressType\";\n \n }\n }\n entityDictionary['ExtensibleElectronicAddressTypeClass'] = ExtensibleElectronicAddressTypeClass;\n \n /**\n * ReceiptOutputFormatType entity class.\n */\n export class ReceiptOutputFormatTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReceiptOutputFormatType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReceiptOutputFormatType\";\n \n }\n }\n entityDictionary['ReceiptOutputFormatTypeClass'] = ReceiptOutputFormatTypeClass;\n \n /**\n * OrderLookupAdditionalCriteriaType entity class.\n */\n export class OrderLookupAdditionalCriteriaTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.OrderLookupAdditionalCriteriaType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrderLookupAdditionalCriteriaType\";\n \n }\n }\n entityDictionary['OrderLookupAdditionalCriteriaTypeClass'] = OrderLookupAdditionalCriteriaTypeClass;\n \n /**\n * Address entity class.\n */\n export class AddressClass implements Entities.Address {\n public Name: string;\n public Id: string;\n public FullAddress: string;\n public RecordId: number;\n public Street: string;\n public StreetNumber: string;\n public County: string;\n public CountyName: string;\n public City: string;\n public DistrictName: string;\n public State: string;\n public StateName: string;\n public ZipCode: string;\n public ThreeLetterISORegionName: string;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Email: string;\n public EmailContent: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public TwoLetterISORegionName: string;\n public Deactivate: boolean;\n public AttentionTo: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public TaxGroup: string;\n public AddressTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public PartyNumber: string;\n public IsAsyncAddress: boolean;\n public DirectoryPartyTableRecordId: number;\n public DirectoryPartyLocationRecordId: number;\n public DirectoryPartyLocationRoleRecordId: number;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public LogisticsLocationExtRecordId: number;\n public LogisticsLocationRoleRecordId: number;\n public PhoneLogisticsLocationRecordId: number;\n public PhoneLogisticsLocationId: string;\n public EmailLogisticsLocationRecordId: number;\n public EmailLogisticsLocationId: string;\n public UrlLogisticsLocationRecordId: number;\n public UrlLogisticsLocationId: string;\n public ExpireRecordId: number;\n public SortOrder: number;\n public RoleCount: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Id = \n odataObject.Id;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.ZipCode = \n odataObject.ZipCode;\n \n this.ThreeLetterISORegionName = \n odataObject.ThreeLetterISORegionName;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Email = \n odataObject.Email;\n \n this.EmailContent = \n odataObject.EmailContent;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.TwoLetterISORegionName = \n odataObject.TwoLetterISORegionName;\n \n this.Deactivate = \n odataObject.Deactivate;\n \n this.AttentionTo = \n odataObject.AttentionTo;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.IsAsyncAddress = \n odataObject.IsAsyncAddress;\n \n this.DirectoryPartyTableRecordId = \n (odataObject.DirectoryPartyTableRecordId != null) ? parseInt(odataObject.DirectoryPartyTableRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRecordId = \n (odataObject.DirectoryPartyLocationRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRoleRecordId = \n (odataObject.DirectoryPartyLocationRoleRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRoleRecordId, 10) : undefined;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.LogisticsLocationExtRecordId = \n (odataObject.LogisticsLocationExtRecordId != null) ? parseInt(odataObject.LogisticsLocationExtRecordId, 10) : undefined;\n \n this.LogisticsLocationRoleRecordId = \n (odataObject.LogisticsLocationRoleRecordId != null) ? parseInt(odataObject.LogisticsLocationRoleRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationRecordId = \n (odataObject.PhoneLogisticsLocationRecordId != null) ? parseInt(odataObject.PhoneLogisticsLocationRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationId = \n odataObject.PhoneLogisticsLocationId;\n \n this.EmailLogisticsLocationRecordId = \n (odataObject.EmailLogisticsLocationRecordId != null) ? parseInt(odataObject.EmailLogisticsLocationRecordId, 10) : undefined;\n \n this.EmailLogisticsLocationId = \n odataObject.EmailLogisticsLocationId;\n \n this.UrlLogisticsLocationRecordId = \n (odataObject.UrlLogisticsLocationRecordId != null) ? parseInt(odataObject.UrlLogisticsLocationRecordId, 10) : undefined;\n \n this.UrlLogisticsLocationId = \n odataObject.UrlLogisticsLocationId;\n \n this.ExpireRecordId = \n (odataObject.ExpireRecordId != null) ? parseInt(odataObject.ExpireRecordId, 10) : undefined;\n \n this.SortOrder = \n odataObject.SortOrder;\n \n this.RoleCount = \n odataObject.RoleCount;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressClass'] = AddressClass;\n \n /**\n * CustomerAffiliation entity class.\n */\n export class CustomerAffiliationClass implements Entities.CustomerAffiliation {\n public RecordId: number;\n public RetailAffiliationId: number;\n public Name: string;\n public Description: string;\n public HideInChannels: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RetailAffiliationId = \n (odataObject.RetailAffiliationId != null) ? parseInt(odataObject.RetailAffiliationId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.HideInChannels = \n odataObject.HideInChannels;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAffiliationClass'] = CustomerAffiliationClass;\n \n /**\n * CustomerBalances entity class.\n */\n export class CustomerBalancesClass implements Entities.CustomerBalances {\n public Balance: number;\n public PendingBalance: number;\n public CreditLimit: number;\n public InvoiceAccountBalance: number;\n public InvoiceAccountPendingBalance: number;\n public InvoiceAccountCreditLimit: number;\n public OpenInvoiceBalance: number;\n public OpenInvoiceCount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.PendingBalance = \n (odataObject.PendingBalance != null) ? parseFloat(odataObject.PendingBalance) : undefined;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.InvoiceAccountBalance = \n (odataObject.InvoiceAccountBalance != null) ? parseFloat(odataObject.InvoiceAccountBalance) : undefined;\n \n this.InvoiceAccountPendingBalance = \n (odataObject.InvoiceAccountPendingBalance != null) ? parseFloat(odataObject.InvoiceAccountPendingBalance) : undefined;\n \n this.InvoiceAccountCreditLimit = \n (odataObject.InvoiceAccountCreditLimit != null) ? parseFloat(odataObject.InvoiceAccountCreditLimit) : undefined;\n \n this.OpenInvoiceBalance = \n (odataObject.OpenInvoiceBalance != null) ? parseFloat(odataObject.OpenInvoiceBalance) : undefined;\n \n this.OpenInvoiceCount = \n odataObject.OpenInvoiceCount;\n \n }\n }\n entityDictionary['CustomerBalancesClass'] = CustomerBalancesClass;\n \n /**\n * GlobalCustomer entity class.\n */\n export class GlobalCustomerClass implements Entities.GlobalCustomer {\n public PartyNumber: string;\n public RecordId: number;\n public IsAsyncCustomer: boolean;\n public AccountNumber: string;\n public FullName: string;\n public FullAddress: string;\n public Phone: string;\n public Email: string;\n public CustomerTypeValue: number;\n public Images: Entities.MediaLocation[];\n public OfflineImage: string;\n public IsB2b: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.FullName = \n odataObject.FullName;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GlobalCustomerClass'] = GlobalCustomerClass;\n \n /**\n * AttributeValue entity class.\n */\n export class AttributeValueClass implements Entities.AttributeValue {\n public Name: string;\n public KeyName: string;\n public UnitOfMeasureSymbol: string;\n public DataTypeValue: number;\n public BooleanValue: boolean;\n public DateTimeOffsetValue: Date;\n public FloatValue: number;\n public IntegerValue: number;\n public TextValue: string;\n public CurrencyValue: number;\n public CurrencyCode: string;\n public AttributeValueId: number;\n public RecordId: number;\n public Swatches: Entities.AttributeSwatch[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FloatValue = \n (odataObject.FloatValue != null) ? parseFloat(odataObject.FloatValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.TextValue = \n odataObject.TextValue;\n \n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Swatches = undefined;\n if (odataObject.Swatches) {\n this.Swatches = [];\n for (var i = 0; i < odataObject.Swatches.length; i++) {\n if (odataObject.Swatches[i] != null) {\n if (odataObject.Swatches[i]['@odata.type'] != null) {\n var className: string = odataObject.Swatches[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Swatches[i] = new entityDictionary[className](odataObject.Swatches[i])\n }\n } else {\n this.Swatches[i] = new AttributeSwatchClass(odataObject.Swatches[i]);\n }\n } else {\n this.Swatches[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueClass'] = AttributeValueClass;\n \n /**\n * AttributeValueBase entity class.\n */\n export class AttributeValueBaseClass implements Entities.AttributeValueBase {\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueBaseClass'] = AttributeValueBaseClass;\n \n /**\n * Barcode entity class.\n */\n export class BarcodeClass implements Entities.Barcode {\n public BarcodeId: string;\n public BarcodePrice: number;\n public Quantity: number;\n public CustomerId: string;\n public EmployeeId: string;\n public SalespersonId: string;\n public EANLicenseId: string;\n public DataEntry: string;\n public DiscountCode: string;\n public GiftCardNumber: string;\n public LoyaltyCardNumber: string;\n public ItemBarcode: Entities.ItemBarcode;\n public EntryMethodTypeValue: number;\n public ItemType: number;\n public EnterDimensions: boolean;\n public ItemGroupId: string;\n public ItemDepartmentId: string;\n public ScaleItem: boolean;\n public ZeroPriceValid: boolean;\n public NegativeQuantity: boolean;\n public DiscountNotAllowed: boolean;\n public DateToBeBlocked: Date;\n public DateToBeActivated: Date;\n public CheckDigitValidated: boolean;\n public CouponId: string;\n public Message: string;\n public LineDiscountGroup: string;\n public MultilineDiscountGroup: string;\n public IncludedInTotalDiscount: boolean;\n public CostPrice: number;\n public BatchId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BarcodeId = \n odataObject.BarcodeId;\n \n this.BarcodePrice = \n (odataObject.BarcodePrice != null) ? parseFloat(odataObject.BarcodePrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.EmployeeId = \n odataObject.EmployeeId;\n \n this.SalespersonId = \n odataObject.SalespersonId;\n \n this.EANLicenseId = \n odataObject.EANLicenseId;\n \n this.DataEntry = \n odataObject.DataEntry;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.GiftCardNumber = \n odataObject.GiftCardNumber;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n if (odataObject.ItemBarcode == null) {\n this.ItemBarcode = undefined;\n } else if (odataObject.ItemBarcode['@odata.type'] == null) {\n this.ItemBarcode = new ItemBarcodeClass(odataObject.ItemBarcode);\n } else {\n var className: string = odataObject.ItemBarcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemBarcode = new entityDictionary[className](odataObject.ItemBarcode)\n }\n }\n\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.EnterDimensions = \n odataObject.EnterDimensions;\n \n this.ItemGroupId = \n odataObject.ItemGroupId;\n \n this.ItemDepartmentId = \n odataObject.ItemDepartmentId;\n \n this.ScaleItem = \n odataObject.ScaleItem;\n \n this.ZeroPriceValid = \n odataObject.ZeroPriceValid;\n \n this.NegativeQuantity = \n odataObject.NegativeQuantity;\n \n this.DiscountNotAllowed = \n odataObject.DiscountNotAllowed;\n \n this.DateToBeBlocked = \n (odataObject.DateToBeBlocked instanceof Date) ? odataObject.DateToBeBlocked\n : (odataObject.DateToBeBlocked != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeBlocked, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBeActivated = \n (odataObject.DateToBeActivated instanceof Date) ? odataObject.DateToBeActivated\n : (odataObject.DateToBeActivated != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeActivated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CheckDigitValidated = \n odataObject.CheckDigitValidated;\n \n this.CouponId = \n odataObject.CouponId;\n \n this.Message = \n odataObject.Message;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.IncludedInTotalDiscount = \n odataObject.IncludedInTotalDiscount;\n \n this.CostPrice = \n (odataObject.CostPrice != null) ? parseFloat(odataObject.CostPrice) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BarcodeClass'] = BarcodeClass;\n \n /**\n * ItemBarcode entity class.\n */\n export class ItemBarcodeClass implements Entities.ItemBarcode {\n public RecordId: number;\n public ItemId: string;\n public Description: string;\n public BarcodeSetupId: string;\n public ItemBarcodeValue: string;\n public InventoryDimensionId: string;\n public IsBlocked: boolean;\n public Display: boolean;\n public VariantId: string;\n public UnitId: string;\n public UseForInput: boolean;\n public UseForPrinting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.BarcodeSetupId = \n odataObject.BarcodeSetupId;\n \n this.ItemBarcodeValue = \n odataObject.ItemBarcodeValue;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.Display = \n odataObject.Display;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.UseForInput = \n odataObject.UseForInput;\n \n this.UseForPrinting = \n odataObject.UseForPrinting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemBarcodeClass'] = ItemBarcodeClass;\n \n /**\n * ButtonGrid entity class.\n */\n export class ButtonGridClass implements Entities.ButtonGrid {\n public Id: string;\n public Name: string;\n public DefaultColor: number;\n public SpaceBetweenButtonsInPixels: number;\n public Buttons: Entities.ButtonGridButton[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultColor = \n odataObject.DefaultColor;\n \n this.SpaceBetweenButtonsInPixels = \n odataObject.SpaceBetweenButtonsInPixels;\n \n this.Buttons = undefined;\n if (odataObject.Buttons) {\n this.Buttons = [];\n for (var i = 0; i < odataObject.Buttons.length; i++) {\n if (odataObject.Buttons[i] != null) {\n if (odataObject.Buttons[i]['@odata.type'] != null) {\n var className: string = odataObject.Buttons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Buttons[i] = new entityDictionary[className](odataObject.Buttons[i])\n }\n } else {\n this.Buttons[i] = new ButtonGridButtonClass(odataObject.Buttons[i]);\n }\n } else {\n this.Buttons[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridClass'] = ButtonGridClass;\n \n /**\n * GetButtonGridsByIdsCriteria entity class.\n */\n export class GetButtonGridsByIdsCriteriaClass implements Entities.GetButtonGridsByIdsCriteria {\n public ButtonGridIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridIds = undefined;\n if (odataObject.ButtonGridIds) {\n this.ButtonGridIds = [];\n for (var i = 0; i < odataObject.ButtonGridIds.length; i++) {\n if (odataObject.ButtonGridIds[i] != null) {\n this.ButtonGridIds[i] = \n odataObject.ButtonGridIds[i];\n } else {\n this.ButtonGridIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GetButtonGridsByIdsCriteriaClass'] = GetButtonGridsByIdsCriteriaClass;\n \n /**\n * CartLine entity class.\n */\n export class CartLineClass implements Entities.CartLine {\n public LineId: string;\n public TaxOverrideCode: string;\n public ItemId: string;\n public Barcode: string;\n public EntryMethodTypeValue: number;\n public Description: string;\n public InventoryDimensionId: string;\n public Comment: string;\n public ProductId: number;\n public WarehouseId: string;\n public Quantity: number;\n public Price: number;\n public ExtendedPrice: number;\n public TaxAmount: number;\n public ItemTaxGroupId: string;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountAmountWithoutTax: number;\n public DiscountAmount: number;\n public LineDiscount: number;\n public LinePercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public UnitOfMeasureSymbol: string;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public WarrantiedId: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public IsVoided: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public IsGiftCardLine: boolean;\n public IsPriceKeyedIn: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public SalesStatusValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityCanceled: number;\n public FulfillmentStoreId: string;\n public SerialNumber: string;\n public ElectronicDeliveryEmail: string;\n public ElectronicDeliveryEmailContent: string;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public GiftCardBalance: number;\n public LineVersion: number;\n public PromotionLines: string[];\n public PriceLines: Entities.PriceLine[];\n public DiscountLines: Entities.DiscountLine[];\n public RelatedDiscountedLineIds: string[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TaxRatePercent: number;\n public IsCustomerAccountDeposit: boolean;\n public LinkedParentLineId: string;\n public QuantityReturnable: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n public LineNumber: number;\n public CommissionSalesGroup: string;\n public TrackingId: string;\n public StaffId: string;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public CatalogId: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public WarehouseLocation: string;\n public DetailedLineStatusValue: number;\n public SalesAgreementLineRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.Comment = \n odataObject.Comment;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ExtendedPrice = \n (odataObject.ExtendedPrice != null) ? parseFloat(odataObject.ExtendedPrice) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.WarrantiedId = \n odataObject.WarrantiedId;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ElectronicDeliveryEmail = \n odataObject.ElectronicDeliveryEmail;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['CartLineClass'] = CartLineClass;\n \n /**\n * ThirdPartyGiftCardInfo entity class.\n */\n export class ThirdPartyGiftCardInfoClass implements Entities.ThirdPartyGiftCardInfo {\n public Amount: number;\n public Authorization: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ThirdPartyGiftCardInfoClass'] = ThirdPartyGiftCardInfoClass;\n \n /**\n * CardTypeInfo entity class.\n */\n export class CardTypeInfoClass implements Entities.CardTypeInfo {\n public RecordId: number;\n public TypeId: string;\n public Name: string;\n public PaymentMethodId: string;\n public CardTypeValue: number;\n public Issuer: string;\n public NumberFrom: string;\n public NumberTo: string;\n public CashBackLimit: number;\n public AllowManualInput: boolean;\n public CheckModulus: boolean;\n public HasTenderDiscount: boolean;\n public IsPinRequired: boolean;\n public IsExpirationDateRequired: boolean;\n public ConnectorName: string;\n public PaymentProcessorMethod: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.Name = \n odataObject.Name;\n \n this.PaymentMethodId = \n odataObject.PaymentMethodId;\n \n this.CardTypeValue = \n odataObject.CardTypeValue;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.NumberFrom = \n odataObject.NumberFrom;\n \n this.NumberTo = \n odataObject.NumberTo;\n \n this.CashBackLimit = \n (odataObject.CashBackLimit != null) ? parseFloat(odataObject.CashBackLimit) : undefined;\n \n this.AllowManualInput = \n odataObject.AllowManualInput;\n \n this.CheckModulus = \n odataObject.CheckModulus;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.IsPinRequired = \n odataObject.IsPinRequired;\n \n this.IsExpirationDateRequired = \n odataObject.IsExpirationDateRequired;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.PaymentProcessorMethod = \n odataObject.PaymentProcessorMethod;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CardTypeInfoClass'] = CardTypeInfoClass;\n \n /**\n * CashDeclaration entity class.\n */\n export class CashDeclarationClass implements Entities.CashDeclaration {\n public RecordId: number;\n public Currency: string;\n public Amount: number;\n public CashTypeValue: number;\n public IncludeInQuickPayShortcuts: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashTypeValue = \n odataObject.CashTypeValue;\n \n this.IncludeInQuickPayShortcuts = \n odataObject.IncludeInQuickPayShortcuts;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CashDeclarationClass'] = CashDeclarationClass;\n \n /**\n * IncomeExpenseAccount entity class.\n */\n export class IncomeExpenseAccountClass implements Entities.IncomeExpenseAccount {\n public Amount: number;\n public AccountNumber: string;\n public AccountName: string;\n public AccountNameAlias: string;\n public AccountTypeValue: number;\n public Quantity: number;\n public Message1Line: string;\n public Message2Line: string;\n public SlipText1Line: string;\n public SlipText2Line: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.AccountName = \n odataObject.AccountName;\n \n this.AccountNameAlias = \n odataObject.AccountNameAlias;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Message1Line = \n odataObject.Message1Line;\n \n this.Message2Line = \n odataObject.Message2Line;\n \n this.SlipText1Line = \n odataObject.SlipText1Line;\n \n this.SlipText2Line = \n odataObject.SlipText2Line;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseAccountClass'] = IncomeExpenseAccountClass;\n \n /**\n * IncomeExpenseLine entity class.\n */\n export class IncomeExpenseLineClass implements Entities.IncomeExpenseLine {\n public Amount: number;\n public IncomeExpenseAccount: string;\n public StoreNumber: string;\n public AccountTypeValue: number;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.IncomeExpenseAccount = \n odataObject.IncomeExpenseAccount;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseLineClass'] = IncomeExpenseLineClass;\n \n /**\n * CartTenderLine entity class.\n */\n export class CartTenderLineClass implements Entities.CartTenderLine {\n public PaymentCard: Entities.PaymentCard;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public CardPaymentAcceptResult: Entities.CardPaymentAcceptResult;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.PaymentCard == null) {\n this.PaymentCard = undefined;\n } else if (odataObject.PaymentCard['@odata.type'] == null) {\n this.PaymentCard = new PaymentCardClass(odataObject.PaymentCard);\n } else {\n var className: string = odataObject.PaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentCard = new entityDictionary[className](odataObject.PaymentCard)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n if (odataObject.CardPaymentAcceptResult == null) {\n this.CardPaymentAcceptResult = undefined;\n } else if (odataObject.CardPaymentAcceptResult['@odata.type'] == null) {\n this.CardPaymentAcceptResult = new CardPaymentAcceptResultClass(odataObject.CardPaymentAcceptResult);\n } else {\n var className: string = odataObject.CardPaymentAcceptResult['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardPaymentAcceptResult = new entityDictionary[className](odataObject.CardPaymentAcceptResult)\n }\n }\n\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartTenderLineClass'] = CartTenderLineClass;\n \n /**\n * ChargeLine entity class.\n */\n export class ChargeLineClass implements Entities.ChargeLine {\n public ChargeLineId: string;\n public ChargeCode: string;\n public CurrencyCode: string;\n public ModuleTypeValue: number;\n public IsHeaderChargeProrated: boolean;\n public ChargeTypeValue: number;\n public ChargeMethodValue: number;\n public CalculatedAmount: number;\n public Value: number;\n public Description: string;\n public TransactionId: string;\n public MarkupAutoLineRecordId: number;\n public MarkupAutoTableRecId: number;\n public SaleLineNumber: number;\n public FromAmount: number;\n public ToAmount: number;\n public Keep: number;\n public AmountRefunded: number;\n public ChargeLineOverrides: Entities.ChargeLineOverride[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public IsOverridden: boolean;\n public IsInvoiced: boolean;\n public CalculatedProratedAmount: number;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeLineId = \n odataObject.ChargeLineId;\n \n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.IsHeaderChargeProrated = \n odataObject.IsHeaderChargeProrated;\n \n this.ChargeTypeValue = \n odataObject.ChargeTypeValue;\n \n this.ChargeMethodValue = \n odataObject.ChargeMethodValue;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.MarkupAutoLineRecordId = \n (odataObject.MarkupAutoLineRecordId != null) ? parseInt(odataObject.MarkupAutoLineRecordId, 10) : undefined;\n \n this.MarkupAutoTableRecId = \n (odataObject.MarkupAutoTableRecId != null) ? parseInt(odataObject.MarkupAutoTableRecId, 10) : undefined;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.FromAmount = \n (odataObject.FromAmount != null) ? parseFloat(odataObject.FromAmount) : undefined;\n \n this.ToAmount = \n (odataObject.ToAmount != null) ? parseFloat(odataObject.ToAmount) : undefined;\n \n this.Keep = \n odataObject.Keep;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.ChargeLineOverrides = undefined;\n if (odataObject.ChargeLineOverrides) {\n this.ChargeLineOverrides = [];\n for (var i = 0; i < odataObject.ChargeLineOverrides.length; i++) {\n if (odataObject.ChargeLineOverrides[i] != null) {\n if (odataObject.ChargeLineOverrides[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLineOverrides[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLineOverrides[i] = new entityDictionary[className](odataObject.ChargeLineOverrides[i])\n }\n } else {\n this.ChargeLineOverrides[i] = new ChargeLineOverrideClass(odataObject.ChargeLineOverrides[i]);\n }\n } else {\n this.ChargeLineOverrides[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.IsOverridden = \n odataObject.IsOverridden;\n \n this.IsInvoiced = \n odataObject.IsInvoiced;\n \n this.CalculatedProratedAmount = \n (odataObject.CalculatedProratedAmount != null) ? parseFloat(odataObject.CalculatedProratedAmount) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeLineClass'] = ChargeLineClass;\n \n /**\n * CityInfo entity class.\n */\n export class CityInfoClass implements Entities.CityInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CityInfoClass'] = CityInfoClass;\n \n /**\n * CommissionSalesGroup entity class.\n */\n export class CommissionSalesGroupClass implements Entities.CommissionSalesGroup {\n public GroupId: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.GroupId = \n odataObject.GroupId;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommissionSalesGroupClass'] = CommissionSalesGroupClass;\n \n /**\n * ContactInformation entity class.\n */\n export class ContactInformationClass implements Entities.ContactInformation {\n public Value: string;\n public ContactInformationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ContactInformationTypeValue = \n odataObject.ContactInformationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInformationClass'] = ContactInformationClass;\n \n /**\n * AttributeCategory entity class.\n */\n export class AttributeCategoryClass implements Entities.AttributeCategory {\n public Value: Entities.CommercePropertyValue;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeCategoryClass'] = AttributeCategoryClass;\n \n /**\n * AttributeProduct entity class.\n */\n export class AttributeProductClass implements Entities.AttributeProduct {\n public MetadataFlags: Entities.ProductAttributeMetadataFlags;\n public IsDimension: boolean;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.MetadataFlags == null) {\n this.MetadataFlags = undefined;\n } else if (odataObject.MetadataFlags['@odata.type'] == null) {\n this.MetadataFlags = new ProductAttributeMetadataFlagsClass(odataObject.MetadataFlags);\n } else {\n var className: string = odataObject.MetadataFlags['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataFlags = new entityDictionary[className](odataObject.MetadataFlags)\n }\n }\n\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeProductClass'] = AttributeProductClass;\n \n /**\n * ProductComparisonEntry entity class.\n */\n export class ProductComparisonEntryClass implements Entities.ProductComparisonEntry {\n public ProductId: number;\n public AttributeValue: Entities.AttributeValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new AttributeValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonEntryClass'] = ProductComparisonEntryClass;\n \n /**\n * ProductComparisonLine entity class.\n */\n export class ProductComparisonLineClass implements Entities.ProductComparisonLine {\n public AttributeRecordId: number;\n public AttributeName: string;\n public ProductAttributeComparisonEntries: Entities.ProductComparisonEntry[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.AttributeName = \n odataObject.AttributeName;\n \n this.ProductAttributeComparisonEntries = undefined;\n if (odataObject.ProductAttributeComparisonEntries) {\n this.ProductAttributeComparisonEntries = [];\n for (var i = 0; i < odataObject.ProductAttributeComparisonEntries.length; i++) {\n if (odataObject.ProductAttributeComparisonEntries[i] != null) {\n if (odataObject.ProductAttributeComparisonEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductAttributeComparisonEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductAttributeComparisonEntries[i] = new entityDictionary[className](odataObject.ProductAttributeComparisonEntries[i])\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = new ProductComparisonEntryClass(odataObject.ProductAttributeComparisonEntries[i]);\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonLineClass'] = ProductComparisonLineClass;\n \n /**\n * CustomerSearchField entity class.\n */\n export class CustomerSearchFieldClass implements Entities.CustomerSearchField {\n public IsShortcut: boolean;\n public DisplayName: string;\n public CanBeRefined: boolean;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsShortcut = \n odataObject.IsShortcut;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.CanBeRefined = \n odataObject.CanBeRefined;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchFieldClass'] = CustomerSearchFieldClass;\n \n /**\n * CustomerSearchByFieldCriteria entity class.\n */\n export class CustomerSearchByFieldCriteriaClass implements Entities.CustomerSearchByFieldCriteria {\n public Criteria: Entities.CustomerSearchByFieldCriterion[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Criteria = undefined;\n if (odataObject.Criteria) {\n this.Criteria = [];\n for (var i = 0; i < odataObject.Criteria.length; i++) {\n if (odataObject.Criteria[i] != null) {\n if (odataObject.Criteria[i]['@odata.type'] != null) {\n var className: string = odataObject.Criteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Criteria[i] = new entityDictionary[className](odataObject.Criteria[i])\n }\n } else {\n this.Criteria[i] = new CustomerSearchByFieldCriterionClass(odataObject.Criteria[i]);\n }\n } else {\n this.Criteria[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriteriaClass'] = CustomerSearchByFieldCriteriaClass;\n \n /**\n * CustomerSearchByFieldCriterion entity class.\n */\n export class CustomerSearchByFieldCriterionClass implements Entities.CustomerSearchByFieldCriterion {\n public SearchTerm: string;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchTerm = \n odataObject.SearchTerm;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriterionClass'] = CustomerSearchByFieldCriterionClass;\n \n /**\n * CustomerSearchFieldType entity class.\n */\n export class CustomerSearchFieldTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.CustomerSearchFieldType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerSearchFieldType\";\n \n }\n }\n entityDictionary['CustomerSearchFieldTypeClass'] = CustomerSearchFieldTypeClass;\n \n /**\n * OrderShipments entity class.\n */\n export class OrderShipmentsClass implements Entities.OrderShipments {\n public SalesId: string;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public StatusValue: number;\n public CurrencyCode: string;\n public CustomerId: string;\n public DeliveryMode: string;\n public GrossAmount: number;\n public InventoryLocationId: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public TotalAmount: number;\n public TaxAmount: number;\n public SalesLines: Entities.SalesLine[];\n public Shipments: Entities.Shipment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderShipmentsClass'] = OrderShipmentsClass;\n \n /**\n * Shipment entity class.\n */\n export class ShipmentClass implements Entities.Shipment {\n public SalesId: string;\n public ShipmentId: string;\n public DeliveryAddress: Entities.Address;\n public ShipDate: Date;\n public DeliveryMode: string;\n public TermsOfDelivery: string;\n public WeightUnit: string;\n public TrackingNumber: string;\n public TrackingUrl: string;\n public LatestCarrierTrackingInfo: Entities.TrackingInfo;\n public CarrierId: string;\n public CarrierName: string;\n public ShippingWeight: number;\n public ShipmentLines: Entities.ShipmentLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ShipmentId = \n odataObject.ShipmentId;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TermsOfDelivery = \n odataObject.TermsOfDelivery;\n \n this.WeightUnit = \n odataObject.WeightUnit;\n \n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n if (odataObject.LatestCarrierTrackingInfo == null) {\n this.LatestCarrierTrackingInfo = undefined;\n } else if (odataObject.LatestCarrierTrackingInfo['@odata.type'] == null) {\n this.LatestCarrierTrackingInfo = new TrackingInfoClass(odataObject.LatestCarrierTrackingInfo);\n } else {\n var className: string = odataObject.LatestCarrierTrackingInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LatestCarrierTrackingInfo = new entityDictionary[className](odataObject.LatestCarrierTrackingInfo)\n }\n }\n\n \n this.CarrierId = \n odataObject.CarrierId;\n \n this.CarrierName = \n odataObject.CarrierName;\n \n this.ShippingWeight = \n (odataObject.ShippingWeight != null) ? parseFloat(odataObject.ShippingWeight) : undefined;\n \n this.ShipmentLines = undefined;\n if (odataObject.ShipmentLines) {\n this.ShipmentLines = [];\n for (var i = 0; i < odataObject.ShipmentLines.length; i++) {\n if (odataObject.ShipmentLines[i] != null) {\n if (odataObject.ShipmentLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentLines[i] = new entityDictionary[className](odataObject.ShipmentLines[i])\n }\n } else {\n this.ShipmentLines[i] = new ShipmentLineClass(odataObject.ShipmentLines[i]);\n }\n } else {\n this.ShipmentLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentClass'] = ShipmentClass;\n \n /**\n * ShipmentLine entity class.\n */\n export class ShipmentLineClass implements Entities.ShipmentLine {\n public ShipmentLineId: string;\n public ItemId: string;\n public Description: string;\n public InventDimId: string;\n public OrderedQuantity: number;\n public DeliveredQuantity: number;\n public RemainingQuantity: number;\n public InventoryTransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShipmentLineId = \n odataObject.ShipmentLineId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.OrderedQuantity = \n (odataObject.OrderedQuantity != null) ? parseFloat(odataObject.OrderedQuantity) : undefined;\n \n this.DeliveredQuantity = \n (odataObject.DeliveredQuantity != null) ? parseFloat(odataObject.DeliveredQuantity) : undefined;\n \n this.RemainingQuantity = \n (odataObject.RemainingQuantity != null) ? parseFloat(odataObject.RemainingQuantity) : undefined;\n \n this.InventoryTransactionId = \n odataObject.InventoryTransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentLineClass'] = ShipmentLineClass;\n \n /**\n * Transaction entity class.\n */\n export class TransactionClass implements Entities.Transaction {\n public Id: string;\n public StoreId: string;\n public TerminalId: string;\n public IsCreatedOffline: boolean;\n public StaffId: string;\n public LanguageId: string;\n public ShiftId: string;\n public ShiftTerminalId: string;\n public Description: string;\n public ReceiptId: string;\n public GrossAmount: number;\n public TotalAmount: number;\n public CreatedDateTime: Date;\n public TransactionTypeValue: number;\n public TransactionStatusValue: number;\n public BeginDateTime: Date;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public FromSafe: string;\n public ToSafe: string;\n public FromShiftTerminalId: string;\n public ToShiftTerminalId: string;\n public FromShiftId: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n public ToShiftId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ShiftId = \n odataObject.ShiftId;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.Description = \n odataObject.Description;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.FromSafe = \n odataObject.FromSafe;\n \n this.ToSafe = \n odataObject.ToSafe;\n \n this.FromShiftTerminalId = \n odataObject.FromShiftTerminalId;\n \n this.ToShiftTerminalId = \n odataObject.ToShiftTerminalId;\n \n this.FromShiftId = \n odataObject.FromShiftId;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n this.ToShiftId = \n odataObject.ToShiftId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionClass'] = TransactionClass;\n \n /**\n * ShiftReconciliationLine entity class.\n */\n export class ShiftReconciliationLineClass\n extends TransactionClass\n implements Entities.ShiftReconciliationLine {\n public GroupId: number;\n public GroupDescription: string;\n public ShiftGroupLinesCount: number;\n public ShiftGroupLinesClosedCount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupDescription = \n odataObject.GroupDescription;\n \n this.ShiftGroupLinesCount = \n (odataObject.ShiftGroupLinesCount != null) ? parseInt(odataObject.ShiftGroupLinesCount, 10) : undefined;\n \n this.ShiftGroupLinesClosedCount = \n (odataObject.ShiftGroupLinesClosedCount != null) ? parseInt(odataObject.ShiftGroupLinesClosedCount, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShiftReconciliationLine\";\n \n }\n }\n entityDictionary['ShiftReconciliationLineClass'] = ShiftReconciliationLineClass;\n \n /**\n * ShiftReconciliationLineRetrievalCriteria entity class.\n */\n export class ShiftReconciliationLineRetrievalCriteriaClass implements Entities.ShiftReconciliationLineRetrievalCriteria {\n public TransactionTypeValues: number[];\n public ShiftReconciliationLineStatusValue: number;\n public Shifts: Entities.ShiftKey[];\n public DestinationShift: Entities.ShiftKey;\n public SourceShift: Entities.ShiftKey;\n public SourceSafe: string;\n public DestinationSafe: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionTypeValues = undefined;\n if (odataObject.TransactionTypeValues) {\n this.TransactionTypeValues = [];\n for (var i = 0; i < odataObject.TransactionTypeValues.length; i++) {\n if (odataObject.TransactionTypeValues[i] != null) {\n this.TransactionTypeValues[i] = \n odataObject.TransactionTypeValues[i];\n } else {\n this.TransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.ShiftReconciliationLineStatusValue = \n odataObject.ShiftReconciliationLineStatusValue;\n \n this.Shifts = undefined;\n if (odataObject.Shifts) {\n this.Shifts = [];\n for (var i = 0; i < odataObject.Shifts.length; i++) {\n if (odataObject.Shifts[i] != null) {\n if (odataObject.Shifts[i]['@odata.type'] != null) {\n var className: string = odataObject.Shifts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shifts[i] = new entityDictionary[className](odataObject.Shifts[i])\n }\n } else {\n this.Shifts[i] = new ShiftKeyClass(odataObject.Shifts[i]);\n }\n } else {\n this.Shifts[i] = undefined;\n }\n }\n }\n \n if (odataObject.DestinationShift == null) {\n this.DestinationShift = undefined;\n } else if (odataObject.DestinationShift['@odata.type'] == null) {\n this.DestinationShift = new ShiftKeyClass(odataObject.DestinationShift);\n } else {\n var className: string = odataObject.DestinationShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationShift = new entityDictionary[className](odataObject.DestinationShift)\n }\n }\n\n \n if (odataObject.SourceShift == null) {\n this.SourceShift = undefined;\n } else if (odataObject.SourceShift['@odata.type'] == null) {\n this.SourceShift = new ShiftKeyClass(odataObject.SourceShift);\n } else {\n var className: string = odataObject.SourceShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceShift = new entityDictionary[className](odataObject.SourceShift)\n }\n }\n\n \n this.SourceSafe = \n odataObject.SourceSafe;\n \n this.DestinationSafe = \n odataObject.DestinationSafe;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n }\n }\n entityDictionary['ShiftReconciliationLineRetrievalCriteriaClass'] = ShiftReconciliationLineRetrievalCriteriaClass;\n \n /**\n * SearchConfiguration entity class.\n */\n export class SearchConfigurationClass implements Entities.SearchConfiguration {\n public ProductSortColumns: Entities.SortColumn[];\n public ProductSearchServiceTypeValue: number;\n public ProductSortColumnsLabels: Entities.LocalizedText[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductSortColumns = undefined;\n if (odataObject.ProductSortColumns) {\n this.ProductSortColumns = [];\n for (var i = 0; i < odataObject.ProductSortColumns.length; i++) {\n if (odataObject.ProductSortColumns[i] != null) {\n if (odataObject.ProductSortColumns[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumns[i] = new entityDictionary[className](odataObject.ProductSortColumns[i])\n }\n } else {\n this.ProductSortColumns[i] = new SortColumnClass(odataObject.ProductSortColumns[i]);\n }\n } else {\n this.ProductSortColumns[i] = undefined;\n }\n }\n }\n \n this.ProductSearchServiceTypeValue = \n odataObject.ProductSearchServiceTypeValue;\n \n this.ProductSortColumnsLabels = undefined;\n if (odataObject.ProductSortColumnsLabels) {\n this.ProductSortColumnsLabels = [];\n for (var i = 0; i < odataObject.ProductSortColumnsLabels.length; i++) {\n if (odataObject.ProductSortColumnsLabels[i] != null) {\n if (odataObject.ProductSortColumnsLabels[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumnsLabels[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumnsLabels[i] = new entityDictionary[className](odataObject.ProductSortColumnsLabels[i])\n }\n } else {\n this.ProductSortColumnsLabels[i] = new LocalizedTextClass(odataObject.ProductSortColumnsLabels[i]);\n }\n } else {\n this.ProductSortColumnsLabels[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchConfigurationClass'] = SearchConfigurationClass;\n \n /**\n * CustomerTimelineItem entity class.\n */\n export class CustomerTimelineItemClass implements Entities.CustomerTimelineItem {\n public CustomerId: string;\n public Description: string;\n public Id: string;\n public EntityType: string;\n public TypeId: string;\n public StaffId: string;\n public StartDateTime: Date;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Description = \n odataObject.Description;\n \n this.Id = \n odataObject.Id;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemClass'] = CustomerTimelineItemClass;\n \n /**\n * AttributeDefinition entity class.\n */\n export class AttributeDefinitionClass implements Entities.AttributeDefinition {\n public RecordId: number;\n public Name: string;\n public AttributeTypeName: string;\n public ExtDataType: Entities.ExtensibleAttributeDataType;\n public DataTypeValue: number;\n public IsHidden: boolean;\n public IsMandatory: boolean;\n public IsMultiValue: boolean;\n public IsEnumeration: boolean;\n public TranslationDetails: Entities.AttributeTranslationDetails[];\n public EnumerationDetails: Entities.AttributeEnumeration[];\n public DefaultValue: Entities.CommercePropertyValue;\n public UpperBound: Entities.CommercePropertyValue;\n public LowerBound: Entities.CommercePropertyValue;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.AttributeTypeName = \n odataObject.AttributeTypeName;\n \n if (odataObject.ExtDataType == null) {\n this.ExtDataType = undefined;\n } else if (odataObject.ExtDataType['@odata.type'] == null) {\n this.ExtDataType = new ExtensibleAttributeDataTypeClass(odataObject.ExtDataType);\n } else {\n var className: string = odataObject.ExtDataType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtDataType = new entityDictionary[className](odataObject.ExtDataType)\n }\n }\n\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.IsHidden = \n odataObject.IsHidden;\n \n this.IsMandatory = \n odataObject.IsMandatory;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsEnumeration = \n odataObject.IsEnumeration;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.EnumerationDetails = undefined;\n if (odataObject.EnumerationDetails) {\n this.EnumerationDetails = [];\n for (var i = 0; i < odataObject.EnumerationDetails.length; i++) {\n if (odataObject.EnumerationDetails[i] != null) {\n if (odataObject.EnumerationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.EnumerationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.EnumerationDetails[i] = new entityDictionary[className](odataObject.EnumerationDetails[i])\n }\n } else {\n this.EnumerationDetails[i] = new AttributeEnumerationClass(odataObject.EnumerationDetails[i]);\n }\n } else {\n this.EnumerationDetails[i] = undefined;\n }\n }\n }\n \n if (odataObject.DefaultValue == null) {\n this.DefaultValue = undefined;\n } else if (odataObject.DefaultValue['@odata.type'] == null) {\n this.DefaultValue = new CommercePropertyValueClass(odataObject.DefaultValue);\n } else {\n var className: string = odataObject.DefaultValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DefaultValue = new entityDictionary[className](odataObject.DefaultValue)\n }\n }\n\n \n if (odataObject.UpperBound == null) {\n this.UpperBound = undefined;\n } else if (odataObject.UpperBound['@odata.type'] == null) {\n this.UpperBound = new CommercePropertyValueClass(odataObject.UpperBound);\n } else {\n var className: string = odataObject.UpperBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpperBound = new entityDictionary[className](odataObject.UpperBound)\n }\n }\n\n \n if (odataObject.LowerBound == null) {\n this.LowerBound = undefined;\n } else if (odataObject.LowerBound['@odata.type'] == null) {\n this.LowerBound = new CommercePropertyValueClass(odataObject.LowerBound);\n } else {\n var className: string = odataObject.LowerBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LowerBound = new entityDictionary[className](odataObject.LowerBound)\n }\n }\n\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionClass'] = AttributeDefinitionClass;\n \n /**\n * AttributeTranslationDetails entity class.\n */\n export class AttributeTranslationDetailsClass implements Entities.AttributeTranslationDetails {\n public AttributeRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeTranslationDetailsClass'] = AttributeTranslationDetailsClass;\n \n /**\n * AttributeEnumeration entity class.\n */\n export class AttributeEnumerationClass implements Entities.AttributeEnumeration {\n public OrdinalNumber: number;\n public EnumerationValue: string;\n public AttributeEnumerationTranslations: Entities.AttributeEnumerationTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrdinalNumber = \n odataObject.OrdinalNumber;\n \n this.EnumerationValue = \n odataObject.EnumerationValue;\n \n this.AttributeEnumerationTranslations = undefined;\n if (odataObject.AttributeEnumerationTranslations) {\n this.AttributeEnumerationTranslations = [];\n for (var i = 0; i < odataObject.AttributeEnumerationTranslations.length; i++) {\n if (odataObject.AttributeEnumerationTranslations[i] != null) {\n if (odataObject.AttributeEnumerationTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeEnumerationTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeEnumerationTranslations[i] = new entityDictionary[className](odataObject.AttributeEnumerationTranslations[i])\n }\n } else {\n this.AttributeEnumerationTranslations[i] = new AttributeEnumerationTranslationClass(odataObject.AttributeEnumerationTranslations[i]);\n }\n } else {\n this.AttributeEnumerationTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationClass'] = AttributeEnumerationClass;\n \n /**\n * AttributeEnumerationTranslation entity class.\n */\n export class AttributeEnumerationTranslationClass implements Entities.AttributeEnumerationTranslation {\n public LanguageId: string;\n public EnumerationTranslationValue: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.EnumerationTranslationValue = \n odataObject.EnumerationTranslationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationTranslationClass'] = AttributeEnumerationTranslationClass;\n \n /**\n * AttributeDefinitionCriteria entity class.\n */\n export class AttributeDefinitionCriteriaClass implements Entities.AttributeDefinitionCriteria {\n public AttributeGroupIdentifier: number;\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifier = \n (odataObject.AttributeGroupIdentifier != null) ? parseInt(odataObject.AttributeGroupIdentifier, 10) : undefined;\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionCriteriaClass'] = AttributeDefinitionCriteriaClass;\n \n /**\n * AttributeGroupDefinition entity class.\n */\n export class AttributeGroupDefinitionClass implements Entities.AttributeGroupDefinition {\n public RecordId: number;\n public Name: string;\n public TranslationDetails: Entities.AttributeGroupTranslationDetails[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeGroupTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionClass'] = AttributeGroupDefinitionClass;\n \n /**\n * AttributeGroupTranslationDetails entity class.\n */\n export class AttributeGroupTranslationDetailsClass implements Entities.AttributeGroupTranslationDetails {\n public AttributeGroupRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupRecordId = \n (odataObject.AttributeGroupRecordId != null) ? parseInt(odataObject.AttributeGroupRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupTranslationDetailsClass'] = AttributeGroupTranslationDetailsClass;\n \n /**\n * AttributeGroupDefinitionCriteria entity class.\n */\n export class AttributeGroupDefinitionCriteriaClass implements Entities.AttributeGroupDefinitionCriteria {\n public AttributeGroupIdentifiers: number[];\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifiers = undefined;\n if (odataObject.AttributeGroupIdentifiers) {\n this.AttributeGroupIdentifiers = [];\n for (var i = 0; i < odataObject.AttributeGroupIdentifiers.length; i++) {\n if (odataObject.AttributeGroupIdentifiers[i] != null) {\n this.AttributeGroupIdentifiers[i] = \n parseInt(odataObject.AttributeGroupIdentifiers[i], 10);\n } else {\n this.AttributeGroupIdentifiers[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionCriteriaClass'] = AttributeGroupDefinitionCriteriaClass;\n \n /**\n * CountyInfo entity class.\n */\n export class CountyInfoClass implements Entities.CountyInfo {\n public Name: string;\n public CountyId: string;\n public CountryRegionId: string;\n public StateId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountyInfoClass'] = CountyInfoClass;\n \n /**\n * CustomerGroup entity class.\n */\n export class CustomerGroupClass implements Entities.CustomerGroup {\n public CustomerGroupNumber: string;\n public CustomerGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerGroupNumber = \n odataObject.CustomerGroupNumber;\n \n this.CustomerGroupName = \n odataObject.CustomerGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerGroupClass'] = CustomerGroupClass;\n \n /**\n * DiscountLine entity class.\n */\n export class DiscountLineClass implements Entities.DiscountLine {\n public SaleLineNumber: number;\n public OfferId: string;\n public OfferName: string;\n public OfferDescription: string;\n public Amount: number;\n public DiscountCost: number;\n public EffectiveAmount: number;\n public EffectivePercentage: number;\n public LineNumber: number;\n public SavedEffectiveAmount: number;\n public Percentage: number;\n public DealPrice: number;\n public DiscountLineTypeValue: number;\n public ManualDiscountTypeValue: number;\n public CustomerDiscountTypeValue: number;\n public PeriodicDiscountTypeValue: number;\n public DiscountApplicationGroup: string;\n public ConcurrencyModeValue: number;\n public IsCompoundable: boolean;\n public DiscountCode: string;\n public PricingPriorityNumber: number;\n public PricingAttributeCombinationPriority: number;\n public IsDiscountCodeRequired: boolean;\n public ThresholdAmountRequired: number;\n public BundleId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.OfferDescription = \n odataObject.OfferDescription;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.DiscountCost = \n (odataObject.DiscountCost != null) ? parseFloat(odataObject.DiscountCost) : undefined;\n \n this.EffectiveAmount = \n (odataObject.EffectiveAmount != null) ? parseFloat(odataObject.EffectiveAmount) : undefined;\n \n this.EffectivePercentage = \n (odataObject.EffectivePercentage != null) ? parseFloat(odataObject.EffectivePercentage) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.SavedEffectiveAmount = \n (odataObject.SavedEffectiveAmount != null) ? parseFloat(odataObject.SavedEffectiveAmount) : undefined;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.DealPrice = \n (odataObject.DealPrice != null) ? parseFloat(odataObject.DealPrice) : undefined;\n \n this.DiscountLineTypeValue = \n odataObject.DiscountLineTypeValue;\n \n this.ManualDiscountTypeValue = \n odataObject.ManualDiscountTypeValue;\n \n this.CustomerDiscountTypeValue = \n odataObject.CustomerDiscountTypeValue;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.DiscountApplicationGroup = \n odataObject.DiscountApplicationGroup;\n \n this.ConcurrencyModeValue = \n odataObject.ConcurrencyModeValue;\n \n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.PricingAttributeCombinationPriority = \n (odataObject.PricingAttributeCombinationPriority != null) ? parseFloat(odataObject.PricingAttributeCombinationPriority) : undefined;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ThresholdAmountRequired = \n (odataObject.ThresholdAmountRequired != null) ? parseFloat(odataObject.ThresholdAmountRequired) : undefined;\n \n this.BundleId = \n odataObject.BundleId;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountLineClass'] = DiscountLineClass;\n \n /**\n * EmployeePermissions entity class.\n */\n export class EmployeePermissionsClass implements Entities.EmployeePermissions {\n public PriceOverrideRestrictionValue: number;\n public AllowPriceOverride: number;\n public MaximumDiscountPercentage: number;\n public MaximumLineDiscountAmount: number;\n public MaximumLineReturnAmount: number;\n public MaximumTotalDiscountAmount: number;\n public MaximumTotalDiscountPercentage: number;\n public MaxTotalReturnAmount: number;\n public StaffId: string;\n public Roles: string[];\n public AllowUseSharedShift: boolean;\n public AllowManageSharedShift: boolean;\n public AllowTaskGuides: boolean;\n public AllowSaleOutsideAssortment: boolean;\n public AllowPrintingReceiptCopy: string;\n public AllowSkipFiscalRegistration: boolean;\n public AllowSkipRegistrationOrMarkAsRegistered: boolean;\n public AllowPostponeRegistration: boolean;\n public AllowCreateTransferOrder: boolean;\n public AllowAcceptOrder: boolean;\n public AllowTaskManagement: boolean;\n public AllowRejectOrder: boolean;\n public AllowMassActivation: boolean;\n public AllowPostInventoryAdjustment: boolean;\n public AllowPostStockCounting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PriceOverrideRestrictionValue = \n odataObject.PriceOverrideRestrictionValue;\n \n this.AllowPriceOverride = \n odataObject.AllowPriceOverride;\n \n this.MaximumDiscountPercentage = \n (odataObject.MaximumDiscountPercentage != null) ? parseFloat(odataObject.MaximumDiscountPercentage) : undefined;\n \n this.MaximumLineDiscountAmount = \n (odataObject.MaximumLineDiscountAmount != null) ? parseFloat(odataObject.MaximumLineDiscountAmount) : undefined;\n \n this.MaximumLineReturnAmount = \n (odataObject.MaximumLineReturnAmount != null) ? parseFloat(odataObject.MaximumLineReturnAmount) : undefined;\n \n this.MaximumTotalDiscountAmount = \n (odataObject.MaximumTotalDiscountAmount != null) ? parseFloat(odataObject.MaximumTotalDiscountAmount) : undefined;\n \n this.MaximumTotalDiscountPercentage = \n (odataObject.MaximumTotalDiscountPercentage != null) ? parseFloat(odataObject.MaximumTotalDiscountPercentage) : undefined;\n \n this.MaxTotalReturnAmount = \n (odataObject.MaxTotalReturnAmount != null) ? parseFloat(odataObject.MaxTotalReturnAmount) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.Roles = undefined;\n if (odataObject.Roles) {\n this.Roles = [];\n for (var i = 0; i < odataObject.Roles.length; i++) {\n if (odataObject.Roles[i] != null) {\n this.Roles[i] = \n odataObject.Roles[i];\n } else {\n this.Roles[i] = undefined;\n }\n }\n }\n \n this.AllowUseSharedShift = \n odataObject.AllowUseSharedShift;\n \n this.AllowManageSharedShift = \n odataObject.AllowManageSharedShift;\n \n this.AllowTaskGuides = \n odataObject.AllowTaskGuides;\n \n this.AllowSaleOutsideAssortment = \n odataObject.AllowSaleOutsideAssortment;\n \n this.AllowPrintingReceiptCopy = \n odataObject.AllowPrintingReceiptCopy;\n \n this.AllowSkipFiscalRegistration = \n odataObject.AllowSkipFiscalRegistration;\n \n this.AllowSkipRegistrationOrMarkAsRegistered = \n odataObject.AllowSkipRegistrationOrMarkAsRegistered;\n \n this.AllowPostponeRegistration = \n odataObject.AllowPostponeRegistration;\n \n this.AllowCreateTransferOrder = \n odataObject.AllowCreateTransferOrder;\n \n this.AllowAcceptOrder = \n odataObject.AllowAcceptOrder;\n \n this.AllowTaskManagement = \n odataObject.AllowTaskManagement;\n \n this.AllowRejectOrder = \n odataObject.AllowRejectOrder;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.AllowPostInventoryAdjustment = \n odataObject.AllowPostInventoryAdjustment;\n \n this.AllowPostStockCounting = \n odataObject.AllowPostStockCounting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeePermissionsClass'] = EmployeePermissionsClass;\n \n /**\n * CommerceProperty entity class.\n */\n export class CommercePropertyClass implements Entities.CommerceProperty {\n public Key: string;\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['CommercePropertyClass'] = CommercePropertyClass;\n \n /**\n * CommercePropertyValue entity class.\n */\n export class CommercePropertyValueClass implements Entities.CommercePropertyValue {\n public BooleanValue: boolean;\n public ByteValue: number;\n public DateTimeOffsetValue: Date;\n public DecimalValue: number;\n public IntegerValue: number;\n public LongValue: number;\n public StringValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.ByteValue = \n (odataObject.ByteValue != null) ? parseInt(odataObject.ByteValue, 10) : undefined;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DecimalValue = \n (odataObject.DecimalValue != null) ? parseFloat(odataObject.DecimalValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.LongValue = \n (odataObject.LongValue != null) ? parseInt(odataObject.LongValue, 10) : undefined;\n \n this.StringValue = \n odataObject.StringValue;\n \n }\n }\n entityDictionary['CommercePropertyValueClass'] = CommercePropertyValueClass;\n \n /**\n * CountryRegionInfo entity class.\n */\n export class CountryRegionInfoClass implements Entities.CountryRegionInfo {\n public CountryRegionId: string;\n public ShortName: string;\n public LongName: string;\n public ISOCode: string;\n public TimeZone: number;\n public LanguageId: string;\n public AddressFormatLines: Entities.AddressFormattingInfo[];\n public AddressFormatId: string;\n public AddressFormatName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.LongName = \n odataObject.LongName;\n \n this.ISOCode = \n odataObject.ISOCode;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AddressFormatLines = undefined;\n if (odataObject.AddressFormatLines) {\n this.AddressFormatLines = [];\n for (var i = 0; i < odataObject.AddressFormatLines.length; i++) {\n if (odataObject.AddressFormatLines[i] != null) {\n if (odataObject.AddressFormatLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AddressFormatLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AddressFormatLines[i] = new entityDictionary[className](odataObject.AddressFormatLines[i])\n }\n } else {\n this.AddressFormatLines[i] = new AddressFormattingInfoClass(odataObject.AddressFormatLines[i]);\n }\n } else {\n this.AddressFormatLines[i] = undefined;\n }\n }\n }\n \n this.AddressFormatId = \n odataObject.AddressFormatId;\n \n this.AddressFormatName = \n odataObject.AddressFormatName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionInfoClass'] = CountryRegionInfoClass;\n \n /**\n * CreditMemo entity class.\n */\n export class CreditMemoClass implements Entities.CreditMemo {\n public Id: string;\n public Balance: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreditMemoClass'] = CreditMemoClass;\n \n /**\n * Currency entity class.\n */\n export class CurrencyClass implements Entities.Currency {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public RoundOffPrice: number;\n public RoundOffSales: number;\n public RoundOffTypePrice: number;\n public RoundOffTypeSales: number;\n public NumberOfDecimals: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.RoundOffPrice = \n (odataObject.RoundOffPrice != null) ? parseFloat(odataObject.RoundOffPrice) : undefined;\n \n this.RoundOffSales = \n (odataObject.RoundOffSales != null) ? parseFloat(odataObject.RoundOffSales) : undefined;\n \n this.RoundOffTypePrice = \n odataObject.RoundOffTypePrice;\n \n this.RoundOffTypeSales = \n odataObject.RoundOffTypeSales;\n \n this.NumberOfDecimals = \n odataObject.NumberOfDecimals;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyClass'] = CurrencyClass;\n \n /**\n * CurrencyAmount entity class.\n */\n export class CurrencyAmountClass implements Entities.CurrencyAmount {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public ConvertedAmount: number;\n public RoundedConvertedAmount: number;\n public ExchangeRate: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.ConvertedAmount = \n (odataObject.ConvertedAmount != null) ? parseFloat(odataObject.ConvertedAmount) : undefined;\n \n this.RoundedConvertedAmount = \n (odataObject.RoundedConvertedAmount != null) ? parseFloat(odataObject.RoundedConvertedAmount) : undefined;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyAmountClass'] = CurrencyAmountClass;\n \n /**\n * ScaleUnitConfiguration entity class.\n */\n export class ScaleUnitConfigurationClass implements Entities.ScaleUnitConfiguration {\n public Id: string;\n public Name: string;\n public Region: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Region = \n odataObject.Region;\n \n }\n }\n entityDictionary['ScaleUnitConfigurationClass'] = ScaleUnitConfigurationClass;\n \n /**\n * EnvironmentConfiguration entity class.\n */\n export class EnvironmentConfigurationClass implements Entities.EnvironmentConfiguration {\n public EnvironmentId: string;\n public EnvironmentName: string;\n public TenantId: string;\n public ClientAppInsightsInstrumentationKey: string;\n public HardwareStationAppInsightsInstrumentationKey: string;\n public WindowsPhonePosAppInsightsInstrumentationKey: string;\n public BaseVersion: string;\n public ScaleUnit: Entities.ScaleUnitConfiguration;\n public AADAuthority: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.EnvironmentName = \n odataObject.EnvironmentName;\n \n this.TenantId = \n odataObject.TenantId;\n \n this.ClientAppInsightsInstrumentationKey = \n odataObject.ClientAppInsightsInstrumentationKey;\n \n this.HardwareStationAppInsightsInstrumentationKey = \n odataObject.HardwareStationAppInsightsInstrumentationKey;\n \n this.WindowsPhonePosAppInsightsInstrumentationKey = \n odataObject.WindowsPhonePosAppInsightsInstrumentationKey;\n \n this.BaseVersion = \n odataObject.BaseVersion;\n \n if (odataObject.ScaleUnit == null) {\n this.ScaleUnit = undefined;\n } else if (odataObject.ScaleUnit['@odata.type'] == null) {\n this.ScaleUnit = new ScaleUnitConfigurationClass(odataObject.ScaleUnit);\n } else {\n var className: string = odataObject.ScaleUnit['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ScaleUnit = new entityDictionary[className](odataObject.ScaleUnit)\n }\n }\n\n \n this.AADAuthority = \n odataObject.AADAuthority;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['EnvironmentConfigurationClass'] = EnvironmentConfigurationClass;\n \n /**\n * DeviceConfiguration entity class.\n */\n export class DeviceConfigurationClass implements Entities.DeviceConfiguration {\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowItemsAggregation: boolean;\n public AggregateItemsForPrinting: boolean;\n public AggregatePayments: boolean;\n public AlwaysExpandTransactionScreenLineDetails: boolean;\n public AuditEnabled: boolean;\n public DiscountAtTotal: string;\n public ProductDiscount: string;\n public ManuallyCalculateComplexDiscounts: boolean;\n public DisplaySecondaryTotalCurrency: boolean;\n public EndOfTransaction: string;\n public ItemNotOnFile: string;\n public LimitStaffListToStore: boolean;\n public LineItemTaxChange: string;\n public MarkUp: string;\n public MaximumPrice: number;\n public MaximumQuantity: number;\n public MinimumPasswordLength: number;\n public MustKeyInPriceIfZero: boolean;\n public NfcEContingencyModeEnabled: string;\n public NfcEVoided: string;\n public FunctionalityProfileDescription: string;\n public OverridePrice: string;\n public PrintVoidTransactionReceipts: boolean;\n public PrintReceiptsOnCardDecline: boolean;\n public PrintXZReportsOnTerminal: boolean;\n public PrintTenderDetailsOnXReport: boolean;\n public ProfileId: string;\n public RefundSale: string;\n public ReturnProduct: string;\n public SalesPerson: string;\n public SecondaryTotalCurrency: string;\n public SelectHardwareStationOnTendering: boolean;\n public SerialNumber: string;\n public ShowStaffListAtLogOn: boolean;\n public StaffBarcodeLogOn: boolean;\n public StaffBarcodeLogOnRequiresPassword: boolean;\n public StaffCardLogOn: boolean;\n public StaffCardLogOnRequiresPassword: boolean;\n public StartOfTransaction: string;\n public EnableTimeRegistration: boolean;\n public TenderDeclaration: string;\n public TransactionTaxChange: string;\n public VoidItem: string;\n public VoidPayment: string;\n public SalesModeDefaultsAsCustomerOrder: boolean;\n public CreateOfflineCustomerOrders: boolean;\n public CreateAsyncCustomers: boolean;\n public EnableAxCustomerSearch: boolean;\n public VoidTransaction: string;\n public CultureName: string;\n public SystemLegalTermsUrl: string;\n public SystemPrivacyStatementUrl: string;\n public HideTrainingMode: boolean;\n public StorePhone: string;\n public StatementMethod: string;\n public StoreNumber: string;\n public ChannelId: number;\n public StoreTaxGroup: string;\n public TaxIdNumber: string;\n public TaxOverrideGroup: number;\n public TenderDeclarationCalculation: number;\n public UseCustomerBasedTax: boolean;\n public UseDestinationBasedTax: boolean;\n public AutoLogOffTimeoutInMinutes: number;\n public AutoExitMethodValue: number;\n public CustomerDisplayText1: string;\n public CustomerDisplayText2: string;\n public EFTStoreId: number;\n public EFTTerminalId: string;\n public ExitAfterEachTransaction: boolean;\n public HardwareProfile: string;\n public Placement: string;\n public TerminalDescription: string;\n public OpenDrawer: string;\n public OpenDrawerAtLogOnLogOff: boolean;\n public PrintTaxRefundChecks: boolean;\n public StandAlone: boolean;\n public TerminalId: string;\n public TerminalStatement: boolean;\n public VisualProfile: string;\n public Currency: string;\n public InventLocationId: string;\n public IncludeKitComponents: boolean;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontScheme: number;\n public ShowAppBarLabel: boolean;\n public LogOnBackgroundPictureAsBase64: string;\n public LogOnBackgroundPicturePortraitAsBase64: string;\n public BackgroundPictureAsBase64: string;\n public LogonBackgroundPictureId: number;\n public LogonBackgroundPictureIdCompact: number;\n public LogonBackgroundPictureIdPortrait: number;\n public LogonBackgroundPictureIdCompactPortrait: number;\n public BackgroundPictureId: number;\n public RequireAmountDeclaration: boolean;\n public DecimalNotRequiredForMinorCurrencyUnit: boolean;\n public MaxTransactionSearchResults: number;\n public OfflineProfileId: number;\n public NewOfflineDatabaseCheckInterval: number;\n public OfflineTransactionUploadInterval: number;\n public ReconnectToOnlineInterval: number;\n public SwitchToOfflineTimeout: number;\n public OfflineSwitchApiPerformanceThresholdInSeconds: number;\n public ReconnectFromPerformanceInducedOfflineIntervalInSeconds: number;\n public RetentionDays: number;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public CreateRecording: boolean;\n public PlaybackRecording: boolean;\n public ShouldUseDefaultCommisionSalesGroup: boolean;\n public AskForSalesRepresentative: number;\n public IsSalesRepRequired: boolean;\n public ProhibitMixingSalesAndReturns: boolean;\n public ApplyDiscountsToPriceKeyedIn: boolean;\n public ApplyDiscountsToPriceOverrides: boolean;\n public IsProductSuggestionsEnabled: boolean;\n public ProductSearchType: string;\n public TerminalRecId: number;\n public DeviceRecId: number;\n public DenominationsToDisplayValue: number;\n public PromptOnSeamlessOffline: boolean;\n public RetryCountToOffline: number;\n public EnableAdvancedOfflineSwitching: boolean;\n public SystemHealthCheckInterval: number;\n public RejectOrderFulfillment: string;\n public ManuallyCalculateTaxes: boolean;\n public EmployeeLogonTypeValue: number;\n public StartAmountCalculation: number;\n public BankDropCalculation: number;\n public GenerateLoyaltyCardNumber: boolean;\n public FiscalRegistrationProcessId: string;\n public IncludeSalesOrderInvoices: boolean;\n public IncludeFreeTextInvoices: boolean;\n public IncludeProjectInvoices: boolean;\n public IncludeCreditNoteInvoices: boolean;\n public DisplayTaxExemptInLineDetails: boolean;\n public TaxExemptReceiptIndicator: string;\n public ManuallyCalculateCharges: boolean;\n public ChargeOverrideReasonCode: string;\n public ShiftReconcilation: string;\n public CustomerAccountFloorLimit: number;\n public VoidSuspendedTransactionsOnCloseShift: boolean;\n public ShowDateTime: boolean;\n public UseAdvancedCashManagement: boolean;\n public DefaultCustomerSearchModeValue: number;\n public AllowManualOfflineBeforeSignIn: boolean;\n public UseFinancialReconciliationInStore: boolean;\n public RequirePaymentForFulfillmentValue: number;\n public CardNotPresentProcessingConfigurationValue: number;\n public EnableQuickPayShortcuts: boolean;\n public ChangeDueBehaviorValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowItemsAggregation = \n odataObject.AllowItemsAggregation;\n \n this.AggregateItemsForPrinting = \n odataObject.AggregateItemsForPrinting;\n \n this.AggregatePayments = \n odataObject.AggregatePayments;\n \n this.AlwaysExpandTransactionScreenLineDetails = \n odataObject.AlwaysExpandTransactionScreenLineDetails;\n \n this.AuditEnabled = \n odataObject.AuditEnabled;\n \n this.DiscountAtTotal = \n odataObject.DiscountAtTotal;\n \n this.ProductDiscount = \n odataObject.ProductDiscount;\n \n this.ManuallyCalculateComplexDiscounts = \n odataObject.ManuallyCalculateComplexDiscounts;\n \n this.DisplaySecondaryTotalCurrency = \n odataObject.DisplaySecondaryTotalCurrency;\n \n this.EndOfTransaction = \n odataObject.EndOfTransaction;\n \n this.ItemNotOnFile = \n odataObject.ItemNotOnFile;\n \n this.LimitStaffListToStore = \n odataObject.LimitStaffListToStore;\n \n this.LineItemTaxChange = \n odataObject.LineItemTaxChange;\n \n this.MarkUp = \n odataObject.MarkUp;\n \n this.MaximumPrice = \n (odataObject.MaximumPrice != null) ? parseFloat(odataObject.MaximumPrice) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumPasswordLength = \n odataObject.MinimumPasswordLength;\n \n this.MustKeyInPriceIfZero = \n odataObject.MustKeyInPriceIfZero;\n \n this.NfcEContingencyModeEnabled = \n odataObject.NfcEContingencyModeEnabled;\n \n this.NfcEVoided = \n odataObject.NfcEVoided;\n \n this.FunctionalityProfileDescription = \n odataObject.FunctionalityProfileDescription;\n \n this.OverridePrice = \n odataObject.OverridePrice;\n \n this.PrintVoidTransactionReceipts = \n odataObject.PrintVoidTransactionReceipts;\n \n this.PrintReceiptsOnCardDecline = \n odataObject.PrintReceiptsOnCardDecline;\n \n this.PrintXZReportsOnTerminal = \n odataObject.PrintXZReportsOnTerminal;\n \n this.PrintTenderDetailsOnXReport = \n odataObject.PrintTenderDetailsOnXReport;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RefundSale = \n odataObject.RefundSale;\n \n this.ReturnProduct = \n odataObject.ReturnProduct;\n \n this.SalesPerson = \n odataObject.SalesPerson;\n \n this.SecondaryTotalCurrency = \n odataObject.SecondaryTotalCurrency;\n \n this.SelectHardwareStationOnTendering = \n odataObject.SelectHardwareStationOnTendering;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ShowStaffListAtLogOn = \n odataObject.ShowStaffListAtLogOn;\n \n this.StaffBarcodeLogOn = \n odataObject.StaffBarcodeLogOn;\n \n this.StaffBarcodeLogOnRequiresPassword = \n odataObject.StaffBarcodeLogOnRequiresPassword;\n \n this.StaffCardLogOn = \n odataObject.StaffCardLogOn;\n \n this.StaffCardLogOnRequiresPassword = \n odataObject.StaffCardLogOnRequiresPassword;\n \n this.StartOfTransaction = \n odataObject.StartOfTransaction;\n \n this.EnableTimeRegistration = \n odataObject.EnableTimeRegistration;\n \n this.TenderDeclaration = \n odataObject.TenderDeclaration;\n \n this.TransactionTaxChange = \n odataObject.TransactionTaxChange;\n \n this.VoidItem = \n odataObject.VoidItem;\n \n this.VoidPayment = \n odataObject.VoidPayment;\n \n this.SalesModeDefaultsAsCustomerOrder = \n odataObject.SalesModeDefaultsAsCustomerOrder;\n \n this.CreateOfflineCustomerOrders = \n odataObject.CreateOfflineCustomerOrders;\n \n this.CreateAsyncCustomers = \n odataObject.CreateAsyncCustomers;\n \n this.EnableAxCustomerSearch = \n odataObject.EnableAxCustomerSearch;\n \n this.VoidTransaction = \n odataObject.VoidTransaction;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.SystemLegalTermsUrl = \n odataObject.SystemLegalTermsUrl;\n \n this.SystemPrivacyStatementUrl = \n odataObject.SystemPrivacyStatementUrl;\n \n this.HideTrainingMode = \n odataObject.HideTrainingMode;\n \n this.StorePhone = \n odataObject.StorePhone;\n \n this.StatementMethod = \n odataObject.StatementMethod;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreTaxGroup = \n odataObject.StoreTaxGroup;\n \n this.TaxIdNumber = \n odataObject.TaxIdNumber;\n \n this.TaxOverrideGroup = \n (odataObject.TaxOverrideGroup != null) ? parseInt(odataObject.TaxOverrideGroup, 10) : undefined;\n \n this.TenderDeclarationCalculation = \n odataObject.TenderDeclarationCalculation;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.AutoLogOffTimeoutInMinutes = \n odataObject.AutoLogOffTimeoutInMinutes;\n \n this.AutoExitMethodValue = \n odataObject.AutoExitMethodValue;\n \n this.CustomerDisplayText1 = \n odataObject.CustomerDisplayText1;\n \n this.CustomerDisplayText2 = \n odataObject.CustomerDisplayText2;\n \n this.EFTStoreId = \n (odataObject.EFTStoreId != null) ? parseInt(odataObject.EFTStoreId, 10) : undefined;\n \n this.EFTTerminalId = \n odataObject.EFTTerminalId;\n \n this.ExitAfterEachTransaction = \n odataObject.ExitAfterEachTransaction;\n \n this.HardwareProfile = \n odataObject.HardwareProfile;\n \n this.Placement = \n odataObject.Placement;\n \n this.TerminalDescription = \n odataObject.TerminalDescription;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.OpenDrawerAtLogOnLogOff = \n odataObject.OpenDrawerAtLogOnLogOff;\n \n this.PrintTaxRefundChecks = \n odataObject.PrintTaxRefundChecks;\n \n this.StandAlone = \n odataObject.StandAlone;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TerminalStatement = \n odataObject.TerminalStatement;\n \n this.VisualProfile = \n odataObject.VisualProfile;\n \n this.Currency = \n odataObject.Currency;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.IncludeKitComponents = \n odataObject.IncludeKitComponents;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontScheme = \n odataObject.FontScheme;\n \n this.ShowAppBarLabel = \n odataObject.ShowAppBarLabel;\n \n this.LogOnBackgroundPictureAsBase64 = \n odataObject.LogOnBackgroundPictureAsBase64;\n \n this.LogOnBackgroundPicturePortraitAsBase64 = \n odataObject.LogOnBackgroundPicturePortraitAsBase64;\n \n this.BackgroundPictureAsBase64 = \n odataObject.BackgroundPictureAsBase64;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompact = \n (odataObject.LogonBackgroundPictureIdCompact != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompact, 10) : undefined;\n \n this.LogonBackgroundPictureIdPortrait = \n (odataObject.LogonBackgroundPictureIdPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdPortrait, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompactPortrait = \n (odataObject.LogonBackgroundPictureIdCompactPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompactPortrait, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.RequireAmountDeclaration = \n odataObject.RequireAmountDeclaration;\n \n this.DecimalNotRequiredForMinorCurrencyUnit = \n odataObject.DecimalNotRequiredForMinorCurrencyUnit;\n \n this.MaxTransactionSearchResults = \n odataObject.MaxTransactionSearchResults;\n \n this.OfflineProfileId = \n (odataObject.OfflineProfileId != null) ? parseInt(odataObject.OfflineProfileId, 10) : undefined;\n \n this.NewOfflineDatabaseCheckInterval = \n odataObject.NewOfflineDatabaseCheckInterval;\n \n this.OfflineTransactionUploadInterval = \n odataObject.OfflineTransactionUploadInterval;\n \n this.ReconnectToOnlineInterval = \n odataObject.ReconnectToOnlineInterval;\n \n this.SwitchToOfflineTimeout = \n odataObject.SwitchToOfflineTimeout;\n \n this.OfflineSwitchApiPerformanceThresholdInSeconds = \n odataObject.OfflineSwitchApiPerformanceThresholdInSeconds;\n \n this.ReconnectFromPerformanceInducedOfflineIntervalInSeconds = \n odataObject.ReconnectFromPerformanceInducedOfflineIntervalInSeconds;\n \n this.RetentionDays = \n odataObject.RetentionDays;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.CreateRecording = \n odataObject.CreateRecording;\n \n this.PlaybackRecording = \n odataObject.PlaybackRecording;\n \n this.ShouldUseDefaultCommisionSalesGroup = \n odataObject.ShouldUseDefaultCommisionSalesGroup;\n \n this.AskForSalesRepresentative = \n odataObject.AskForSalesRepresentative;\n \n this.IsSalesRepRequired = \n odataObject.IsSalesRepRequired;\n \n this.ProhibitMixingSalesAndReturns = \n odataObject.ProhibitMixingSalesAndReturns;\n \n this.ApplyDiscountsToPriceKeyedIn = \n odataObject.ApplyDiscountsToPriceKeyedIn;\n \n this.ApplyDiscountsToPriceOverrides = \n odataObject.ApplyDiscountsToPriceOverrides;\n \n this.IsProductSuggestionsEnabled = \n odataObject.IsProductSuggestionsEnabled;\n \n this.ProductSearchType = \n odataObject.ProductSearchType;\n \n this.TerminalRecId = \n (odataObject.TerminalRecId != null) ? parseInt(odataObject.TerminalRecId, 10) : undefined;\n \n this.DeviceRecId = \n (odataObject.DeviceRecId != null) ? parseInt(odataObject.DeviceRecId, 10) : undefined;\n \n this.DenominationsToDisplayValue = \n odataObject.DenominationsToDisplayValue;\n \n this.PromptOnSeamlessOffline = \n odataObject.PromptOnSeamlessOffline;\n \n this.RetryCountToOffline = \n odataObject.RetryCountToOffline;\n \n this.EnableAdvancedOfflineSwitching = \n odataObject.EnableAdvancedOfflineSwitching;\n \n this.SystemHealthCheckInterval = \n odataObject.SystemHealthCheckInterval;\n \n this.RejectOrderFulfillment = \n odataObject.RejectOrderFulfillment;\n \n this.ManuallyCalculateTaxes = \n odataObject.ManuallyCalculateTaxes;\n \n this.EmployeeLogonTypeValue = \n odataObject.EmployeeLogonTypeValue;\n \n this.StartAmountCalculation = \n odataObject.StartAmountCalculation;\n \n this.BankDropCalculation = \n odataObject.BankDropCalculation;\n \n this.GenerateLoyaltyCardNumber = \n odataObject.GenerateLoyaltyCardNumber;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IncludeSalesOrderInvoices = \n odataObject.IncludeSalesOrderInvoices;\n \n this.IncludeFreeTextInvoices = \n odataObject.IncludeFreeTextInvoices;\n \n this.IncludeProjectInvoices = \n odataObject.IncludeProjectInvoices;\n \n this.IncludeCreditNoteInvoices = \n odataObject.IncludeCreditNoteInvoices;\n \n this.DisplayTaxExemptInLineDetails = \n odataObject.DisplayTaxExemptInLineDetails;\n \n this.TaxExemptReceiptIndicator = \n odataObject.TaxExemptReceiptIndicator;\n \n this.ManuallyCalculateCharges = \n odataObject.ManuallyCalculateCharges;\n \n this.ChargeOverrideReasonCode = \n odataObject.ChargeOverrideReasonCode;\n \n this.ShiftReconcilation = \n odataObject.ShiftReconcilation;\n \n this.CustomerAccountFloorLimit = \n (odataObject.CustomerAccountFloorLimit != null) ? parseFloat(odataObject.CustomerAccountFloorLimit) : undefined;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.ShowDateTime = \n odataObject.ShowDateTime;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.DefaultCustomerSearchModeValue = \n odataObject.DefaultCustomerSearchModeValue;\n \n this.AllowManualOfflineBeforeSignIn = \n odataObject.AllowManualOfflineBeforeSignIn;\n \n this.UseFinancialReconciliationInStore = \n odataObject.UseFinancialReconciliationInStore;\n \n this.RequirePaymentForFulfillmentValue = \n odataObject.RequirePaymentForFulfillmentValue;\n \n this.CardNotPresentProcessingConfigurationValue = \n odataObject.CardNotPresentProcessingConfigurationValue;\n \n this.EnableQuickPayShortcuts = \n odataObject.EnableQuickPayShortcuts;\n \n this.ChangeDueBehaviorValue = \n odataObject.ChangeDueBehaviorValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceConfigurationClass'] = DeviceConfigurationClass;\n \n /**\n * VisualProfile entity class.\n */\n export class VisualProfileClass implements Entities.VisualProfile {\n public ChannelId: number;\n public TerminalId: string;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontSchemeTypeValue: number;\n public IsAppBarLabelVisible: boolean;\n public IsDateTimeVisible: boolean;\n public LogOnLayoutTypeValue: number;\n public LogOnKeyboardTypeValue: number;\n public LogonBackgroundPictureId: number;\n public CompactLogonBackgroundPictureId: number;\n public PortraitLogonBackgroundPictureId: number;\n public CompactPortraitLogonBackgroundPictureId: number;\n public BackgroundPictureId: number;\n public LogOnLogoPictureId: number;\n public IsProductIdVisibleOnCartLine: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontSchemeTypeValue = \n odataObject.FontSchemeTypeValue;\n \n this.IsAppBarLabelVisible = \n odataObject.IsAppBarLabelVisible;\n \n this.IsDateTimeVisible = \n odataObject.IsDateTimeVisible;\n \n this.LogOnLayoutTypeValue = \n odataObject.LogOnLayoutTypeValue;\n \n this.LogOnKeyboardTypeValue = \n odataObject.LogOnKeyboardTypeValue;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.CompactLogonBackgroundPictureId = \n (odataObject.CompactLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactLogonBackgroundPictureId, 10) : undefined;\n \n this.PortraitLogonBackgroundPictureId = \n (odataObject.PortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.PortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.CompactPortraitLogonBackgroundPictureId = \n (odataObject.CompactPortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactPortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.LogOnLogoPictureId = \n (odataObject.LogOnLogoPictureId != null) ? parseInt(odataObject.LogOnLogoPictureId, 10) : undefined;\n \n this.IsProductIdVisibleOnCartLine = \n odataObject.IsProductIdVisibleOnCartLine;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VisualProfileClass'] = VisualProfileClass;\n \n /**\n * OperationalInsightsConfiguration entity class.\n */\n export class OperationalInsightsConfigurationClass implements Entities.OperationalInsightsConfiguration {\n public InstrumentationKey: string;\n public EnvironmentId: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InstrumentationKey = \n odataObject.InstrumentationKey;\n \n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationalInsightsConfigurationClass'] = OperationalInsightsConfigurationClass;\n \n /**\n * Device entity class.\n */\n export class DeviceClass implements Entities.Device {\n public ChannelId: number;\n public RecordId: number;\n public DeviceNumber: string;\n public DeviceId: string;\n public Description: string;\n public DeviceType: number;\n public TerminalRecordId: number;\n public TerminalId: string;\n public ChannelName: string;\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowMassActivation: boolean;\n public TokenIssueTime: Date;\n public ActivationStatusValue: number;\n public Token: string;\n public CountryRegionIsoCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.DeviceId = \n odataObject.DeviceId;\n \n this.Description = \n odataObject.Description;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.TerminalRecordId = \n (odataObject.TerminalRecordId != null) ? parseInt(odataObject.TerminalRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ChannelName = \n odataObject.ChannelName;\n \n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.TokenIssueTime = \n (odataObject.TokenIssueTime instanceof Date) ? odataObject.TokenIssueTime\n : (odataObject.TokenIssueTime != null) ? jsonLightReadStringPropertyValue(odataObject.TokenIssueTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceClass'] = DeviceClass;\n \n /**\n * DiscountCode entity class.\n */\n export class DiscountCodeClass implements Entities.DiscountCode {\n public RecordId: number;\n public Barcode: string;\n public Code: string;\n public ConcurrencyMode: number;\n public Description: string;\n public Disclaimer: string;\n public IsDiscountCodeRequired: boolean;\n public Name: string;\n public OfferId: string;\n public IsEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.Code = \n odataObject.Code;\n \n this.ConcurrencyMode = \n odataObject.ConcurrencyMode;\n \n this.Description = \n odataObject.Description;\n \n this.Disclaimer = \n odataObject.Disclaimer;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.Name = \n odataObject.Name;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountCodeClass'] = DiscountCodeClass;\n \n /**\n * DistrictInfo entity class.\n */\n export class DistrictInfoClass implements Entities.DistrictInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DistrictInfoClass'] = DistrictInfoClass;\n \n /**\n * HardwareProfile entity class.\n */\n export class HardwareProfileClass implements Entities.HardwareProfile {\n public RecordId: number;\n public LineDisplayDelayForLinkedItems: number;\n public LineDisplayBalanceText: string;\n public LineDisplayBinaryConversion: boolean;\n public LineDisplayCharacterSet: number;\n public LineDisplayClosedLine1: string;\n public LineDisplayClosedLine2: string;\n public LineDisplayDeviceDescription: string;\n public LineDisplayDeviceTypeValue: number;\n public LineDisplayDeviceName: string;\n public LineDisplayDisplayLinkedItem: boolean;\n public LineDisplayDisplayTerminalClosed: boolean;\n public LineDisplayTotalText: string;\n public DualDisplayActive: boolean;\n public DualDisplayWebBrowserUrl: string;\n public DualDisplayImageRotatorInterval: number;\n public DualDisplayImageRotatorPath: string;\n public DualDisplayReceiptWidthPercentage: number;\n public DualDisplayDisplayType: string;\n public EftTypeId: number;\n public EftCompanyId: string;\n public EftConfiguration: number;\n public EftPaymentConnectorName: string;\n public EftData: string;\n public EftDescription: string;\n public EftMerchantId: string;\n public EftPassword: string;\n public EftServerName: string;\n public EftServerPort: string;\n public EftUserId: string;\n public EftTestMode: boolean;\n public MsrEndTrack1: string;\n public MsrEndTrack2: string;\n public FiscalPrinterManagementReportPAFIdentification: string;\n public FiscalPrinterManagementReportConfigParameter: string;\n public FiscalPrinterManagementReportTenderType: string;\n public FiscalPrinterManagementReportGiftCard: string;\n public FiscalRegisterDeviceTypeValue: number;\n public FiscalRegisterConfiguration: string;\n public FiscalRegisterDeviceDescription: string;\n public FiscalRegisterDeviceName: string;\n public KeyboardMappingId: string;\n public KeyLockDeviceTypeValue: number;\n public KeyLockDeviceDescription: string;\n public KeyLockDeviceName: string;\n public MsrDeviceTypeValue: number;\n public MsrDeviceDescription: string;\n public MsrDeviceName: string;\n public MsrMake: string;\n public MsrModel: string;\n public MsrSeparator: string;\n public MsrStartTrack: string;\n public PinPadDeviceTypeValue: number;\n public PinPadDeviceName: string;\n public PinPadMake: string;\n public PinPadModel: string;\n public PinPadDeviceDescription: string;\n public ProfileDescription: string;\n public ProfileId: string;\n public RFIDDeviceTypeValue: number;\n public RFIDDeviceName: string;\n public RFIDDeviceDescription: string;\n public ScaleDeviceTypeValue: number;\n public ScaleDeviceName: string;\n public ScaleDeviceDescription: string;\n public ScaleManualInputAllowed: boolean;\n public ScaleTimeoutInSeconds: number;\n public SignatureCaptureDeviceTypeValue: number;\n public SignatureCaptureDeviceName: string;\n public SignatureCaptureMake: string;\n public SignatureCaptureModel: string;\n public SignatureCaptureDeviceDescription: string;\n public SignatureCaptureFormName: string;\n public Printers: Entities.HardwareProfilePrinter[];\n public Scanners: Entities.HardwareProfileScanner[];\n public FiscalIntegrationTechnicalProfiles: Entities.FiscalIntegrationTechnicalProfile[];\n public CashDrawers: Entities.HardwareProfileCashDrawer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineDisplayDelayForLinkedItems = \n odataObject.LineDisplayDelayForLinkedItems;\n \n this.LineDisplayBalanceText = \n odataObject.LineDisplayBalanceText;\n \n this.LineDisplayBinaryConversion = \n odataObject.LineDisplayBinaryConversion;\n \n this.LineDisplayCharacterSet = \n odataObject.LineDisplayCharacterSet;\n \n this.LineDisplayClosedLine1 = \n odataObject.LineDisplayClosedLine1;\n \n this.LineDisplayClosedLine2 = \n odataObject.LineDisplayClosedLine2;\n \n this.LineDisplayDeviceDescription = \n odataObject.LineDisplayDeviceDescription;\n \n this.LineDisplayDeviceTypeValue = \n odataObject.LineDisplayDeviceTypeValue;\n \n this.LineDisplayDeviceName = \n odataObject.LineDisplayDeviceName;\n \n this.LineDisplayDisplayLinkedItem = \n odataObject.LineDisplayDisplayLinkedItem;\n \n this.LineDisplayDisplayTerminalClosed = \n odataObject.LineDisplayDisplayTerminalClosed;\n \n this.LineDisplayTotalText = \n odataObject.LineDisplayTotalText;\n \n this.DualDisplayActive = \n odataObject.DualDisplayActive;\n \n this.DualDisplayWebBrowserUrl = \n odataObject.DualDisplayWebBrowserUrl;\n \n this.DualDisplayImageRotatorInterval = \n odataObject.DualDisplayImageRotatorInterval;\n \n this.DualDisplayImageRotatorPath = \n odataObject.DualDisplayImageRotatorPath;\n \n this.DualDisplayReceiptWidthPercentage = \n (odataObject.DualDisplayReceiptWidthPercentage != null) ? parseFloat(odataObject.DualDisplayReceiptWidthPercentage) : undefined;\n \n this.DualDisplayDisplayType = \n odataObject.DualDisplayDisplayType;\n \n this.EftTypeId = \n odataObject.EftTypeId;\n \n this.EftCompanyId = \n odataObject.EftCompanyId;\n \n this.EftConfiguration = \n odataObject.EftConfiguration;\n \n this.EftPaymentConnectorName = \n odataObject.EftPaymentConnectorName;\n \n this.EftData = \n odataObject.EftData;\n \n this.EftDescription = \n odataObject.EftDescription;\n \n this.EftMerchantId = \n odataObject.EftMerchantId;\n \n this.EftPassword = \n odataObject.EftPassword;\n \n this.EftServerName = \n odataObject.EftServerName;\n \n this.EftServerPort = \n odataObject.EftServerPort;\n \n this.EftUserId = \n odataObject.EftUserId;\n \n this.EftTestMode = \n odataObject.EftTestMode;\n \n this.MsrEndTrack1 = \n odataObject.MsrEndTrack1;\n \n this.MsrEndTrack2 = \n odataObject.MsrEndTrack2;\n \n this.FiscalPrinterManagementReportPAFIdentification = \n odataObject.FiscalPrinterManagementReportPAFIdentification;\n \n this.FiscalPrinterManagementReportConfigParameter = \n odataObject.FiscalPrinterManagementReportConfigParameter;\n \n this.FiscalPrinterManagementReportTenderType = \n odataObject.FiscalPrinterManagementReportTenderType;\n \n this.FiscalPrinterManagementReportGiftCard = \n odataObject.FiscalPrinterManagementReportGiftCard;\n \n this.FiscalRegisterDeviceTypeValue = \n odataObject.FiscalRegisterDeviceTypeValue;\n \n this.FiscalRegisterConfiguration = \n odataObject.FiscalRegisterConfiguration;\n \n this.FiscalRegisterDeviceDescription = \n odataObject.FiscalRegisterDeviceDescription;\n \n this.FiscalRegisterDeviceName = \n odataObject.FiscalRegisterDeviceName;\n \n this.KeyboardMappingId = \n odataObject.KeyboardMappingId;\n \n this.KeyLockDeviceTypeValue = \n odataObject.KeyLockDeviceTypeValue;\n \n this.KeyLockDeviceDescription = \n odataObject.KeyLockDeviceDescription;\n \n this.KeyLockDeviceName = \n odataObject.KeyLockDeviceName;\n \n this.MsrDeviceTypeValue = \n odataObject.MsrDeviceTypeValue;\n \n this.MsrDeviceDescription = \n odataObject.MsrDeviceDescription;\n \n this.MsrDeviceName = \n odataObject.MsrDeviceName;\n \n this.MsrMake = \n odataObject.MsrMake;\n \n this.MsrModel = \n odataObject.MsrModel;\n \n this.MsrSeparator = \n odataObject.MsrSeparator;\n \n this.MsrStartTrack = \n odataObject.MsrStartTrack;\n \n this.PinPadDeviceTypeValue = \n odataObject.PinPadDeviceTypeValue;\n \n this.PinPadDeviceName = \n odataObject.PinPadDeviceName;\n \n this.PinPadMake = \n odataObject.PinPadMake;\n \n this.PinPadModel = \n odataObject.PinPadModel;\n \n this.PinPadDeviceDescription = \n odataObject.PinPadDeviceDescription;\n \n this.ProfileDescription = \n odataObject.ProfileDescription;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RFIDDeviceTypeValue = \n odataObject.RFIDDeviceTypeValue;\n \n this.RFIDDeviceName = \n odataObject.RFIDDeviceName;\n \n this.RFIDDeviceDescription = \n odataObject.RFIDDeviceDescription;\n \n this.ScaleDeviceTypeValue = \n odataObject.ScaleDeviceTypeValue;\n \n this.ScaleDeviceName = \n odataObject.ScaleDeviceName;\n \n this.ScaleDeviceDescription = \n odataObject.ScaleDeviceDescription;\n \n this.ScaleManualInputAllowed = \n odataObject.ScaleManualInputAllowed;\n \n this.ScaleTimeoutInSeconds = \n odataObject.ScaleTimeoutInSeconds;\n \n this.SignatureCaptureDeviceTypeValue = \n odataObject.SignatureCaptureDeviceTypeValue;\n \n this.SignatureCaptureDeviceName = \n odataObject.SignatureCaptureDeviceName;\n \n this.SignatureCaptureMake = \n odataObject.SignatureCaptureMake;\n \n this.SignatureCaptureModel = \n odataObject.SignatureCaptureModel;\n \n this.SignatureCaptureDeviceDescription = \n odataObject.SignatureCaptureDeviceDescription;\n \n this.SignatureCaptureFormName = \n odataObject.SignatureCaptureFormName;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new HardwareProfilePrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.Scanners = undefined;\n if (odataObject.Scanners) {\n this.Scanners = [];\n for (var i = 0; i < odataObject.Scanners.length; i++) {\n if (odataObject.Scanners[i] != null) {\n if (odataObject.Scanners[i]['@odata.type'] != null) {\n var className: string = odataObject.Scanners[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scanners[i] = new entityDictionary[className](odataObject.Scanners[i])\n }\n } else {\n this.Scanners[i] = new HardwareProfileScannerClass(odataObject.Scanners[i]);\n }\n } else {\n this.Scanners[i] = undefined;\n }\n }\n }\n \n this.FiscalIntegrationTechnicalProfiles = undefined;\n if (odataObject.FiscalIntegrationTechnicalProfiles) {\n this.FiscalIntegrationTechnicalProfiles = [];\n for (var i = 0; i < odataObject.FiscalIntegrationTechnicalProfiles.length; i++) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i] != null) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalIntegrationTechnicalProfiles[i] = new entityDictionary[className](odataObject.FiscalIntegrationTechnicalProfiles[i])\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalIntegrationTechnicalProfiles[i]);\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = undefined;\n }\n }\n }\n \n this.CashDrawers = undefined;\n if (odataObject.CashDrawers) {\n this.CashDrawers = [];\n for (var i = 0; i < odataObject.CashDrawers.length; i++) {\n if (odataObject.CashDrawers[i] != null) {\n if (odataObject.CashDrawers[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawers[i] = new entityDictionary[className](odataObject.CashDrawers[i])\n }\n } else {\n this.CashDrawers[i] = new HardwareProfileCashDrawerClass(odataObject.CashDrawers[i]);\n }\n } else {\n this.CashDrawers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileClass'] = HardwareProfileClass;\n \n /**\n * SupportedLanguage entity class.\n */\n export class SupportedLanguageClass implements Entities.SupportedLanguage {\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SupportedLanguageClass'] = SupportedLanguageClass;\n \n /**\n * PaymentCard entity class.\n */\n export class PaymentCardClass implements Entities.PaymentCard {\n public UseShippingAddress: boolean;\n public CardNumber: string;\n public CCID: string;\n public Track1: string;\n public Track2: string;\n public Track3: string;\n public VoiceAuthorizationCode: string;\n public EncryptedPin: string;\n public AdditionalSecurityData: string;\n public IsSwipe: boolean;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseShippingAddress = \n odataObject.UseShippingAddress;\n \n this.CardNumber = \n odataObject.CardNumber;\n \n this.CCID = \n odataObject.CCID;\n \n this.Track1 = \n odataObject.Track1;\n \n this.Track2 = \n odataObject.Track2;\n \n this.Track3 = \n odataObject.Track3;\n \n this.VoiceAuthorizationCode = \n odataObject.VoiceAuthorizationCode;\n \n this.EncryptedPin = \n odataObject.EncryptedPin;\n \n this.AdditionalSecurityData = \n odataObject.AdditionalSecurityData;\n \n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentCardClass'] = PaymentCardClass;\n \n /**\n * CardPaymentAcceptSettings entity class.\n */\n export class CardPaymentAcceptSettingsClass implements Entities.CardPaymentAcceptSettings {\n public HostPageOrigin: string;\n public AdaptorPath: string;\n public CardTokenizationEnabled: boolean;\n public CardPaymentEnabled: boolean;\n public PaymentAmount: number;\n public HideBillingAddress: boolean;\n public TenderTypeId: string;\n public Locale: string;\n public RequireShippingAddress: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HostPageOrigin = \n odataObject.HostPageOrigin;\n \n this.AdaptorPath = \n odataObject.AdaptorPath;\n \n this.CardTokenizationEnabled = \n odataObject.CardTokenizationEnabled;\n \n this.CardPaymentEnabled = \n odataObject.CardPaymentEnabled;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.HideBillingAddress = \n odataObject.HideBillingAddress;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Locale = \n odataObject.Locale;\n \n this.RequireShippingAddress = \n odataObject.RequireShippingAddress;\n \n }\n }\n entityDictionary['CardPaymentAcceptSettingsClass'] = CardPaymentAcceptSettingsClass;\n \n /**\n * CardPaymentAcceptPoint entity class.\n */\n export class CardPaymentAcceptPointClass implements Entities.CardPaymentAcceptPoint {\n public AcceptPageUrl: string;\n public AcceptPageSubmitUrl: string;\n public MessageOrigin: string;\n public AcceptPageContent: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AcceptPageUrl = \n odataObject.AcceptPageUrl;\n \n this.AcceptPageSubmitUrl = \n odataObject.AcceptPageSubmitUrl;\n \n this.MessageOrigin = \n odataObject.MessageOrigin;\n \n this.AcceptPageContent = \n odataObject.AcceptPageContent;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['CardPaymentAcceptPointClass'] = CardPaymentAcceptPointClass;\n \n /**\n * CardPaymentAcceptResult entity class.\n */\n export class CardPaymentAcceptResultClass implements Entities.CardPaymentAcceptResult {\n public TenderLine: Entities.TenderLine;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public PaymentSdkErrors: Entities.PaymentError[];\n public AdditionalContext: string;\n public AccessCode: string;\n public Settings: Entities.RetrievePaymentResultSettings;\n public Email: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.TenderLine == null) {\n this.TenderLine = undefined;\n } else if (odataObject.TenderLine['@odata.type'] == null) {\n this.TenderLine = new TenderLineClass(odataObject.TenderLine);\n } else {\n var className: string = odataObject.TenderLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLine = new entityDictionary[className](odataObject.TenderLine)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.AccessCode = \n odataObject.AccessCode;\n \n if (odataObject.Settings == null) {\n this.Settings = undefined;\n } else if (odataObject.Settings['@odata.type'] == null) {\n this.Settings = new RetrievePaymentResultSettingsClass(odataObject.Settings);\n } else {\n var className: string = odataObject.Settings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Settings = new entityDictionary[className](odataObject.Settings)\n }\n }\n\n \n this.Email = \n odataObject.Email;\n \n }\n }\n entityDictionary['CardPaymentAcceptResultClass'] = CardPaymentAcceptResultClass;\n \n /**\n * ReasonCodeLine entity class.\n */\n export class ReasonCodeLineClass implements Entities.ReasonCodeLine {\n public LineId: string;\n public Amount: number;\n public Information: string;\n public InformationAmount: number;\n public InputTypeValue: number;\n public ItemTender: string;\n public LineNumber: number;\n public LineTypeValue: number;\n public ParentLineId: string;\n public ReasonCodeId: string;\n public StatementCode: string;\n public SubReasonCodeId: string;\n public SourceCode: string;\n public SourceCode2: string;\n public SourceCode3: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public FiscalTransactionParentGuid: string;\n public IsChanged: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Information = \n odataObject.Information;\n \n this.InformationAmount = \n (odataObject.InformationAmount != null) ? parseFloat(odataObject.InformationAmount) : undefined;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ItemTender = \n odataObject.ItemTender;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LineTypeValue = \n odataObject.LineTypeValue;\n \n this.ParentLineId = \n odataObject.ParentLineId;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.SubReasonCodeId = \n odataObject.SubReasonCodeId;\n \n this.SourceCode = \n odataObject.SourceCode;\n \n this.SourceCode2 = \n odataObject.SourceCode2;\n \n this.SourceCode3 = \n odataObject.SourceCode3;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FiscalTransactionParentGuid = \n odataObject.FiscalTransactionParentGuid;\n \n this.IsChanged = \n odataObject.IsChanged;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeLineClass'] = ReasonCodeLineClass;\n \n /**\n * ReasonSubCode entity class.\n */\n export class ReasonSubCodeClass implements Entities.ReasonSubCode {\n public TriggerCode: string;\n public AmountPercent: number;\n public ReasonCodeId: string;\n public SubCodeId: string;\n public Description: string;\n public TriggerFunctionTypeValue: number;\n public ProductId: number;\n public PriceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TriggerCode = \n odataObject.TriggerCode;\n \n this.AmountPercent = \n (odataObject.AmountPercent != null) ? parseFloat(odataObject.AmountPercent) : undefined;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SubCodeId = \n odataObject.SubCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.TriggerFunctionTypeValue = \n odataObject.TriggerFunctionTypeValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.PriceTypeValue = \n odataObject.PriceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonSubCodeClass'] = ReasonSubCodeClass;\n \n /**\n * Receipt entity class.\n */\n export class ReceiptClass implements Entities.Receipt {\n public TransactionId: string;\n public Header: string;\n public Body: string;\n public Footer: string;\n public Width: number;\n public ReceiptId: string;\n public LayoutId: string;\n public ReceiptTitle: string;\n public ReceiptTypeValue: number;\n public ReceiptTypeStrValue: string;\n public Printers: Entities.Printer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.Header = \n odataObject.Header;\n \n this.Body = \n odataObject.Body;\n \n this.Footer = \n odataObject.Footer;\n \n this.Width = \n odataObject.Width;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypeStrValue = \n odataObject.ReceiptTypeStrValue;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new PrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptClass'] = ReceiptClass;\n \n /**\n * ReceiptMask entity class.\n */\n export class ReceiptMaskClass implements Entities.ReceiptMask {\n public FunctionalityProfileId: string;\n public IsIndependent: boolean;\n public ReceiptTransactionTypeValue: number;\n public RecordId: number;\n public Mask: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.IsIndependent = \n odataObject.IsIndependent;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Mask = \n odataObject.Mask;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptMaskClass'] = ReceiptMaskClass;\n \n /**\n * SalesLine entity class.\n */\n export class SalesLineClass implements Entities.SalesLine {\n public StaffId: string;\n public LineId: string;\n public Description: string;\n public OriginLineId: string;\n public TaxOverrideCode: string;\n public IsPriceKeyedIn: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public ProductId: number;\n public Barcode: string;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public EntryMethodTypeValue: number;\n public MasterProductId: number;\n public ListingId: number;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public Comment: string;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public WarehouseLocation: string;\n public InventoryStatusId: string;\n public LicensePlate: string;\n public InventoryDimensionId: string;\n public InventoryTransactionId: string;\n public ItemType: number;\n public ReservationId: string;\n public LineNumber: number;\n public ReturnQuantity: number;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public LineVersion: number;\n public StatusValue: number;\n public SalesStatusValue: number;\n public ProductSourceValue: number;\n public IsGiftCardLine: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public IsInvoiceSettled: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public IsVoided: boolean;\n public IsPriceLocked: boolean;\n public ChargeLines: Entities.ChargeLine[];\n public BasePrice: number;\n public AgreementPrice: number;\n public AdjustedPrice: number;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public ReturnStore: string;\n public ReturnTerminalId: string;\n public ReturnChannelId: number;\n public FulfillmentStoreId: string;\n public SalesDate: Date;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public SavedQuantity: number;\n public IsSavedDiscount: boolean;\n public RecordId: number;\n public SerialNumber: string;\n public BatchId: string;\n public DeliveryModeChargeAmount: number;\n public UnitOfMeasureSymbol: string;\n public CatalogId: number;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyPercentageDiscount: number;\n public TenderDiscountAmount: number;\n public TenderDiscountPercentage: number;\n public GiftCardBalance: number;\n public IsCustomerAccountDeposit: boolean;\n public Blocked: boolean;\n public Found: boolean;\n public DateToActivateItem: Date;\n public LinePercentageDiscount: number;\n public PeriodicPercentageDiscount: number;\n public QuantityDiscounted: number;\n public UnitQuantity: number;\n public UnitOfMeasureConversion: Entities.UnitOfMeasureConversion;\n public DiscountLines: Entities.DiscountLine[];\n public PriceLines: Entities.PriceLine[];\n public AttainablePriceLines: Entities.PriceLine[];\n public PeriodicDiscountPossibilities: Entities.DiscountLine[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReturnLabelProperties: Entities.ReturnLabelContent;\n public LineMultilineDiscOnItem: string;\n public RelatedDiscountedLineIds: string[];\n public LinkedParentLineId: string;\n public LineMultilineDiscOnItemValue: number;\n public WasChanged: boolean;\n public OriginalSalesOrderUnitOfMeasure: string;\n public InventOrderUnitOfMeasure: string;\n public TrackingId: string;\n public IsLoyaltyDiscountApplied: boolean;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public QuantityReturnable: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ReturnLoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public DetailedLineStatusValue: number;\n public DetailedLineStatus: Entities.DetailedLineStatus;\n public LastReturnProcessedTime: Date;\n public SalesAgreementPrice: number;\n public SalesAgreementLineRecordId: number;\n public IsSalesAgreementSkipped: boolean;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Description = \n odataObject.Description;\n \n this.OriginLineId = \n odataObject.OriginLineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comment = \n odataObject.Comment;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.InventoryStatusId = \n odataObject.InventoryStatusId;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.InventoryTransactionId = \n odataObject.InventoryTransactionId;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.ReservationId = \n odataObject.ReservationId;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.ReturnQuantity = \n (odataObject.ReturnQuantity != null) ? parseFloat(odataObject.ReturnQuantity) : undefined;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.ProductSourceValue = \n odataObject.ProductSourceValue;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.IsInvoiceSettled = \n odataObject.IsInvoiceSettled;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsPriceLocked = \n odataObject.IsPriceLocked;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.AgreementPrice = \n (odataObject.AgreementPrice != null) ? parseFloat(odataObject.AgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.ReturnStore = \n odataObject.ReturnStore;\n \n this.ReturnTerminalId = \n odataObject.ReturnTerminalId;\n \n this.ReturnChannelId = \n (odataObject.ReturnChannelId != null) ? parseInt(odataObject.ReturnChannelId, 10) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SalesDate = \n (odataObject.SalesDate instanceof Date) ? odataObject.SalesDate\n : (odataObject.SalesDate != null) ? jsonLightReadStringPropertyValue(odataObject.SalesDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.SavedQuantity = \n (odataObject.SavedQuantity != null) ? parseFloat(odataObject.SavedQuantity) : undefined;\n \n this.IsSavedDiscount = \n odataObject.IsSavedDiscount;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyPercentageDiscount = \n (odataObject.LoyaltyPercentageDiscount != null) ? parseFloat(odataObject.LoyaltyPercentageDiscount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.TenderDiscountPercentage = \n (odataObject.TenderDiscountPercentage != null) ? parseFloat(odataObject.TenderDiscountPercentage) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.Found = \n odataObject.Found;\n \n this.DateToActivateItem = \n (odataObject.DateToActivateItem instanceof Date) ? odataObject.DateToActivateItem\n : (odataObject.DateToActivateItem != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivateItem, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.QuantityDiscounted = \n (odataObject.QuantityDiscounted != null) ? parseFloat(odataObject.QuantityDiscounted) : undefined;\n \n this.UnitQuantity = \n (odataObject.UnitQuantity != null) ? parseFloat(odataObject.UnitQuantity) : undefined;\n \n if (odataObject.UnitOfMeasureConversion == null) {\n this.UnitOfMeasureConversion = undefined;\n } else if (odataObject.UnitOfMeasureConversion['@odata.type'] == null) {\n this.UnitOfMeasureConversion = new UnitOfMeasureConversionClass(odataObject.UnitOfMeasureConversion);\n } else {\n var className: string = odataObject.UnitOfMeasureConversion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnitOfMeasureConversion = new entityDictionary[className](odataObject.UnitOfMeasureConversion)\n }\n }\n\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.AttainablePriceLines = undefined;\n if (odataObject.AttainablePriceLines) {\n this.AttainablePriceLines = [];\n for (var i = 0; i < odataObject.AttainablePriceLines.length; i++) {\n if (odataObject.AttainablePriceLines[i] != null) {\n if (odataObject.AttainablePriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AttainablePriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttainablePriceLines[i] = new entityDictionary[className](odataObject.AttainablePriceLines[i])\n }\n } else {\n this.AttainablePriceLines[i] = new PriceLineClass(odataObject.AttainablePriceLines[i]);\n }\n } else {\n this.AttainablePriceLines[i] = undefined;\n }\n }\n }\n \n this.PeriodicDiscountPossibilities = undefined;\n if (odataObject.PeriodicDiscountPossibilities) {\n this.PeriodicDiscountPossibilities = [];\n for (var i = 0; i < odataObject.PeriodicDiscountPossibilities.length; i++) {\n if (odataObject.PeriodicDiscountPossibilities[i] != null) {\n if (odataObject.PeriodicDiscountPossibilities[i]['@odata.type'] != null) {\n var className: string = odataObject.PeriodicDiscountPossibilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PeriodicDiscountPossibilities[i] = new entityDictionary[className](odataObject.PeriodicDiscountPossibilities[i])\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = new DiscountLineClass(odataObject.PeriodicDiscountPossibilities[i]);\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.ReturnLabelProperties == null) {\n this.ReturnLabelProperties = undefined;\n } else if (odataObject.ReturnLabelProperties['@odata.type'] == null) {\n this.ReturnLabelProperties = new ReturnLabelContentClass(odataObject.ReturnLabelProperties);\n } else {\n var className: string = odataObject.ReturnLabelProperties['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLabelProperties = new entityDictionary[className](odataObject.ReturnLabelProperties)\n }\n }\n\n \n this.LineMultilineDiscOnItem = \n odataObject.LineMultilineDiscOnItem;\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.LineMultilineDiscOnItemValue = \n odataObject.LineMultilineDiscOnItemValue;\n \n this.WasChanged = \n odataObject.WasChanged;\n \n this.OriginalSalesOrderUnitOfMeasure = \n odataObject.OriginalSalesOrderUnitOfMeasure;\n \n this.InventOrderUnitOfMeasure = \n odataObject.InventOrderUnitOfMeasure;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.IsLoyaltyDiscountApplied = \n odataObject.IsLoyaltyDiscountApplied;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ReturnLoyaltyRewardPointLines = undefined;\n if (odataObject.ReturnLoyaltyRewardPointLines) {\n this.ReturnLoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.ReturnLoyaltyRewardPointLines.length; i++) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i] != null) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.ReturnLoyaltyRewardPointLines[i])\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.ReturnLoyaltyRewardPointLines[i]);\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n if (odataObject.DetailedLineStatus == null) {\n this.DetailedLineStatus = undefined;\n } else if (odataObject.DetailedLineStatus['@odata.type'] == null) {\n this.DetailedLineStatus = new DetailedLineStatusClass(odataObject.DetailedLineStatus);\n } else {\n var className: string = odataObject.DetailedLineStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DetailedLineStatus = new entityDictionary[className](odataObject.DetailedLineStatus)\n }\n }\n\n \n this.LastReturnProcessedTime = \n (odataObject.LastReturnProcessedTime instanceof Date) ? odataObject.LastReturnProcessedTime\n : (odataObject.LastReturnProcessedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastReturnProcessedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n this.IsSalesAgreementSkipped = \n odataObject.IsSalesAgreementSkipped;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineClass'] = SalesLineClass;\n \n /**\n * SearchArea entity class.\n */\n export class SearchAreaClass implements Entities.SearchArea {\n public Longitude: number;\n public Latitude: number;\n public Radius: number;\n public DistanceUnitValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Radius = \n (odataObject.Radius != null) ? parseFloat(odataObject.Radius) : undefined;\n \n this.DistanceUnitValue = \n odataObject.DistanceUnitValue;\n \n }\n }\n entityDictionary['SearchAreaClass'] = SearchAreaClass;\n \n /**\n * ShiftAccountLine entity class.\n */\n export class ShiftAccountLineClass implements Entities.ShiftAccountLine {\n public AccountTypeValue: number;\n public AccountNumber: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftAccountLineClass'] = ShiftAccountLineClass;\n \n /**\n * ShiftTenderLine entity class.\n */\n export class ShiftTenderLineClass implements Entities.ShiftTenderLine {\n public TenderTypeId: string;\n public TenderTypeName: string;\n public CardTypeId: string;\n public TenderCurrency: string;\n public CountingRequired: boolean;\n public StartingAmountOfStoreCurrency: number;\n public StartingAmountOfTenderCurrency: number;\n public FloatingEntryAmountOfStoreCurrency: number;\n public FloatingEntryAmountOfTenderCurrency: number;\n public SafeDropAmountOfStoreCurrency: number;\n public SafeDropAmountOfTenderCurrency: number;\n public BankDropAmountOfStoreCurrency: number;\n public BankDropAmountOfTenderCurrency: number;\n public RemoveTenderAmountOfStoreCurrency: number;\n public RemoveTenderAmountOfTenderCurrency: number;\n public DeclareTenderAmountOfStoreCurrency: number;\n public DeclareTenderAmountOfTenderCurrency: number;\n public TenderedAmountOfStoreCurrency: number;\n public TenderedAmountOfTenderCurrency: number;\n public ChangeAmountOfStoreCurrency: number;\n public ChangeAmountOfTenderCurrency: number;\n public Count: number;\n public Notes: string;\n public Overridden: boolean;\n public OverriddenFloatEntryAmountInStoreCurrency: number;\n public OverriddenFloatEntryAmountInTenderedCurrency: number;\n public OverriddenBankDropAmountInStoreCurrency: number;\n public OverriddenBankDropAmountInTenderedCurrency: number;\n public OverriddenChangeAmountInStoreCurrency: number;\n public OverriddenChangeAmountInTenderedCurrency: number;\n public OverriddenDeclaredTenderAmountInStoreCurrency: number;\n public OverriddenDeclaredTenderAmountInTenderedCurrency: number;\n public OverriddenRemovedTenderAmountInStoreCurrency: number;\n public OverriddenRemovedTenderAmountInTenderedCurrency: number;\n public OverriddenSafeDropAmountInStoreCurrency: number;\n public OverriddenSafeDropAmountInTenderedCurrency: number;\n public OverriddenStartingAmountInStoreCurrency: number;\n public OverriddenStartingAmountInTenderedCurrency: number;\n public OverriddenTenderedAmountInStoreCurrency: number;\n public OverriddenTenderedAmountInTenderedCurrency: number;\n public OverShortAmountOfTenderCurrency: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderTypeName = \n odataObject.TenderTypeName;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.TenderCurrency = \n odataObject.TenderCurrency;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.StartingAmountOfStoreCurrency = \n (odataObject.StartingAmountOfStoreCurrency != null) ? parseFloat(odataObject.StartingAmountOfStoreCurrency) : undefined;\n \n this.StartingAmountOfTenderCurrency = \n (odataObject.StartingAmountOfTenderCurrency != null) ? parseFloat(odataObject.StartingAmountOfTenderCurrency) : undefined;\n \n this.FloatingEntryAmountOfStoreCurrency = \n (odataObject.FloatingEntryAmountOfStoreCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfStoreCurrency) : undefined;\n \n this.FloatingEntryAmountOfTenderCurrency = \n (odataObject.FloatingEntryAmountOfTenderCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfTenderCurrency) : undefined;\n \n this.SafeDropAmountOfStoreCurrency = \n (odataObject.SafeDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfStoreCurrency) : undefined;\n \n this.SafeDropAmountOfTenderCurrency = \n (odataObject.SafeDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfTenderCurrency) : undefined;\n \n this.BankDropAmountOfStoreCurrency = \n (odataObject.BankDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.BankDropAmountOfStoreCurrency) : undefined;\n \n this.BankDropAmountOfTenderCurrency = \n (odataObject.BankDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.BankDropAmountOfTenderCurrency) : undefined;\n \n this.RemoveTenderAmountOfStoreCurrency = \n (odataObject.RemoveTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfStoreCurrency) : undefined;\n \n this.RemoveTenderAmountOfTenderCurrency = \n (odataObject.RemoveTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfTenderCurrency) : undefined;\n \n this.DeclareTenderAmountOfStoreCurrency = \n (odataObject.DeclareTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfStoreCurrency) : undefined;\n \n this.DeclareTenderAmountOfTenderCurrency = \n (odataObject.DeclareTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfTenderCurrency) : undefined;\n \n this.TenderedAmountOfStoreCurrency = \n (odataObject.TenderedAmountOfStoreCurrency != null) ? parseFloat(odataObject.TenderedAmountOfStoreCurrency) : undefined;\n \n this.TenderedAmountOfTenderCurrency = \n (odataObject.TenderedAmountOfTenderCurrency != null) ? parseFloat(odataObject.TenderedAmountOfTenderCurrency) : undefined;\n \n this.ChangeAmountOfStoreCurrency = \n (odataObject.ChangeAmountOfStoreCurrency != null) ? parseFloat(odataObject.ChangeAmountOfStoreCurrency) : undefined;\n \n this.ChangeAmountOfTenderCurrency = \n (odataObject.ChangeAmountOfTenderCurrency != null) ? parseFloat(odataObject.ChangeAmountOfTenderCurrency) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.Notes = \n odataObject.Notes;\n \n this.Overridden = \n odataObject.Overridden;\n \n this.OverriddenFloatEntryAmountInStoreCurrency = \n (odataObject.OverriddenFloatEntryAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInStoreCurrency) : undefined;\n \n this.OverriddenFloatEntryAmountInTenderedCurrency = \n (odataObject.OverriddenFloatEntryAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInTenderedCurrency) : undefined;\n \n this.OverriddenBankDropAmountInStoreCurrency = \n (odataObject.OverriddenBankDropAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInStoreCurrency) : undefined;\n \n this.OverriddenBankDropAmountInTenderedCurrency = \n (odataObject.OverriddenBankDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenChangeAmountInStoreCurrency = \n (odataObject.OverriddenChangeAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInStoreCurrency) : undefined;\n \n this.OverriddenChangeAmountInTenderedCurrency = \n (odataObject.OverriddenChangeAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInTenderedCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInStoreCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInStoreCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInTenderedCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInStoreCurrency = \n (odataObject.OverriddenRemovedTenderAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInStoreCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInTenderedCurrency = \n (odataObject.OverriddenRemovedTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInStoreCurrency = \n (odataObject.OverriddenSafeDropAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInStoreCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInTenderedCurrency = \n (odataObject.OverriddenSafeDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenStartingAmountInStoreCurrency = \n (odataObject.OverriddenStartingAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInStoreCurrency) : undefined;\n \n this.OverriddenStartingAmountInTenderedCurrency = \n (odataObject.OverriddenStartingAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInTenderedCurrency) : undefined;\n \n this.OverriddenTenderedAmountInStoreCurrency = \n (odataObject.OverriddenTenderedAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenTenderedAmountInStoreCurrency) : undefined;\n \n this.OverriddenTenderedAmountInTenderedCurrency = \n (odataObject.OverriddenTenderedAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenTenderedAmountInTenderedCurrency) : undefined;\n \n this.OverShortAmountOfTenderCurrency = \n (odataObject.OverShortAmountOfTenderCurrency != null) ? parseFloat(odataObject.OverShortAmountOfTenderCurrency) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTenderLineClass'] = ShiftTenderLineClass;\n \n /**\n * StockCountJournalTransaction entity class.\n */\n export class StockCountJournalTransactionClass implements Entities.StockCountJournalTransaction {\n public JournalId: string;\n public RecordId: number;\n public OperationType: number;\n public ItemId: string;\n public DataAreaId: string;\n public ProductRecordId: number;\n public ItemName: string;\n public InventDimId: string;\n public Counted: number;\n public Quantity: number;\n public EstimatedOnHandQuantity: number;\n public OnHandCalculationDateTime: Date;\n public Unit: string;\n public UserId: string;\n public TerminalId: string;\n public CountedDate: Date;\n public Status: number;\n public InventBatchId: string;\n public WarehouseLocationId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public WarehousePalletId: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public InventSerialId: string;\n public TrackingGuid: string;\n public UpdatedInAx: boolean;\n public Message: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OperationType = \n odataObject.OperationType;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.Counted = \n (odataObject.Counted != null) ? parseFloat(odataObject.Counted) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.EstimatedOnHandQuantity = \n (odataObject.EstimatedOnHandQuantity != null) ? parseFloat(odataObject.EstimatedOnHandQuantity) : undefined;\n \n this.OnHandCalculationDateTime = \n (odataObject.OnHandCalculationDateTime instanceof Date) ? odataObject.OnHandCalculationDateTime\n : (odataObject.OnHandCalculationDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OnHandCalculationDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.UserId = \n odataObject.UserId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CountedDate = \n (odataObject.CountedDate instanceof Date) ? odataObject.CountedDate\n : (odataObject.CountedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CountedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WarehouseLocationId = \n odataObject.WarehouseLocationId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.WarehousePalletId = \n odataObject.WarehousePalletId;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.TrackingGuid = \n odataObject.TrackingGuid;\n \n this.UpdatedInAx = \n odataObject.UpdatedInAx;\n \n this.Message = \n odataObject.Message;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalTransactionClass'] = StockCountJournalTransactionClass;\n \n /**\n * TaxLine entity class.\n */\n export class TaxLineClass implements Entities.TaxLine {\n public TaxGroup: string;\n public Percentage: number;\n public IsExempt: boolean;\n public TaxBasis: number;\n public IsIncludedInPrice: boolean;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TaxCode: string;\n public Amount: number;\n public AmountRefunded: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.IsExempt = \n odataObject.IsExempt;\n \n this.TaxBasis = \n (odataObject.TaxBasis != null) ? parseFloat(odataObject.TaxBasis) : undefined;\n \n this.IsIncludedInPrice = \n odataObject.IsIncludedInPrice;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TaxCode = \n odataObject.TaxCode;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxLineClass'] = TaxLineClass;\n \n /**\n * TenderLine entity class.\n */\n export class TenderLineClass implements Entities.TenderLine {\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public InternalTransactionId: string;\n public RefundableAmount: number;\n public CaptureToken: string;\n public CardToken: string;\n public Authorization: string;\n public TransactionStatusValue: number;\n public IncomeExpenseAccountTypeValue: number;\n public MaskedCardNumber: string;\n public TenderDate: Date;\n public IsPreProcessed: boolean;\n public IsDeposit: boolean;\n public IsCustomerAccountFloorLimitUsed: boolean;\n public AuthorizationReferenceId: string;\n public IsIncrementalCaptureEnabled: boolean;\n public IsReauthorizationEnabled: boolean;\n public IncrementalOffsetAmount: number;\n public ChannelId: number;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public RoundingDifference: number;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.RefundableAmount = \n (odataObject.RefundableAmount != null) ? parseFloat(odataObject.RefundableAmount) : undefined;\n \n this.CaptureToken = \n odataObject.CaptureToken;\n \n this.CardToken = \n odataObject.CardToken;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.IncomeExpenseAccountTypeValue = \n odataObject.IncomeExpenseAccountTypeValue;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n this.TenderDate = \n (odataObject.TenderDate instanceof Date) ? odataObject.TenderDate\n : (odataObject.TenderDate != null) ? jsonLightReadStringPropertyValue(odataObject.TenderDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsPreProcessed = \n odataObject.IsPreProcessed;\n \n this.IsDeposit = \n odataObject.IsDeposit;\n \n this.IsCustomerAccountFloorLimitUsed = \n odataObject.IsCustomerAccountFloorLimitUsed;\n \n this.AuthorizationReferenceId = \n odataObject.AuthorizationReferenceId;\n \n this.IsIncrementalCaptureEnabled = \n odataObject.IsIncrementalCaptureEnabled;\n \n this.IsReauthorizationEnabled = \n odataObject.IsReauthorizationEnabled;\n \n this.IncrementalOffsetAmount = \n (odataObject.IncrementalOffsetAmount != null) ? parseFloat(odataObject.IncrementalOffsetAmount) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.RoundingDifference = \n (odataObject.RoundingDifference != null) ? parseFloat(odataObject.RoundingDifference) : undefined;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderLineClass'] = TenderLineClass;\n \n /**\n * TextValueTranslation entity class.\n */\n export class TextValueTranslationClass implements Entities.TextValueTranslation {\n public Language: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Language = \n odataObject.Language;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TextValueTranslationClass'] = TextValueTranslationClass;\n \n /**\n * UnitOfMeasure entity class.\n */\n export class UnitOfMeasureClass implements Entities.UnitOfMeasure {\n public DecimalPrecision: number;\n public Symbol: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DecimalPrecision = \n odataObject.DecimalPrecision;\n \n this.Symbol = \n odataObject.Symbol;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureClass'] = UnitOfMeasureClass;\n \n /**\n * RecommendedElement entity class.\n */\n export class RecommendedElementClass implements Entities.RecommendedElement {\n public ElementId: string;\n public ElementTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ElementId = \n odataObject.ElementId;\n \n this.ElementTypeValue = \n odataObject.ElementTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendedElementClass'] = RecommendedElementClass;\n \n /**\n * RecommendationCriteria entity class.\n */\n export class RecommendationCriteriaClass implements Entities.RecommendationCriteria {\n public CustomerAccountNumber: string;\n public CatalogId: number;\n public ProductIds: number[];\n public CategoryIds: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationCriteriaClass'] = RecommendationCriteriaClass;\n \n /**\n * ProductListLine entity class.\n */\n export class ProductListLineClass implements Entities.ProductListLine {\n public ProductListId: string;\n public LineId: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductListId = \n odataObject.ProductListId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListLineClass'] = ProductListLineClass;\n \n /**\n * CommerceListLine entity class.\n */\n export class CommerceListLineClass implements Entities.CommerceListLine {\n public CommerceListId: number;\n public LineId: number;\n public CustomerId: string;\n public CustomerName: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CommerceListId = \n (odataObject.CommerceListId != null) ? parseInt(odataObject.CommerceListId, 10) : undefined;\n \n this.LineId = \n (odataObject.LineId != null) ? parseInt(odataObject.LineId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListLineClass'] = CommerceListLineClass;\n \n /**\n * CommerceListContributor entity class.\n */\n export class CommerceListContributorClass implements Entities.CommerceListContributor {\n public RecordId: number;\n public CustomerId: string;\n public CustomerName: string;\n public InvitationId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvitationId = \n (odataObject.InvitationId != null) ? parseInt(odataObject.InvitationId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListContributorClass'] = CommerceListContributorClass;\n \n /**\n * CommerceListInvitation entity class.\n */\n export class CommerceListInvitationClass implements Entities.CommerceListInvitation {\n public RecordId: number;\n public Invitee: string;\n public IsSent: boolean;\n public LastRequestDateTime: Date;\n public LastSentDateTime: Date;\n public StatusValue: number;\n public Token: string;\n public InvitationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Invitee = \n odataObject.Invitee;\n \n this.IsSent = \n odataObject.IsSent;\n \n this.LastRequestDateTime = \n (odataObject.LastRequestDateTime instanceof Date) ? odataObject.LastRequestDateTime\n : (odataObject.LastRequestDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastRequestDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastSentDateTime = \n (odataObject.LastSentDateTime instanceof Date) ? odataObject.LastSentDateTime\n : (odataObject.LastSentDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSentDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.InvitationTypeValue = \n odataObject.InvitationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListInvitationClass'] = CommerceListInvitationClass;\n \n /**\n * SearchFilter entity class.\n */\n export class SearchFilterClass implements Entities.SearchFilter {\n public Key: string;\n public FilterTypeValue: number;\n public SearchValues: Entities.SearchFilterValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.FilterTypeValue = \n odataObject.FilterTypeValue;\n \n this.SearchValues = undefined;\n if (odataObject.SearchValues) {\n this.SearchValues = [];\n for (var i = 0; i < odataObject.SearchValues.length; i++) {\n if (odataObject.SearchValues[i] != null) {\n if (odataObject.SearchValues[i]['@odata.type'] != null) {\n var className: string = odataObject.SearchValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchValues[i] = new entityDictionary[className](odataObject.SearchValues[i])\n }\n } else {\n this.SearchValues[i] = new SearchFilterValueClass(odataObject.SearchValues[i]);\n }\n } else {\n this.SearchValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchFilterClass'] = SearchFilterClass;\n \n /**\n * SearchFilterValue entity class.\n */\n export class SearchFilterValueClass implements Entities.SearchFilterValue {\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['SearchFilterValueClass'] = SearchFilterValueClass;\n \n /**\n * TransactionSearchCriteria entity class.\n */\n export class TransactionSearchCriteriaClass implements Entities.TransactionSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SearchLocationTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionSearchCriteriaClass'] = TransactionSearchCriteriaClass;\n \n /**\n * SalesOrderSearchCriteria entity class.\n */\n export class SalesOrderSearchCriteriaClass implements Entities.SalesOrderSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public SearchTypeValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public IncludeDetails: boolean;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SalesTransactionTypeValues: number[];\n public SearchLocationTypeValue: number;\n public TransactionStatusTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SearchTypeValue = \n odataObject.SearchTypeValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IncludeDetails = \n odataObject.IncludeDetails;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SalesTransactionTypeValues = undefined;\n if (odataObject.SalesTransactionTypeValues) {\n this.SalesTransactionTypeValues = [];\n for (var i = 0; i < odataObject.SalesTransactionTypeValues.length; i++) {\n if (odataObject.SalesTransactionTypeValues[i] != null) {\n this.SalesTransactionTypeValues[i] = \n odataObject.SalesTransactionTypeValues[i];\n } else {\n this.SalesTransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.TransactionStatusTypeValues = undefined;\n if (odataObject.TransactionStatusTypeValues) {\n this.TransactionStatusTypeValues = [];\n for (var i = 0; i < odataObject.TransactionStatusTypeValues.length; i++) {\n if (odataObject.TransactionStatusTypeValues[i] != null) {\n this.TransactionStatusTypeValues[i] = \n odataObject.TransactionStatusTypeValues[i];\n } else {\n this.TransactionStatusTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderSearchCriteriaClass'] = SalesOrderSearchCriteriaClass;\n \n /**\n * SearchStoreCriteria entity class.\n */\n export class SearchStoreCriteriaClass implements Entities.SearchStoreCriteria {\n public ChannelId: number;\n public StoreNumber: string;\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n }\n }\n entityDictionary['SearchStoreCriteriaClass'] = SearchStoreCriteriaClass;\n \n /**\n * CustomerSearchCriteria entity class.\n */\n export class CustomerSearchCriteriaClass implements Entities.CustomerSearchCriteria {\n public Keyword: string;\n public SearchOnlyCurrentCompany: boolean;\n public SearchLocationValue: number;\n public Refinements: Entities.CustomerRefinerValue[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Keyword = \n odataObject.Keyword;\n \n this.SearchOnlyCurrentCompany = \n odataObject.SearchOnlyCurrentCompany;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.Refinements = undefined;\n if (odataObject.Refinements) {\n this.Refinements = [];\n for (var i = 0; i < odataObject.Refinements.length; i++) {\n if (odataObject.Refinements[i] != null) {\n if (odataObject.Refinements[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinements[i] = new entityDictionary[className](odataObject.Refinements[i])\n }\n } else {\n this.Refinements[i] = new CustomerRefinerValueClass(odataObject.Refinements[i]);\n }\n } else {\n this.Refinements[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchCriteriaClass'] = CustomerSearchCriteriaClass;\n \n /**\n * ProductPrice entity class.\n */\n export class ProductPriceClass implements Entities.ProductPrice {\n public ProductId: number;\n public ListingId: number;\n public BasePrice: number;\n public TradeAgreementPrice: number;\n public AdjustedPrice: number;\n public MaxVariantPrice: number;\n public MinVariantPrice: number;\n public CustomerContextualPrice: number;\n public DiscountAmount: number;\n public CurrencyCode: string;\n public ItemId: string;\n public InventoryDimensionId: string;\n public UnitOfMeasure: string;\n public ValidFrom: Date;\n public ProductLookupId: number;\n public ChannelId: number;\n public CatalogId: number;\n public DiscountLines: Entities.DiscountLine[];\n public SalesAgreementPrice: number;\n public PriceSourceTypeValue: number;\n public AttainablePriceLines: Entities.PriceLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.TradeAgreementPrice = \n (odataObject.TradeAgreementPrice != null) ? parseFloat(odataObject.TradeAgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.CustomerContextualPrice = \n (odataObject.CustomerContextualPrice != null) ? parseFloat(odataObject.CustomerContextualPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductLookupId = \n (odataObject.ProductLookupId != null) ? parseInt(odataObject.ProductLookupId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.PriceSourceTypeValue = \n odataObject.PriceSourceTypeValue;\n \n this.AttainablePriceLines = undefined;\n if (odataObject.AttainablePriceLines) {\n this.AttainablePriceLines = [];\n for (var i = 0; i < odataObject.AttainablePriceLines.length; i++) {\n if (odataObject.AttainablePriceLines[i] != null) {\n if (odataObject.AttainablePriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AttainablePriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttainablePriceLines[i] = new entityDictionary[className](odataObject.AttainablePriceLines[i])\n }\n } else {\n this.AttainablePriceLines[i] = new PriceLineClass(odataObject.AttainablePriceLines[i]);\n }\n } else {\n this.AttainablePriceLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPriceClass'] = ProductPriceClass;\n \n /**\n * OrgUnitAvailability entity class.\n */\n export class OrgUnitAvailabilityClass implements Entities.OrgUnitAvailability {\n public OrgUnitLocation: Entities.OrgUnitLocation;\n public ItemAvailabilities: Entities.ItemAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.OrgUnitLocation == null) {\n this.OrgUnitLocation = undefined;\n } else if (odataObject.OrgUnitLocation['@odata.type'] == null) {\n this.OrgUnitLocation = new OrgUnitLocationClass(odataObject.OrgUnitLocation);\n } else {\n var className: string = odataObject.OrgUnitLocation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitLocation = new entityDictionary[className](odataObject.OrgUnitLocation)\n }\n }\n\n \n this.ItemAvailabilities = undefined;\n if (odataObject.ItemAvailabilities) {\n this.ItemAvailabilities = [];\n for (var i = 0; i < odataObject.ItemAvailabilities.length; i++) {\n if (odataObject.ItemAvailabilities[i] != null) {\n if (odataObject.ItemAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemAvailabilities[i] = new entityDictionary[className](odataObject.ItemAvailabilities[i])\n }\n } else {\n this.ItemAvailabilities[i] = new ItemAvailabilityClass(odataObject.ItemAvailabilities[i]);\n }\n } else {\n this.ItemAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitAvailabilityClass'] = OrgUnitAvailabilityClass;\n \n /**\n * ProductVariantPropertySet entity class.\n */\n export class ProductVariantPropertySetClass implements Entities.ProductVariantPropertySet {\n public VariantId: number;\n public ProductVariantPropertiesAsList: Entities.ProductPropertyTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.VariantId = \n (odataObject.VariantId != null) ? parseInt(odataObject.VariantId, 10) : undefined;\n \n this.ProductVariantPropertiesAsList = undefined;\n if (odataObject.ProductVariantPropertiesAsList) {\n this.ProductVariantPropertiesAsList = [];\n for (var i = 0; i < odataObject.ProductVariantPropertiesAsList.length; i++) {\n if (odataObject.ProductVariantPropertiesAsList[i] != null) {\n if (odataObject.ProductVariantPropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductVariantPropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductVariantPropertiesAsList[i] = new entityDictionary[className](odataObject.ProductVariantPropertiesAsList[i])\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.ProductVariantPropertiesAsList[i]);\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantPropertySetClass'] = ProductVariantPropertySetClass;\n \n /**\n * PurchaseOrderLine entity class.\n */\n export class PurchaseOrderLineClass implements Entities.PurchaseOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseQuantity: number;\n public PurchaseUnit: string;\n public PurchaseReceived: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public UniqueIdentifier: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseQuantity = \n (odataObject.PurchaseQuantity != null) ? parseFloat(odataObject.PurchaseQuantity) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.PurchaseReceived = \n (odataObject.PurchaseReceived != null) ? parseFloat(odataObject.PurchaseReceived) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.UniqueIdentifier = \n odataObject.UniqueIdentifier;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderLineClass'] = PurchaseOrderLineClass;\n \n /**\n * TransferOrderLine entity class.\n */\n export class TransferOrderLineClass implements Entities.TransferOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityTransferred: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityRemainShip: number;\n public QuantityRemainReceive: number;\n public PurchaseUnit: string;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityTransferred = \n (odataObject.QuantityTransferred != null) ? parseFloat(odataObject.QuantityTransferred) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityRemainShip = \n (odataObject.QuantityRemainShip != null) ? parseFloat(odataObject.QuantityRemainShip) : undefined;\n \n this.QuantityRemainReceive = \n (odataObject.QuantityRemainReceive != null) ? parseFloat(odataObject.QuantityRemainReceive) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderLineClass'] = TransferOrderLineClass;\n \n /**\n * TransferOrderJournal entity class.\n */\n export class TransferOrderJournalClass implements Entities.TransferOrderJournal {\n public OrderId: string;\n public VoucherId: string;\n public UpdatedByWorker: string;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public PostingDate: Date;\n public DeliveryMode: string;\n public Comments: string;\n public JournalLines: Entities.TransferOrderJournalLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.VoucherId = \n odataObject.VoucherId;\n \n this.UpdatedByWorker = \n odataObject.UpdatedByWorker;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.PostingDate = \n (odataObject.PostingDate instanceof Date) ? odataObject.PostingDate\n : (odataObject.PostingDate != null) ? jsonLightReadStringPropertyValue(odataObject.PostingDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comments = \n odataObject.Comments;\n \n this.JournalLines = undefined;\n if (odataObject.JournalLines) {\n this.JournalLines = [];\n for (var i = 0; i < odataObject.JournalLines.length; i++) {\n if (odataObject.JournalLines[i] != null) {\n if (odataObject.JournalLines[i]['@odata.type'] != null) {\n var className: string = odataObject.JournalLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.JournalLines[i] = new entityDictionary[className](odataObject.JournalLines[i])\n }\n } else {\n this.JournalLines[i] = new TransferOrderJournalLineClass(odataObject.JournalLines[i]);\n }\n } else {\n this.JournalLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalClass'] = TransferOrderJournalClass;\n \n /**\n * PickingListLine entity class.\n */\n export class PickingListLineClass implements Entities.PickingListLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListLineClass'] = PickingListLineClass;\n \n /**\n * Affiliation entity class.\n */\n export class AffiliationClass implements Entities.Affiliation {\n public RecordId: number;\n public AffiliationTypeValue: number;\n public Description: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationClass'] = AffiliationClass;\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity class.\n */\n export class InventoryInboundOutboundDocumentLinesSummaryClass implements Entities.InventoryInboundOutboundDocumentLinesSummary {\n public InProgressQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InProgressQuantity = \n (odataObject.InProgressQuantity != null) ? parseFloat(odataObject.InProgressQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLinesSummaryClass'] = InventoryInboundOutboundDocumentLinesSummaryClass;\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity class.\n */\n export class InventoryDocumentSerialNumberLinesSummaryClass implements Entities.InventoryDocumentSerialNumberLinesSummary {\n public RegisteringQuantity: number;\n public RegisteredQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegisteringQuantity = \n (odataObject.RegisteringQuantity != null) ? parseFloat(odataObject.RegisteringQuantity) : undefined;\n \n this.RegisteredQuantity = \n (odataObject.RegisteredQuantity != null) ? parseFloat(odataObject.RegisteredQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLinesSummaryClass'] = InventoryDocumentSerialNumberLinesSummaryClass;\n \n /**\n * InventoryInboundOutboundDocumentLine entity class.\n */\n export class InventoryInboundOutboundDocumentLineClass implements Entities.InventoryInboundOutboundDocumentLine {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentLineRecordId: number;\n public SourceDocumentTypeValue: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public QuantityToUpdate: number;\n public LocationId: string;\n public ItemId: string;\n public ProductId: number;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public OperationResultMessage: string;\n public IsCloseLine: boolean;\n public OriginTypeValue: number;\n public UnitOfMeasure: string;\n public SourceDocumentLine: Entities.InventoryInboundOutboundSourceDocumentLine;\n public SerialNumberLines: Entities.InventoryDocumentSerialNumberLine[];\n public LongVersion: number;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.QuantityToUpdate = \n (odataObject.QuantityToUpdate != null) ? parseFloat(odataObject.QuantityToUpdate) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.IsCloseLine = \n odataObject.IsCloseLine;\n \n this.OriginTypeValue = \n odataObject.OriginTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n if (odataObject.SourceDocumentLine == null) {\n this.SourceDocumentLine = undefined;\n } else if (odataObject.SourceDocumentLine['@odata.type'] == null) {\n this.SourceDocumentLine = new InventoryInboundOutboundSourceDocumentLineClass(odataObject.SourceDocumentLine);\n } else {\n var className: string = odataObject.SourceDocumentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocumentLine = new entityDictionary[className](odataObject.SourceDocumentLine)\n }\n }\n\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLineClass'] = InventoryInboundOutboundDocumentLineClass;\n \n /**\n * InventoryInboundOutboundSourceDocument entity class.\n */\n export class InventoryInboundOutboundSourceDocumentClass implements Entities.InventoryInboundOutboundSourceDocument {\n public RecordId: number;\n public DocumentTypeValue: number;\n public DocumentId: string;\n public StatusValue: number;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public TotalQuantityOrdered: number;\n public TotalQuantityShipped: number;\n public TotalQuantityReceived: number;\n public TotalQuantityCancelled: number;\n public DataAreaId: string;\n public Note: string;\n public TotalLines: number;\n public IsChangeAllowed: boolean;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalQuantityOrdered = \n (odataObject.TotalQuantityOrdered != null) ? parseFloat(odataObject.TotalQuantityOrdered) : undefined;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.TotalQuantityReceived = \n (odataObject.TotalQuantityReceived != null) ? parseFloat(odataObject.TotalQuantityReceived) : undefined;\n \n this.TotalQuantityCancelled = \n (odataObject.TotalQuantityCancelled != null) ? parseFloat(odataObject.TotalQuantityCancelled) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.TotalLines = \n (odataObject.TotalLines != null) ? parseInt(odataObject.TotalLines, 10) : undefined;\n \n this.IsChangeAllowed = \n odataObject.IsChangeAllowed;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentClass'] = InventoryInboundOutboundSourceDocumentClass;\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity class.\n */\n export class InventoryInboundOutboundSourceDocumentLineClass implements Entities.InventoryInboundOutboundSourceDocumentLine {\n public DocumentRecordId: number;\n public DocumentTypeValue: number;\n public RecordId: number;\n public LineNumber: number;\n public ItemId: string;\n public ProductId: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public LocationId: string;\n public OverDeliveryPercentage: number;\n public UnderDeliveryPercentage: number;\n public UnitId: string;\n public Receiver: string;\n public DataAreaId: string;\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentId: string;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public HasSerialNumber: boolean;\n public IsSerialNumberBlankReceiptAllowed: boolean;\n public IsSerialNumberDuplicateCheckEnabled: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public SerialNumberLines: Entities.InventoryDocumentSourceSerialNumberLine[];\n public StatusValue: number;\n public ToProductId: number;\n public ToLocationId: string;\n public InventoryDimensionId: string;\n public ToInventoryDimensionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentRecordId = \n (odataObject.DocumentRecordId != null) ? parseInt(odataObject.DocumentRecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.OverDeliveryPercentage = \n (odataObject.OverDeliveryPercentage != null) ? parseFloat(odataObject.OverDeliveryPercentage) : undefined;\n \n this.UnderDeliveryPercentage = \n (odataObject.UnderDeliveryPercentage != null) ? parseFloat(odataObject.UnderDeliveryPercentage) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsSerialNumberBlankReceiptAllowed = \n odataObject.IsSerialNumberBlankReceiptAllowed;\n \n this.IsSerialNumberDuplicateCheckEnabled = \n odataObject.IsSerialNumberDuplicateCheckEnabled;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ToProductId = \n (odataObject.ToProductId != null) ? parseInt(odataObject.ToProductId, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ToInventoryDimensionId = \n odataObject.ToInventoryDimensionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentLineClass'] = InventoryInboundOutboundSourceDocumentLineClass;\n \n /**\n * InventoryDocumentLineFilterCriteria entity class.\n */\n export class InventoryDocumentLineFilterCriteriaClass implements Entities.InventoryDocumentLineFilterCriteria {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineFilterCriteriaClass'] = InventoryDocumentLineFilterCriteriaClass;\n \n /**\n * InventoryDocumentUpdateLinesAction entity class.\n */\n export class InventoryDocumentUpdateLinesActionClass implements Entities.InventoryDocumentUpdateLinesAction {\n public Quantity: number;\n public ActionTypeValue: number;\n public LocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ActionTypeValue = \n odataObject.ActionTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentUpdateLinesActionClass'] = InventoryDocumentUpdateLinesActionClass;\n \n /**\n * InventoryDocumentLineOperationResultSettings entity class.\n */\n export class InventoryDocumentLineOperationResultSettingsClass implements Entities.InventoryDocumentLineOperationResultSettings {\n public ModeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModeValue = \n odataObject.ModeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineOperationResultSettingsClass'] = InventoryDocumentLineOperationResultSettingsClass;\n \n /**\n * InventoryDocumentLineSearchCriteria entity class.\n */\n export class InventoryDocumentLineSearchCriteriaClass implements Entities.InventoryDocumentLineSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ProductId: number;\n public ItemIds: string[];\n public AvailableSerializedLineOnly: boolean;\n public DocumentLineIds: string[];\n public DocumentOperationTypeValue: number;\n public OperationTypeValue: number;\n public LocationId: string;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n this.ItemIds[i] = \n odataObject.ItemIds[i];\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.AvailableSerializedLineOnly = \n odataObject.AvailableSerializedLineOnly;\n \n this.DocumentLineIds = undefined;\n if (odataObject.DocumentLineIds) {\n this.DocumentLineIds = [];\n for (var i = 0; i < odataObject.DocumentLineIds.length; i++) {\n if (odataObject.DocumentLineIds[i] != null) {\n this.DocumentLineIds[i] = \n odataObject.DocumentLineIds[i];\n } else {\n this.DocumentLineIds[i] = undefined;\n }\n }\n }\n \n this.DocumentOperationTypeValue = \n odataObject.DocumentOperationTypeValue;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineSearchCriteriaClass'] = InventoryDocumentLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSearchCriteria entity class.\n */\n export class InventoryDocumentSearchCriteriaClass implements Entities.InventoryDocumentSearchCriteria {\n public DocumentId: string;\n public TransferFromWarehouse: string;\n public ShipFromWarehouse: string;\n public TransferToWarehouse: string;\n public Description: string;\n public DocumentTypeIds: string[];\n public DocumentStateValue: number;\n public DocumentTypeValues: number[];\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.TransferFromWarehouse = \n odataObject.TransferFromWarehouse;\n \n this.ShipFromWarehouse = \n odataObject.ShipFromWarehouse;\n \n this.TransferToWarehouse = \n odataObject.TransferToWarehouse;\n \n this.Description = \n odataObject.Description;\n \n this.DocumentTypeIds = undefined;\n if (odataObject.DocumentTypeIds) {\n this.DocumentTypeIds = [];\n for (var i = 0; i < odataObject.DocumentTypeIds.length; i++) {\n if (odataObject.DocumentTypeIds[i] != null) {\n this.DocumentTypeIds[i] = \n odataObject.DocumentTypeIds[i];\n } else {\n this.DocumentTypeIds[i] = undefined;\n }\n }\n }\n \n this.DocumentStateValue = \n odataObject.DocumentStateValue;\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSearchCriteriaClass'] = InventoryDocumentSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity class.\n */\n export class InventoryDocumentSerialNumberLineSearchCriteriaClass implements Entities.InventoryDocumentSerialNumberLineSearchCriteria {\n public DocumentLineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineSearchCriteriaClass'] = InventoryDocumentSerialNumberLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity class.\n */\n export class InventoryDocumentSerialNumberLineUpdateActionClass implements Entities.InventoryDocumentSerialNumberLineUpdateAction {\n public DocumentLineId: string;\n public LineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineUpdateActionClass'] = InventoryDocumentSerialNumberLineUpdateActionClass;\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity class.\n */\n export class InventoryDocumentSerialNumberLineResetActionClass implements Entities.InventoryDocumentSerialNumberLineResetAction {\n public DocumentLineId: string;\n public LineId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineResetActionClass'] = InventoryDocumentSerialNumberLineResetActionClass;\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity class.\n */\n export class InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass implements Entities.InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n public UpdatedLines: Entities.InventoryInboundOutboundDocumentLine[];\n public TotalLinesUpdated: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UpdatedLines = undefined;\n if (odataObject.UpdatedLines) {\n this.UpdatedLines = [];\n for (var i = 0; i < odataObject.UpdatedLines.length; i++) {\n if (odataObject.UpdatedLines[i] != null) {\n if (odataObject.UpdatedLines[i]['@odata.type'] != null) {\n var className: string = odataObject.UpdatedLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpdatedLines[i] = new entityDictionary[className](odataObject.UpdatedLines[i])\n }\n } else {\n this.UpdatedLines[i] = new InventoryInboundOutboundDocumentLineClass(odataObject.UpdatedLines[i]);\n }\n } else {\n this.UpdatedLines[i] = undefined;\n }\n }\n }\n \n this.TotalLinesUpdated = \n odataObject.TotalLinesUpdated;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass'] = InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass;\n \n /**\n * WarehouseLocationSearchCriteria entity class.\n */\n export class WarehouseLocationSearchCriteriaClass implements Entities.WarehouseLocationSearchCriteria {\n public WarehouseIds: string[];\n public IsLocationProfileRequired: boolean;\n public SearchText: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarehouseIds = undefined;\n if (odataObject.WarehouseIds) {\n this.WarehouseIds = [];\n for (var i = 0; i < odataObject.WarehouseIds.length; i++) {\n if (odataObject.WarehouseIds[i] != null) {\n this.WarehouseIds[i] = \n odataObject.WarehouseIds[i];\n } else {\n this.WarehouseIds[i] = undefined;\n }\n }\n }\n \n this.IsLocationProfileRequired = \n odataObject.IsLocationProfileRequired;\n \n this.SearchText = \n odataObject.SearchText;\n \n }\n }\n entityDictionary['WarehouseLocationSearchCriteriaClass'] = WarehouseLocationSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLine entity class.\n */\n export class InventoryDocumentSerialNumberLineClass implements Entities.InventoryDocumentSerialNumberLine {\n public WorkDocumentId: string;\n public WorkDocumentLineId: string;\n public SourceLineId: string;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public ModifiedDateTime: Date;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public SourceLine: Entities.InventoryDocumentSourceSerialNumberLine;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.WorkDocumentLineId = \n odataObject.WorkDocumentLineId;\n \n this.SourceLineId = \n odataObject.SourceLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n if (odataObject.SourceLine == null) {\n this.SourceLine = undefined;\n } else if (odataObject.SourceLine['@odata.type'] == null) {\n this.SourceLine = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SourceLine);\n } else {\n var className: string = odataObject.SourceLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceLine = new entityDictionary[className](odataObject.SourceLine)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineClass'] = InventoryDocumentSerialNumberLineClass;\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity class.\n */\n export class InventoryDocumentValidationCategoryResultsSummaryClass implements Entities.InventoryDocumentValidationCategoryResultsSummary {\n public CategoryName: string;\n public SeverityValue: number;\n public TotalValidationResultCount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.TotalValidationResultCount = \n odataObject.TotalValidationResultCount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationCategoryResultsSummaryClass'] = InventoryDocumentValidationCategoryResultsSummaryClass;\n \n /**\n * InventoryDocumentValidationResultSummary entity class.\n */\n export class InventoryDocumentValidationResultSummaryClass implements Entities.InventoryDocumentValidationResultSummary {\n public DocumentId: string;\n public DocumentVersion: number;\n public CategorySummaries: Entities.InventoryDocumentValidationCategoryResultsSummary[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.CategorySummaries = undefined;\n if (odataObject.CategorySummaries) {\n this.CategorySummaries = [];\n for (var i = 0; i < odataObject.CategorySummaries.length; i++) {\n if (odataObject.CategorySummaries[i] != null) {\n if (odataObject.CategorySummaries[i]['@odata.type'] != null) {\n var className: string = odataObject.CategorySummaries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategorySummaries[i] = new entityDictionary[className](odataObject.CategorySummaries[i])\n }\n } else {\n this.CategorySummaries[i] = new InventoryDocumentValidationCategoryResultsSummaryClass(odataObject.CategorySummaries[i]);\n }\n } else {\n this.CategorySummaries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSummaryClass'] = InventoryDocumentValidationResultSummaryClass;\n \n /**\n * InventoryDocumentValidationResultLine entity class.\n */\n export class InventoryDocumentValidationResultLineClass implements Entities.InventoryDocumentValidationResultLine {\n public DocumentValidationResultLineId: string;\n public CategoryName: string;\n public SeverityValue: number;\n public ErrorCode: number;\n public ErrorMessage: string;\n public DocumentId: string;\n public DocumentLongVersion: number;\n public DocumentLineId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentValidationResultLineId = \n odataObject.DocumentValidationResultLineId;\n \n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentLongVersion = \n (odataObject.DocumentLongVersion != null) ? parseInt(odataObject.DocumentLongVersion, 10) : undefined;\n \n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultLineClass'] = InventoryDocumentValidationResultLineClass;\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity class.\n */\n export class InventoryDocumentValidationResultSearchCriteriaClass implements Entities.InventoryDocumentValidationResultSearchCriteria {\n public DocumentId: string;\n public DocumentVersion: number;\n public SeverityValue: number;\n public Categories: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.Categories = undefined;\n if (odataObject.Categories) {\n this.Categories = [];\n for (var i = 0; i < odataObject.Categories.length; i++) {\n if (odataObject.Categories[i] != null) {\n this.Categories[i] = \n odataObject.Categories[i];\n } else {\n this.Categories[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSearchCriteriaClass'] = InventoryDocumentValidationResultSearchCriteriaClass;\n \n /**\n * ProductDimensionValueInventoryAvailability entity class.\n */\n export class ProductDimensionValueInventoryAvailabilityClass implements Entities.ProductDimensionValueInventoryAvailability {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ProductIds: number[];\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n }\n }\n entityDictionary['ProductDimensionValueInventoryAvailabilityClass'] = ProductDimensionValueInventoryAvailabilityClass;\n \n /**\n * ProductDimension entity class.\n */\n export class ProductDimensionClass implements Entities.ProductDimension {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionClass'] = ProductDimensionClass;\n \n /**\n * ProductDimensionValue entity class.\n */\n export class ProductDimensionValueClass implements Entities.ProductDimensionValue {\n public RecordId: number;\n public Value: string;\n public DimensionId: string;\n public ColorHexCode: string;\n public ImageUrl: string;\n public RefinerGroup: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n odataObject.Value;\n \n this.DimensionId = \n odataObject.DimensionId;\n \n this.ColorHexCode = \n odataObject.ColorHexCode;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.RefinerGroup = \n odataObject.RefinerGroup;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionValueClass'] = ProductDimensionValueClass;\n \n /**\n * ProductDimensionCombination entity class.\n */\n export class ProductDimensionCombinationClass implements Entities.ProductDimensionCombination {\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionCombinationClass'] = ProductDimensionCombinationClass;\n \n /**\n * SearchRefiner entity class.\n */\n export class SearchRefinerClass implements Entities.SearchRefiner {\n public RecordId: number;\n public KeyName: string;\n public DataTypeValue: number;\n public RefinerTypeValue: number;\n public DisplayTemplateValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.RefinerTypeValue = \n odataObject.RefinerTypeValue;\n \n this.DisplayTemplateValue = \n odataObject.DisplayTemplateValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerClass'] = SearchRefinerClass;\n \n /**\n * SearchRefinerValue entity class.\n */\n export class SearchRefinerValueClass implements Entities.SearchRefinerValue {\n public RefinerRecordId: number;\n public DataTypeValue: number;\n public LeftValueBoundString: string;\n public RightValueBoundString: string;\n public UnitText: string;\n public RowNumber: number;\n public Count: number;\n public LeftValueBoundLocalizedString: string;\n public RightValueBoundLocalizedString: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinerRecordId = \n (odataObject.RefinerRecordId != null) ? parseInt(odataObject.RefinerRecordId, 10) : undefined;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.LeftValueBoundString = \n odataObject.LeftValueBoundString;\n \n this.RightValueBoundString = \n odataObject.RightValueBoundString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.RowNumber = \n odataObject.RowNumber;\n \n this.Count = \n odataObject.Count;\n \n this.LeftValueBoundLocalizedString = \n odataObject.LeftValueBoundLocalizedString;\n \n this.RightValueBoundLocalizedString = \n odataObject.RightValueBoundLocalizedString;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerValueClass'] = SearchRefinerValueClass;\n \n /**\n * ProductRefiner entity class.\n */\n export class ProductRefinerClass\n extends SearchRefinerClass\n implements Entities.ProductRefiner {\n public SourceValue: number;\n public Values: Entities.ProductRefinerValue[];\n public IsDimension: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ProductRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefiner\";\n \n }\n }\n entityDictionary['ProductRefinerClass'] = ProductRefinerClass;\n \n /**\n * ProductRefinerValue entity class.\n */\n export class ProductRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ProductRefinerValue {\n public RefinerSourceValue: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefinerValue\";\n \n }\n }\n entityDictionary['ProductRefinerValueClass'] = ProductRefinerValueClass;\n \n /**\n * ClientBookRefiner entity class.\n */\n export class ClientBookRefinerClass\n extends SearchRefinerClass\n implements Entities.ClientBookRefiner {\n public SourceValue: number;\n public Values: Entities.ClientBookRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ClientBookRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefiner\";\n \n }\n }\n entityDictionary['ClientBookRefinerClass'] = ClientBookRefinerClass;\n \n /**\n * ClientBookRefinerValue entity class.\n */\n export class ClientBookRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ClientBookRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefinerValue\";\n \n }\n }\n entityDictionary['ClientBookRefinerValueClass'] = ClientBookRefinerValueClass;\n \n /**\n * ProductRelationType entity class.\n */\n export class ProductRelationTypeClass implements Entities.ProductRelationType {\n public Name: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRelationTypeClass'] = ProductRelationTypeClass;\n \n /**\n * ComponentInSlotRelation entity class.\n */\n export class ComponentInSlotRelationClass implements Entities.ComponentInSlotRelation {\n public ComponentId: number;\n public SlotId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentId = \n (odataObject.ComponentId != null) ? parseInt(odataObject.ComponentId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentInSlotRelationClass'] = ComponentInSlotRelationClass;\n \n /**\n * ProductRules entity class.\n */\n export class ProductRulesClass implements Entities.ProductRules {\n public HasLinkedProducts: boolean;\n public IsSerialized: boolean;\n public IsActiveInSalesProcess: boolean;\n public IsBlocked: boolean;\n public DateOfBlocking: Date;\n public DateToActivate: Date;\n public DateToBlock: Date;\n public DefaultUnitOfMeasure: string;\n public PriceKeyingRequirementValue: number;\n public QuantityKeyingRequirementValue: number;\n public MustKeyInComment: boolean;\n public CanQuantityBecomeNegative: boolean;\n public MustScaleItem: boolean;\n public CanPriceBeZero: boolean;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n this.IsSerialized = \n odataObject.IsSerialized;\n \n this.IsActiveInSalesProcess = \n odataObject.IsActiveInSalesProcess;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.DateOfBlocking = \n (odataObject.DateOfBlocking instanceof Date) ? odataObject.DateOfBlocking\n : (odataObject.DateOfBlocking != null) ? jsonLightReadStringPropertyValue(odataObject.DateOfBlocking, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToActivate = \n (odataObject.DateToActivate instanceof Date) ? odataObject.DateToActivate\n : (odataObject.DateToActivate != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBlock = \n (odataObject.DateToBlock instanceof Date) ? odataObject.DateToBlock\n : (odataObject.DateToBlock != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBlock, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.PriceKeyingRequirementValue = \n odataObject.PriceKeyingRequirementValue;\n \n this.QuantityKeyingRequirementValue = \n odataObject.QuantityKeyingRequirementValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.CanQuantityBecomeNegative = \n odataObject.CanQuantityBecomeNegative;\n \n this.MustScaleItem = \n odataObject.MustScaleItem;\n \n this.CanPriceBeZero = \n odataObject.CanPriceBeZero;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRulesClass'] = ProductRulesClass;\n \n /**\n * LocalizedString entity class.\n */\n export class LocalizedStringClass implements Entities.LocalizedString {\n public RecordId: number;\n public LanguageId: string;\n public TextId: number;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedStringClass'] = LocalizedStringClass;\n \n /**\n * LoyaltyCard entity class.\n */\n export class LoyaltyCardClass implements Entities.LoyaltyCard {\n public CardNumber: string;\n public CardTenderTypeValue: number;\n public CustomerAccount: string;\n public LoyaltyGroups: Entities.LoyaltyGroup[];\n public RewardPoints: Entities.LoyaltyRewardPoint[];\n public LoyaltyEnrollmentDate: Date;\n public LoyaltyEnrollmentDateLocal: Date;\n public LoyaltyEnrollmentTime: number;\n public LoyaltyEnrollmentTimeLocal: number;\n public OmOperatingUnitId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardNumber = \n odataObject.CardNumber;\n \n this.CardTenderTypeValue = \n odataObject.CardTenderTypeValue;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.LoyaltyGroups = undefined;\n if (odataObject.LoyaltyGroups) {\n this.LoyaltyGroups = [];\n for (var i = 0; i < odataObject.LoyaltyGroups.length; i++) {\n if (odataObject.LoyaltyGroups[i] != null) {\n if (odataObject.LoyaltyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyGroups[i] = new entityDictionary[className](odataObject.LoyaltyGroups[i])\n }\n } else {\n this.LoyaltyGroups[i] = new LoyaltyGroupClass(odataObject.LoyaltyGroups[i]);\n }\n } else {\n this.LoyaltyGroups[i] = undefined;\n }\n }\n }\n \n this.RewardPoints = undefined;\n if (odataObject.RewardPoints) {\n this.RewardPoints = [];\n for (var i = 0; i < odataObject.RewardPoints.length; i++) {\n if (odataObject.RewardPoints[i] != null) {\n if (odataObject.RewardPoints[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPoints[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPoints[i] = new entityDictionary[className](odataObject.RewardPoints[i])\n }\n } else {\n this.RewardPoints[i] = new LoyaltyRewardPointClass(odataObject.RewardPoints[i]);\n }\n } else {\n this.RewardPoints[i] = undefined;\n }\n }\n }\n \n this.LoyaltyEnrollmentDate = \n (odataObject.LoyaltyEnrollmentDate instanceof Date) ? odataObject.LoyaltyEnrollmentDate\n : (odataObject.LoyaltyEnrollmentDate != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentDateLocal = \n (odataObject.LoyaltyEnrollmentDateLocal instanceof Date) ? odataObject.LoyaltyEnrollmentDateLocal\n : (odataObject.LoyaltyEnrollmentDateLocal != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDateLocal, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentTime = \n odataObject.LoyaltyEnrollmentTime;\n \n this.LoyaltyEnrollmentTimeLocal = \n odataObject.LoyaltyEnrollmentTimeLocal;\n \n this.OmOperatingUnitId = \n (odataObject.OmOperatingUnitId != null) ? parseInt(odataObject.OmOperatingUnitId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardClass'] = LoyaltyCardClass;\n \n /**\n * ProductComponent entity class.\n */\n export class ProductComponentClass implements Entities.ProductComponent {\n public ProductId: number;\n public SlotId: number;\n public Product: Entities.SimpleProduct;\n public AdditionalChargeForComponent: number;\n public Behavior: Entities.ProductBehavior;\n public Description: string;\n public Dimensions: Entities.ProductDimension[];\n public ItemId: string;\n public Name: string;\n public ProductTypeValue: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n this.AdditionalChargeForComponent = \n (odataObject.AdditionalChargeForComponent != null) ? parseFloat(odataObject.AdditionalChargeForComponent) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Description = \n odataObject.Description;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComponentClass'] = ProductComponentClass;\n \n /**\n * SimpleProduct entity class.\n */\n export class SimpleProductClass implements Entities.SimpleProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public MasterProductId: number;\n public Components: Entities.ProductComponent[];\n public IsGiftCard: boolean;\n public Dimensions: Entities.ProductDimension[];\n public Behavior: Entities.ProductBehavior;\n public LinkedProducts: Entities.SimpleLinkedProduct[];\n public PrimaryImageUrl: string;\n public ItemTypeValue: number;\n public ItemServiceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.Components = undefined;\n if (odataObject.Components) {\n this.Components = [];\n for (var i = 0; i < odataObject.Components.length; i++) {\n if (odataObject.Components[i] != null) {\n if (odataObject.Components[i]['@odata.type'] != null) {\n var className: string = odataObject.Components[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Components[i] = new entityDictionary[className](odataObject.Components[i])\n }\n } else {\n this.Components[i] = new ProductComponentClass(odataObject.Components[i]);\n }\n } else {\n this.Components[i] = undefined;\n }\n }\n }\n \n this.IsGiftCard = \n odataObject.IsGiftCard;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new SimpleLinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.ItemTypeValue = \n odataObject.ItemTypeValue;\n \n this.ItemServiceTypeValue = \n odataObject.ItemServiceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleProductClass'] = SimpleProductClass;\n \n /**\n * ProductBehavior entity class.\n */\n export class ProductBehaviorClass implements Entities.ProductBehavior {\n public HasSerialNumber: boolean;\n public IsDiscountAllowed: boolean;\n public IsManualDiscountAllowed: boolean;\n public IsKitDisassemblyAllowed: boolean;\n public IsNegativeQuantityAllowed: boolean;\n public IsReturnAllowed: boolean;\n public IsSaleAtPhysicalStoresAllowed: boolean;\n public IsZeroSalePriceAllowed: boolean;\n public KeyInPriceValue: number;\n public KeyInQuantityValue: number;\n public MustKeyInComment: boolean;\n public MustPrintIndividualShelfLabelsForVariants: boolean;\n public MustPromptForSerialNumberOnlyAtSale: boolean;\n public MustWeighProductAtSale: boolean;\n public ValidFromDateForSaleAtPhysicalStores: Date;\n public ValidToDateForSaleAtPhysicalStores: Date;\n public IsStorageDimensionGroupLocationActive: boolean;\n public IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n public AllowNegativePhysicalInventory: boolean;\n public IsStockedProduct: boolean;\n public IsBlankSerialNumberAllowed: boolean;\n public IsBlankSerialNumberReceiptAllowed: boolean;\n public IsSerialNumberControlEnabled: boolean;\n public IsStorageDimensionGroupLocationBlankIssueAllowed: boolean;\n public IsSerialNumberRequired: boolean;\n public DefaultQuantity: number;\n public MaximumQuantity: number;\n public MinimumQuantity: number;\n public MultipleOfQuantity: number;\n public InventoryLocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsDiscountAllowed = \n odataObject.IsDiscountAllowed;\n \n this.IsManualDiscountAllowed = \n odataObject.IsManualDiscountAllowed;\n \n this.IsKitDisassemblyAllowed = \n odataObject.IsKitDisassemblyAllowed;\n \n this.IsNegativeQuantityAllowed = \n odataObject.IsNegativeQuantityAllowed;\n \n this.IsReturnAllowed = \n odataObject.IsReturnAllowed;\n \n this.IsSaleAtPhysicalStoresAllowed = \n odataObject.IsSaleAtPhysicalStoresAllowed;\n \n this.IsZeroSalePriceAllowed = \n odataObject.IsZeroSalePriceAllowed;\n \n this.KeyInPriceValue = \n odataObject.KeyInPriceValue;\n \n this.KeyInQuantityValue = \n odataObject.KeyInQuantityValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.MustPrintIndividualShelfLabelsForVariants = \n odataObject.MustPrintIndividualShelfLabelsForVariants;\n \n this.MustPromptForSerialNumberOnlyAtSale = \n odataObject.MustPromptForSerialNumberOnlyAtSale;\n \n this.MustWeighProductAtSale = \n odataObject.MustWeighProductAtSale;\n \n this.ValidFromDateForSaleAtPhysicalStores = \n (odataObject.ValidFromDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidFromDateForSaleAtPhysicalStores\n : (odataObject.ValidFromDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDateForSaleAtPhysicalStores = \n (odataObject.ValidToDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidToDateForSaleAtPhysicalStores\n : (odataObject.ValidToDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsStorageDimensionGroupLocationActive = \n odataObject.IsStorageDimensionGroupLocationActive;\n \n this.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled = \n odataObject.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled;\n \n this.AllowNegativePhysicalInventory = \n odataObject.AllowNegativePhysicalInventory;\n \n this.IsStockedProduct = \n odataObject.IsStockedProduct;\n \n this.IsBlankSerialNumberAllowed = \n odataObject.IsBlankSerialNumberAllowed;\n \n this.IsBlankSerialNumberReceiptAllowed = \n odataObject.IsBlankSerialNumberReceiptAllowed;\n \n this.IsSerialNumberControlEnabled = \n odataObject.IsSerialNumberControlEnabled;\n \n this.IsStorageDimensionGroupLocationBlankIssueAllowed = \n odataObject.IsStorageDimensionGroupLocationBlankIssueAllowed;\n \n this.IsSerialNumberRequired = \n odataObject.IsSerialNumberRequired;\n \n this.DefaultQuantity = \n (odataObject.DefaultQuantity != null) ? parseFloat(odataObject.DefaultQuantity) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumQuantity = \n (odataObject.MinimumQuantity != null) ? parseFloat(odataObject.MinimumQuantity) : undefined;\n \n this.MultipleOfQuantity = \n (odataObject.MultipleOfQuantity != null) ? parseFloat(odataObject.MultipleOfQuantity) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductBehaviorClass'] = ProductBehaviorClass;\n \n /**\n * SimpleLinkedProduct entity class.\n */\n export class SimpleLinkedProductClass implements Entities.SimpleLinkedProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public Quantity: number;\n public Behavior: Entities.ProductBehavior;\n public Dimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleLinkedProductClass'] = SimpleLinkedProductClass;\n \n /**\n * ProductSearchResult entity class.\n */\n export class ProductSearchResultClass implements Entities.ProductSearchResult {\n public ItemId: string;\n public Name: string;\n public Price: number;\n public PrimaryImageUrl: string;\n public RecordId: number;\n public TrackingId: string;\n public AverageRating: number;\n public TotalRatings: number;\n public Description: string;\n public BasePrice: number;\n public MinVariantPrice: number;\n public MaxVariantPrice: number;\n public DisplayOrder: number;\n public AttributeValues: Entities.AttributeValue[];\n public IsMasterProduct: boolean;\n public MasterProductId: number;\n public DefaultUnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.Description = \n odataObject.Description;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductSearchResultClass'] = ProductSearchResultClass;\n \n /**\n * SearchSuggestion entity class.\n */\n export class SearchSuggestionClass implements Entities.SearchSuggestion {\n public Value: string;\n public Value2: Entities.CommerceProperty;\n public Value3: Entities.CommerceProperty;\n public Value4: Entities.CommerceProperty;\n public SuggestionType: string;\n public Id: string;\n public ImageUrl: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n if (odataObject.Value2 == null) {\n this.Value2 = undefined;\n } else if (odataObject.Value2['@odata.type'] == null) {\n this.Value2 = new CommercePropertyClass(odataObject.Value2);\n } else {\n var className: string = odataObject.Value2['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value2 = new entityDictionary[className](odataObject.Value2)\n }\n }\n\n \n if (odataObject.Value3 == null) {\n this.Value3 = undefined;\n } else if (odataObject.Value3['@odata.type'] == null) {\n this.Value3 = new CommercePropertyClass(odataObject.Value3);\n } else {\n var className: string = odataObject.Value3['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value3 = new entityDictionary[className](odataObject.Value3)\n }\n }\n\n \n if (odataObject.Value4 == null) {\n this.Value4 = undefined;\n } else if (odataObject.Value4['@odata.type'] == null) {\n this.Value4 = new CommercePropertyClass(odataObject.Value4);\n } else {\n var className: string = odataObject.Value4['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value4 = new entityDictionary[className](odataObject.Value4)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.Id = \n odataObject.Id;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchSuggestionClass'] = SearchSuggestionClass;\n \n /**\n * LoyaltyPointRedemptionEstimate entity class.\n */\n export class LoyaltyPointRedemptionEstimateClass implements Entities.LoyaltyPointRedemptionEstimate {\n public MaxCurrencyValueOfLoyaltyPoints: number;\n public RewardPointToRedeemList: Entities.LoyaltyRewardPointLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MaxCurrencyValueOfLoyaltyPoints = \n (odataObject.MaxCurrencyValueOfLoyaltyPoints != null) ? parseFloat(odataObject.MaxCurrencyValueOfLoyaltyPoints) : undefined;\n \n this.RewardPointToRedeemList = undefined;\n if (odataObject.RewardPointToRedeemList) {\n this.RewardPointToRedeemList = [];\n for (var i = 0; i < odataObject.RewardPointToRedeemList.length; i++) {\n if (odataObject.RewardPointToRedeemList[i] != null) {\n if (odataObject.RewardPointToRedeemList[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPointToRedeemList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPointToRedeemList[i] = new entityDictionary[className](odataObject.RewardPointToRedeemList[i])\n }\n } else {\n this.RewardPointToRedeemList[i] = new LoyaltyRewardPointLineClass(odataObject.RewardPointToRedeemList[i]);\n }\n } else {\n this.RewardPointToRedeemList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyPointRedemptionEstimateClass'] = LoyaltyPointRedemptionEstimateClass;\n \n /**\n * LoyaltyGroup entity class.\n */\n export class LoyaltyGroupClass implements Entities.LoyaltyGroup {\n public Description: string;\n public Name: string;\n public RecordId: number;\n public LoyaltyTiers: Entities.LoyaltyTier[];\n public LoyaltyCardTiers: Entities.LoyaltyCardTier[];\n public HighestActiveLoyaltyCardTier: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LoyaltyTiers = undefined;\n if (odataObject.LoyaltyTiers) {\n this.LoyaltyTiers = [];\n for (var i = 0; i < odataObject.LoyaltyTiers.length; i++) {\n if (odataObject.LoyaltyTiers[i] != null) {\n if (odataObject.LoyaltyTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyTiers[i] = new entityDictionary[className](odataObject.LoyaltyTiers[i])\n }\n } else {\n this.LoyaltyTiers[i] = new LoyaltyTierClass(odataObject.LoyaltyTiers[i]);\n }\n } else {\n this.LoyaltyTiers[i] = undefined;\n }\n }\n }\n \n this.LoyaltyCardTiers = undefined;\n if (odataObject.LoyaltyCardTiers) {\n this.LoyaltyCardTiers = [];\n for (var i = 0; i < odataObject.LoyaltyCardTiers.length; i++) {\n if (odataObject.LoyaltyCardTiers[i] != null) {\n if (odataObject.LoyaltyCardTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyCardTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCardTiers[i] = new entityDictionary[className](odataObject.LoyaltyCardTiers[i])\n }\n } else {\n this.LoyaltyCardTiers[i] = new LoyaltyCardTierClass(odataObject.LoyaltyCardTiers[i]);\n }\n } else {\n this.LoyaltyCardTiers[i] = undefined;\n }\n }\n }\n \n this.HighestActiveLoyaltyCardTier = \n (odataObject.HighestActiveLoyaltyCardTier != null) ? parseInt(odataObject.HighestActiveLoyaltyCardTier, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyGroupClass'] = LoyaltyGroupClass;\n \n /**\n * LoyaltyTier entity class.\n */\n export class LoyaltyTierClass implements Entities.LoyaltyTier {\n public Description: string;\n public RecordId: number;\n public TierId: string;\n public TierLevel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.TierLevel = \n (odataObject.TierLevel != null) ? parseFloat(odataObject.TierLevel) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyTierClass'] = LoyaltyTierClass;\n \n /**\n * LoyaltyCardTier entity class.\n */\n export class LoyaltyCardTierClass implements Entities.LoyaltyCardTier {\n public RecordId: number;\n public TierId: string;\n public LoyaltyTierRecordId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardTierClass'] = LoyaltyCardTierClass;\n \n /**\n * LoyaltyRewardPoint entity class.\n */\n export class LoyaltyRewardPointClass implements Entities.LoyaltyRewardPoint {\n public IsRedeemable: boolean;\n public RewardPointCurrency: string;\n public RewardPointTypeValue: number;\n public Description: string;\n public RewardPointId: string;\n public IssuedPoints: number;\n public UsedPoints: number;\n public ExpiredPoints: number;\n public ActivePoints: number;\n public PointsExpiringSoon: number;\n public UnvestedPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsRedeemable = \n odataObject.IsRedeemable;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.RewardPointTypeValue = \n odataObject.RewardPointTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.IssuedPoints = \n (odataObject.IssuedPoints != null) ? parseFloat(odataObject.IssuedPoints) : undefined;\n \n this.UsedPoints = \n (odataObject.UsedPoints != null) ? parseFloat(odataObject.UsedPoints) : undefined;\n \n this.ExpiredPoints = \n (odataObject.ExpiredPoints != null) ? parseFloat(odataObject.ExpiredPoints) : undefined;\n \n this.ActivePoints = \n (odataObject.ActivePoints != null) ? parseFloat(odataObject.ActivePoints) : undefined;\n \n this.PointsExpiringSoon = \n (odataObject.PointsExpiringSoon != null) ? parseFloat(odataObject.PointsExpiringSoon) : undefined;\n \n this.UnvestedPoints = \n (odataObject.UnvestedPoints != null) ? parseFloat(odataObject.UnvestedPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointClass'] = LoyaltyRewardPointClass;\n \n /**\n * LoyaltyCardTransaction entity class.\n */\n export class LoyaltyCardTransactionClass implements Entities.LoyaltyCardTransaction {\n public ChannelName: string;\n public EntryDateTime: Date;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public RewardPointAmountQuantity: number;\n public TransactionId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelName = \n odataObject.ChannelName;\n \n this.EntryDateTime = \n (odataObject.EntryDateTime instanceof Date) ? odataObject.EntryDateTime\n : (odataObject.EntryDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n }\n }\n entityDictionary['LoyaltyCardTransactionClass'] = LoyaltyCardTransactionClass;\n \n /**\n * GiftCard entity class.\n */\n export class GiftCardClass implements Entities.GiftCard {\n public Id: string;\n public Balance: number;\n public BalanceCurrencyCode: string;\n public BalanceInCardCurrency: number;\n public CardCurrencyCode: string;\n public GiftCardIssueAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.BalanceCurrencyCode = \n odataObject.BalanceCurrencyCode;\n \n this.BalanceInCardCurrency = \n (odataObject.BalanceInCardCurrency != null) ? parseFloat(odataObject.BalanceInCardCurrency) : undefined;\n \n this.CardCurrencyCode = \n odataObject.CardCurrencyCode;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GiftCardClass'] = GiftCardClass;\n \n /**\n * OperationPermission entity class.\n */\n export class OperationPermissionClass implements Entities.OperationPermission {\n public OperationName: string;\n public OperationId: number;\n public CheckUserAccess: boolean;\n public AllowAnonymousAccess: boolean;\n public AllowCustomerAccess: boolean;\n public AllowApplicationAccess: boolean;\n public IsEnabledForTaskManagement: boolean;\n public Permissions: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OperationName = \n odataObject.OperationName;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.CheckUserAccess = \n odataObject.CheckUserAccess;\n \n this.AllowAnonymousAccess = \n odataObject.AllowAnonymousAccess;\n \n this.AllowCustomerAccess = \n odataObject.AllowCustomerAccess;\n \n this.AllowApplicationAccess = \n odataObject.AllowApplicationAccess;\n \n this.IsEnabledForTaskManagement = \n odataObject.IsEnabledForTaskManagement;\n \n this.Permissions = undefined;\n if (odataObject.Permissions) {\n this.Permissions = [];\n for (var i = 0; i < odataObject.Permissions.length; i++) {\n if (odataObject.Permissions[i] != null) {\n this.Permissions[i] = \n odataObject.Permissions[i];\n } else {\n this.Permissions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationPermissionClass'] = OperationPermissionClass;\n \n /**\n * StateProvinceInfo entity class.\n */\n export class StateProvinceInfoClass implements Entities.StateProvinceInfo {\n public CountryRegionId: string;\n public StateId: string;\n public StateName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.StateName = \n odataObject.StateName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StateProvinceInfoClass'] = StateProvinceInfoClass;\n \n /**\n * TransactionLog entity class.\n */\n export class TransactionLogClass\n extends TransactionClass\n implements Entities.TransactionLog {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TransactionLog\";\n \n }\n }\n entityDictionary['TransactionLogClass'] = TransactionLogClass;\n \n /**\n * KitTransaction entity class.\n */\n export class KitTransactionClass\n extends TransactionLogClass\n implements Entities.KitTransaction {\n public KitTransactionLines: Entities.KitTransactionLine[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.KitTransactionLines = undefined;\n if (odataObject.KitTransactionLines) {\n this.KitTransactionLines = [];\n for (var i = 0; i < odataObject.KitTransactionLines.length; i++) {\n if (odataObject.KitTransactionLines[i] != null) {\n if (odataObject.KitTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.KitTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitTransactionLines[i] = new entityDictionary[className](odataObject.KitTransactionLines[i])\n }\n } else {\n this.KitTransactionLines[i] = new KitTransactionLineClass(odataObject.KitTransactionLines[i]);\n }\n } else {\n this.KitTransactionLines[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.KitTransaction\";\n \n }\n }\n entityDictionary['KitTransactionClass'] = KitTransactionClass;\n \n /**\n * SalesTaxGroup entity class.\n */\n export class SalesTaxGroupClass implements Entities.SalesTaxGroup {\n public RecordId: number;\n public TaxGroup: string;\n public TaxGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.TaxGroupName = \n odataObject.TaxGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesTaxGroupClass'] = SalesTaxGroupClass;\n \n /**\n * ProductProperty entity class.\n */\n export class ProductPropertyClass implements Entities.ProductProperty {\n public ValueString: string;\n public UnitText: string;\n public PropertyTypeValue: number;\n public KeyName: string;\n public FriendlyName: string;\n public RecordId: number;\n public IsDimensionProperty: boolean;\n public AttributeValueId: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public GroupId: number;\n public GroupTypeValue: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public ProductId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValueString = \n odataObject.ValueString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.PropertyTypeValue = \n odataObject.PropertyTypeValue;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsDimensionProperty = \n odataObject.IsDimensionProperty;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupTypeValue = \n odataObject.GroupTypeValue;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductPropertyClass'] = ProductPropertyClass;\n \n /**\n * ProductCompositionInformation entity class.\n */\n export class ProductCompositionInformationClass implements Entities.ProductCompositionInformation {\n public VariantInformation: Entities.ProductVariantInformation;\n public KitDefinition: Entities.KitDefinition;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.VariantInformation == null) {\n this.VariantInformation = undefined;\n } else if (odataObject.VariantInformation['@odata.type'] == null) {\n this.VariantInformation = new ProductVariantInformationClass(odataObject.VariantInformation);\n } else {\n var className: string = odataObject.VariantInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.VariantInformation = new entityDictionary[className](odataObject.VariantInformation)\n }\n }\n\n \n if (odataObject.KitDefinition == null) {\n this.KitDefinition = undefined;\n } else if (odataObject.KitDefinition['@odata.type'] == null) {\n this.KitDefinition = new KitDefinitionClass(odataObject.KitDefinition);\n } else {\n var className: string = odataObject.KitDefinition['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitDefinition = new entityDictionary[className](odataObject.KitDefinition)\n }\n }\n\n \n }\n }\n entityDictionary['ProductCompositionInformationClass'] = ProductCompositionInformationClass;\n \n /**\n * ProductVariantInformation entity class.\n */\n export class ProductVariantInformationClass implements Entities.ProductVariantInformation {\n public ActiveVariantProductId: number;\n public Variants: Entities.ProductVariant[];\n public Dimensions: Entities.ProductDimensionSet[];\n public ItemId: string;\n public MasterProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActiveVariantProductId = \n (odataObject.ActiveVariantProductId != null) ? parseInt(odataObject.ActiveVariantProductId, 10) : undefined;\n \n this.Variants = undefined;\n if (odataObject.Variants) {\n this.Variants = [];\n for (var i = 0; i < odataObject.Variants.length; i++) {\n if (odataObject.Variants[i] != null) {\n if (odataObject.Variants[i]['@odata.type'] != null) {\n var className: string = odataObject.Variants[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Variants[i] = new entityDictionary[className](odataObject.Variants[i])\n }\n } else {\n this.Variants[i] = new ProductVariantClass(odataObject.Variants[i]);\n }\n } else {\n this.Variants[i] = undefined;\n }\n }\n }\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionSetClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductVariantInformationClass'] = ProductVariantInformationClass;\n \n /**\n * ProductChangeTrackingInformation entity class.\n */\n export class ProductChangeTrackingInformationClass implements Entities.ProductChangeTrackingInformation {\n public ModifiedDateTime: Date;\n public ChangeActionValue: number;\n public RequestedActionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChangeActionValue = \n odataObject.ChangeActionValue;\n \n this.RequestedActionValue = \n odataObject.RequestedActionValue;\n \n }\n }\n entityDictionary['ProductChangeTrackingInformationClass'] = ProductChangeTrackingInformationClass;\n \n /**\n * ProductDimensionSet entity class.\n */\n export class ProductDimensionSetClass implements Entities.ProductDimensionSet {\n public DimensionKey: string;\n public DimensionValues: Entities.ProductDimensionValueSet[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionKey = \n odataObject.DimensionKey;\n \n this.DimensionValues = undefined;\n if (odataObject.DimensionValues) {\n this.DimensionValues = [];\n for (var i = 0; i < odataObject.DimensionValues.length; i++) {\n if (odataObject.DimensionValues[i] != null) {\n if (odataObject.DimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.DimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValues[i] = new entityDictionary[className](odataObject.DimensionValues[i])\n }\n } else {\n this.DimensionValues[i] = new ProductDimensionValueSetClass(odataObject.DimensionValues[i]);\n }\n } else {\n this.DimensionValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionSetClass'] = ProductDimensionSetClass;\n \n /**\n * ProductDimensionValueSet entity class.\n */\n export class ProductDimensionValueSetClass implements Entities.ProductDimensionValueSet {\n public DimensionId: string;\n public DimensionValue: string;\n public VariantSet: number[];\n public Language: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public SwatchRefinerGroupValue: string;\n public SwatchRefinerGroupTranslation: string;\n public SwatchRefinerGroupImageUrl: string;\n public SwatchRefinerGroupColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionId = \n odataObject.DimensionId;\n \n this.DimensionValue = \n odataObject.DimensionValue;\n \n this.VariantSet = undefined;\n if (odataObject.VariantSet) {\n this.VariantSet = [];\n for (var i = 0; i < odataObject.VariantSet.length; i++) {\n if (odataObject.VariantSet[i] != null) {\n this.VariantSet[i] = \n parseInt(odataObject.VariantSet[i], 10);\n } else {\n this.VariantSet[i] = undefined;\n }\n }\n }\n \n this.Language = \n odataObject.Language;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.SwatchRefinerGroupValue = \n odataObject.SwatchRefinerGroupValue;\n \n this.SwatchRefinerGroupTranslation = \n odataObject.SwatchRefinerGroupTranslation;\n \n this.SwatchRefinerGroupImageUrl = \n odataObject.SwatchRefinerGroupImageUrl;\n \n this.SwatchRefinerGroupColorHexCode = \n odataObject.SwatchRefinerGroupColorHexCode;\n \n }\n }\n entityDictionary['ProductDimensionValueSetClass'] = ProductDimensionValueSetClass;\n \n /**\n * RichMediaLocations entity class.\n */\n export class RichMediaLocationsClass implements Entities.RichMediaLocations {\n public Items: Entities.RichMediaLocationsRichMediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Items = undefined;\n if (odataObject.Items) {\n this.Items = [];\n for (var i = 0; i < odataObject.Items.length; i++) {\n if (odataObject.Items[i] != null) {\n if (odataObject.Items[i]['@odata.type'] != null) {\n var className: string = odataObject.Items[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Items[i] = new entityDictionary[className](odataObject.Items[i])\n }\n } else {\n this.Items[i] = new RichMediaLocationsRichMediaLocationClass(odataObject.Items[i]);\n }\n } else {\n this.Items[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RichMediaLocationsClass'] = RichMediaLocationsClass;\n \n /**\n * RichMediaLocationsRichMediaLocation entity class.\n */\n export class RichMediaLocationsRichMediaLocationClass implements Entities.RichMediaLocationsRichMediaLocation {\n public Url: string;\n public AltText: string;\n public IsSelfHosted: boolean;\n public IsDefault: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n }\n }\n entityDictionary['RichMediaLocationsRichMediaLocationClass'] = RichMediaLocationsRichMediaLocationClass;\n \n /**\n * KitDefinition entity class.\n */\n export class KitDefinitionClass implements Entities.KitDefinition {\n public DisassembleAtRegister: boolean;\n public KitLineDefinitions: Entities.KitLineDefinition[];\n public KitLineProductToVariantMap: Entities.ComponentKitVariantSet[];\n public KitVariantToComponentMap: Entities.KitVariantContent[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DisassembleAtRegister = \n odataObject.DisassembleAtRegister;\n \n this.KitLineDefinitions = undefined;\n if (odataObject.KitLineDefinitions) {\n this.KitLineDefinitions = [];\n for (var i = 0; i < odataObject.KitLineDefinitions.length; i++) {\n if (odataObject.KitLineDefinitions[i] != null) {\n if (odataObject.KitLineDefinitions[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineDefinitions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineDefinitions[i] = new entityDictionary[className](odataObject.KitLineDefinitions[i])\n }\n } else {\n this.KitLineDefinitions[i] = new KitLineDefinitionClass(odataObject.KitLineDefinitions[i]);\n }\n } else {\n this.KitLineDefinitions[i] = undefined;\n }\n }\n }\n \n this.KitLineProductToVariantMap = undefined;\n if (odataObject.KitLineProductToVariantMap) {\n this.KitLineProductToVariantMap = [];\n for (var i = 0; i < odataObject.KitLineProductToVariantMap.length; i++) {\n if (odataObject.KitLineProductToVariantMap[i] != null) {\n if (odataObject.KitLineProductToVariantMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineProductToVariantMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineProductToVariantMap[i] = new entityDictionary[className](odataObject.KitLineProductToVariantMap[i])\n }\n } else {\n this.KitLineProductToVariantMap[i] = new ComponentKitVariantSetClass(odataObject.KitLineProductToVariantMap[i]);\n }\n } else {\n this.KitLineProductToVariantMap[i] = undefined;\n }\n }\n }\n \n this.KitVariantToComponentMap = undefined;\n if (odataObject.KitVariantToComponentMap) {\n this.KitVariantToComponentMap = [];\n for (var i = 0; i < odataObject.KitVariantToComponentMap.length; i++) {\n if (odataObject.KitVariantToComponentMap[i] != null) {\n if (odataObject.KitVariantToComponentMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitVariantToComponentMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitVariantToComponentMap[i] = new entityDictionary[className](odataObject.KitVariantToComponentMap[i])\n }\n } else {\n this.KitVariantToComponentMap[i] = new KitVariantContentClass(odataObject.KitVariantToComponentMap[i]);\n }\n } else {\n this.KitVariantToComponentMap[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitDefinitionClass'] = KitDefinitionClass;\n \n /**\n * ComponentKitVariantSet entity class.\n */\n export class ComponentKitVariantSetClass implements Entities.ComponentKitVariantSet {\n public KitLineProductId: number;\n public KitVariantIdList: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineProductId = \n (odataObject.KitLineProductId != null) ? parseInt(odataObject.KitLineProductId, 10) : undefined;\n \n this.KitVariantIdList = undefined;\n if (odataObject.KitVariantIdList) {\n this.KitVariantIdList = [];\n for (var i = 0; i < odataObject.KitVariantIdList.length; i++) {\n if (odataObject.KitVariantIdList[i] != null) {\n this.KitVariantIdList[i] = \n parseInt(odataObject.KitVariantIdList[i], 10);\n } else {\n this.KitVariantIdList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentKitVariantSetClass'] = ComponentKitVariantSetClass;\n \n /**\n * KitLineDefinition entity class.\n */\n export class KitLineDefinitionClass implements Entities.KitLineDefinition {\n public ComponentProductId: number;\n public KitLineIdentifier: number;\n public SubstituteProductIds: number[];\n public ComponentProperties: Entities.KitLineProductProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentProductId = \n (odataObject.ComponentProductId != null) ? parseInt(odataObject.ComponentProductId, 10) : undefined;\n \n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.SubstituteProductIds = undefined;\n if (odataObject.SubstituteProductIds) {\n this.SubstituteProductIds = [];\n for (var i = 0; i < odataObject.SubstituteProductIds.length; i++) {\n if (odataObject.SubstituteProductIds[i] != null) {\n this.SubstituteProductIds[i] = \n parseInt(odataObject.SubstituteProductIds[i], 10);\n } else {\n this.SubstituteProductIds[i] = undefined;\n }\n }\n }\n \n this.ComponentProperties = undefined;\n if (odataObject.ComponentProperties) {\n this.ComponentProperties = [];\n for (var i = 0; i < odataObject.ComponentProperties.length; i++) {\n if (odataObject.ComponentProperties[i] != null) {\n if (odataObject.ComponentProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ComponentProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ComponentProperties[i] = new entityDictionary[className](odataObject.ComponentProperties[i])\n }\n } else {\n this.ComponentProperties[i] = new KitLineProductPropertyClass(odataObject.ComponentProperties[i]);\n }\n } else {\n this.ComponentProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineDefinitionClass'] = KitLineDefinitionClass;\n \n /**\n * KitLineProductProperty entity class.\n */\n export class KitLineProductPropertyClass implements Entities.KitLineProductProperty {\n public KitLineIdentifier: number;\n public ProductId: number;\n public Unit: string;\n public Quantity: number;\n public Charge: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Charge = \n (odataObject.Charge != null) ? parseFloat(odataObject.Charge) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineProductPropertyClass'] = KitLineProductPropertyClass;\n \n /**\n * KitComponentKey entity class.\n */\n export class KitComponentKeyClass implements Entities.KitComponentKey {\n public KitLineIdentifier: number;\n public DistinctProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.DistinctProductId = \n (odataObject.DistinctProductId != null) ? parseInt(odataObject.DistinctProductId, 10) : undefined;\n \n }\n }\n entityDictionary['KitComponentKeyClass'] = KitComponentKeyClass;\n \n /**\n * KitVariantContent entity class.\n */\n export class KitVariantContentClass implements Entities.KitVariantContent {\n public KitVariantId: number;\n public KitComponentKeyList: Entities.KitComponentKey[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitVariantId = \n (odataObject.KitVariantId != null) ? parseInt(odataObject.KitVariantId, 10) : undefined;\n \n this.KitComponentKeyList = undefined;\n if (odataObject.KitComponentKeyList) {\n this.KitComponentKeyList = [];\n for (var i = 0; i < odataObject.KitComponentKeyList.length; i++) {\n if (odataObject.KitComponentKeyList[i] != null) {\n if (odataObject.KitComponentKeyList[i]['@odata.type'] != null) {\n var className: string = odataObject.KitComponentKeyList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitComponentKeyList[i] = new entityDictionary[className](odataObject.KitComponentKeyList[i])\n }\n } else {\n this.KitComponentKeyList[i] = new KitComponentKeyClass(odataObject.KitComponentKeyList[i]);\n }\n } else {\n this.KitComponentKeyList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitVariantContentClass'] = KitVariantContentClass;\n \n /**\n * ProductLookupClause entity class.\n */\n export class ProductLookupClauseClass implements Entities.ProductLookupClause {\n public ItemId: string;\n public InventDimensionId: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductLookupClauseClass'] = ProductLookupClauseClass;\n \n /**\n * ProductAssortmentInterval entity class.\n */\n export class ProductAssortmentIntervalClass implements Entities.ProductAssortmentInterval {\n public ProductId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAssortmentIntervalClass'] = ProductAssortmentIntervalClass;\n \n /**\n * OrgUnitLocation entity class.\n */\n export class OrgUnitLocationClass implements Entities.OrgUnitLocation {\n public Contacts: Entities.OrgUnitContact[];\n public ChannelId: number;\n public Latitude: number;\n public Longitude: number;\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n public Address: string;\n public Street: string;\n public StreetNumber: string;\n public City: string;\n public DistrictName: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public Zip: string;\n public County: string;\n public CountyName: string;\n public State: string;\n public StateName: string;\n public Country: string;\n public Distance: number;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public PostalAddressId: number;\n public OpenFrom: number;\n public OpenTo: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.Address = \n odataObject.Address;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.Zip = \n odataObject.Zip;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.Country = \n odataObject.Country;\n \n this.Distance = \n (odataObject.Distance != null) ? parseFloat(odataObject.Distance) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.PostalAddressId = \n (odataObject.PostalAddressId != null) ? parseInt(odataObject.PostalAddressId, 10) : undefined;\n \n this.OpenFrom = \n odataObject.OpenFrom;\n \n this.OpenTo = \n odataObject.OpenTo;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitLocationClass'] = OrgUnitLocationClass;\n \n /**\n * OrgUnitContact entity class.\n */\n export class OrgUnitContactClass implements Entities.OrgUnitContact {\n public ChannelId: number;\n public Locator: string;\n public LocatorExtension: string;\n public ContactTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Locator = \n odataObject.Locator;\n \n this.LocatorExtension = \n odataObject.LocatorExtension;\n \n this.ContactTypeValue = \n odataObject.ContactTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitContactClass'] = OrgUnitContactClass;\n \n /**\n * SalesLineDeliveryOption entity class.\n */\n export class SalesLineDeliveryOptionClass implements Entities.SalesLineDeliveryOption {\n public SalesLineId: string;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineId = \n odataObject.SalesLineId;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineDeliveryOptionClass'] = SalesLineDeliveryOptionClass;\n \n /**\n * DeliveryOption entity class.\n */\n export class DeliveryOptionClass implements Entities.DeliveryOption {\n public ChargeGroup: string;\n public Code: string;\n public Description: string;\n public RecordId: number;\n public DeliveryChargeLines: Entities.DeliveryChargeLine[];\n public TotalChargeAmount: number;\n public ShippingChargeAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.Code = \n odataObject.Code;\n \n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeliveryChargeLines = undefined;\n if (odataObject.DeliveryChargeLines) {\n this.DeliveryChargeLines = [];\n for (var i = 0; i < odataObject.DeliveryChargeLines.length; i++) {\n if (odataObject.DeliveryChargeLines[i] != null) {\n if (odataObject.DeliveryChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryChargeLines[i] = new entityDictionary[className](odataObject.DeliveryChargeLines[i])\n }\n } else {\n this.DeliveryChargeLines[i] = new DeliveryChargeLineClass(odataObject.DeliveryChargeLines[i]);\n }\n } else {\n this.DeliveryChargeLines[i] = undefined;\n }\n }\n }\n \n this.TotalChargeAmount = \n (odataObject.TotalChargeAmount != null) ? parseFloat(odataObject.TotalChargeAmount) : undefined;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryOptionClass'] = DeliveryOptionClass;\n \n /**\n * ChannelDeliveryOption entity class.\n */\n export class ChannelDeliveryOptionClass implements Entities.ChannelDeliveryOption {\n public ChannelId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionClass'] = ChannelDeliveryOptionClass;\n \n /**\n * ChannelIdentity entity class.\n */\n export class ChannelIdentityClass implements Entities.ChannelIdentity {\n public ChannelType: Entities.ExtensibleRetailChannelType;\n public Name: string;\n public OperatingUnitNumber: string;\n public DataAreaId: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ChannelType == null) {\n this.ChannelType = undefined;\n } else if (odataObject.ChannelType['@odata.type'] == null) {\n this.ChannelType = new ExtensibleRetailChannelTypeClass(odataObject.ChannelType);\n } else {\n var className: string = odataObject.ChannelType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelType = new entityDictionary[className](odataObject.ChannelType)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.OperatingUnitNumber = \n odataObject.OperatingUnitNumber;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelIdentityClass'] = ChannelIdentityClass;\n \n /**\n * ExtensibleRetailChannelType entity class.\n */\n export class ExtensibleRetailChannelTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleRetailChannelType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleRetailChannelType\";\n \n }\n }\n entityDictionary['ExtensibleRetailChannelTypeClass'] = ExtensibleRetailChannelTypeClass;\n \n /**\n * ChannelProfileProperty entity class.\n */\n export class ChannelProfilePropertyClass implements Entities.ChannelProfileProperty {\n public Key: number;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfilePropertyClass'] = ChannelProfilePropertyClass;\n \n /**\n * ChannelConfiguration entity class.\n */\n export class ChannelConfigurationClass implements Entities.ChannelConfiguration {\n public RecordId: number;\n public ChannelNaturalId: string;\n public MinimumDepositPercentage: number;\n public QuoteExpirationDays: number;\n public PickupDeliveryModeCode: string;\n public CarryoutDeliveryModeCode: string;\n public CancellationChargePercentage: number;\n public InventLocation: string;\n public InventLocationDataAreaId: string;\n public BingMapsApiKey: string;\n public BingMapsEnabled: boolean;\n public Currency: string;\n public CatalogDefaultImageTemplate: string;\n public CompanyCurrency: string;\n public PriceIncludesSalesTax: boolean;\n public CountryRegionId: string;\n public ChannelCountryRegionISOCode: string;\n public DefaultLanguageId: string;\n public TimeZoneInfoId: string;\n public EmailDeliveryModeCode: string;\n public GiftCardItemId: string;\n public EnableProductRecommendations: boolean;\n public RefundableShippingAmountWithoutApproval: number;\n public RefundShippingCharges: boolean;\n public ReceiptSettingsValue: number;\n public CustomerAttributeGroupId: number;\n public ClientBookAttributeGroupId: number;\n public NotificationRefreshInterval: number;\n public AllowExchangeOnReturnOrders: boolean;\n public FiscalRegistrationProcessId: string;\n public IsInventoryAutomaticValidationEnabled: boolean;\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public Properties: Entities.ChannelProperty[];\n public Languages: Entities.ChannelLanguage[];\n public UseAdvancedAutoCharges: boolean;\n public UseRTSForOnlineOrderCreation: boolean;\n public IsWarrantyAutoPromptEnabled: boolean;\n public EnableProductRatingsForRetailStores: boolean;\n public EnableFetchingPickingListsForPickingAndReceiving: boolean;\n public EnableReturnsForMultipleOrderInvoices: boolean;\n public EnableAnonymousOrderLookupByChannelReferenceId: boolean;\n public VoidSuspendedTransactionsOnCloseShift: number;\n public EnableOmniChannelPayments: boolean;\n public UseAdvancedCashManagement: boolean;\n public EnableFiscalRegistrationStorageBackup: boolean;\n public UseSalesReceiptAsDefaultReceiptTypeInJournal: boolean;\n public SalesOrderHeaderAttributeGroups: number[];\n public SalesOrderLinesAttributeGroups: number[];\n public CustomerAddressBooks: Entities.StoreAddressBook[];\n public EnableReturnPolicies: boolean;\n public InventAvailabilityCalculationMode: string;\n public IsPriceInclusiveTaxExemptCalculationEnabled: boolean;\n public EnableValidationOfSerialNumbersForInStoreReturns: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelNaturalId = \n odataObject.ChannelNaturalId;\n \n this.MinimumDepositPercentage = \n (odataObject.MinimumDepositPercentage != null) ? parseFloat(odataObject.MinimumDepositPercentage) : undefined;\n \n this.QuoteExpirationDays = \n odataObject.QuoteExpirationDays;\n \n this.PickupDeliveryModeCode = \n odataObject.PickupDeliveryModeCode;\n \n this.CarryoutDeliveryModeCode = \n odataObject.CarryoutDeliveryModeCode;\n \n this.CancellationChargePercentage = \n (odataObject.CancellationChargePercentage != null) ? parseFloat(odataObject.CancellationChargePercentage) : undefined;\n \n this.InventLocation = \n odataObject.InventLocation;\n \n this.InventLocationDataAreaId = \n odataObject.InventLocationDataAreaId;\n \n this.BingMapsApiKey = \n odataObject.BingMapsApiKey;\n \n this.BingMapsEnabled = \n odataObject.BingMapsEnabled;\n \n this.Currency = \n odataObject.Currency;\n \n this.CatalogDefaultImageTemplate = \n odataObject.CatalogDefaultImageTemplate;\n \n this.CompanyCurrency = \n odataObject.CompanyCurrency;\n \n this.PriceIncludesSalesTax = \n odataObject.PriceIncludesSalesTax;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ChannelCountryRegionISOCode = \n odataObject.ChannelCountryRegionISOCode;\n \n this.DefaultLanguageId = \n odataObject.DefaultLanguageId;\n \n this.TimeZoneInfoId = \n odataObject.TimeZoneInfoId;\n \n this.EmailDeliveryModeCode = \n odataObject.EmailDeliveryModeCode;\n \n this.GiftCardItemId = \n odataObject.GiftCardItemId;\n \n this.EnableProductRecommendations = \n odataObject.EnableProductRecommendations;\n \n this.RefundableShippingAmountWithoutApproval = \n (odataObject.RefundableShippingAmountWithoutApproval != null) ? parseFloat(odataObject.RefundableShippingAmountWithoutApproval) : undefined;\n \n this.RefundShippingCharges = \n odataObject.RefundShippingCharges;\n \n this.ReceiptSettingsValue = \n odataObject.ReceiptSettingsValue;\n \n this.CustomerAttributeGroupId = \n (odataObject.CustomerAttributeGroupId != null) ? parseInt(odataObject.CustomerAttributeGroupId, 10) : undefined;\n \n this.ClientBookAttributeGroupId = \n (odataObject.ClientBookAttributeGroupId != null) ? parseInt(odataObject.ClientBookAttributeGroupId, 10) : undefined;\n \n this.NotificationRefreshInterval = \n odataObject.NotificationRefreshInterval;\n \n this.AllowExchangeOnReturnOrders = \n odataObject.AllowExchangeOnReturnOrders;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IsInventoryAutomaticValidationEnabled = \n odataObject.IsInventoryAutomaticValidationEnabled;\n \n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.Properties = undefined;\n if (odataObject.Properties) {\n this.Properties = [];\n for (var i = 0; i < odataObject.Properties.length; i++) {\n if (odataObject.Properties[i] != null) {\n if (odataObject.Properties[i]['@odata.type'] != null) {\n var className: string = odataObject.Properties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Properties[i] = new entityDictionary[className](odataObject.Properties[i])\n }\n } else {\n this.Properties[i] = new ChannelPropertyClass(odataObject.Properties[i]);\n }\n } else {\n this.Properties[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n if (odataObject.Languages[i]['@odata.type'] != null) {\n var className: string = odataObject.Languages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Languages[i] = new entityDictionary[className](odataObject.Languages[i])\n }\n } else {\n this.Languages[i] = new ChannelLanguageClass(odataObject.Languages[i]);\n }\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n this.UseAdvancedAutoCharges = \n odataObject.UseAdvancedAutoCharges;\n \n this.UseRTSForOnlineOrderCreation = \n odataObject.UseRTSForOnlineOrderCreation;\n \n this.IsWarrantyAutoPromptEnabled = \n odataObject.IsWarrantyAutoPromptEnabled;\n \n this.EnableProductRatingsForRetailStores = \n odataObject.EnableProductRatingsForRetailStores;\n \n this.EnableFetchingPickingListsForPickingAndReceiving = \n odataObject.EnableFetchingPickingListsForPickingAndReceiving;\n \n this.EnableReturnsForMultipleOrderInvoices = \n odataObject.EnableReturnsForMultipleOrderInvoices;\n \n this.EnableAnonymousOrderLookupByChannelReferenceId = \n odataObject.EnableAnonymousOrderLookupByChannelReferenceId;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.EnableOmniChannelPayments = \n odataObject.EnableOmniChannelPayments;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.EnableFiscalRegistrationStorageBackup = \n odataObject.EnableFiscalRegistrationStorageBackup;\n \n this.UseSalesReceiptAsDefaultReceiptTypeInJournal = \n odataObject.UseSalesReceiptAsDefaultReceiptTypeInJournal;\n \n this.SalesOrderHeaderAttributeGroups = undefined;\n if (odataObject.SalesOrderHeaderAttributeGroups) {\n this.SalesOrderHeaderAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderHeaderAttributeGroups.length; i++) {\n if (odataObject.SalesOrderHeaderAttributeGroups[i] != null) {\n this.SalesOrderHeaderAttributeGroups[i] = \n parseInt(odataObject.SalesOrderHeaderAttributeGroups[i], 10);\n } else {\n this.SalesOrderHeaderAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.SalesOrderLinesAttributeGroups = undefined;\n if (odataObject.SalesOrderLinesAttributeGroups) {\n this.SalesOrderLinesAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderLinesAttributeGroups.length; i++) {\n if (odataObject.SalesOrderLinesAttributeGroups[i] != null) {\n this.SalesOrderLinesAttributeGroups[i] = \n parseInt(odataObject.SalesOrderLinesAttributeGroups[i], 10);\n } else {\n this.SalesOrderLinesAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.CustomerAddressBooks = undefined;\n if (odataObject.CustomerAddressBooks) {\n this.CustomerAddressBooks = [];\n for (var i = 0; i < odataObject.CustomerAddressBooks.length; i++) {\n if (odataObject.CustomerAddressBooks[i] != null) {\n if (odataObject.CustomerAddressBooks[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAddressBooks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAddressBooks[i] = new entityDictionary[className](odataObject.CustomerAddressBooks[i])\n }\n } else {\n this.CustomerAddressBooks[i] = new StoreAddressBookClass(odataObject.CustomerAddressBooks[i]);\n }\n } else {\n this.CustomerAddressBooks[i] = undefined;\n }\n }\n }\n \n this.EnableReturnPolicies = \n odataObject.EnableReturnPolicies;\n \n this.InventAvailabilityCalculationMode = \n odataObject.InventAvailabilityCalculationMode;\n \n this.IsPriceInclusiveTaxExemptCalculationEnabled = \n odataObject.IsPriceInclusiveTaxExemptCalculationEnabled;\n \n this.EnableValidationOfSerialNumbersForInStoreReturns = \n odataObject.EnableValidationOfSerialNumbersForInStoreReturns;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelConfigurationClass'] = ChannelConfigurationClass;\n \n /**\n * ChannelProperty entity class.\n */\n export class ChannelPropertyClass implements Entities.ChannelProperty {\n public Name: string;\n public Value: string;\n public Channel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPropertyClass'] = ChannelPropertyClass;\n \n /**\n * ChannelLanguage entity class.\n */\n export class ChannelLanguageClass implements Entities.ChannelLanguage {\n public LanguageId: string;\n public IsDefault: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelLanguageClass'] = ChannelLanguageClass;\n \n /**\n * ChannelDeliveryOptionConfiguration entity class.\n */\n export class ChannelDeliveryOptionConfigurationClass implements Entities.ChannelDeliveryOptionConfiguration {\n public PickupDeliveryModeCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PickupDeliveryModeCodes = undefined;\n if (odataObject.PickupDeliveryModeCodes) {\n this.PickupDeliveryModeCodes = [];\n for (var i = 0; i < odataObject.PickupDeliveryModeCodes.length; i++) {\n if (odataObject.PickupDeliveryModeCodes[i] != null) {\n this.PickupDeliveryModeCodes[i] = \n odataObject.PickupDeliveryModeCodes[i];\n } else {\n this.PickupDeliveryModeCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionConfigurationClass'] = ChannelDeliveryOptionConfigurationClass;\n \n /**\n * NonSalesTransaction entity class.\n */\n export class NonSalesTransactionClass\n extends TransactionClass\n implements Entities.NonSalesTransaction {\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Amount: number;\n public ForeignCurrency: string;\n public OpenDrawer: boolean;\n public DenominationDetails: Entities.DenominationDetail[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.NonSalesTransaction\";\n \n }\n }\n entityDictionary['NonSalesTransactionClass'] = NonSalesTransactionClass;\n \n /**\n * DropAndDeclareTransaction entity class.\n */\n export class DropAndDeclareTransactionClass\n extends TransactionClass\n implements Entities.DropAndDeclareTransaction {\n public TenderDetails: Entities.TenderDetail[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public OpenDrawer: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderDetails = undefined;\n if (odataObject.TenderDetails) {\n this.TenderDetails = [];\n for (var i = 0; i < odataObject.TenderDetails.length; i++) {\n if (odataObject.TenderDetails[i] != null) {\n if (odataObject.TenderDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderDetails[i] = new entityDictionary[className](odataObject.TenderDetails[i])\n }\n } else {\n this.TenderDetails[i] = new TenderDetailClass(odataObject.TenderDetails[i]);\n }\n } else {\n this.TenderDetails[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DropAndDeclareTransaction\";\n \n }\n }\n entityDictionary['DropAndDeclareTransactionClass'] = DropAndDeclareTransactionClass;\n \n /**\n * ProductSearchCriteria entity class.\n */\n export class ProductSearchCriteriaClass implements Entities.ProductSearchCriteria {\n public Ids: number[];\n public CategoryIds: number[];\n public IncludeProductsFromDescendantCategories: boolean;\n public SearchCondition: string;\n public SkipVariantExpansion: boolean;\n public IncludeAttributes: boolean;\n public Barcodes: string[];\n public ItemIds: Entities.ProductLookupClause[];\n public Refinement: Entities.ProductRefinerValue[];\n public CustomerAccountNumber: string;\n public RecommendationListId: string;\n public DownloadProductData: boolean;\n public Context: Entities.ProjectionDomain;\n public Language: string;\n public IsOnline: boolean;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n this.Ids[i] = \n parseInt(odataObject.Ids[i], 10);\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.IncludeProductsFromDescendantCategories = \n odataObject.IncludeProductsFromDescendantCategories;\n \n this.SearchCondition = \n odataObject.SearchCondition;\n \n this.SkipVariantExpansion = \n odataObject.SkipVariantExpansion;\n \n this.IncludeAttributes = \n odataObject.IncludeAttributes;\n \n this.Barcodes = undefined;\n if (odataObject.Barcodes) {\n this.Barcodes = [];\n for (var i = 0; i < odataObject.Barcodes.length; i++) {\n if (odataObject.Barcodes[i] != null) {\n this.Barcodes[i] = \n odataObject.Barcodes[i];\n } else {\n this.Barcodes[i] = undefined;\n }\n }\n }\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n if (odataObject.ItemIds[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemIds[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemIds[i] = new entityDictionary[className](odataObject.ItemIds[i])\n }\n } else {\n this.ItemIds[i] = new ProductLookupClauseClass(odataObject.ItemIds[i]);\n }\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ProductRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.RecommendationListId = \n odataObject.RecommendationListId;\n \n this.DownloadProductData = \n odataObject.DownloadProductData;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.Language = \n odataObject.Language;\n \n this.IsOnline = \n odataObject.IsOnline;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ProductSearchCriteriaClass'] = ProductSearchCriteriaClass;\n \n /**\n * ChangedProductsSearchCriteria entity class.\n */\n export class ChangedProductsSearchCriteriaClass implements Entities.ChangedProductsSearchCriteria {\n public SynchronizationToken: string;\n public Context: Entities.ProjectionDomain;\n public AsListings: boolean;\n public Session: Entities.ReadChangedProductsSession;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SynchronizationToken = \n odataObject.SynchronizationToken;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.AsListings = \n odataObject.AsListings;\n \n if (odataObject.Session == null) {\n this.Session = undefined;\n } else if (odataObject.Session['@odata.type'] == null) {\n this.Session = new ReadChangedProductsSessionClass(odataObject.Session);\n } else {\n var className: string = odataObject.Session['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Session = new entityDictionary[className](odataObject.Session)\n }\n }\n\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ChangedProductsSearchCriteriaClass'] = ChangedProductsSearchCriteriaClass;\n \n /**\n * EmployeeActivitySearchCriteria entity class.\n */\n export class EmployeeActivitySearchCriteriaClass implements Entities.EmployeeActivitySearchCriteria {\n public FromDateTimeOffset: Date;\n public ToDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValues: number[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromDateTimeOffset = \n (odataObject.FromDateTimeOffset instanceof Date) ? odataObject.FromDateTimeOffset\n : (odataObject.FromDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.FromDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDateTimeOffset = \n (odataObject.ToDateTimeOffset instanceof Date) ? odataObject.ToDateTimeOffset\n : (odataObject.ToDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ToDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValues = undefined;\n if (odataObject.EmployeeActivityTypeValues) {\n this.EmployeeActivityTypeValues = [];\n for (var i = 0; i < odataObject.EmployeeActivityTypeValues.length; i++) {\n if (odataObject.EmployeeActivityTypeValues[i] != null) {\n this.EmployeeActivityTypeValues[i] = \n odataObject.EmployeeActivityTypeValues[i];\n } else {\n this.EmployeeActivityTypeValues[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['EmployeeActivitySearchCriteriaClass'] = EmployeeActivitySearchCriteriaClass;\n \n /**\n * SearchSuggestionCriteria entity class.\n */\n export class SearchSuggestionCriteriaClass implements Entities.SearchSuggestionCriteria {\n public ProductSearchCriteria: Entities.ProductSearchCriteria;\n public CustomerSearchCriteria: Entities.CustomerSearchCriteria;\n public SuggestionType: string;\n public HitPrefix: string;\n public HitSuffix: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ProductSearchCriteria == null) {\n this.ProductSearchCriteria = undefined;\n } else if (odataObject.ProductSearchCriteria['@odata.type'] == null) {\n this.ProductSearchCriteria = new ProductSearchCriteriaClass(odataObject.ProductSearchCriteria);\n } else {\n var className: string = odataObject.ProductSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSearchCriteria = new entityDictionary[className](odataObject.ProductSearchCriteria)\n }\n }\n\n \n if (odataObject.CustomerSearchCriteria == null) {\n this.CustomerSearchCriteria = undefined;\n } else if (odataObject.CustomerSearchCriteria['@odata.type'] == null) {\n this.CustomerSearchCriteria = new CustomerSearchCriteriaClass(odataObject.CustomerSearchCriteria);\n } else {\n var className: string = odataObject.CustomerSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerSearchCriteria = new entityDictionary[className](odataObject.CustomerSearchCriteria)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.HitPrefix = \n odataObject.HitPrefix;\n \n this.HitSuffix = \n odataObject.HitSuffix;\n \n }\n }\n entityDictionary['SearchSuggestionCriteriaClass'] = SearchSuggestionCriteriaClass;\n \n /**\n * CartLineDeliveryPreference entity class.\n */\n export class CartLineDeliveryPreferenceClass implements Entities.CartLineDeliveryPreference {\n public LineId: string;\n public DeliveryPreferenceTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.DeliveryPreferenceTypeValues = undefined;\n if (odataObject.DeliveryPreferenceTypeValues) {\n this.DeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.DeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.DeliveryPreferenceTypeValues[i] != null) {\n this.DeliveryPreferenceTypeValues[i] = \n odataObject.DeliveryPreferenceTypeValues[i];\n } else {\n this.DeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineDeliveryPreferenceClass'] = CartLineDeliveryPreferenceClass;\n \n /**\n * CartLinePromotion entity class.\n */\n export class CartLinePromotionClass implements Entities.CartLinePromotion {\n public LineId: string;\n public Promotions: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Promotions = undefined;\n if (odataObject.Promotions) {\n this.Promotions = [];\n for (var i = 0; i < odataObject.Promotions.length; i++) {\n if (odataObject.Promotions[i] != null) {\n this.Promotions[i] = \n odataObject.Promotions[i];\n } else {\n this.Promotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLinePromotionClass'] = CartLinePromotionClass;\n \n /**\n * ProductVariant entity class.\n */\n export class ProductVariantClass implements Entities.ProductVariant {\n public ItemId: string;\n public MasterProductId: number;\n public InventoryDimensionId: string;\n public AdjustedPrice: number;\n public BasePrice: number;\n public Price: number;\n public Color: string;\n public Style: string;\n public Size: string;\n public Configuration: string;\n public ColorId: string;\n public StyleId: string;\n public SizeId: string;\n public ConfigId: string;\n public VariantId: string;\n public Images: Entities.RichMediaLocations[];\n public DistinctProductVariantId: number;\n public ProductNumber: string;\n public PropertiesAsList: Entities.ProductPropertyTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.Color = \n odataObject.Color;\n \n this.Style = \n odataObject.Style;\n \n this.Size = \n odataObject.Size;\n \n this.Configuration = \n odataObject.Configuration;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new RichMediaLocationsClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DistinctProductVariantId = \n (odataObject.DistinctProductVariantId != null) ? parseInt(odataObject.DistinctProductVariantId, 10) : undefined;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.PropertiesAsList = undefined;\n if (odataObject.PropertiesAsList) {\n this.PropertiesAsList = [];\n for (var i = 0; i < odataObject.PropertiesAsList.length; i++) {\n if (odataObject.PropertiesAsList[i] != null) {\n if (odataObject.PropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.PropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PropertiesAsList[i] = new entityDictionary[className](odataObject.PropertiesAsList[i])\n }\n } else {\n this.PropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.PropertiesAsList[i]);\n }\n } else {\n this.PropertiesAsList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantClass'] = ProductVariantClass;\n \n /**\n * HardwareProfilePrinter entity class.\n */\n export class HardwareProfilePrinterClass implements Entities.HardwareProfilePrinter {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public DeviceDescription: string;\n public CharacterSet: number;\n public ReceiptProfileId: string;\n public BinaryConversion: boolean;\n public DocInsertRemovalTimeout: number;\n public Logo: string;\n public LogoAlignment: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.CharacterSet = \n odataObject.CharacterSet;\n \n this.ReceiptProfileId = \n odataObject.ReceiptProfileId;\n \n this.BinaryConversion = \n odataObject.BinaryConversion;\n \n this.DocInsertRemovalTimeout = \n odataObject.DocInsertRemovalTimeout;\n \n this.Logo = \n odataObject.Logo;\n \n this.LogoAlignment = \n odataObject.LogoAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfilePrinterClass'] = HardwareProfilePrinterClass;\n \n /**\n * HardwareProfileScanner entity class.\n */\n export class HardwareProfileScannerClass implements Entities.HardwareProfileScanner {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DecodeData: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DecodeData = \n odataObject.DecodeData;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileScannerClass'] = HardwareProfileScannerClass;\n \n /**\n * HardwareProfileCashDrawer entity class.\n */\n export class HardwareProfileCashDrawerClass implements Entities.HardwareProfileCashDrawer {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public IsSharedShiftDrawer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.IsSharedShiftDrawer = \n odataObject.IsSharedShiftDrawer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileCashDrawerClass'] = HardwareProfileCashDrawerClass;\n \n /**\n * TillLayout entity class.\n */\n export class TillLayoutClass implements Entities.TillLayout {\n public CashChangerLayoutXml: string;\n public CustomerLayoutId: string;\n public CustomerLayoutXml: string;\n public Height: number;\n public LayoutId: string;\n public LayoutTypeValue: number;\n public LayoutXml: string;\n public LayoutXmlPortrait: string;\n public Name: string;\n public ReceiptId: string;\n public ReceiptItemsLayoutXml: string;\n public ReceiptPaymentLayoutXml: string;\n public TotalId: string;\n public TotalsLayoutXml: string;\n public Width: number;\n public RecordId: number;\n public StartScreen: number;\n public ButtonGridZones: Entities.ButtonGridZone[];\n public ImageZones: Entities.ImageZone[];\n public ReportZones: Entities.ReportZone[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashChangerLayoutXml = \n odataObject.CashChangerLayoutXml;\n \n this.CustomerLayoutId = \n odataObject.CustomerLayoutId;\n \n this.CustomerLayoutXml = \n odataObject.CustomerLayoutXml;\n \n this.Height = \n odataObject.Height;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.LayoutTypeValue = \n odataObject.LayoutTypeValue;\n \n this.LayoutXml = \n odataObject.LayoutXml;\n \n this.LayoutXmlPortrait = \n odataObject.LayoutXmlPortrait;\n \n this.Name = \n odataObject.Name;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ReceiptItemsLayoutXml = \n odataObject.ReceiptItemsLayoutXml;\n \n this.ReceiptPaymentLayoutXml = \n odataObject.ReceiptPaymentLayoutXml;\n \n this.TotalId = \n odataObject.TotalId;\n \n this.TotalsLayoutXml = \n odataObject.TotalsLayoutXml;\n \n this.Width = \n odataObject.Width;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StartScreen = \n odataObject.StartScreen;\n \n this.ButtonGridZones = undefined;\n if (odataObject.ButtonGridZones) {\n this.ButtonGridZones = [];\n for (var i = 0; i < odataObject.ButtonGridZones.length; i++) {\n if (odataObject.ButtonGridZones[i] != null) {\n if (odataObject.ButtonGridZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ButtonGridZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ButtonGridZones[i] = new entityDictionary[className](odataObject.ButtonGridZones[i])\n }\n } else {\n this.ButtonGridZones[i] = new ButtonGridZoneClass(odataObject.ButtonGridZones[i]);\n }\n } else {\n this.ButtonGridZones[i] = undefined;\n }\n }\n }\n \n this.ImageZones = undefined;\n if (odataObject.ImageZones) {\n this.ImageZones = [];\n for (var i = 0; i < odataObject.ImageZones.length; i++) {\n if (odataObject.ImageZones[i] != null) {\n if (odataObject.ImageZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageZones[i] = new entityDictionary[className](odataObject.ImageZones[i])\n }\n } else {\n this.ImageZones[i] = new ImageZoneClass(odataObject.ImageZones[i]);\n }\n } else {\n this.ImageZones[i] = undefined;\n }\n }\n }\n \n this.ReportZones = undefined;\n if (odataObject.ReportZones) {\n this.ReportZones = [];\n for (var i = 0; i < odataObject.ReportZones.length; i++) {\n if (odataObject.ReportZones[i] != null) {\n if (odataObject.ReportZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ReportZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReportZones[i] = new entityDictionary[className](odataObject.ReportZones[i])\n }\n } else {\n this.ReportZones[i] = new ReportZoneClass(odataObject.ReportZones[i]);\n }\n } else {\n this.ReportZones[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TillLayoutClass'] = TillLayoutClass;\n \n /**\n * SalesInvoice entity class.\n */\n export class SalesInvoiceClass implements Entities.SalesInvoice {\n public RecordId: number;\n public ChannelId: number;\n public Id: string;\n public SalesId: string;\n public SalesType: string;\n public InvoiceDate: Date;\n public DueDate: Date;\n public CurrencyCode: string;\n public InvoiceSubtotal: number;\n public TotalCharges: number;\n public TotalTaxAmount: number;\n public TotalLineDiscount: number;\n public TotalDiscount: number;\n public Amount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public Account: string;\n public Name: string;\n public TotalManualDiscountPercentage: number;\n public TotalManualDiscountAmount: number;\n public SalesInvoiceLine: Entities.SalesInvoiceLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TenderLines: Entities.TenderLine[];\n public DeliveryModeChargeAmount: number;\n public OrderAccount: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Id = \n odataObject.Id;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesType = \n odataObject.SalesType;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDate = \n (odataObject.DueDate instanceof Date) ? odataObject.DueDate\n : (odataObject.DueDate != null) ? jsonLightReadStringPropertyValue(odataObject.DueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceSubtotal = \n (odataObject.InvoiceSubtotal != null) ? parseFloat(odataObject.InvoiceSubtotal) : undefined;\n \n this.TotalCharges = \n (odataObject.TotalCharges != null) ? parseFloat(odataObject.TotalCharges) : undefined;\n \n this.TotalTaxAmount = \n (odataObject.TotalTaxAmount != null) ? parseFloat(odataObject.TotalTaxAmount) : undefined;\n \n this.TotalLineDiscount = \n (odataObject.TotalLineDiscount != null) ? parseFloat(odataObject.TotalLineDiscount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.Account = \n odataObject.Account;\n \n this.Name = \n odataObject.Name;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.SalesInvoiceLine = undefined;\n if (odataObject.SalesInvoiceLine) {\n this.SalesInvoiceLine = [];\n for (var i = 0; i < odataObject.SalesInvoiceLine.length; i++) {\n if (odataObject.SalesInvoiceLine[i] != null) {\n if (odataObject.SalesInvoiceLine[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesInvoiceLine[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesInvoiceLine[i] = new entityDictionary[className](odataObject.SalesInvoiceLine[i])\n }\n } else {\n this.SalesInvoiceLine[i] = new SalesInvoiceLineClass(odataObject.SalesInvoiceLine[i]);\n }\n } else {\n this.SalesInvoiceLine[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.OrderAccount = \n odataObject.OrderAccount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceClass'] = SalesInvoiceClass;\n \n /**\n * OrderInvoice entity class.\n */\n export class OrderInvoiceClass implements Entities.OrderInvoice {\n public Id: string;\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public InvoiceDate: Date;\n public TotalAmount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public InvoiceTypeValue: number;\n public CurrencyCode: string;\n public InvoiceDueDate: Date;\n public InvoicePaidStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceDueDate = \n (odataObject.InvoiceDueDate instanceof Date) ? odataObject.InvoiceDueDate\n : (odataObject.InvoiceDueDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InvoicePaidStatusValue = \n odataObject.InvoicePaidStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderInvoiceClass'] = OrderInvoiceClass;\n \n /**\n * TaxOverride entity class.\n */\n export class TaxOverrideClass implements Entities.TaxOverride {\n public Code: string;\n public SourceTaxGroup: string;\n public DestinationTaxGroup: string;\n public SourceItemTaxGroup: string;\n public DestinationItemTaxGroup: string;\n public ChannelId: number;\n public AdditionalDescription: string;\n public Status: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.SourceTaxGroup = \n odataObject.SourceTaxGroup;\n \n this.DestinationTaxGroup = \n odataObject.DestinationTaxGroup;\n \n this.SourceItemTaxGroup = \n odataObject.SourceItemTaxGroup;\n \n this.DestinationItemTaxGroup = \n odataObject.DestinationItemTaxGroup;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.AdditionalDescription = \n odataObject.AdditionalDescription;\n \n this.Status = \n odataObject.Status;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxOverrideClass'] = TaxOverrideClass;\n \n /**\n * TenderType entity class.\n */\n export class TenderTypeClass implements Entities.TenderType {\n public Function: number;\n public TenderTypeId: string;\n public Name: string;\n public OperationId: number;\n public OperationName: string;\n public ChangeTenderTypeId: string;\n public AboveMinimumChangeAmount: number;\n public AboveMinimumChangeTenderTypeId: string;\n public OpenDrawer: boolean;\n public UseSignatureCaptureDevice: boolean;\n public MinimumSignatureCaptureAmount: number;\n public IsOvertenderAllowed: boolean;\n public IsUndertenderAllowed: boolean;\n public MaximumOvertenderAmount: number;\n public MaximumUndertenderAmount: number;\n public MaximumAmountPerTransaction: number;\n public MaximumAmountPerLine: number;\n public MinimumAmountPerTransaction: number;\n public MinimumAmountPerLine: number;\n public RoundOff: number;\n public CountingRequired: number;\n public TakenToBank: number;\n public TakenToSafe: number;\n public ConnectorId: string;\n public GiftCardItem: string;\n public GiftCardCashoutOutThreshold: number;\n public ChangeLineOnReceipt: string;\n public HideCardInputDetails: boolean;\n public CashDrawerLimitEnabled: boolean;\n public CashDrawerLimit: number;\n public RestrictReturnsWithoutReceipt: boolean;\n public HasTenderDiscount: boolean;\n public DefaultCardTypeId: string;\n public UseForDeclareStartAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Function = \n odataObject.Function;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Name = \n odataObject.Name;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.OperationName = \n odataObject.OperationName;\n \n this.ChangeTenderTypeId = \n odataObject.ChangeTenderTypeId;\n \n this.AboveMinimumChangeAmount = \n (odataObject.AboveMinimumChangeAmount != null) ? parseFloat(odataObject.AboveMinimumChangeAmount) : undefined;\n \n this.AboveMinimumChangeTenderTypeId = \n odataObject.AboveMinimumChangeTenderTypeId;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.UseSignatureCaptureDevice = \n odataObject.UseSignatureCaptureDevice;\n \n this.MinimumSignatureCaptureAmount = \n (odataObject.MinimumSignatureCaptureAmount != null) ? parseFloat(odataObject.MinimumSignatureCaptureAmount) : undefined;\n \n this.IsOvertenderAllowed = \n odataObject.IsOvertenderAllowed;\n \n this.IsUndertenderAllowed = \n odataObject.IsUndertenderAllowed;\n \n this.MaximumOvertenderAmount = \n (odataObject.MaximumOvertenderAmount != null) ? parseFloat(odataObject.MaximumOvertenderAmount) : undefined;\n \n this.MaximumUndertenderAmount = \n (odataObject.MaximumUndertenderAmount != null) ? parseFloat(odataObject.MaximumUndertenderAmount) : undefined;\n \n this.MaximumAmountPerTransaction = \n (odataObject.MaximumAmountPerTransaction != null) ? parseFloat(odataObject.MaximumAmountPerTransaction) : undefined;\n \n this.MaximumAmountPerLine = \n (odataObject.MaximumAmountPerLine != null) ? parseFloat(odataObject.MaximumAmountPerLine) : undefined;\n \n this.MinimumAmountPerTransaction = \n (odataObject.MinimumAmountPerTransaction != null) ? parseFloat(odataObject.MinimumAmountPerTransaction) : undefined;\n \n this.MinimumAmountPerLine = \n (odataObject.MinimumAmountPerLine != null) ? parseFloat(odataObject.MinimumAmountPerLine) : undefined;\n \n this.RoundOff = \n (odataObject.RoundOff != null) ? parseFloat(odataObject.RoundOff) : undefined;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.TakenToBank = \n odataObject.TakenToBank;\n \n this.TakenToSafe = \n odataObject.TakenToSafe;\n \n this.ConnectorId = \n odataObject.ConnectorId;\n \n this.GiftCardItem = \n odataObject.GiftCardItem;\n \n this.GiftCardCashoutOutThreshold = \n (odataObject.GiftCardCashoutOutThreshold != null) ? parseFloat(odataObject.GiftCardCashoutOutThreshold) : undefined;\n \n this.ChangeLineOnReceipt = \n odataObject.ChangeLineOnReceipt;\n \n this.HideCardInputDetails = \n odataObject.HideCardInputDetails;\n \n this.CashDrawerLimitEnabled = \n odataObject.CashDrawerLimitEnabled;\n \n this.CashDrawerLimit = \n (odataObject.CashDrawerLimit != null) ? parseFloat(odataObject.CashDrawerLimit) : undefined;\n \n this.RestrictReturnsWithoutReceipt = \n odataObject.RestrictReturnsWithoutReceipt;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.DefaultCardTypeId = \n odataObject.DefaultCardTypeId;\n \n this.UseForDeclareStartAmount = \n odataObject.UseForDeclareStartAmount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeClass'] = TenderTypeClass;\n \n /**\n * ReasonCode entity class.\n */\n export class ReasonCodeClass implements Entities.ReasonCode {\n public InputRequired: boolean;\n public LinkedReasonCodeId: string;\n public MaximumLength: number;\n public MaximumValue: number;\n public MinimumLength: number;\n public MinimumValue: number;\n public OncePerTransaction: boolean;\n public PrintInputNameOnReceipt: boolean;\n public PrintInputToReceipt: boolean;\n public PrintPromptToReceipt: boolean;\n public Prompt: string;\n public RandomFactor: number;\n public RetailUseReasonCode: boolean;\n public ReasonCodeId: string;\n public Description: string;\n public InputTypeValue: number;\n public ActivityValue: number;\n public IsMultiLineText: boolean;\n public ReasonSubCodes: Entities.ReasonSubCode[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InputRequired = \n odataObject.InputRequired;\n \n this.LinkedReasonCodeId = \n odataObject.LinkedReasonCodeId;\n \n this.MaximumLength = \n odataObject.MaximumLength;\n \n this.MaximumValue = \n (odataObject.MaximumValue != null) ? parseFloat(odataObject.MaximumValue) : undefined;\n \n this.MinimumLength = \n odataObject.MinimumLength;\n \n this.MinimumValue = \n (odataObject.MinimumValue != null) ? parseFloat(odataObject.MinimumValue) : undefined;\n \n this.OncePerTransaction = \n odataObject.OncePerTransaction;\n \n this.PrintInputNameOnReceipt = \n odataObject.PrintInputNameOnReceipt;\n \n this.PrintInputToReceipt = \n odataObject.PrintInputToReceipt;\n \n this.PrintPromptToReceipt = \n odataObject.PrintPromptToReceipt;\n \n this.Prompt = \n odataObject.Prompt;\n \n this.RandomFactor = \n (odataObject.RandomFactor != null) ? parseFloat(odataObject.RandomFactor) : undefined;\n \n this.RetailUseReasonCode = \n odataObject.RetailUseReasonCode;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ActivityValue = \n odataObject.ActivityValue;\n \n this.IsMultiLineText = \n odataObject.IsMultiLineText;\n \n this.ReasonSubCodes = undefined;\n if (odataObject.ReasonSubCodes) {\n this.ReasonSubCodes = [];\n for (var i = 0; i < odataObject.ReasonSubCodes.length; i++) {\n if (odataObject.ReasonSubCodes[i] != null) {\n if (odataObject.ReasonSubCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonSubCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonSubCodes[i] = new entityDictionary[className](odataObject.ReasonSubCodes[i])\n }\n } else {\n this.ReasonSubCodes[i] = new ReasonSubCodeClass(odataObject.ReasonSubCodes[i]);\n }\n } else {\n this.ReasonSubCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeClass'] = ReasonCodeClass;\n \n /**\n * ReportDataSet entity class.\n */\n export class ReportDataSetClass implements Entities.ReportDataSet {\n public ReportId: string;\n public Parameters: Entities.CommerceProperty[];\n public Locale: string;\n public Output: Entities.ReportRow[];\n public HasTotalRow: boolean;\n public HasDisclaimer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportId = \n odataObject.ReportId;\n \n this.Parameters = undefined;\n if (odataObject.Parameters) {\n this.Parameters = [];\n for (var i = 0; i < odataObject.Parameters.length; i++) {\n if (odataObject.Parameters[i] != null) {\n if (odataObject.Parameters[i]['@odata.type'] != null) {\n var className: string = odataObject.Parameters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Parameters[i] = new entityDictionary[className](odataObject.Parameters[i])\n }\n } else {\n this.Parameters[i] = new CommercePropertyClass(odataObject.Parameters[i]);\n }\n } else {\n this.Parameters[i] = undefined;\n }\n }\n }\n \n this.Locale = \n odataObject.Locale;\n \n this.Output = undefined;\n if (odataObject.Output) {\n this.Output = [];\n for (var i = 0; i < odataObject.Output.length; i++) {\n if (odataObject.Output[i] != null) {\n if (odataObject.Output[i]['@odata.type'] != null) {\n var className: string = odataObject.Output[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Output[i] = new entityDictionary[className](odataObject.Output[i])\n }\n } else {\n this.Output[i] = new ReportRowClass(odataObject.Output[i]);\n }\n } else {\n this.Output[i] = undefined;\n }\n }\n }\n \n this.HasTotalRow = \n odataObject.HasTotalRow;\n \n this.HasDisclaimer = \n odataObject.HasDisclaimer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportDataSetClass'] = ReportDataSetClass;\n \n /**\n * ZipCodeInfo entity class.\n */\n export class ZipCodeInfoClass implements Entities.ZipCodeInfo {\n public ZipPostalCode: string;\n public StreetName: string;\n public TimeZone: number;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public CityAlias: string;\n public District: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ZipPostalCode = \n odataObject.ZipPostalCode;\n \n this.StreetName = \n odataObject.StreetName;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.CityAlias = \n odataObject.CityAlias;\n \n this.District = \n odataObject.District;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ZipCodeInfoClass'] = ZipCodeInfoClass;\n \n /**\n * ReasonCodeRequirement entity class.\n */\n export class ReasonCodeRequirementClass implements Entities.ReasonCodeRequirement {\n public ReasonCodeId: string;\n public SourceId: string;\n public TableRefTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SourceId = \n odataObject.SourceId;\n \n this.TableRefTypeValue = \n odataObject.TableRefTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeRequirementClass'] = ReasonCodeRequirementClass;\n \n /**\n * QueryResultSettings entity class.\n */\n export class QueryResultSettingsClass implements Entities.QueryResultSettings {\n public Paging: Entities.PagingInfo;\n public Sorting: Entities.SortingInfo;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Paging == null) {\n this.Paging = undefined;\n } else if (odataObject.Paging['@odata.type'] == null) {\n this.Paging = new PagingInfoClass(odataObject.Paging);\n } else {\n var className: string = odataObject.Paging['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Paging = new entityDictionary[className](odataObject.Paging)\n }\n }\n\n \n if (odataObject.Sorting == null) {\n this.Sorting = undefined;\n } else if (odataObject.Sorting['@odata.type'] == null) {\n this.Sorting = new SortingInfoClass(odataObject.Sorting);\n } else {\n var className: string = odataObject.Sorting['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Sorting = new entityDictionary[className](odataObject.Sorting)\n }\n }\n\n \n }\n }\n entityDictionary['QueryResultSettingsClass'] = QueryResultSettingsClass;\n \n /**\n * SortingInfo entity class.\n */\n export class SortingInfoClass implements Entities.SortingInfo {\n public Columns: Entities.SortColumn[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Columns = undefined;\n if (odataObject.Columns) {\n this.Columns = [];\n for (var i = 0; i < odataObject.Columns.length; i++) {\n if (odataObject.Columns[i] != null) {\n if (odataObject.Columns[i]['@odata.type'] != null) {\n var className: string = odataObject.Columns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Columns[i] = new entityDictionary[className](odataObject.Columns[i])\n }\n } else {\n this.Columns[i] = new SortColumnClass(odataObject.Columns[i]);\n }\n } else {\n this.Columns[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SortingInfoClass'] = SortingInfoClass;\n \n /**\n * SortColumn entity class.\n */\n export class SortColumnClass implements Entities.SortColumn {\n public ColumnName: string;\n public IsDescending: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ColumnName = \n odataObject.ColumnName;\n \n this.IsDescending = \n odataObject.IsDescending;\n \n }\n }\n entityDictionary['SortColumnClass'] = SortColumnClass;\n \n /**\n * PagingInfo entity class.\n */\n export class PagingInfoClass implements Entities.PagingInfo {\n public NextPageToken: string;\n public Top: number;\n public Skip: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.NextPageToken = \n odataObject.NextPageToken;\n \n this.Top = \n (odataObject.Top != null) ? parseInt(odataObject.Top, 10) : undefined;\n \n this.Skip = \n (odataObject.Skip != null) ? parseInt(odataObject.Skip, 10) : undefined;\n \n }\n }\n entityDictionary['PagingInfoClass'] = PagingInfoClass;\n \n /**\n * ProductPropertyTranslation entity class.\n */\n export class ProductPropertyTranslationClass implements Entities.ProductPropertyTranslation {\n public TranslationLanguage: string;\n public TranslatedProperties: Entities.ProductProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TranslationLanguage = \n odataObject.TranslationLanguage;\n \n this.TranslatedProperties = undefined;\n if (odataObject.TranslatedProperties) {\n this.TranslatedProperties = [];\n for (var i = 0; i < odataObject.TranslatedProperties.length; i++) {\n if (odataObject.TranslatedProperties[i] != null) {\n if (odataObject.TranslatedProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslatedProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslatedProperties[i] = new entityDictionary[className](odataObject.TranslatedProperties[i])\n }\n } else {\n this.TranslatedProperties[i] = new ProductPropertyClass(odataObject.TranslatedProperties[i]);\n }\n } else {\n this.TranslatedProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPropertyTranslationClass'] = ProductPropertyTranslationClass;\n \n /**\n * NumberSequenceSeedData entity class.\n */\n export class NumberSequenceSeedDataClass implements Entities.NumberSequenceSeedData {\n public DataTypeValue: number;\n public DataValue: number;\n public LastTransactionDataValue: number;\n public LastTransactionCreatedDateTime: Date;\n public LastTransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.DataValue = \n (odataObject.DataValue != null) ? parseInt(odataObject.DataValue, 10) : undefined;\n \n this.LastTransactionDataValue = \n (odataObject.LastTransactionDataValue != null) ? parseInt(odataObject.LastTransactionDataValue, 10) : undefined;\n \n this.LastTransactionCreatedDateTime = \n (odataObject.LastTransactionCreatedDateTime instanceof Date) ? odataObject.LastTransactionCreatedDateTime\n : (odataObject.LastTransactionCreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastTransactionCreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastTransactionId = \n odataObject.LastTransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NumberSequenceSeedDataClass'] = NumberSequenceSeedDataClass;\n \n /**\n * ReceiptNumberResetInfo entity class.\n */\n export class ReceiptNumberResetInfoClass implements Entities.ReceiptNumberResetInfo {\n public ValidFrom: Date;\n public ValidTo: Date;\n public ResetDate: Date;\n public TypeValue: number;\n public Enabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResetDate = \n (odataObject.ResetDate instanceof Date) ? odataObject.ResetDate\n : (odataObject.ResetDate != null) ? jsonLightReadStringPropertyValue(odataObject.ResetDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Enabled = \n odataObject.Enabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptNumberResetInfoClass'] = ReceiptNumberResetInfoClass;\n \n /**\n * DeviceActivationResult entity class.\n */\n export class DeviceActivationResultClass implements Entities.DeviceActivationResult {\n public Device: Entities.Device;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Device == null) {\n this.Device = undefined;\n } else if (odataObject.Device['@odata.type'] == null) {\n this.Device = new DeviceClass(odataObject.Device);\n } else {\n var className: string = odataObject.Device['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Device = new entityDictionary[className](odataObject.Device)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceActivationResultClass'] = DeviceActivationResultClass;\n \n /**\n * PurchaseHistory entity class.\n */\n export class PurchaseHistoryClass implements Entities.PurchaseHistory {\n public DatePurchased: Date;\n public ImageUrl: string;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public ReceiptId: string;\n public SalesId: string;\n public ChannelId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DatePurchased = \n (odataObject.DatePurchased instanceof Date) ? odataObject.DatePurchased\n : (odataObject.DatePurchased != null) ? jsonLightReadStringPropertyValue(odataObject.DatePurchased, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseHistoryClass'] = PurchaseHistoryClass;\n \n /**\n * Node entity class.\n */\n export class NodeClass implements Entities.Node {\n public ParentScopeId: string;\n public ParentSequence: number;\n public Id: string;\n public Sequence: number;\n public Description: string;\n public ScreenshotUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ParentScopeId = \n odataObject.ParentScopeId;\n \n this.ParentSequence = \n odataObject.ParentSequence;\n \n this.Id = \n odataObject.Id;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Description = \n odataObject.Description;\n \n this.ScreenshotUri = \n odataObject.ScreenshotUri;\n \n }\n }\n entityDictionary['NodeClass'] = NodeClass;\n \n /**\n * Line entity class.\n */\n export class LineClass implements Entities.Line {\n public ChildrenIds: number[];\n public Id: number;\n public Name: string;\n public Description: string;\n public IsLinked: boolean;\n public LineMetadataId: number;\n public Artifacts: Entities.ArtifactSummary[];\n public MetadataPropertyValues: Entities.MetadataPropertyValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChildrenIds = undefined;\n if (odataObject.ChildrenIds) {\n this.ChildrenIds = [];\n for (var i = 0; i < odataObject.ChildrenIds.length; i++) {\n if (odataObject.ChildrenIds[i] != null) {\n this.ChildrenIds[i] = \n parseInt(odataObject.ChildrenIds[i], 10);\n } else {\n this.ChildrenIds[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.IsLinked = \n odataObject.IsLinked;\n \n this.LineMetadataId = \n (odataObject.LineMetadataId != null) ? parseInt(odataObject.LineMetadataId, 10) : undefined;\n \n this.Artifacts = undefined;\n if (odataObject.Artifacts) {\n this.Artifacts = [];\n for (var i = 0; i < odataObject.Artifacts.length; i++) {\n if (odataObject.Artifacts[i] != null) {\n if (odataObject.Artifacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Artifacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Artifacts[i] = new entityDictionary[className](odataObject.Artifacts[i])\n }\n } else {\n this.Artifacts[i] = new ArtifactSummaryClass(odataObject.Artifacts[i]);\n }\n } else {\n this.Artifacts[i] = undefined;\n }\n }\n }\n \n this.MetadataPropertyValues = undefined;\n if (odataObject.MetadataPropertyValues) {\n this.MetadataPropertyValues = [];\n for (var i = 0; i < odataObject.MetadataPropertyValues.length; i++) {\n if (odataObject.MetadataPropertyValues[i] != null) {\n if (odataObject.MetadataPropertyValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MetadataPropertyValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataPropertyValues[i] = new entityDictionary[className](odataObject.MetadataPropertyValues[i])\n }\n } else {\n this.MetadataPropertyValues[i] = new MetadataPropertyValueClass(odataObject.MetadataPropertyValues[i]);\n }\n } else {\n this.MetadataPropertyValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineClass'] = LineClass;\n \n /**\n * MetadataText entity class.\n */\n export class MetadataTextClass implements Entities.MetadataText {\n public Id: string;\n public Text: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Text = \n odataObject.Text;\n \n }\n }\n entityDictionary['MetadataTextClass'] = MetadataTextClass;\n \n /**\n * MetadataHypertextLink entity class.\n */\n export class MetadataHypertextLinkClass implements Entities.MetadataHypertextLink {\n public Id: string;\n public DisplayName: string;\n public Url: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.Url = \n odataObject.Url;\n \n }\n }\n entityDictionary['MetadataHypertextLinkClass'] = MetadataHypertextLinkClass;\n \n /**\n * Scope entity class.\n */\n export class ScopeClass\n extends NodeClass\n implements Entities.Scope {\n public Name: string;\n public ScopeTypeValue: number;\n public Children: Entities.Node[];\n public ActiveCount: number;\n public IsForm: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ScopeTypeValue = \n odataObject.ScopeTypeValue;\n \n this.Children = undefined;\n if (odataObject.Children) {\n this.Children = [];\n for (var i = 0; i < odataObject.Children.length; i++) {\n if (odataObject.Children[i] != null) {\n if (odataObject.Children[i]['@odata.type'] != null) {\n var className: string = odataObject.Children[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Children[i] = new entityDictionary[className](odataObject.Children[i])\n }\n } else {\n this.Children[i] = new NodeClass(odataObject.Children[i]);\n }\n } else {\n this.Children[i] = undefined;\n }\n }\n }\n \n this.ActiveCount = \n odataObject.ActiveCount;\n \n this.IsForm = \n odataObject.IsForm;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Scope\";\n \n }\n }\n entityDictionary['ScopeClass'] = ScopeClass;\n \n /**\n * Framework entity class.\n */\n export class FrameworkClass implements Entities.Framework {\n public Lines: Entities.Line[];\n public Id: number;\n public Name: string;\n public Access: string;\n public Hierarchy: Entities.Line[];\n public Publisher: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Access = \n odataObject.Access;\n \n this.Hierarchy = undefined;\n if (odataObject.Hierarchy) {\n this.Hierarchy = [];\n for (var i = 0; i < odataObject.Hierarchy.length; i++) {\n if (odataObject.Hierarchy[i] != null) {\n if (odataObject.Hierarchy[i]['@odata.type'] != null) {\n var className: string = odataObject.Hierarchy[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Hierarchy[i] = new entityDictionary[className](odataObject.Hierarchy[i])\n }\n } else {\n this.Hierarchy[i] = new LineClass(odataObject.Hierarchy[i]);\n }\n } else {\n this.Hierarchy[i] = undefined;\n }\n }\n }\n \n this.Publisher = \n odataObject.Publisher;\n \n }\n }\n entityDictionary['FrameworkClass'] = FrameworkClass;\n \n /**\n * UserAction entity class.\n */\n export class UserActionClass\n extends NodeClass\n implements Entities.UserAction {\n public SystemGenerated: boolean;\n public GlobalId: string;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SystemGenerated = \n odataObject.SystemGenerated;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAction\";\n \n }\n }\n entityDictionary['UserActionClass'] = UserActionClass;\n \n /**\n * TaskUserAction entity class.\n */\n export class TaskUserActionClass\n extends UserActionClass\n implements Entities.TaskUserAction {\n public UserActionTypeValue: number;\n public Name: string;\n public Comment: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.UserActionTypeValue = \n odataObject.UserActionTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this.TaskId = \n odataObject.TaskId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskUserAction\";\n \n }\n }\n entityDictionary['TaskUserActionClass'] = TaskUserActionClass;\n \n /**\n * FormUserAction entity class.\n */\n export class FormUserActionClass\n extends UserActionClass\n implements Entities.FormUserAction {\n public FormId: string;\n public ControlLabel: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormUserAction\";\n \n }\n }\n entityDictionary['FormUserActionClass'] = FormUserActionClass;\n \n /**\n * CommandUserAction entity class.\n */\n export class CommandUserActionClass\n extends FormUserActionClass\n implements Entities.CommandUserAction {\n public ReturnTypeValue: number;\n public CommandName: string;\n public ControlName: string;\n public ControlType: string;\n public Arguments: Entities.CommandArgument[];\n public LabelId: string;\n public ReturnValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReturnTypeValue = \n odataObject.ReturnTypeValue;\n \n this.CommandName = \n odataObject.CommandName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.Arguments = undefined;\n if (odataObject.Arguments) {\n this.Arguments = [];\n for (var i = 0; i < odataObject.Arguments.length; i++) {\n if (odataObject.Arguments[i] != null) {\n if (odataObject.Arguments[i]['@odata.type'] != null) {\n var className: string = odataObject.Arguments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Arguments[i] = new entityDictionary[className](odataObject.Arguments[i])\n }\n } else {\n this.Arguments[i] = new CommandArgumentClass(odataObject.Arguments[i]);\n }\n } else {\n this.Arguments[i] = undefined;\n }\n }\n }\n \n this.LabelId = \n odataObject.LabelId;\n \n this.ReturnValue = \n odataObject.ReturnValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommandUserAction\";\n \n }\n }\n entityDictionary['CommandUserActionClass'] = CommandUserActionClass;\n \n /**\n * Annotation entity class.\n */\n export class AnnotationClass implements Entities.Annotation {\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['AnnotationClass'] = AnnotationClass;\n \n /**\n * Recording entity class.\n */\n export class RecordingClass implements Entities.Recording {\n public Scopes: Entities.Scope[];\n public FormContextEntries: Entities.FormContextDictionaryEntry[];\n public RootScope: Entities.Scope;\n public Name: string;\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Scopes = undefined;\n if (odataObject.Scopes) {\n this.Scopes = [];\n for (var i = 0; i < odataObject.Scopes.length; i++) {\n if (odataObject.Scopes[i] != null) {\n if (odataObject.Scopes[i]['@odata.type'] != null) {\n var className: string = odataObject.Scopes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scopes[i] = new entityDictionary[className](odataObject.Scopes[i])\n }\n } else {\n this.Scopes[i] = new ScopeClass(odataObject.Scopes[i]);\n }\n } else {\n this.Scopes[i] = undefined;\n }\n }\n }\n \n this.FormContextEntries = undefined;\n if (odataObject.FormContextEntries) {\n this.FormContextEntries = [];\n for (var i = 0; i < odataObject.FormContextEntries.length; i++) {\n if (odataObject.FormContextEntries[i] != null) {\n if (odataObject.FormContextEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.FormContextEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContextEntries[i] = new entityDictionary[className](odataObject.FormContextEntries[i])\n }\n } else {\n this.FormContextEntries[i] = new FormContextDictionaryEntryClass(odataObject.FormContextEntries[i]);\n }\n } else {\n this.FormContextEntries[i] = undefined;\n }\n }\n }\n \n if (odataObject.RootScope == null) {\n this.RootScope = undefined;\n } else if (odataObject.RootScope['@odata.type'] == null) {\n this.RootScope = new ScopeClass(odataObject.RootScope);\n } else {\n var className: string = odataObject.RootScope['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RootScope = new entityDictionary[className](odataObject.RootScope)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['RecordingClass'] = RecordingClass;\n \n /**\n * FormContextDictionaryEntry entity class.\n */\n export class FormContextDictionaryEntryClass implements Entities.FormContextDictionaryEntry {\n public FormId: string;\n public FormContext: Entities.FormContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n if (odataObject.FormContext == null) {\n this.FormContext = undefined;\n } else if (odataObject.FormContext['@odata.type'] == null) {\n this.FormContext = new FormContextClass(odataObject.FormContext);\n } else {\n var className: string = odataObject.FormContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContext = new entityDictionary[className](odataObject.FormContext)\n }\n }\n\n \n }\n }\n entityDictionary['FormContextDictionaryEntryClass'] = FormContextDictionaryEntryClass;\n \n /**\n * ProductVariantResolutionContext entity class.\n */\n export class ProductVariantResolutionContextClass implements Entities.ProductVariantResolutionContext {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ProductVariantResolutionContextClass'] = ProductVariantResolutionContextClass;\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity class.\n */\n export class ProductVariantResolutionOnKitSelectionContextClass\n extends ProductVariantResolutionContextClass\n implements Entities.ProductVariantResolutionOnKitSelectionContext {\n public SelectedComponents: Entities.ComponentInSlotRelation[];\n public SlotId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SelectedComponents = undefined;\n if (odataObject.SelectedComponents) {\n this.SelectedComponents = [];\n for (var i = 0; i < odataObject.SelectedComponents.length; i++) {\n if (odataObject.SelectedComponents[i] != null) {\n if (odataObject.SelectedComponents[i]['@odata.type'] != null) {\n var className: string = odataObject.SelectedComponents[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SelectedComponents[i] = new entityDictionary[className](odataObject.SelectedComponents[i])\n }\n } else {\n this.SelectedComponents[i] = new ComponentInSlotRelationClass(odataObject.SelectedComponents[i]);\n }\n } else {\n this.SelectedComponents[i] = undefined;\n }\n }\n }\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductVariantResolutionOnKitSelectionContext\";\n \n }\n }\n entityDictionary['ProductVariantResolutionOnKitSelectionContextClass'] = ProductVariantResolutionOnKitSelectionContextClass;\n \n /**\n * WarehouseLocation entity class.\n */\n export class WarehouseLocationClass implements Entities.WarehouseLocation {\n public LocationId: string;\n public IsLicensePlateControlled: boolean;\n public ProfileId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocationId = \n odataObject.LocationId;\n \n this.IsLicensePlateControlled = \n odataObject.IsLicensePlateControlled;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseLocationClass'] = WarehouseLocationClass;\n \n /**\n * FiscalTransaction entity class.\n */\n export class FiscalTransactionClass implements Entities.FiscalTransaction {\n public CreatedDateTime: Date;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TransDateTime: Date;\n public LineNumber: number;\n public RegisterResponse: string;\n public ReceiptCopy: boolean;\n public RecordGUID: string;\n public RegisterStoreId: string;\n public RegisterTerminalId: string;\n public StaffId: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public DocumentNumber: string;\n public RegistrationTypeValue: number;\n public ServiceName: string;\n public CountryRegionIsoCode: string;\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.ReceiptCopy = \n odataObject.ReceiptCopy;\n \n this.RecordGUID = \n odataObject.RecordGUID;\n \n this.RegisterStoreId = \n odataObject.RegisterStoreId;\n \n this.RegisterTerminalId = \n odataObject.RegisterTerminalId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.DocumentNumber = \n odataObject.DocumentNumber;\n \n this.RegistrationTypeValue = \n odataObject.RegistrationTypeValue;\n \n this.ServiceName = \n odataObject.ServiceName;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionClass'] = FiscalTransactionClass;\n \n /**\n * FulfillmentLine entity class.\n */\n export class FulfillmentLineClass implements Entities.FulfillmentLine {\n public SalesId: string;\n public SalesPersonStoreId: string;\n public SalesPersonId: string;\n public SalesPersonFirstName: string;\n public SalesPersonLastName: string;\n public SalesLineNumber: number;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public DeliveryModeCode: string;\n public DocumentStatusValue: number;\n public FulfillmentDeliveryType: Entities.FulfillmentLineDeliveryType;\n public DeliveryTypeValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public StoreInventoryTotalQuantity: number;\n public StoreInventoryReservedQuantity: number;\n public StoreInventoryOrderedQuantity: number;\n public ItemId: string;\n public ProductId: number;\n public ProductVariant: string;\n public ItemName: string;\n public SerialNumber: string;\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public UnitOfMeasureSymbol: string;\n public RequestedShipDate: Date;\n public RequestedDeliveryDate: Date;\n public RequestedReceiptDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public CreatedDate: Date;\n public TotalAmount: number;\n public Balance: number;\n public ShippingAddress: Entities.Address;\n public DetailedOrderStatusValue: number;\n public DetailedLineStatusValue: number;\n public ChannelTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPersonStoreId = \n odataObject.SalesPersonStoreId;\n \n this.SalesPersonId = \n odataObject.SalesPersonId;\n \n this.SalesPersonFirstName = \n odataObject.SalesPersonFirstName;\n \n this.SalesPersonLastName = \n odataObject.SalesPersonLastName;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n if (odataObject.FulfillmentDeliveryType == null) {\n this.FulfillmentDeliveryType = undefined;\n } else if (odataObject.FulfillmentDeliveryType['@odata.type'] == null) {\n this.FulfillmentDeliveryType = new FulfillmentLineDeliveryTypeClass(odataObject.FulfillmentDeliveryType);\n } else {\n var className: string = odataObject.FulfillmentDeliveryType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentDeliveryType = new entityDictionary[className](odataObject.FulfillmentDeliveryType)\n }\n }\n\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.StoreInventoryTotalQuantity = \n (odataObject.StoreInventoryTotalQuantity != null) ? parseFloat(odataObject.StoreInventoryTotalQuantity) : undefined;\n \n this.StoreInventoryReservedQuantity = \n (odataObject.StoreInventoryReservedQuantity != null) ? parseFloat(odataObject.StoreInventoryReservedQuantity) : undefined;\n \n this.StoreInventoryOrderedQuantity = \n (odataObject.StoreInventoryOrderedQuantity != null) ? parseFloat(odataObject.StoreInventoryOrderedQuantity) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductVariant = \n odataObject.ProductVariant;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.RequestedShipDate = \n (odataObject.RequestedShipDate instanceof Date) ? odataObject.RequestedShipDate\n : (odataObject.RequestedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptDate = \n (odataObject.RequestedReceiptDate instanceof Date) ? odataObject.RequestedReceiptDate\n : (odataObject.RequestedReceiptDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDate = \n (odataObject.CreatedDate instanceof Date) ? odataObject.CreatedDate\n : (odataObject.CreatedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.ChannelTypeValue = \n odataObject.ChannelTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineClass'] = FulfillmentLineClass;\n \n /**\n * FulfillmentLineSearchCriteria entity class.\n */\n export class FulfillmentLineSearchCriteriaClass implements Entities.FulfillmentLineSearchCriteria {\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public SalesId: string;\n public OrderCreatedStartDate: Date;\n public OrderCreatedEndDate: Date;\n public ReceiptId: string;\n public StoreId: string;\n public ChannelReferenceId: string;\n public RequestedReceiptStartDate: Date;\n public RequestedReceiptEndDate: Date;\n public RequestedDeliveryStartDate: Date;\n public RequestedDeliveryEndDate: Date;\n public FulfillmentStatusValues: number[];\n public DeliveryModeCode: string;\n public WarehouseId: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public DeliveryTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.OrderCreatedStartDate = \n (odataObject.OrderCreatedStartDate instanceof Date) ? odataObject.OrderCreatedStartDate\n : (odataObject.OrderCreatedStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OrderCreatedEndDate = \n (odataObject.OrderCreatedEndDate instanceof Date) ? odataObject.OrderCreatedEndDate\n : (odataObject.OrderCreatedEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.RequestedReceiptStartDate = \n (odataObject.RequestedReceiptStartDate instanceof Date) ? odataObject.RequestedReceiptStartDate\n : (odataObject.RequestedReceiptStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptEndDate = \n (odataObject.RequestedReceiptEndDate instanceof Date) ? odataObject.RequestedReceiptEndDate\n : (odataObject.RequestedReceiptEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryStartDate = \n (odataObject.RequestedDeliveryStartDate instanceof Date) ? odataObject.RequestedDeliveryStartDate\n : (odataObject.RequestedDeliveryStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryEndDate = \n (odataObject.RequestedDeliveryEndDate instanceof Date) ? odataObject.RequestedDeliveryEndDate\n : (odataObject.RequestedDeliveryEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FulfillmentStatusValues = undefined;\n if (odataObject.FulfillmentStatusValues) {\n this.FulfillmentStatusValues = [];\n for (var i = 0; i < odataObject.FulfillmentStatusValues.length; i++) {\n if (odataObject.FulfillmentStatusValues[i] != null) {\n this.FulfillmentStatusValues[i] = \n odataObject.FulfillmentStatusValues[i];\n } else {\n this.FulfillmentStatusValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineSearchCriteriaClass'] = FulfillmentLineSearchCriteriaClass;\n \n /**\n * Comment entity class.\n */\n export class CommentClass implements Entities.Comment {\n public RecordId: number;\n public AuthorStaffId: string;\n public AuthorName: string;\n public Text: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AuthorStaffId = \n odataObject.AuthorStaffId;\n \n this.AuthorName = \n odataObject.AuthorName;\n \n this.Text = \n odataObject.Text;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommentClass'] = CommentClass;\n \n /**\n * AddressPurpose entity class.\n */\n export class AddressPurposeClass implements Entities.AddressPurpose {\n public RecordId: number;\n public AddressType: number;\n public Name: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AddressType = \n odataObject.AddressType;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressPurposeClass'] = AddressPurposeClass;\n \n /**\n * DeliveryChargeLine entity class.\n */\n export class DeliveryChargeLineClass implements Entities.DeliveryChargeLine {\n public ChargeCode: string;\n public CurrencyCode: string;\n public CalculatedAmount: number;\n public Description: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryChargeLineClass'] = DeliveryChargeLineClass;\n \n /**\n * ExtensionPackageDefinition entity class.\n */\n export class ExtensionPackageDefinitionClass implements Entities.ExtensionPackageDefinition {\n public Name: string;\n public Publisher: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Publisher = \n odataObject.Publisher;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionPackageDefinitionClass'] = ExtensionPackageDefinitionClass;\n \n /**\n * ReturnPolicy entity class.\n */\n export class ReturnPolicyClass implements Entities.ReturnPolicy {\n public RecordId: number;\n public TenderTypePolicies: Entities.TenderTypePolicy[];\n public IsManagerOverrideEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TenderTypePolicies = undefined;\n if (odataObject.TenderTypePolicies) {\n this.TenderTypePolicies = [];\n for (var i = 0; i < odataObject.TenderTypePolicies.length; i++) {\n if (odataObject.TenderTypePolicies[i] != null) {\n if (odataObject.TenderTypePolicies[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderTypePolicies[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderTypePolicies[i] = new entityDictionary[className](odataObject.TenderTypePolicies[i])\n }\n } else {\n this.TenderTypePolicies[i] = new TenderTypePolicyClass(odataObject.TenderTypePolicies[i]);\n }\n } else {\n this.TenderTypePolicies[i] = undefined;\n }\n }\n }\n \n this.IsManagerOverrideEnabled = \n odataObject.IsManagerOverrideEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnPolicyClass'] = ReturnPolicyClass;\n \n /**\n * TenderTypeAmount entity class.\n */\n export class TenderTypeAmountClass implements Entities.TenderTypeAmount {\n public TenderTypeId: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeAmountClass'] = TenderTypeAmountClass;\n \n /**\n * FeatureState entity class.\n */\n export class FeatureStateClass implements Entities.FeatureState {\n public Name: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FeatureStateClass'] = FeatureStateClass;\n \n /**\n * Warranty entity class.\n */\n export class WarrantyClass\n extends SimpleProductClass\n implements Entities.Warranty {\n public DurationUnitValue: number;\n public Duration: number;\n public ApplicablePriceRangeBaseTypeValue: number;\n public ApplicablePriceRangeMin: number;\n public ApplicablePriceRangeMax: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.DurationUnitValue = \n odataObject.DurationUnitValue;\n \n this.Duration = \n odataObject.Duration;\n \n this.ApplicablePriceRangeBaseTypeValue = \n odataObject.ApplicablePriceRangeBaseTypeValue;\n \n this.ApplicablePriceRangeMin = \n (odataObject.ApplicablePriceRangeMin != null) ? parseFloat(odataObject.ApplicablePriceRangeMin) : undefined;\n \n this.ApplicablePriceRangeMax = \n (odataObject.ApplicablePriceRangeMax != null) ? parseFloat(odataObject.ApplicablePriceRangeMax) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Warranty\";\n \n }\n }\n entityDictionary['WarrantyClass'] = WarrantyClass;\n \n /**\n * RecallInvoicedSalesLineLookup entity class.\n */\n export class RecallInvoicedSalesLineLookupClass implements Entities.RecallInvoicedSalesLineLookup {\n public InvoicedLineId: number;\n public Quantity: number;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoicedLineId = \n (odataObject.InvoicedLineId != null) ? parseInt(odataObject.InvoicedLineId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecallInvoicedSalesLineLookupClass'] = RecallInvoicedSalesLineLookupClass;\n \n /**\n * WarrantyGroup entity class.\n */\n export class WarrantyGroupClass implements Entities.WarrantyGroup {\n public Warranties: Entities.Warranty[];\n public RecordId: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Warranties = undefined;\n if (odataObject.Warranties) {\n this.Warranties = [];\n for (var i = 0; i < odataObject.Warranties.length; i++) {\n if (odataObject.Warranties[i] != null) {\n if (odataObject.Warranties[i]['@odata.type'] != null) {\n var className: string = odataObject.Warranties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Warranties[i] = new entityDictionary[className](odataObject.Warranties[i])\n }\n } else {\n this.Warranties[i] = new WarrantyClass(odataObject.Warranties[i]);\n }\n } else {\n this.Warranties[i] = undefined;\n }\n }\n }\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarrantyGroupClass'] = WarrantyGroupClass;\n \n /**\n * ProductWarrantiesMapping entity class.\n */\n export class ProductWarrantiesMappingClass implements Entities.ProductWarrantiesMapping {\n public WarrantyGroups: Entities.WarrantyGroup[];\n public WarrantableProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarrantyGroups = undefined;\n if (odataObject.WarrantyGroups) {\n this.WarrantyGroups = [];\n for (var i = 0; i < odataObject.WarrantyGroups.length; i++) {\n if (odataObject.WarrantyGroups[i] != null) {\n if (odataObject.WarrantyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.WarrantyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.WarrantyGroups[i] = new entityDictionary[className](odataObject.WarrantyGroups[i])\n }\n } else {\n this.WarrantyGroups[i] = new WarrantyGroupClass(odataObject.WarrantyGroups[i]);\n }\n } else {\n this.WarrantyGroups[i] = undefined;\n }\n }\n }\n \n this.WarrantableProductId = \n (odataObject.WarrantableProductId != null) ? parseInt(odataObject.WarrantableProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarrantiesMappingClass'] = ProductWarrantiesMappingClass;\n \n /**\n * FulfillmentLineContextualOperationsMap entity class.\n */\n export class FulfillmentLineContextualOperationsMapClass implements Entities.FulfillmentLineContextualOperationsMap {\n public FulfillmentLine: Entities.FulfillmentLine;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.FulfillmentLine == null) {\n this.FulfillmentLine = undefined;\n } else if (odataObject.FulfillmentLine['@odata.type'] == null) {\n this.FulfillmentLine = new FulfillmentLineClass(odataObject.FulfillmentLine);\n } else {\n var className: string = odataObject.FulfillmentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentLine = new entityDictionary[className](odataObject.FulfillmentLine)\n }\n }\n\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineContextualOperationsMapClass'] = FulfillmentLineContextualOperationsMapClass;\n \n /**\n * UserAlert entity class.\n */\n export class UserAlertClass implements Entities.UserAlert {\n public AlertSourceIdValue: number;\n public LocalizedMessage: string;\n public IsBlocking: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AlertSourceIdValue = \n odataObject.AlertSourceIdValue;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.IsBlocking = \n odataObject.IsBlocking;\n \n }\n }\n entityDictionary['UserAlertClass'] = UserAlertClass;\n \n /**\n * CartLineUserAlerts entity class.\n */\n export class CartLineUserAlertsClass implements Entities.CartLineUserAlerts {\n public LineIndex: number;\n public LineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIndex = \n odataObject.LineIndex;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineUserAlertsClass'] = CartLineUserAlertsClass;\n \n /**\n * FulfillmentLineUserAlerts entity class.\n */\n export class FulfillmentLineUserAlertsClass implements Entities.FulfillmentLineUserAlerts {\n public SalesId: string;\n public SalesLineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineUserAlertsClass'] = FulfillmentLineUserAlertsClass;\n \n /**\n * BusinessPartnerProspect entity class.\n */\n export class BusinessPartnerProspectClass implements Entities.BusinessPartnerProspect {\n public FirstName: string;\n public LastName: string;\n public CompanyName: string;\n public Address: Entities.Address;\n public JobTitle: string;\n public Department: string;\n public CompanySize: number;\n public Comments: string;\n public LastOperationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.CompanyName = \n odataObject.CompanyName;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.JobTitle = \n odataObject.JobTitle;\n \n this.Department = \n odataObject.Department;\n \n this.CompanySize = \n odataObject.CompanySize;\n \n this.Comments = \n odataObject.Comments;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerProspectClass'] = BusinessPartnerProspectClass;\n \n /**\n * ChannelSearchCriteria entity class.\n */\n export class ChannelSearchCriteriaClass implements Entities.ChannelSearchCriteria {\n public SearchLocationValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelSearchCriteriaClass'] = ChannelSearchCriteriaClass;\n \n /**\n * BusinessPartnerOperation entity class.\n */\n export class BusinessPartnerOperationClass implements Entities.BusinessPartnerOperation {\n public TypeValue: number;\n public StatusValue: number;\n public Value: string;\n public Description: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Value = \n odataObject.Value;\n \n this.Description = \n odataObject.Description;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationClass'] = BusinessPartnerOperationClass;\n \n /**\n * BusinessPartnerOperationRequest entity class.\n */\n export class BusinessPartnerOperationRequestClass implements Entities.BusinessPartnerOperationRequest {\n public TypeValue: number;\n public StatusValue: number;\n public CreatedDateTime: Date;\n public Details: Entities.BusinessPartnerOperationRequestDetails;\n public UserId: string;\n public UserFirstName: string;\n public UserLastName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.Details == null) {\n this.Details = undefined;\n } else if (odataObject.Details['@odata.type'] == null) {\n this.Details = new BusinessPartnerOperationRequestDetailsClass(odataObject.Details);\n } else {\n var className: string = odataObject.Details['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Details = new entityDictionary[className](odataObject.Details)\n }\n }\n\n \n this.UserId = \n odataObject.UserId;\n \n this.UserFirstName = \n odataObject.UserFirstName;\n \n this.UserLastName = \n odataObject.UserLastName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestClass'] = BusinessPartnerOperationRequestClass;\n \n /**\n * ReceiptTypesByFormatType entity class.\n */\n export class ReceiptTypesByFormatTypeClass implements Entities.ReceiptTypesByFormatType {\n public ReceiptOutputFormatType: Entities.ReceiptOutputFormatType;\n public ReceiptTypesValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ReceiptOutputFormatType == null) {\n this.ReceiptOutputFormatType = undefined;\n } else if (odataObject.ReceiptOutputFormatType['@odata.type'] == null) {\n this.ReceiptOutputFormatType = new ReceiptOutputFormatTypeClass(odataObject.ReceiptOutputFormatType);\n } else {\n var className: string = odataObject.ReceiptOutputFormatType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptOutputFormatType = new entityDictionary[className](odataObject.ReceiptOutputFormatType)\n }\n }\n\n \n this.ReceiptTypesValues = undefined;\n if (odataObject.ReceiptTypesValues) {\n this.ReceiptTypesValues = [];\n for (var i = 0; i < odataObject.ReceiptTypesValues.length; i++) {\n if (odataObject.ReceiptTypesValues[i] != null) {\n this.ReceiptTypesValues[i] = \n odataObject.ReceiptTypesValues[i];\n } else {\n this.ReceiptTypesValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptTypesByFormatTypeClass'] = ReceiptTypesByFormatTypeClass;\n \n /**\n * InventoryJournalNameSearchCriteria entity class.\n */\n export class InventoryJournalNameSearchCriteriaClass implements Entities.InventoryJournalNameSearchCriteria {\n public JournalNameIds: string[];\n public DocumentTypeValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalNameIds = undefined;\n if (odataObject.JournalNameIds) {\n this.JournalNameIds = [];\n for (var i = 0; i < odataObject.JournalNameIds.length; i++) {\n if (odataObject.JournalNameIds[i] != null) {\n this.JournalNameIds[i] = \n odataObject.JournalNameIds[i];\n } else {\n this.JournalNameIds[i] = undefined;\n }\n }\n }\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameSearchCriteriaClass'] = InventoryJournalNameSearchCriteriaClass;\n \n /**\n * AssortedProductIdentity entity class.\n */\n export class AssortedProductIdentityClass implements Entities.AssortedProductIdentity {\n public ProductId: number;\n public IsRemoteProduct: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.IsRemoteProduct = \n odataObject.IsRemoteProduct;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AssortedProductIdentityClass'] = AssortedProductIdentityClass;\n \n /**\n * ProductExistenceId entity class.\n */\n export class ProductExistenceIdClass implements Entities.ProductExistenceId {\n public ProductId: number;\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceIdClass'] = ProductExistenceIdClass;\n \n /**\n * ProductExistenceCriteria entity class.\n */\n export class ProductExistenceCriteriaClass implements Entities.ProductExistenceCriteria {\n public ChannelId: number;\n public CatalogId: number;\n public Ids: Entities.ProductExistenceId[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n if (odataObject.Ids[i]['@odata.type'] != null) {\n var className: string = odataObject.Ids[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Ids[i] = new entityDictionary[className](odataObject.Ids[i])\n }\n } else {\n this.Ids[i] = new ProductExistenceIdClass(odataObject.Ids[i]);\n }\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceCriteriaClass'] = ProductExistenceCriteriaClass;\n \n /**\n * ChecklistTask entity class.\n */\n export class ChecklistTaskClass implements Entities.ChecklistTask {\n public Version: string;\n public InstructionsVersion: string;\n public AssignedToPersonnelNumbers: string[];\n public AssignedToExternalSubId: string;\n public Id: string;\n public Name: string;\n public Description: string;\n public DueDateTime: Date;\n public DeepLinkTypeValue: number;\n public DeepLink: string;\n public DeepLinkPosOperationName: string;\n public ContactPersonPersonnelNumber: string;\n public Instructions: string;\n public StatusValue: number;\n public CompletionDateTime: Date;\n public ResolvedByPersonnelNumber: string;\n public ChecklistId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Version = \n odataObject.Version;\n \n this.InstructionsVersion = \n odataObject.InstructionsVersion;\n \n this.AssignedToPersonnelNumbers = undefined;\n if (odataObject.AssignedToPersonnelNumbers) {\n this.AssignedToPersonnelNumbers = [];\n for (var i = 0; i < odataObject.AssignedToPersonnelNumbers.length; i++) {\n if (odataObject.AssignedToPersonnelNumbers[i] != null) {\n this.AssignedToPersonnelNumbers[i] = \n odataObject.AssignedToPersonnelNumbers[i];\n } else {\n this.AssignedToPersonnelNumbers[i] = undefined;\n }\n }\n }\n \n this.AssignedToExternalSubId = \n odataObject.AssignedToExternalSubId;\n \n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeepLinkTypeValue = \n odataObject.DeepLinkTypeValue;\n \n this.DeepLink = \n odataObject.DeepLink;\n \n this.DeepLinkPosOperationName = \n odataObject.DeepLinkPosOperationName;\n \n this.ContactPersonPersonnelNumber = \n odataObject.ContactPersonPersonnelNumber;\n \n this.Instructions = \n odataObject.Instructions;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CompletionDateTime = \n (odataObject.CompletionDateTime instanceof Date) ? odataObject.CompletionDateTime\n : (odataObject.CompletionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CompletionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResolvedByPersonnelNumber = \n odataObject.ResolvedByPersonnelNumber;\n \n this.ChecklistId = \n odataObject.ChecklistId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskClass'] = ChecklistTaskClass;\n \n /**\n * MediaLocation entity class.\n */\n export class MediaLocationClass implements Entities.MediaLocation {\n public Uri: string;\n public AltText: string;\n public IsDefault: boolean;\n public IsSelfHosted: boolean;\n public Priority: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Uri = \n odataObject.Uri;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.Priority = \n odataObject.Priority;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaLocationClass'] = MediaLocationClass;\n \n /**\n * EmployeeActivity entity class.\n */\n export class EmployeeActivityClass implements Entities.EmployeeActivity {\n public StaffId: string;\n public StaffName: string;\n public Activity: string;\n public ActivityDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValue: number;\n public BreakCategory: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.StaffName = \n odataObject.StaffName;\n \n this.Activity = \n odataObject.Activity;\n \n this.ActivityDateTimeOffset = \n (odataObject.ActivityDateTimeOffset instanceof Date) ? odataObject.ActivityDateTimeOffset\n : (odataObject.ActivityDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValue = \n odataObject.EmployeeActivityTypeValue;\n \n this.BreakCategory = \n odataObject.BreakCategory;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeActivityClass'] = EmployeeActivityClass;\n \n /**\n * CustomerRefiner entity class.\n */\n export class CustomerRefinerClass\n extends SearchRefinerClass\n implements Entities.CustomerRefiner {\n public SourceValue: number;\n public Values: Entities.CustomerRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new CustomerRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefiner\";\n \n }\n }\n entityDictionary['CustomerRefinerClass'] = CustomerRefinerClass;\n \n /**\n * TokenizedPaymentCard entity class.\n */\n export class TokenizedPaymentCardClass implements Entities.TokenizedPaymentCard {\n public IsSwipe: boolean;\n public TenderType: string;\n public CardTokenInfo: Entities.CardTokenInfo;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.TenderType = \n odataObject.TenderType;\n \n if (odataObject.CardTokenInfo == null) {\n this.CardTokenInfo = undefined;\n } else if (odataObject.CardTokenInfo['@odata.type'] == null) {\n this.CardTokenInfo = new CardTokenInfoClass(odataObject.CardTokenInfo);\n } else {\n var className: string = odataObject.CardTokenInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardTokenInfo = new entityDictionary[className](odataObject.CardTokenInfo)\n }\n }\n\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TokenizedPaymentCardClass'] = TokenizedPaymentCardClass;\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity class.\n */\n export class ProductDimensionAvailabilitySearchCriteriaClass implements Entities.ProductDimensionAvailabilitySearchCriteria {\n public RequestedDimensionTypeValue: number;\n public MatchingDimensionValues: Entities.ProductDimension[];\n public DefaultWarehouseOnly: boolean;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedDimensionTypeValue = \n odataObject.RequestedDimensionTypeValue;\n \n this.MatchingDimensionValues = undefined;\n if (odataObject.MatchingDimensionValues) {\n this.MatchingDimensionValues = [];\n for (var i = 0; i < odataObject.MatchingDimensionValues.length; i++) {\n if (odataObject.MatchingDimensionValues[i] != null) {\n if (odataObject.MatchingDimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MatchingDimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MatchingDimensionValues[i] = new entityDictionary[className](odataObject.MatchingDimensionValues[i])\n }\n } else {\n this.MatchingDimensionValues[i] = new ProductDimensionClass(odataObject.MatchingDimensionValues[i]);\n }\n } else {\n this.MatchingDimensionValues[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductDimensionAvailabilitySearchCriteriaClass'] = ProductDimensionAvailabilitySearchCriteriaClass;\n \n /**\n * LineShippingAddress entity class.\n */\n export class LineShippingAddressClass implements Entities.LineShippingAddress {\n public LineId: string;\n public ShippingAddress: Entities.Address;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n }\n }\n entityDictionary['LineShippingAddressClass'] = LineShippingAddressClass;\n \n /**\n * CartDeliveryPreferences entity class.\n */\n export class CartDeliveryPreferencesClass implements Entities.CartDeliveryPreferences {\n public HeaderDeliveryPreferenceTypeValues: number[];\n public CartLineDeliveryPreferences: Entities.CartLineDeliveryPreference[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderDeliveryPreferenceTypeValues = undefined;\n if (odataObject.HeaderDeliveryPreferenceTypeValues) {\n this.HeaderDeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.HeaderDeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.HeaderDeliveryPreferenceTypeValues[i] != null) {\n this.HeaderDeliveryPreferenceTypeValues[i] = \n odataObject.HeaderDeliveryPreferenceTypeValues[i];\n } else {\n this.HeaderDeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n this.CartLineDeliveryPreferences = undefined;\n if (odataObject.CartLineDeliveryPreferences) {\n this.CartLineDeliveryPreferences = [];\n for (var i = 0; i < odataObject.CartLineDeliveryPreferences.length; i++) {\n if (odataObject.CartLineDeliveryPreferences[i] != null) {\n if (odataObject.CartLineDeliveryPreferences[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLineDeliveryPreferences[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLineDeliveryPreferences[i] = new entityDictionary[className](odataObject.CartLineDeliveryPreferences[i])\n }\n } else {\n this.CartLineDeliveryPreferences[i] = new CartLineDeliveryPreferenceClass(odataObject.CartLineDeliveryPreferences[i]);\n }\n } else {\n this.CartLineDeliveryPreferences[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartDeliveryPreferencesClass'] = CartDeliveryPreferencesClass;\n \n /**\n * LineDeliverySpecification entity class.\n */\n export class LineDeliverySpecificationClass implements Entities.LineDeliverySpecification {\n public LineId: string;\n public DeliverySpecification: Entities.DeliverySpecification;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.DeliverySpecification == null) {\n this.DeliverySpecification = undefined;\n } else if (odataObject.DeliverySpecification['@odata.type'] == null) {\n this.DeliverySpecification = new DeliverySpecificationClass(odataObject.DeliverySpecification);\n } else {\n var className: string = odataObject.DeliverySpecification['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliverySpecification = new entityDictionary[className](odataObject.DeliverySpecification)\n }\n }\n\n \n }\n }\n entityDictionary['LineDeliverySpecificationClass'] = LineDeliverySpecificationClass;\n \n /**\n * DeliverySpecification entity class.\n */\n export class DeliverySpecificationClass implements Entities.DeliverySpecification {\n public DeliveryModeId: string;\n public DeliveryPreferenceTypeValue: number;\n public DeliveryAddress: Entities.Address;\n public RequestedDeliveryDate: Date;\n public PickUpStoreId: string;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public ShipFromStoreId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.DeliveryPreferenceTypeValue = \n odataObject.DeliveryPreferenceTypeValue;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickUpStoreId = \n odataObject.PickUpStoreId;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.ShipFromStoreId = \n odataObject.ShipFromStoreId;\n \n }\n }\n entityDictionary['DeliverySpecificationClass'] = DeliverySpecificationClass;\n \n /**\n * OrderSearchCriteria entity class.\n */\n export class OrderSearchCriteriaClass implements Entities.OrderSearchCriteria {\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public EmailAddress: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public SalesId: string;\n public ReceiptId: string;\n public OrderStatusValues: number[];\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ChannelReferenceId: string;\n public StoreId: string;\n public OrderType: number;\n public CustomFilters: Entities.SearchFilter[];\n public FulfillmentTypeValues: number[];\n public DeliveryMode: string;\n public PickupStartDate: Date;\n public PickupEndDate: Date;\n public PickupTimeslotStartTime: number;\n public PickupTimeslotEndTime: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.OrderStatusValues = undefined;\n if (odataObject.OrderStatusValues) {\n this.OrderStatusValues = [];\n for (var i = 0; i < odataObject.OrderStatusValues.length; i++) {\n if (odataObject.OrderStatusValues[i] != null) {\n this.OrderStatusValues[i] = \n odataObject.OrderStatusValues[i];\n } else {\n this.OrderStatusValues[i] = undefined;\n }\n }\n }\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.OrderType = \n odataObject.OrderType;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.FulfillmentTypeValues = undefined;\n if (odataObject.FulfillmentTypeValues) {\n this.FulfillmentTypeValues = [];\n for (var i = 0; i < odataObject.FulfillmentTypeValues.length; i++) {\n if (odataObject.FulfillmentTypeValues[i] != null) {\n this.FulfillmentTypeValues[i] = \n odataObject.FulfillmentTypeValues[i];\n } else {\n this.FulfillmentTypeValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.PickupStartDate = \n (odataObject.PickupStartDate instanceof Date) ? odataObject.PickupStartDate\n : (odataObject.PickupStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupEndDate = \n (odataObject.PickupEndDate instanceof Date) ? odataObject.PickupEndDate\n : (odataObject.PickupEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartTime = \n odataObject.PickupTimeslotStartTime;\n \n this.PickupTimeslotEndTime = \n odataObject.PickupTimeslotEndTime;\n \n }\n }\n entityDictionary['OrderSearchCriteriaClass'] = OrderSearchCriteriaClass;\n \n /**\n * ChecklistSearchCriteria entity class.\n */\n export class ChecklistSearchCriteriaClass implements Entities.ChecklistSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public ChecklistIds: string[];\n public StatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.ChecklistIds = undefined;\n if (odataObject.ChecklistIds) {\n this.ChecklistIds = [];\n for (var i = 0; i < odataObject.ChecklistIds.length; i++) {\n if (odataObject.ChecklistIds[i] != null) {\n this.ChecklistIds[i] = \n odataObject.ChecklistIds[i];\n } else {\n this.ChecklistIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistSearchCriteriaClass'] = ChecklistSearchCriteriaClass;\n \n /**\n * TaskSearchCriteria entity class.\n */\n export class TaskSearchCriteriaClass implements Entities.TaskSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public TaskIds: string[];\n public StatusValues: number[];\n public FilterMyTasks: boolean;\n public FilterOverdueTasks: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.TaskIds = undefined;\n if (odataObject.TaskIds) {\n this.TaskIds = [];\n for (var i = 0; i < odataObject.TaskIds.length; i++) {\n if (odataObject.TaskIds[i] != null) {\n this.TaskIds[i] = \n odataObject.TaskIds[i];\n } else {\n this.TaskIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.FilterMyTasks = \n odataObject.FilterMyTasks;\n \n this.FilterOverdueTasks = \n odataObject.FilterOverdueTasks;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaskSearchCriteriaClass'] = TaskSearchCriteriaClass;\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity class.\n */\n export class ChecklistTaskTeamsIntegrationConfigurationClass implements Entities.ChecklistTaskTeamsIntegrationConfiguration {\n public IsEnabled: boolean;\n public MicrosoftGraphResource: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.MicrosoftGraphResource = \n odataObject.MicrosoftGraphResource;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskTeamsIntegrationConfigurationClass'] = ChecklistTaskTeamsIntegrationConfigurationClass;\n \n /**\n * ReturnCartLine entity class.\n */\n export class ReturnCartLineClass implements Entities.ReturnCartLine {\n public Description: string;\n public ItemId: string;\n public ProductId: number;\n public Quantity: number;\n public ReturnLineNumber: number;\n public ReturnTransactionId: string;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Price: number;\n public IsPriceKeyedIn: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n }\n }\n entityDictionary['ReturnCartLineClass'] = ReturnCartLineClass;\n \n /**\n * TenderDiscountLine entity class.\n */\n export class TenderDiscountLineClass implements Entities.TenderDiscountLine {\n public DiscountAmount: number;\n public PaymentAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDiscountLineClass'] = TenderDiscountLineClass;\n \n /**\n * ReceiptRetrievalCriteria entity class.\n */\n export class ReceiptRetrievalCriteriaClass implements Entities.ReceiptRetrievalCriteria {\n public IsCopy: boolean;\n public IsRemoteTransaction: boolean;\n public IsPreview: boolean;\n public QueryBySalesId: boolean;\n public ReceiptTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public HardwareProfileId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsCopy = \n odataObject.IsCopy;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.IsPreview = \n odataObject.IsPreview;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n }\n }\n entityDictionary['ReceiptRetrievalCriteriaClass'] = ReceiptRetrievalCriteriaClass;\n \n /**\n * CartSearchCriteria entity class.\n */\n export class CartSearchCriteriaClass implements Entities.CartSearchCriteria {\n public CartId: string;\n public ExpectedCartVersion: number;\n public CustomerAccountNumber: string;\n public IncludeAnonymous: boolean;\n public SuspendedOnly: boolean;\n public CartTypeValue: number;\n public LastModifiedDateTimeFrom: Date;\n public LastModifiedDateTimeTo: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CartId = \n odataObject.CartId;\n \n this.ExpectedCartVersion = \n (odataObject.ExpectedCartVersion != null) ? parseInt(odataObject.ExpectedCartVersion, 10) : undefined;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.IncludeAnonymous = \n odataObject.IncludeAnonymous;\n \n this.SuspendedOnly = \n odataObject.SuspendedOnly;\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.LastModifiedDateTimeFrom = \n (odataObject.LastModifiedDateTimeFrom instanceof Date) ? odataObject.LastModifiedDateTimeFrom\n : (odataObject.LastModifiedDateTimeFrom != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastModifiedDateTimeTo = \n (odataObject.LastModifiedDateTimeTo instanceof Date) ? odataObject.LastModifiedDateTimeTo\n : (odataObject.LastModifiedDateTimeTo != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['CartSearchCriteriaClass'] = CartSearchCriteriaClass;\n \n /**\n * RetrievePaymentResultSettings entity class.\n */\n export class RetrievePaymentResultSettingsClass implements Entities.RetrievePaymentResultSettings {\n public ReturnUrl: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnUrl = \n odataObject.ReturnUrl;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['RetrievePaymentResultSettingsClass'] = RetrievePaymentResultSettingsClass;\n \n /**\n * SearchReceiptCriteria entity class.\n */\n export class SearchReceiptCriteriaClass implements Entities.SearchReceiptCriteria {\n public TransactionId: string;\n public ReceiptTypeValue: number;\n public ReceiptTypesByFormatTypeCollection: Entities.ReceiptTypesByFormatType[];\n public IsCopy: boolean;\n public GiftReceiptLineNumbers: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypesByFormatTypeCollection = undefined;\n if (odataObject.ReceiptTypesByFormatTypeCollection) {\n this.ReceiptTypesByFormatTypeCollection = [];\n for (var i = 0; i < odataObject.ReceiptTypesByFormatTypeCollection.length; i++) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i] != null) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptTypesByFormatTypeCollection[i] = new entityDictionary[className](odataObject.ReceiptTypesByFormatTypeCollection[i])\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = new ReceiptTypesByFormatTypeClass(odataObject.ReceiptTypesByFormatTypeCollection[i]);\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = undefined;\n }\n }\n }\n \n this.IsCopy = \n odataObject.IsCopy;\n \n this.GiftReceiptLineNumbers = undefined;\n if (odataObject.GiftReceiptLineNumbers) {\n this.GiftReceiptLineNumbers = [];\n for (var i = 0; i < odataObject.GiftReceiptLineNumbers.length; i++) {\n if (odataObject.GiftReceiptLineNumbers[i] != null) {\n this.GiftReceiptLineNumbers[i] = \n parseFloat(odataObject.GiftReceiptLineNumbers[i]);\n } else {\n this.GiftReceiptLineNumbers[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchReceiptCriteriaClass'] = SearchReceiptCriteriaClass;\n \n /**\n * ElectronicAddress entity class.\n */\n export class ElectronicAddressClass implements Entities.ElectronicAddress {\n public AddressTypeValue: number;\n public ExtensibleEAddressType: Entities.ExtensibleElectronicAddressType;\n public Address: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n if (odataObject.ExtensibleEAddressType == null) {\n this.ExtensibleEAddressType = undefined;\n } else if (odataObject.ExtensibleEAddressType['@odata.type'] == null) {\n this.ExtensibleEAddressType = new ExtensibleElectronicAddressTypeClass(odataObject.ExtensibleEAddressType);\n } else {\n var className: string = odataObject.ExtensibleEAddressType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEAddressType = new entityDictionary[className](odataObject.ExtensibleEAddressType)\n }\n }\n\n \n this.Address = \n odataObject.Address;\n \n }\n }\n entityDictionary['ElectronicAddressClass'] = ElectronicAddressClass;\n \n /**\n * ChannelReferenceLookupCriteria entity class.\n */\n export class ChannelReferenceLookupCriteriaClass implements Entities.ChannelReferenceLookupCriteria {\n public ChannelReferenceId: string;\n public SearchLocationValue: number;\n public ChannelReferenceAdditionalLookupCriteria: Entities.ChannelReferenceAdditionalLookupCriteria[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ChannelReferenceAdditionalLookupCriteria = undefined;\n if (odataObject.ChannelReferenceAdditionalLookupCriteria) {\n this.ChannelReferenceAdditionalLookupCriteria = [];\n for (var i = 0; i < odataObject.ChannelReferenceAdditionalLookupCriteria.length; i++) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i] != null) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new entityDictionary[className](odataObject.ChannelReferenceAdditionalLookupCriteria[i])\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new ChannelReferenceAdditionalLookupCriteriaClass(odataObject.ChannelReferenceAdditionalLookupCriteria[i]);\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelReferenceLookupCriteriaClass'] = ChannelReferenceLookupCriteriaClass;\n \n /**\n * FulfillmentLineParameter entity class.\n */\n export class FulfillmentLineParameterClass implements Entities.FulfillmentLineParameter {\n public SalesId: string;\n public SalesLineNumber: number;\n public Quantity: number;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineParameterClass'] = FulfillmentLineParameterClass;\n \n /**\n * ShipFulfillmentLine entity class.\n */\n export class ShipFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.ShipFulfillmentLine {\n public ProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShipFulfillmentLine\";\n \n }\n }\n entityDictionary['ShipFulfillmentLineClass'] = ShipFulfillmentLineClass;\n \n /**\n * RejectFulfillmentLine entity class.\n */\n export class RejectFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.RejectFulfillmentLine {\n public RejectedQuantity: number;\n public InfoCodeId: string;\n public SubInfoCodeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RejectedQuantity = \n (odataObject.RejectedQuantity != null) ? parseFloat(odataObject.RejectedQuantity) : undefined;\n \n this.InfoCodeId = \n odataObject.InfoCodeId;\n \n this.SubInfoCodeId = \n odataObject.SubInfoCodeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.RejectFulfillmentLine\";\n \n }\n }\n entityDictionary['RejectFulfillmentLineClass'] = RejectFulfillmentLineClass;\n \n /**\n * ReadChangedProductsSession entity class.\n */\n export class ReadChangedProductsSessionClass implements Entities.ReadChangedProductsSession {\n public Id: string;\n public TotalNumberOfProducts: number;\n public NumberOfProductsRead: number;\n public NumberOfProductsReadInCurrentPage: number;\n public NextSynchronizationToken: string;\n public IsInitialSync: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.TotalNumberOfProducts = \n odataObject.TotalNumberOfProducts;\n \n this.NumberOfProductsRead = \n odataObject.NumberOfProductsRead;\n \n this.NumberOfProductsReadInCurrentPage = \n odataObject.NumberOfProductsReadInCurrentPage;\n \n this.NextSynchronizationToken = \n odataObject.NextSynchronizationToken;\n \n this.IsInitialSync = \n odataObject.IsInitialSync;\n \n }\n }\n entityDictionary['ReadChangedProductsSessionClass'] = ReadChangedProductsSessionClass;\n \n /**\n * DeletedListingsResult entity class.\n */\n export class DeletedListingsResultClass implements Entities.DeletedListingsResult {\n public HasMorePublishedListings: boolean;\n public DeletedListings: Entities.ListingIdentity[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasMorePublishedListings = \n odataObject.HasMorePublishedListings;\n \n this.DeletedListings = undefined;\n if (odataObject.DeletedListings) {\n this.DeletedListings = [];\n for (var i = 0; i < odataObject.DeletedListings.length; i++) {\n if (odataObject.DeletedListings[i] != null) {\n if (odataObject.DeletedListings[i]['@odata.type'] != null) {\n var className: string = odataObject.DeletedListings[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeletedListings[i] = new entityDictionary[className](odataObject.DeletedListings[i])\n }\n } else {\n this.DeletedListings[i] = new ListingIdentityClass(odataObject.DeletedListings[i]);\n }\n } else {\n this.DeletedListings[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeletedListingsResultClass'] = DeletedListingsResultClass;\n \n /**\n * ProductRating entity class.\n */\n export class ProductRatingClass implements Entities.ProductRating {\n public ProductId: number;\n public AverageRating: number;\n public TotalRatings: number;\n public RatingDistribution: Entities.ProductRatingCount[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.RatingDistribution = undefined;\n if (odataObject.RatingDistribution) {\n this.RatingDistribution = [];\n for (var i = 0; i < odataObject.RatingDistribution.length; i++) {\n if (odataObject.RatingDistribution[i] != null) {\n if (odataObject.RatingDistribution[i]['@odata.type'] != null) {\n var className: string = odataObject.RatingDistribution[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RatingDistribution[i] = new entityDictionary[className](odataObject.RatingDistribution[i])\n }\n } else {\n this.RatingDistribution[i] = new ProductRatingCountClass(odataObject.RatingDistribution[i]);\n }\n } else {\n this.RatingDistribution[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingClass'] = ProductRatingClass;\n \n /**\n * ProductDeliveryOptions entity class.\n */\n export class ProductDeliveryOptionsClass implements Entities.ProductDeliveryOptions {\n public ProductId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDeliveryOptionsClass'] = ProductDeliveryOptionsClass;\n \n /**\n * ListingPublishStatus entity class.\n */\n export class ListingPublishStatusClass implements Entities.ListingPublishStatus {\n public PublishStatusValue: number;\n public ListingModifiedDateTime: Date;\n public ChannelListingId: string;\n public ChannelId: number;\n public CatalogId: number;\n public ProductId: number;\n public LanguageId: string;\n public AppliedActionValue: number;\n public StatusMessage: string;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PublishStatusValue = \n odataObject.PublishStatusValue;\n \n this.ListingModifiedDateTime = \n (odataObject.ListingModifiedDateTime instanceof Date) ? odataObject.ListingModifiedDateTime\n : (odataObject.ListingModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ListingModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelListingId = \n odataObject.ChannelListingId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AppliedActionValue = \n odataObject.AppliedActionValue;\n \n this.StatusMessage = \n odataObject.StatusMessage;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingPublishStatusClass'] = ListingPublishStatusClass;\n \n /**\n * OrgUnitLocationSearchCriteria entity class.\n */\n export class OrgUnitLocationSearchCriteriaClass implements Entities.OrgUnitLocationSearchCriteria {\n public OrgUnitNumber: string;\n public OrgUnitName: string;\n public InventoryLocationIds: string[];\n public DeliveryModeTypeFilterValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.InventoryLocationIds = undefined;\n if (odataObject.InventoryLocationIds) {\n this.InventoryLocationIds = [];\n for (var i = 0; i < odataObject.InventoryLocationIds.length; i++) {\n if (odataObject.InventoryLocationIds[i] != null) {\n this.InventoryLocationIds[i] = \n odataObject.InventoryLocationIds[i];\n } else {\n this.InventoryLocationIds[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n }\n }\n entityDictionary['OrgUnitLocationSearchCriteriaClass'] = OrgUnitLocationSearchCriteriaClass;\n \n /**\n * StoreHours entity class.\n */\n export class StoreHoursClass implements Entities.StoreHours {\n public RegularStoreHours: Entities.RegularStoreHours;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegularStoreHours == null) {\n this.RegularStoreHours = undefined;\n } else if (odataObject.RegularStoreHours['@odata.type'] == null) {\n this.RegularStoreHours = new RegularStoreHoursClass(odataObject.RegularStoreHours);\n } else {\n var className: string = odataObject.RegularStoreHours['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegularStoreHours = new entityDictionary[className](odataObject.RegularStoreHours)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreHoursClass'] = StoreHoursClass;\n \n /**\n * CartPromotions entity class.\n */\n export class CartPromotionsClass implements Entities.CartPromotions {\n public HeaderPromotions: string[];\n public CartLinePromotions: Entities.CartLinePromotion[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderPromotions = undefined;\n if (odataObject.HeaderPromotions) {\n this.HeaderPromotions = [];\n for (var i = 0; i < odataObject.HeaderPromotions.length; i++) {\n if (odataObject.HeaderPromotions[i] != null) {\n this.HeaderPromotions[i] = \n odataObject.HeaderPromotions[i];\n } else {\n this.HeaderPromotions[i] = undefined;\n }\n }\n }\n \n this.CartLinePromotions = undefined;\n if (odataObject.CartLinePromotions) {\n this.CartLinePromotions = [];\n for (var i = 0; i < odataObject.CartLinePromotions.length; i++) {\n if (odataObject.CartLinePromotions[i] != null) {\n if (odataObject.CartLinePromotions[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLinePromotions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLinePromotions[i] = new entityDictionary[className](odataObject.CartLinePromotions[i])\n }\n } else {\n this.CartLinePromotions[i] = new CartLinePromotionClass(odataObject.CartLinePromotions[i]);\n }\n } else {\n this.CartLinePromotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionsClass'] = CartPromotionsClass;\n \n /**\n * CartPromotionLine entity class.\n */\n export class CartPromotionLineClass implements Entities.CartPromotionLine {\n public LineId: string;\n public Promotion: Entities.Promotion;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.Promotion == null) {\n this.Promotion = undefined;\n } else if (odataObject.Promotion['@odata.type'] == null) {\n this.Promotion = new PromotionClass(odataObject.Promotion);\n } else {\n var className: string = odataObject.Promotion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Promotion = new entityDictionary[className](odataObject.Promotion)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionLineClass'] = CartPromotionLineClass;\n \n /**\n * ItemUnit entity class.\n */\n export class ItemUnitClass implements Entities.ItemUnit {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public Product: number;\n public DistinctProductVariant: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.Product = \n (odataObject.Product != null) ? parseInt(odataObject.Product, 10) : undefined;\n \n this.DistinctProductVariant = \n (odataObject.DistinctProductVariant != null) ? parseInt(odataObject.DistinctProductVariant, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemUnitClass'] = ItemUnitClass;\n \n /**\n * ProductAvailableQuantity entity class.\n */\n export class ProductAvailableQuantityClass implements Entities.ProductAvailableQuantity {\n public ProductId: number;\n public AvailableQuantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAvailableQuantityClass'] = ProductAvailableQuantityClass;\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity class.\n */\n export class OrgUnitAvailabilitySearchCriteriaClass implements Entities.OrgUnitAvailabilitySearchCriteria {\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n }\n }\n entityDictionary['OrgUnitAvailabilitySearchCriteriaClass'] = OrgUnitAvailabilitySearchCriteriaClass;\n \n /**\n * InvoiceSearchCriteria entity class.\n */\n export class InvoiceSearchCriteriaClass implements Entities.InvoiceSearchCriteria {\n public BusinessPartnerId: string;\n public CustomerId: string;\n public InvoiceIds: string[];\n public InvoiceTypeValues: number[];\n public InvoicePaidStatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.InvoiceIds = undefined;\n if (odataObject.InvoiceIds) {\n this.InvoiceIds = [];\n for (var i = 0; i < odataObject.InvoiceIds.length; i++) {\n if (odataObject.InvoiceIds[i] != null) {\n this.InvoiceIds[i] = \n odataObject.InvoiceIds[i];\n } else {\n this.InvoiceIds[i] = undefined;\n }\n }\n }\n \n this.InvoiceTypeValues = undefined;\n if (odataObject.InvoiceTypeValues) {\n this.InvoiceTypeValues = [];\n for (var i = 0; i < odataObject.InvoiceTypeValues.length; i++) {\n if (odataObject.InvoiceTypeValues[i] != null) {\n this.InvoiceTypeValues[i] = \n odataObject.InvoiceTypeValues[i];\n } else {\n this.InvoiceTypeValues[i] = undefined;\n }\n }\n }\n \n this.InvoicePaidStatusValues = undefined;\n if (odataObject.InvoicePaidStatusValues) {\n this.InvoicePaidStatusValues = [];\n for (var i = 0; i < odataObject.InvoicePaidStatusValues.length; i++) {\n if (odataObject.InvoicePaidStatusValues[i] != null) {\n this.InvoicePaidStatusValues[i] = \n odataObject.InvoicePaidStatusValues[i];\n } else {\n this.InvoicePaidStatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceSearchCriteriaClass'] = InvoiceSearchCriteriaClass;\n \n /**\n * InvoiceDetailsSearchCriteria entity class.\n */\n export class InvoiceDetailsSearchCriteriaClass implements Entities.InvoiceDetailsSearchCriteria {\n public InvoiceId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceDetailsSearchCriteriaClass'] = InvoiceDetailsSearchCriteriaClass;\n \n /**\n * PickAndPackSalesLineParameter entity class.\n */\n export class PickAndPackSalesLineParameterClass implements Entities.PickAndPackSalesLineParameter {\n public SalesLineNumber: number;\n public Quantity: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n }\n }\n entityDictionary['PickAndPackSalesLineParameterClass'] = PickAndPackSalesLineParameterClass;\n \n /**\n * ProductListSearchCriteria entity class.\n */\n export class ProductListSearchCriteriaClass implements Entities.ProductListSearchCriteria {\n public CustomerId: string;\n public ProductListId: string;\n public ProductListType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.ProductListId = \n odataObject.ProductListId;\n \n this.ProductListType = \n odataObject.ProductListType;\n \n }\n }\n entityDictionary['ProductListSearchCriteriaClass'] = ProductListSearchCriteriaClass;\n \n /**\n * ProjectionDomain entity class.\n */\n export class ProjectionDomainClass implements Entities.ProjectionDomain {\n public ChannelId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProjectionDomainClass'] = ProjectionDomainClass;\n \n /**\n * AffiliationLoyaltyTier entity class.\n */\n export class AffiliationLoyaltyTierClass implements Entities.AffiliationLoyaltyTier {\n public AffiliationId: number;\n public LoyaltyTierId: number;\n public AffiliationTypeValue: number;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public CustomerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationId = \n (odataObject.AffiliationId != null) ? parseInt(odataObject.AffiliationId, 10) : undefined;\n \n this.LoyaltyTierId = \n (odataObject.LoyaltyTierId != null) ? parseInt(odataObject.LoyaltyTierId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationLoyaltyTierClass'] = AffiliationLoyaltyTierClass;\n \n /**\n * ClientBookCustomerSearchCriteria entity class.\n */\n export class ClientBookCustomerSearchCriteriaClass implements Entities.ClientBookCustomerSearchCriteria {\n public FilterByCurrentEmployee: boolean;\n public Refinement: Entities.ClientBookRefinerValue[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FilterByCurrentEmployee = \n odataObject.FilterByCurrentEmployee;\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ClientBookRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerSearchCriteriaClass'] = ClientBookCustomerSearchCriteriaClass;\n \n /**\n * ClientBookCustomer entity class.\n */\n export class ClientBookCustomerClass implements Entities.ClientBookCustomer {\n public CustomerId: string;\n public Name: string;\n public Phone: string;\n public Email: string;\n public StaffId: string;\n public ImageUris: Entities.MediaLocation[];\n public Attributes: Entities.CustomerAttribute[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Name = \n odataObject.Name;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ImageUris = undefined;\n if (odataObject.ImageUris) {\n this.ImageUris = [];\n for (var i = 0; i < odataObject.ImageUris.length; i++) {\n if (odataObject.ImageUris[i] != null) {\n if (odataObject.ImageUris[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageUris[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageUris[i] = new entityDictionary[className](odataObject.ImageUris[i])\n }\n } else {\n this.ImageUris[i] = new MediaLocationClass(odataObject.ImageUris[i]);\n }\n } else {\n this.ImageUris[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerClass'] = ClientBookCustomerClass;\n \n /**\n * ClientBookChanges entity class.\n */\n export class ClientBookChangesClass implements Entities.ClientBookChanges {\n public Changes: Entities.ClientBookChange[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Changes = undefined;\n if (odataObject.Changes) {\n this.Changes = [];\n for (var i = 0; i < odataObject.Changes.length; i++) {\n if (odataObject.Changes[i] != null) {\n if (odataObject.Changes[i]['@odata.type'] != null) {\n var className: string = odataObject.Changes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Changes[i] = new entityDictionary[className](odataObject.Changes[i])\n }\n } else {\n this.Changes[i] = new ClientBookChangeClass(odataObject.Changes[i]);\n }\n } else {\n this.Changes[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookChangesClass'] = ClientBookChangesClass;\n \n /**\n * ChargeCode entity class.\n */\n export class ChargeCodeClass implements Entities.ChargeCode {\n public Code: string;\n public ModuleTypeValue: number;\n public Description: string;\n public ItemTaxGroupId: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeCodeClass'] = ChargeCodeClass;\n \n /**\n * PaymentMerchantInformation entity class.\n */\n export class PaymentMerchantInformationClass implements Entities.PaymentMerchantInformation {\n public PaymentConnectorPropertiesXml: string;\n public MerchantPropertiesHashValue: string;\n public ServiceAccountId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PaymentConnectorPropertiesXml = \n odataObject.PaymentConnectorPropertiesXml;\n \n this.MerchantPropertiesHashValue = \n odataObject.MerchantPropertiesHashValue;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentMerchantInformationClass'] = PaymentMerchantInformationClass;\n \n /**\n * StoreSafe entity class.\n */\n export class StoreSafeClass implements Entities.StoreSafe {\n public SafeNumber: string;\n public Name: string;\n public StoreNumber: string;\n public SafeBalance: number;\n public LastUpdatedTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SafeNumber = \n odataObject.SafeNumber;\n \n this.Name = \n odataObject.Name;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.SafeBalance = \n (odataObject.SafeBalance != null) ? parseFloat(odataObject.SafeBalance) : undefined;\n \n this.LastUpdatedTime = \n (odataObject.LastUpdatedTime instanceof Date) ? odataObject.LastUpdatedTime\n : (odataObject.LastUpdatedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdatedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreSafeClass'] = StoreSafeClass;\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity class.\n */\n export class InventoryDocumentReceiptSearchCriteriaClass implements Entities.InventoryDocumentReceiptSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentReceiptSearchCriteriaClass'] = InventoryDocumentReceiptSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass'] = InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecord {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public StaffId: string;\n public UpdateNowQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.UpdateNowQuantity = \n (odataObject.UpdateNowQuantity != null) ? parseFloat(odataObject.UpdateNowQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordClass'] = InventoryDocumentSourceDocumentLineCommitRecordClass;\n \n /**\n * CreateHardwareStationTokenResult entity class.\n */\n export class CreateHardwareStationTokenResultClass implements Entities.CreateHardwareStationTokenResult {\n public HardwareStationToken: string;\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HardwareStationToken = \n odataObject.HardwareStationToken;\n \n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreateHardwareStationTokenResultClass'] = CreateHardwareStationTokenResultClass;\n \n /**\n * ValidateHardwareStationTokenResult entity class.\n */\n export class ValidateHardwareStationTokenResultClass implements Entities.ValidateHardwareStationTokenResult {\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidateHardwareStationTokenResultClass'] = ValidateHardwareStationTokenResultClass;\n \n /**\n * MediaBlob entity class.\n */\n export class MediaBlobClass implements Entities.MediaBlob {\n public MediaType: string;\n public Content: string;\n public IsDefault: boolean;\n public AltText: string;\n public PictureId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MediaType = \n odataObject.MediaType;\n \n this.Content = \n odataObject.Content;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.AltText = \n odataObject.AltText;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaBlobClass'] = MediaBlobClass;\n \n /**\n * OnlineChannel entity class.\n */\n export class OnlineChannelClass implements Entities.OnlineChannel {\n public OnlineChannelName: string;\n public CurrencyCode: string;\n public EventNotificationProfileId: string;\n public RecordId: number;\n public OrgUnitTypeValue: number;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public InventoryLocationId: string;\n public ChannelProfile: Entities.ChannelProfile;\n public ChannelProperties: Entities.ChannelProperty[];\n public ChannelLanguages: Entities.ChannelLanguage[];\n public Contacts: Entities.OrgUnitContact[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public CountryRegions: Entities.CountryRegion[];\n \n // Navigation properties names\n public static countryRegionsPropertyName: string = \"CountryRegions\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OnlineChannelName = \n odataObject.OnlineChannelName;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrgUnitTypeValue = \n odataObject.OrgUnitTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n if (odataObject.ChannelProfile == null) {\n this.ChannelProfile = undefined;\n } else if (odataObject.ChannelProfile['@odata.type'] == null) {\n this.ChannelProfile = new ChannelProfileClass(odataObject.ChannelProfile);\n } else {\n var className: string = odataObject.ChannelProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProfile = new entityDictionary[className](odataObject.ChannelProfile)\n }\n }\n\n \n this.ChannelProperties = undefined;\n if (odataObject.ChannelProperties) {\n this.ChannelProperties = [];\n for (var i = 0; i < odataObject.ChannelProperties.length; i++) {\n if (odataObject.ChannelProperties[i] != null) {\n if (odataObject.ChannelProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProperties[i] = new entityDictionary[className](odataObject.ChannelProperties[i])\n }\n } else {\n this.ChannelProperties[i] = new ChannelPropertyClass(odataObject.ChannelProperties[i]);\n }\n } else {\n this.ChannelProperties[i] = undefined;\n }\n }\n }\n \n this.ChannelLanguages = undefined;\n if (odataObject.ChannelLanguages) {\n this.ChannelLanguages = [];\n for (var i = 0; i < odataObject.ChannelLanguages.length; i++) {\n if (odataObject.ChannelLanguages[i] != null) {\n if (odataObject.ChannelLanguages[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelLanguages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelLanguages[i] = new entityDictionary[className](odataObject.ChannelLanguages[i])\n }\n } else {\n this.ChannelLanguages[i] = new ChannelLanguageClass(odataObject.ChannelLanguages[i]);\n }\n } else {\n this.ChannelLanguages[i] = undefined;\n }\n }\n }\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.CountryRegions = undefined;\n if (odataObject.CountryRegions) {\n this.CountryRegions = [];\n for (var i = 0; i < odataObject.CountryRegions.length; i++) {\n if (odataObject.CountryRegions[i] != null) {\n if (odataObject.CountryRegions[i]['@odata.type'] != null) {\n var className: string = odataObject.CountryRegions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CountryRegions[i] = new entityDictionary[className](odataObject.CountryRegions[i])\n }\n } else {\n this.CountryRegions[i] = new CountryRegionClass(odataObject.CountryRegions[i]);\n }\n } else {\n this.CountryRegions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OnlineChannelClass'] = OnlineChannelClass;\n \n /**\n * TerminalDataDownloadRequestInfo entity class.\n */\n export class TerminalDataDownloadRequestInfoClass implements Entities.TerminalDataDownloadRequestInfo {\n public TerminalId: string;\n public RequiresDataInitialization: boolean;\n public HasBeenInitializedBefore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.RequiresDataInitialization = \n odataObject.RequiresDataInitialization;\n \n this.HasBeenInitializedBefore = \n odataObject.HasBeenInitializedBefore;\n \n }\n }\n entityDictionary['TerminalDataDownloadRequestInfoClass'] = TerminalDataDownloadRequestInfoClass;\n \n /**\n * DataDownloadParameters entity class.\n */\n export class DataDownloadParametersClass implements Entities.DataDownloadParameters {\n public DownloadInterval: number;\n public DownloadSessions: Entities.DownloadSession[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DownloadInterval = \n odataObject.DownloadInterval;\n \n this.DownloadSessions = undefined;\n if (odataObject.DownloadSessions) {\n this.DownloadSessions = [];\n for (var i = 0; i < odataObject.DownloadSessions.length; i++) {\n if (odataObject.DownloadSessions[i] != null) {\n if (odataObject.DownloadSessions[i]['@odata.type'] != null) {\n var className: string = odataObject.DownloadSessions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DownloadSessions[i] = new entityDictionary[className](odataObject.DownloadSessions[i])\n }\n } else {\n this.DownloadSessions[i] = new DownloadSessionClass(odataObject.DownloadSessions[i]);\n }\n } else {\n this.DownloadSessions[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataDownloadParametersClass'] = DataDownloadParametersClass;\n \n /**\n * TerminalDataUploadRequestInfo entity class.\n */\n export class TerminalDataUploadRequestInfoClass implements Entities.TerminalDataUploadRequestInfo {\n public TerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n }\n }\n entityDictionary['TerminalDataUploadRequestInfoClass'] = TerminalDataUploadRequestInfoClass;\n \n /**\n * DataUploadParameters entity class.\n */\n export class DataUploadParametersClass implements Entities.DataUploadParameters {\n public UploadInterval: number;\n public UploadJobPackageRequests: Entities.UploadJobPackageRequest[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UploadInterval = \n odataObject.UploadInterval;\n \n this.UploadJobPackageRequests = undefined;\n if (odataObject.UploadJobPackageRequests) {\n this.UploadJobPackageRequests = [];\n for (var i = 0; i < odataObject.UploadJobPackageRequests.length; i++) {\n if (odataObject.UploadJobPackageRequests[i] != null) {\n if (odataObject.UploadJobPackageRequests[i]['@odata.type'] != null) {\n var className: string = odataObject.UploadJobPackageRequests[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UploadJobPackageRequests[i] = new entityDictionary[className](odataObject.UploadJobPackageRequests[i])\n }\n } else {\n this.UploadJobPackageRequests[i] = new UploadJobPackageRequestClass(odataObject.UploadJobPackageRequests[i]);\n }\n } else {\n this.UploadJobPackageRequests[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataUploadParametersClass'] = DataUploadParametersClass;\n \n /**\n * DownloadSession entity class.\n */\n export class DownloadSessionClass implements Entities.DownloadSession {\n public Id: number;\n public JobId: string;\n public JobDescription: string;\n public FileSize: number;\n public RowsAffected: number;\n public Checksum: string;\n public DateDownloaded: string;\n public DateRequested: string;\n public DataStoreName: string;\n public StatusValue: number;\n public Message: string;\n public DownloadLink: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.JobId = \n odataObject.JobId;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.FileSize = \n (odataObject.FileSize != null) ? parseInt(odataObject.FileSize, 10) : undefined;\n \n this.RowsAffected = \n odataObject.RowsAffected;\n \n this.Checksum = \n odataObject.Checksum;\n \n this.DateDownloaded = \n odataObject.DateDownloaded;\n \n this.DateRequested = \n odataObject.DateRequested;\n \n this.DataStoreName = \n odataObject.DataStoreName;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Message = \n odataObject.Message;\n \n this.DownloadLink = \n odataObject.DownloadLink;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DownloadSessionClass'] = DownloadSessionClass;\n \n /**\n * OfflineTerminalState entity class.\n */\n export class OfflineTerminalStateClass implements Entities.OfflineTerminalState {\n public TerminalId: string;\n public State: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.State = \n odataObject.State;\n \n }\n }\n entityDictionary['OfflineTerminalStateClass'] = OfflineTerminalStateClass;\n \n /**\n * LoyaltyRewardPointActivity entity class.\n */\n export class LoyaltyRewardPointActivityClass implements Entities.LoyaltyRewardPointActivity {\n public ActivityDate: Date;\n public LoyaltyRewardPointTimelineEntryType: string;\n public ExtensibleLoyaltyRewardPointActivityEntryTypeValue: number;\n public LoyaltyPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActivityDate = \n (odataObject.ActivityDate instanceof Date) ? odataObject.ActivityDate\n : (odataObject.ActivityDate != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyRewardPointTimelineEntryType = \n odataObject.LoyaltyRewardPointTimelineEntryType;\n \n this.ExtensibleLoyaltyRewardPointActivityEntryTypeValue = \n odataObject.ExtensibleLoyaltyRewardPointActivityEntryTypeValue;\n \n this.LoyaltyPoints = \n (odataObject.LoyaltyPoints != null) ? parseFloat(odataObject.LoyaltyPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointActivityClass'] = LoyaltyRewardPointActivityClass;\n \n /**\n * CurrencyRequest entity class.\n */\n export class CurrencyRequestClass implements Entities.CurrencyRequest {\n public AmountToConvert: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AmountToConvert = \n (odataObject.AmountToConvert != null) ? parseFloat(odataObject.AmountToConvert) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyRequestClass'] = CurrencyRequestClass;\n \n /**\n * HardwareStationProfile entity class.\n */\n export class HardwareStationProfileClass implements Entities.HardwareStationProfile {\n public RecordId: number;\n public HardwareStationId: string;\n public HardwareStationTypeValue: number;\n public HardwareProfileId: string;\n public HardwareStationName: string;\n public HardwareStationDescription: string;\n public HardwareStationUrl: string;\n public HardwareStationHostName: string;\n public HardwareStationEftTerminalId: string;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationId = \n odataObject.HardwareStationId;\n \n this.HardwareStationTypeValue = \n odataObject.HardwareStationTypeValue;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.HardwareStationName = \n odataObject.HardwareStationName;\n \n this.HardwareStationDescription = \n odataObject.HardwareStationDescription;\n \n this.HardwareStationUrl = \n odataObject.HardwareStationUrl;\n \n this.HardwareStationHostName = \n odataObject.HardwareStationHostName;\n \n this.HardwareStationEftTerminalId = \n odataObject.HardwareStationEftTerminalId;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareStationProfileClass'] = HardwareStationProfileClass;\n \n /**\n * NameValuePair entity class.\n */\n export class NameValuePairClass implements Entities.NameValuePair {\n public Name: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['NameValuePairClass'] = NameValuePairClass;\n \n /**\n * LinkToExistingCustomerResult entity class.\n */\n export class LinkToExistingCustomerResultClass implements Entities.LinkToExistingCustomerResult {\n public EmailAddress: string;\n public ExternalIdentityProvider: string;\n public ExternalIdentityLinkRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.ExternalIdentityProvider = \n odataObject.ExternalIdentityProvider;\n \n this.ExternalIdentityLinkRecordId = \n (odataObject.ExternalIdentityLinkRecordId != null) ? parseInt(odataObject.ExternalIdentityLinkRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['LinkToExistingCustomerResultClass'] = LinkToExistingCustomerResultClass;\n \n /**\n * OfflineSyncStatsLine entity class.\n */\n export class OfflineSyncStatsLineClass implements Entities.OfflineSyncStatsLine {\n public IsUploadJob: boolean;\n public JobDescription: string;\n public LastSyncDateTime: Date;\n public Status: string;\n public FileSize: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsUploadJob = \n odataObject.IsUploadJob;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.LastSyncDateTime = \n (odataObject.LastSyncDateTime instanceof Date) ? odataObject.LastSyncDateTime\n : (odataObject.LastSyncDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSyncDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.FileSize = \n odataObject.FileSize;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OfflineSyncStatsLineClass'] = OfflineSyncStatsLineClass;\n \n /**\n * StorageAccessToken entity class.\n */\n export class StorageAccessTokenClass implements Entities.StorageAccessToken {\n public Url: string;\n public SasKey: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.SasKey = \n odataObject.SasKey;\n \n }\n }\n entityDictionary['StorageAccessTokenClass'] = StorageAccessTokenClass;\n \n /**\n * TaskGuidesSearchResult entity class.\n */\n export class TaskGuidesSearchResultClass implements Entities.TaskGuidesSearchResult {\n public Lines: Entities.Line[];\n public FrameworkPublisherName: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.FrameworkPublisherName = \n odataObject.FrameworkPublisherName;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['TaskGuidesSearchResultClass'] = TaskGuidesSearchResultClass;\n \n /**\n * AuditEvent entity class.\n */\n export class AuditEventClass implements Entities.AuditEvent {\n public EventId: number;\n public EventIdString: string;\n public Channel: number;\n public Store: string;\n public Terminal: string;\n public UploadType: string;\n public EventType: string;\n public EventDateTime: Date;\n public DurationInMilliseconds: number;\n public Source: string;\n public EventMessage: string;\n public LogLevel: string;\n public Staff: string;\n public ShiftId: number;\n public ClosedShiftId: number;\n public ReferenceId: number;\n public RefChannel: number;\n public RefStore: string;\n public RefTerminal: string;\n public RefTransactionId: string;\n public AuditEventTypeValue: number;\n public FiscalTransactions: Entities.AuditEventFiscalTransaction[];\n public FiscalRegistrationLines: Entities.AuditEventFiscalRegistrationLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.EventIdString = \n odataObject.EventIdString;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.EventType = \n odataObject.EventType;\n \n this.EventDateTime = \n (odataObject.EventDateTime instanceof Date) ? odataObject.EventDateTime\n : (odataObject.EventDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EventDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DurationInMilliseconds = \n odataObject.DurationInMilliseconds;\n \n this.Source = \n odataObject.Source;\n \n this.EventMessage = \n odataObject.EventMessage;\n \n this.LogLevel = \n odataObject.LogLevel;\n \n this.Staff = \n odataObject.Staff;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ClosedShiftId = \n (odataObject.ClosedShiftId != null) ? parseInt(odataObject.ClosedShiftId, 10) : undefined;\n \n this.ReferenceId = \n (odataObject.ReferenceId != null) ? parseInt(odataObject.ReferenceId, 10) : undefined;\n \n this.RefChannel = \n (odataObject.RefChannel != null) ? parseInt(odataObject.RefChannel, 10) : undefined;\n \n this.RefStore = \n odataObject.RefStore;\n \n this.RefTerminal = \n odataObject.RefTerminal;\n \n this.RefTransactionId = \n odataObject.RefTransactionId;\n \n this.AuditEventTypeValue = \n odataObject.AuditEventTypeValue;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new AuditEventFiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.FiscalRegistrationLines = undefined;\n if (odataObject.FiscalRegistrationLines) {\n this.FiscalRegistrationLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationLines.length; i++) {\n if (odataObject.FiscalRegistrationLines[i] != null) {\n if (odataObject.FiscalRegistrationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationLines[i])\n }\n } else {\n this.FiscalRegistrationLines[i] = new AuditEventFiscalRegistrationLineClass(odataObject.FiscalRegistrationLines[i]);\n }\n } else {\n this.FiscalRegistrationLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventClass'] = AuditEventClass;\n \n /**\n * ItemAvailability entity class.\n */\n export class ItemAvailabilityClass implements Entities.ItemAvailability {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public InventoryLocationId: string;\n public ProductId: number;\n public AvailableQuantity: number;\n public OrderedSum: number;\n public PhysicalReserved: number;\n public UnitOfMeasure: string;\n public InventoryUnitOfMeasure: string;\n public InventoryUnitOfMeasureDescription: string;\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.OrderedSum = \n (odataObject.OrderedSum != null) ? parseFloat(odataObject.OrderedSum) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.InventoryUnitOfMeasure = \n odataObject.InventoryUnitOfMeasure;\n \n this.InventoryUnitOfMeasureDescription = \n odataObject.InventoryUnitOfMeasureDescription;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemAvailabilityClass'] = ItemAvailabilityClass;\n \n /**\n * InventoryAvailableToPromise entity class.\n */\n export class InventoryAvailableToPromiseClass\n extends ItemAvailabilityClass\n implements Entities.InventoryAvailableToPromise {\n public Date: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Date = \n odataObject.Date;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InventoryAvailableToPromise\";\n \n }\n }\n entityDictionary['InventoryAvailableToPromiseClass'] = InventoryAvailableToPromiseClass;\n \n /**\n * NotificationItem entity class.\n */\n export class NotificationItemClass implements Entities.NotificationItem {\n public Action: number;\n public ActionName: string;\n public NotificationDetails: Entities.NotificationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionName = \n odataObject.ActionName;\n \n this.NotificationDetails = undefined;\n if (odataObject.NotificationDetails) {\n this.NotificationDetails = [];\n for (var i = 0; i < odataObject.NotificationDetails.length; i++) {\n if (odataObject.NotificationDetails[i] != null) {\n if (odataObject.NotificationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.NotificationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NotificationDetails[i] = new entityDictionary[className](odataObject.NotificationDetails[i])\n }\n } else {\n this.NotificationDetails[i] = new NotificationDetailClass(odataObject.NotificationDetails[i]);\n }\n } else {\n this.NotificationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationItemClass'] = NotificationItemClass;\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity class.\n */\n export class FiscalIntegrationDocumentRetrievalCriteriaClass implements Entities.FiscalIntegrationDocumentRetrievalCriteria {\n public TransactionId: string;\n public IsRemoteTransaction: boolean;\n public QueryBySalesId: boolean;\n public FiscalRegistrationEventTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public DocumentContext: Entities.FiscalIntegrationDocumentContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.DocumentContext == null) {\n this.DocumentContext = undefined;\n } else if (odataObject.DocumentContext['@odata.type'] == null) {\n this.DocumentContext = new FiscalIntegrationDocumentContextClass(odataObject.DocumentContext);\n } else {\n var className: string = odataObject.DocumentContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentContext = new entityDictionary[className](odataObject.DocumentContext)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentRetrievalCriteriaClass'] = FiscalIntegrationDocumentRetrievalCriteriaClass;\n \n /**\n * FiscalIntegrationDocument entity class.\n */\n export class FiscalIntegrationDocumentClass implements Entities.FiscalIntegrationDocument {\n public Document: string;\n public DocumentGenerationResultTypeValue: number;\n public FiscalConnectorTechnicalProfile: Entities.FiscalIntegrationTechnicalProfile;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public SequentialSignatureDataContext: Entities.FiscalIntegrationSignatureDataContext;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Document = \n odataObject.Document;\n \n this.DocumentGenerationResultTypeValue = \n odataObject.DocumentGenerationResultTypeValue;\n \n if (odataObject.FiscalConnectorTechnicalProfile == null) {\n this.FiscalConnectorTechnicalProfile = undefined;\n } else if (odataObject.FiscalConnectorTechnicalProfile['@odata.type'] == null) {\n this.FiscalConnectorTechnicalProfile = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalConnectorTechnicalProfile);\n } else {\n var className: string = odataObject.FiscalConnectorTechnicalProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalConnectorTechnicalProfile = new entityDictionary[className](odataObject.FiscalConnectorTechnicalProfile)\n }\n }\n\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n if (odataObject.SequentialSignatureDataContext == null) {\n this.SequentialSignatureDataContext = undefined;\n } else if (odataObject.SequentialSignatureDataContext['@odata.type'] == null) {\n this.SequentialSignatureDataContext = new FiscalIntegrationSignatureDataContextClass(odataObject.SequentialSignatureDataContext);\n } else {\n var className: string = odataObject.SequentialSignatureDataContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureDataContext = new entityDictionary[className](odataObject.SequentialSignatureDataContext)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentClass'] = FiscalIntegrationDocumentClass;\n \n /**\n * FiscalIntegrationRegistrationResult entity class.\n */\n export class FiscalIntegrationRegistrationResultClass implements Entities.FiscalIntegrationRegistrationResult {\n public TransactionID: string;\n public AuditEventId: string;\n public Response: string;\n public SubmittedDocument: string;\n public RegisterInfo: string;\n public RegistrationStatusValue: number;\n public FiscalRegistrationEventTypeValue: number;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public SequentialSignatureData: Entities.FiscalIntegrationSequentialSignatureData;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionID = \n odataObject.TransactionID;\n \n this.AuditEventId = \n odataObject.AuditEventId;\n \n this.Response = \n odataObject.Response;\n \n this.SubmittedDocument = \n odataObject.SubmittedDocument;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.SequentialSignatureData == null) {\n this.SequentialSignatureData = undefined;\n } else if (odataObject.SequentialSignatureData['@odata.type'] == null) {\n this.SequentialSignatureData = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SequentialSignatureData);\n } else {\n var className: string = odataObject.SequentialSignatureData['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureData = new entityDictionary[className](odataObject.SequentialSignatureData)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationResultClass'] = FiscalIntegrationRegistrationResultClass;\n \n /**\n * FiscalIntegrationRegistrationProcess entity class.\n */\n export class FiscalIntegrationRegistrationProcessClass implements Entities.FiscalIntegrationRegistrationProcess {\n public RecordId: number;\n public RegistrationProcessId: string;\n public Description: string;\n public ModeValue: number;\n public RegistrationProcessLines: Entities.FiscalIntegrationRegistrationProcessLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.Description = \n odataObject.Description;\n \n this.ModeValue = \n odataObject.ModeValue;\n \n this.RegistrationProcessLines = undefined;\n if (odataObject.RegistrationProcessLines) {\n this.RegistrationProcessLines = [];\n for (var i = 0; i < odataObject.RegistrationProcessLines.length; i++) {\n if (odataObject.RegistrationProcessLines[i] != null) {\n if (odataObject.RegistrationProcessLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RegistrationProcessLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLines[i] = new entityDictionary[className](odataObject.RegistrationProcessLines[i])\n }\n } else {\n this.RegistrationProcessLines[i] = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLines[i]);\n }\n } else {\n this.RegistrationProcessLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessClass'] = FiscalIntegrationRegistrationProcessClass;\n \n /**\n * FiscalIntegrationSupportedEvents entity class.\n */\n export class FiscalIntegrationSupportedEventsClass implements Entities.FiscalIntegrationSupportedEvents {\n public FunctionalityProfileGroupId: string;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSupportedEventsClass'] = FiscalIntegrationSupportedEventsClass;\n \n /**\n * FiscalIntegrationTechnicalProfile entity class.\n */\n export class FiscalIntegrationTechnicalProfileClass implements Entities.FiscalIntegrationTechnicalProfile {\n public ProfileId: string;\n public Description: string;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public TechnicalProfile: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.Description = \n odataObject.Description;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.TechnicalProfile = \n odataObject.TechnicalProfile;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileClass'] = FiscalIntegrationTechnicalProfileClass;\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummary entity class.\n */\n export class FiscalIntegrationFiscalRegistrationProcessSummaryClass implements Entities.FiscalIntegrationFiscalRegistrationProcessSummary {\n public RegistrationProcessId: string;\n public FiscalRegistrationProcessSummaryLines: Entities.FiscalIntegrationFiscalRegistrationProcessSummaryLine[];\n public ErrorCode: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.FiscalRegistrationProcessSummaryLines = undefined;\n if (odataObject.FiscalRegistrationProcessSummaryLines) {\n this.FiscalRegistrationProcessSummaryLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationProcessSummaryLines.length; i++) {\n if (odataObject.FiscalRegistrationProcessSummaryLines[i] != null) {\n if (odataObject.FiscalRegistrationProcessSummaryLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationProcessSummaryLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationProcessSummaryLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationProcessSummaryLines[i])\n }\n } else {\n this.FiscalRegistrationProcessSummaryLines[i] = new FiscalIntegrationFiscalRegistrationProcessSummaryLineClass(odataObject.FiscalRegistrationProcessSummaryLines[i]);\n }\n } else {\n this.FiscalRegistrationProcessSummaryLines[i] = undefined;\n }\n }\n }\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n }\n }\n entityDictionary['FiscalIntegrationFiscalRegistrationProcessSummaryClass'] = FiscalIntegrationFiscalRegistrationProcessSummaryClass;\n \n /**\n * FiscalIntegrationTechnicalProfileSearchCriteria entity class.\n */\n export class FiscalIntegrationTechnicalProfileSearchCriteriaClass implements Entities.FiscalIntegrationTechnicalProfileSearchCriteria {\n public ExcludeOptionalProcessLines: boolean;\n public FunctionalityProfileGroupIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExcludeOptionalProcessLines = \n odataObject.ExcludeOptionalProcessLines;\n \n this.FunctionalityProfileGroupIds = undefined;\n if (odataObject.FunctionalityProfileGroupIds) {\n this.FunctionalityProfileGroupIds = [];\n for (var i = 0; i < odataObject.FunctionalityProfileGroupIds.length; i++) {\n if (odataObject.FunctionalityProfileGroupIds[i] != null) {\n this.FunctionalityProfileGroupIds[i] = \n odataObject.FunctionalityProfileGroupIds[i];\n } else {\n this.FunctionalityProfileGroupIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileSearchCriteriaClass'] = FiscalIntegrationTechnicalProfileSearchCriteriaClass;\n \n /**\n * FiscalIntegrationServiceInfo entity class.\n */\n export class FiscalIntegrationServiceInfoClass implements Entities.FiscalIntegrationServiceInfo {\n public ServiceName: string;\n public ServiceProperties: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ServiceName = \n odataObject.ServiceName;\n \n this.ServiceProperties = \n odataObject.ServiceProperties;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceInfoClass'] = FiscalIntegrationServiceInfoClass;\n \n /**\n * FiscalIntegrationServiceStatus entity class.\n */\n export class FiscalIntegrationServiceStatusClass implements Entities.FiscalIntegrationServiceStatus {\n public IsReady: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsReady = \n odataObject.IsReady;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceStatusClass'] = FiscalIntegrationServiceStatusClass;\n \n /**\n * FiscalIntegrationServiceCommunicationResult entity class.\n */\n export class FiscalIntegrationServiceCommunicationResultClass implements Entities.FiscalIntegrationServiceCommunicationResult {\n public Response: string;\n public CommunicationResultTypeValue: number;\n public FailureDetails: Entities.FiscalIntegrationServiceFailureDetails;\n public FiscalIntegrationServiceInfo: string;\n public UserNotificationMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Response = \n odataObject.Response;\n \n this.CommunicationResultTypeValue = \n odataObject.CommunicationResultTypeValue;\n \n if (odataObject.FailureDetails == null) {\n this.FailureDetails = undefined;\n } else if (odataObject.FailureDetails['@odata.type'] == null) {\n this.FailureDetails = new FiscalIntegrationServiceFailureDetailsClass(odataObject.FailureDetails);\n } else {\n var className: string = odataObject.FailureDetails['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FailureDetails = new entityDictionary[className](odataObject.FailureDetails)\n }\n }\n\n \n this.FiscalIntegrationServiceInfo = \n odataObject.FiscalIntegrationServiceInfo;\n \n this.UserNotificationMessage = \n odataObject.UserNotificationMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceCommunicationResultClass'] = FiscalIntegrationServiceCommunicationResultClass;\n \n /**\n * FiscalIntegrationSequentialSignatureData entity class.\n */\n export class FiscalIntegrationSequentialSignatureDataClass implements Entities.FiscalIntegrationSequentialSignatureData {\n public LastRegisterResponse: string;\n public SequenceKey: string;\n public IsOffline: boolean;\n public SequentialNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LastRegisterResponse = \n odataObject.LastRegisterResponse;\n \n this.SequenceKey = \n odataObject.SequenceKey;\n \n this.IsOffline = \n odataObject.IsOffline;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSequentialSignatureDataClass'] = FiscalIntegrationSequentialSignatureDataClass;\n \n /**\n * DiscountsSearchCriteria entity class.\n */\n export class DiscountsSearchCriteriaClass implements Entities.DiscountsSearchCriteria {\n public ChannelId: number;\n public Keyword: string;\n public IsDiscountCodeRequired: boolean;\n public StartDate: Date;\n public EndDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Keyword = \n odataObject.Keyword;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountsSearchCriteriaClass'] = DiscountsSearchCriteriaClass;\n \n /**\n * Promotion entity class.\n */\n export class PromotionClass implements Entities.Promotion {\n public OfferId: string;\n public OfferName: string;\n public PeriodicDiscountTypeValue: number;\n public IsDiscountCodeRequired: boolean;\n public ValidationPeriodId: string;\n public AdditionalRestrictions: string;\n public Description: string;\n public ValidFromDate: Date;\n public ValidToDate: Date;\n public ValidationPeriod: Entities.ValidationPeriod;\n public CouponCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ValidationPeriodId = \n odataObject.ValidationPeriodId;\n \n this.AdditionalRestrictions = \n odataObject.AdditionalRestrictions;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFromDate = \n (odataObject.ValidFromDate instanceof Date) ? odataObject.ValidFromDate\n : (odataObject.ValidFromDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDate = \n (odataObject.ValidToDate instanceof Date) ? odataObject.ValidToDate\n : (odataObject.ValidToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.ValidationPeriod == null) {\n this.ValidationPeriod = undefined;\n } else if (odataObject.ValidationPeriod['@odata.type'] == null) {\n this.ValidationPeriod = new ValidationPeriodClass(odataObject.ValidationPeriod);\n } else {\n var className: string = odataObject.ValidationPeriod['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationPeriod = new entityDictionary[className](odataObject.ValidationPeriod)\n }\n }\n\n \n this.CouponCodes = undefined;\n if (odataObject.CouponCodes) {\n this.CouponCodes = [];\n for (var i = 0; i < odataObject.CouponCodes.length; i++) {\n if (odataObject.CouponCodes[i] != null) {\n this.CouponCodes[i] = \n odataObject.CouponCodes[i];\n } else {\n this.CouponCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PromotionClass'] = PromotionClass;\n \n /**\n * CategoryPathLookup entity class.\n */\n export class CategoryPathLookupClass implements Entities.CategoryPathLookup {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathLookupClass'] = CategoryPathLookupClass;\n \n /**\n * CategoryPathResult entity class.\n */\n export class CategoryPathResultClass implements Entities.CategoryPathResult {\n public ProductId: number;\n public CategoryPath: Entities.CategoryPath[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CategoryPath = undefined;\n if (odataObject.CategoryPath) {\n this.CategoryPath = [];\n for (var i = 0; i < odataObject.CategoryPath.length; i++) {\n if (odataObject.CategoryPath[i] != null) {\n if (odataObject.CategoryPath[i]['@odata.type'] != null) {\n var className: string = odataObject.CategoryPath[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategoryPath[i] = new entityDictionary[className](odataObject.CategoryPath[i])\n }\n } else {\n this.CategoryPath[i] = new CategoryPathClass(odataObject.CategoryPath[i]);\n }\n } else {\n this.CategoryPath[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathResultClass'] = CategoryPathResultClass;\n \n /**\n * PickupTimeslotAvailabilitySearchCriteria entity class.\n */\n export class PickupTimeslotAvailabilitySearchCriteriaClass implements Entities.PickupTimeslotAvailabilitySearchCriteria {\n public DeliveryModeCode: string;\n public StoreId: string;\n public StartDate: Date;\n public EndDate: Date;\n public SearchOptionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SearchOptionValue = \n odataObject.SearchOptionValue;\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilitySearchCriteriaClass'] = PickupTimeslotAvailabilitySearchCriteriaClass;\n \n /**\n * PickupTimeslotAvailability entity class.\n */\n export class PickupTimeslotAvailabilityClass implements Entities.PickupTimeslotAvailability {\n public AvailableCapacity: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AvailableCapacity = \n odataObject.AvailableCapacity;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilityClass'] = PickupTimeslotAvailabilityClass;\n \n /**\n * CheckInForOrderPickupConfirmation entity class.\n */\n export class CheckInForOrderPickupConfirmationClass implements Entities.CheckInForOrderPickupConfirmation {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CheckInForOrderPickupConfirmationClass'] = CheckInForOrderPickupConfirmationClass;\n \n /**\n * ExtensionProfile entity class.\n */\n export class ExtensionProfileClass implements Entities.ExtensionProfile {\n public ExtensionServiceUrl: string;\n public AttachedServices: Entities.AttachedService[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionServiceUrl = \n odataObject.ExtensionServiceUrl;\n \n this.AttachedServices = undefined;\n if (odataObject.AttachedServices) {\n this.AttachedServices = [];\n for (var i = 0; i < odataObject.AttachedServices.length; i++) {\n if (odataObject.AttachedServices[i] != null) {\n if (odataObject.AttachedServices[i]['@odata.type'] != null) {\n var className: string = odataObject.AttachedServices[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttachedServices[i] = new entityDictionary[className](odataObject.AttachedServices[i])\n }\n } else {\n this.AttachedServices[i] = new AttachedServiceClass(odataObject.AttachedServices[i]);\n }\n } else {\n this.AttachedServices[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionProfileClass'] = ExtensionProfileClass;\n \n /**\n * ChannelInventoryConfiguration entity class.\n */\n export class ChannelInventoryConfigurationClass implements Entities.ChannelInventoryConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowTransferOrderOverDelivery: boolean;\n public AllowTransferOrderUnderDelivery: boolean;\n public UserLocationProfileId: string;\n public InventoryProductAttributeRecordId: number;\n public InventoryOutOfStockAttributeValueText: string;\n public ProductAvailabilitySortableAttributeRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowTransferOrderOverDelivery = \n odataObject.AllowTransferOrderOverDelivery;\n \n this.AllowTransferOrderUnderDelivery = \n odataObject.AllowTransferOrderUnderDelivery;\n \n this.UserLocationProfileId = \n odataObject.UserLocationProfileId;\n \n this.InventoryProductAttributeRecordId = \n (odataObject.InventoryProductAttributeRecordId != null) ? parseInt(odataObject.InventoryProductAttributeRecordId, 10) : undefined;\n \n this.InventoryOutOfStockAttributeValueText = \n odataObject.InventoryOutOfStockAttributeValueText;\n \n this.ProductAvailabilitySortableAttributeRecordId = \n (odataObject.ProductAvailabilitySortableAttributeRecordId != null) ? parseInt(odataObject.ProductAvailabilitySortableAttributeRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelInventoryConfigurationClass'] = ChannelInventoryConfigurationClass;\n \n /**\n * ChannelPurchaseConfiguration entity class.\n */\n export class ChannelPurchaseConfigurationClass implements Entities.ChannelPurchaseConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowOverDelivery: boolean;\n public AllowSubDelivery: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this.AllowSubDelivery = \n odataObject.AllowSubDelivery;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPurchaseConfigurationClass'] = ChannelPurchaseConfigurationClass;\n \n /**\n * InventoryJournalName entity class.\n */\n export class InventoryJournalNameClass implements Entities.InventoryJournalName {\n public RecordId: number;\n public JournalNameId: string;\n public InventoryJournalTypeValue: number;\n public Description: string;\n public DefaultAdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.JournalNameId = \n odataObject.JournalNameId;\n \n this.InventoryJournalTypeValue = \n odataObject.InventoryJournalTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DefaultAdjustmentTypeValue = \n odataObject.DefaultAdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameClass'] = InventoryJournalNameClass;\n \n /**\n * ShiftRetrievalCriteria entity class.\n */\n export class ShiftRetrievalCriteriaClass implements Entities.ShiftRetrievalCriteria {\n public ShiftStatusValue: number;\n public FilterByUserRole: boolean;\n public IncludeAllShiftsForStore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftStatusValue = \n odataObject.ShiftStatusValue;\n \n this.FilterByUserRole = \n odataObject.FilterByUserRole;\n \n this.IncludeAllShiftsForStore = \n odataObject.IncludeAllShiftsForStore;\n \n }\n }\n entityDictionary['ShiftRetrievalCriteriaClass'] = ShiftRetrievalCriteriaClass;\n \n /**\n * UserDefinedSecretCertificateResult entity class.\n */\n export class UserDefinedSecretCertificateResultClass implements Entities.UserDefinedSecretCertificateResult {\n public CertificateData: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CertificateData = \n odataObject.CertificateData;\n \n }\n }\n entityDictionary['UserDefinedSecretCertificateResultClass'] = UserDefinedSecretCertificateResultClass;\n \n /**\n * TerminalInfo entity class.\n */\n export class TerminalInfoClass implements Entities.TerminalInfo {\n public TerminalId: string;\n public DeviceNumber: string;\n public Name: string;\n public DeviceType: number;\n public ActivationStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.Name = \n odataObject.Name;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TerminalInfoClass'] = TerminalInfoClass;\n \n /**\n * CustomerTimelineItemTypeMap entity class.\n */\n export class CustomerTimelineItemTypeMapClass implements Entities.CustomerTimelineItemTypeMap {\n public EntityType: string;\n public Types: Entities.CustomerTimelineItemType[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EntityType = \n odataObject.EntityType;\n \n this.Types = undefined;\n if (odataObject.Types) {\n this.Types = [];\n for (var i = 0; i < odataObject.Types.length; i++) {\n if (odataObject.Types[i] != null) {\n if (odataObject.Types[i]['@odata.type'] != null) {\n var className: string = odataObject.Types[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Types[i] = new entityDictionary[className](odataObject.Types[i])\n }\n } else {\n this.Types[i] = new CustomerTimelineItemTypeClass(odataObject.Types[i]);\n }\n } else {\n this.Types[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeMapClass'] = CustomerTimelineItemTypeMapClass;\n \n /**\n * CustomerTimelineRefiner entity class.\n */\n export class CustomerTimelineRefinerClass implements Entities.CustomerTimelineRefiner {\n public RefinedResultsCount: number;\n public EntityType: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinedResultsCount = \n odataObject.RefinedResultsCount;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineRefinerClass'] = CustomerTimelineRefinerClass;\n \n /**\n * CustomerTitle entity class.\n */\n export class CustomerTitleClass implements Entities.CustomerTitle {\n public Text: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Text = \n odataObject.Text;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTitleClass'] = CustomerTitleClass;\n \n /**\n * ProductWarehouse entity class.\n */\n export class ProductWarehouseClass implements Entities.ProductWarehouse {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseClass'] = ProductWarehouseClass;\n \n /**\n * ProductWarehouseInventoryInformation entity class.\n */\n export class ProductWarehouseInventoryInformationClass implements Entities.ProductWarehouseInventoryInformation {\n public ProductWarehouseInventoryAvailabilities: Entities.ProductWarehouseInventoryAvailability[];\n public AggregatedProductInventoryAvailabilities: Entities.ProductInventoryAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductWarehouseInventoryAvailabilities = undefined;\n if (odataObject.ProductWarehouseInventoryAvailabilities) {\n this.ProductWarehouseInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.ProductWarehouseInventoryAvailabilities.length; i++) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i] != null) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductWarehouseInventoryAvailabilities[i] = new entityDictionary[className](odataObject.ProductWarehouseInventoryAvailabilities[i])\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = new ProductWarehouseInventoryAvailabilityClass(odataObject.ProductWarehouseInventoryAvailabilities[i]);\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.AggregatedProductInventoryAvailabilities = undefined;\n if (odataObject.AggregatedProductInventoryAvailabilities) {\n this.AggregatedProductInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.AggregatedProductInventoryAvailabilities.length; i++) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i] != null) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregatedProductInventoryAvailabilities[i] = new entityDictionary[className](odataObject.AggregatedProductInventoryAvailabilities[i])\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = new ProductInventoryAvailabilityClass(odataObject.AggregatedProductInventoryAvailabilities[i]);\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryInformationClass'] = ProductWarehouseInventoryInformationClass;\n \n /**\n * InventoryAvailabilitySearchCriteria entity class.\n */\n export class InventoryAvailabilitySearchCriteriaClass implements Entities.InventoryAvailabilitySearchCriteria {\n public ProductIds: number[];\n public DefaultWarehouseOnly: boolean;\n public SearchArea: Entities.SearchArea;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public QuantityUnitTypeValue: number;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n if (odataObject.SearchArea == null) {\n this.SearchArea = undefined;\n } else if (odataObject.SearchArea['@odata.type'] == null) {\n this.SearchArea = new SearchAreaClass(odataObject.SearchArea);\n } else {\n var className: string = odataObject.SearchArea['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchArea = new entityDictionary[className](odataObject.SearchArea)\n }\n }\n\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['InventoryAvailabilitySearchCriteriaClass'] = InventoryAvailabilitySearchCriteriaClass;\n \n /**\n * ExtensibleEnumerationContainer entity class.\n */\n export class ExtensibleEnumerationContainerClass implements Entities.ExtensibleEnumerationContainer {\n public TypeName: string;\n public ExtensibleEnumerations: Entities.ExtensibleEnumeration[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeName = \n odataObject.TypeName;\n \n this.ExtensibleEnumerations = undefined;\n if (odataObject.ExtensibleEnumerations) {\n this.ExtensibleEnumerations = [];\n for (var i = 0; i < odataObject.ExtensibleEnumerations.length; i++) {\n if (odataObject.ExtensibleEnumerations[i] != null) {\n if (odataObject.ExtensibleEnumerations[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensibleEnumerations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEnumerations[i] = new entityDictionary[className](odataObject.ExtensibleEnumerations[i])\n }\n } else {\n this.ExtensibleEnumerations[i] = new ExtensibleEnumerationClass(odataObject.ExtensibleEnumerations[i]);\n }\n } else {\n this.ExtensibleEnumerations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensibleEnumerationContainerClass'] = ExtensibleEnumerationContainerClass;\n \n /**\n * PackingSlipData entity class.\n */\n export class PackingSlipDataClass implements Entities.PackingSlipData {\n public PackingSlipId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PackingSlipId = \n odataObject.PackingSlipId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PackingSlipDataClass'] = PackingSlipDataClass;\n \n /**\n * EmailReceiptSettings entity class.\n */\n export class EmailReceiptSettingsClass implements Entities.EmailReceiptSettings {\n public ReceiptTypeValue: number;\n public EmailBehaviorValue: number;\n public ReceiptTitle: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.EmailBehaviorValue = \n odataObject.EmailBehaviorValue;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmailReceiptSettingsClass'] = EmailReceiptSettingsClass;\n \n /**\n * OrgUnitAddress entity class.\n */\n export class OrgUnitAddressClass\n extends AddressClass\n implements Entities.OrgUnitAddress {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrgUnitAddress\";\n \n }\n }\n entityDictionary['OrgUnitAddressClass'] = OrgUnitAddressClass;\n \n /**\n * WarehouseDetails entity class.\n */\n export class WarehouseDetailsClass\n extends AddressClass\n implements Entities.WarehouseDetails {\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.WarehouseDetails\";\n \n }\n }\n entityDictionary['WarehouseDetailsClass'] = WarehouseDetailsClass;\n \n /**\n * AttributeSwatch entity class.\n */\n export class AttributeSwatchClass implements Entities.AttributeSwatch {\n public SwatchValue: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public IsDefault: boolean;\n public ProductImageUrls: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SwatchValue = \n odataObject.SwatchValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ProductImageUrls = undefined;\n if (odataObject.ProductImageUrls) {\n this.ProductImageUrls = [];\n for (var i = 0; i < odataObject.ProductImageUrls.length; i++) {\n if (odataObject.ProductImageUrls[i] != null) {\n this.ProductImageUrls[i] = \n odataObject.ProductImageUrls[i];\n } else {\n this.ProductImageUrls[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeSwatchClass'] = AttributeSwatchClass;\n \n /**\n * AttributeBooleanValue entity class.\n */\n export class AttributeBooleanValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeBooleanValue {\n public Value: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeBooleanValue\";\n \n }\n }\n entityDictionary['AttributeBooleanValueClass'] = AttributeBooleanValueClass;\n \n /**\n * AttributeCurrencyValue entity class.\n */\n export class AttributeCurrencyValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeCurrencyValue {\n public CurrencyValue: number;\n public CurrencyCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeCurrencyValue\";\n \n }\n }\n entityDictionary['AttributeCurrencyValueClass'] = AttributeCurrencyValueClass;\n \n /**\n * AttributeDateTimeOffsetValue entity class.\n */\n export class AttributeDateTimeOffsetValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeDateTimeOffsetValue {\n public Value: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value instanceof Date) ? odataObject.Value\n : (odataObject.Value != null) ? jsonLightReadStringPropertyValue(odataObject.Value, \"Edm.DateTimeOffset\", false) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeDateTimeOffsetValue\";\n \n }\n }\n entityDictionary['AttributeDateTimeOffsetValueClass'] = AttributeDateTimeOffsetValueClass;\n \n /**\n * AttributeFloatValue entity class.\n */\n export class AttributeFloatValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeFloatValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeFloatValue\";\n \n }\n }\n entityDictionary['AttributeFloatValueClass'] = AttributeFloatValueClass;\n \n /**\n * AttributeIntValue entity class.\n */\n export class AttributeIntValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeIntValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeIntValue\";\n \n }\n }\n entityDictionary['AttributeIntValueClass'] = AttributeIntValueClass;\n \n /**\n * AttributeMediaLocationValue entity class.\n */\n export class AttributeMediaLocationValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeMediaLocationValue {\n public Value: Entities.MediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = undefined;\n if (odataObject.Value) {\n this.Value = [];\n for (var i = 0; i < odataObject.Value.length; i++) {\n if (odataObject.Value[i] != null) {\n if (odataObject.Value[i]['@odata.type'] != null) {\n var className: string = odataObject.Value[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value[i] = new entityDictionary[className](odataObject.Value[i])\n }\n } else {\n this.Value[i] = new MediaLocationClass(odataObject.Value[i]);\n }\n } else {\n this.Value[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeMediaLocationValue\";\n \n }\n }\n entityDictionary['AttributeMediaLocationValueClass'] = AttributeMediaLocationValueClass;\n \n /**\n * AttributeTextValue entity class.\n */\n export class AttributeTextValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeTextValue {\n public TextValue: string;\n public TextValueTranslations: Entities.TextValueTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TextValue = \n odataObject.TextValue;\n \n this.TextValueTranslations = undefined;\n if (odataObject.TextValueTranslations) {\n this.TextValueTranslations = [];\n for (var i = 0; i < odataObject.TextValueTranslations.length; i++) {\n if (odataObject.TextValueTranslations[i] != null) {\n if (odataObject.TextValueTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.TextValueTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TextValueTranslations[i] = new entityDictionary[className](odataObject.TextValueTranslations[i])\n }\n } else {\n this.TextValueTranslations[i] = new TextValueTranslationClass(odataObject.TextValueTranslations[i]);\n }\n } else {\n this.TextValueTranslations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue\";\n \n }\n }\n entityDictionary['AttributeTextValueClass'] = AttributeTextValueClass;\n \n /**\n * ButtonGridButton entity class.\n */\n export class ButtonGridButtonClass implements Entities.ButtonGridButton {\n public Action: number;\n public ActionProperty: string;\n public BackColorAsARGB: Entities.ARGBColor;\n public BorderColorAsARGB: Entities.ARGBColor;\n public Column: number;\n public ColumnSpan: number;\n public DisplayText: string;\n public FontColorAsARGB: Entities.ARGBColor;\n public ButtonId: number;\n public Row: number;\n public RowSpan: number;\n public UseCustomLookAndFeel: boolean;\n public PictureId: number;\n public PictureAsBase64: string;\n public FontStyle: number;\n public FontSize: number;\n public EnableCustomFontForPOS: boolean;\n public HideButtonText: boolean;\n public Tooltip: string;\n public EnableLiveContent: boolean;\n public NotificationContentAlignment: number;\n public ImageAlignment: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionProperty = \n odataObject.ActionProperty;\n \n if (odataObject.BackColorAsARGB == null) {\n this.BackColorAsARGB = undefined;\n } else if (odataObject.BackColorAsARGB['@odata.type'] == null) {\n this.BackColorAsARGB = new ARGBColorClass(odataObject.BackColorAsARGB);\n } else {\n var className: string = odataObject.BackColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BackColorAsARGB = new entityDictionary[className](odataObject.BackColorAsARGB)\n }\n }\n\n \n if (odataObject.BorderColorAsARGB == null) {\n this.BorderColorAsARGB = undefined;\n } else if (odataObject.BorderColorAsARGB['@odata.type'] == null) {\n this.BorderColorAsARGB = new ARGBColorClass(odataObject.BorderColorAsARGB);\n } else {\n var className: string = odataObject.BorderColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BorderColorAsARGB = new entityDictionary[className](odataObject.BorderColorAsARGB)\n }\n }\n\n \n this.Column = \n odataObject.Column;\n \n this.ColumnSpan = \n odataObject.ColumnSpan;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n if (odataObject.FontColorAsARGB == null) {\n this.FontColorAsARGB = undefined;\n } else if (odataObject.FontColorAsARGB['@odata.type'] == null) {\n this.FontColorAsARGB = new ARGBColorClass(odataObject.FontColorAsARGB);\n } else {\n var className: string = odataObject.FontColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FontColorAsARGB = new entityDictionary[className](odataObject.FontColorAsARGB)\n }\n }\n\n \n this.ButtonId = \n odataObject.ButtonId;\n \n this.Row = \n odataObject.Row;\n \n this.RowSpan = \n odataObject.RowSpan;\n \n this.UseCustomLookAndFeel = \n odataObject.UseCustomLookAndFeel;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.FontStyle = \n odataObject.FontStyle;\n \n this.FontSize = \n odataObject.FontSize;\n \n this.EnableCustomFontForPOS = \n odataObject.EnableCustomFontForPOS;\n \n this.HideButtonText = \n odataObject.HideButtonText;\n \n this.Tooltip = \n odataObject.Tooltip;\n \n this.EnableLiveContent = \n odataObject.EnableLiveContent;\n \n this.NotificationContentAlignment = \n odataObject.NotificationContentAlignment;\n \n this.ImageAlignment = \n odataObject.ImageAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridButtonClass'] = ButtonGridButtonClass;\n \n /**\n * ARGBColor entity class.\n */\n export class ARGBColorClass implements Entities.ARGBColor {\n public A: number;\n public R: number;\n public G: number;\n public B: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.A = \n (odataObject.A != null) ? parseInt(odataObject.A, 10) : undefined;\n \n this.R = \n (odataObject.R != null) ? parseInt(odataObject.R, 10) : undefined;\n \n this.G = \n (odataObject.G != null) ? parseInt(odataObject.G, 10) : undefined;\n \n this.B = \n (odataObject.B != null) ? parseInt(odataObject.B, 10) : undefined;\n \n }\n }\n entityDictionary['ARGBColorClass'] = ARGBColorClass;\n \n /**\n * PriceLine entity class.\n */\n export class PriceLineClass implements Entities.PriceLine {\n public RecordId: number;\n public Value: number;\n public PriceMethod: string;\n public OriginId: string;\n public PriceChangedByExtensions: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.PriceMethod = \n odataObject.PriceMethod;\n \n this.OriginId = \n odataObject.OriginId;\n \n this.PriceChangedByExtensions = \n odataObject.PriceChangedByExtensions;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PriceLineClass'] = PriceLineClass;\n \n /**\n * TradeAgreementPriceLine entity class.\n */\n export class TradeAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.TradeAgreementPriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['TradeAgreementPriceLineClass'] = TradeAgreementPriceLineClass;\n \n /**\n * AttributePricingTradeAgreementPriceLine entity class.\n */\n export class AttributePricingTradeAgreementPriceLineClass\n extends TradeAgreementPriceLineClass\n implements Entities.AttributePricingTradeAgreementPriceLine {\n public CanApplyPriceAdjustments: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanApplyPriceAdjustments = \n odataObject.CanApplyPriceAdjustments;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingTradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingTradeAgreementPriceLineClass'] = AttributePricingTradeAgreementPriceLineClass;\n \n /**\n * SalesAgreementPriceLine entity class.\n */\n export class SalesAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.SalesAgreementPriceLine {\n public SalesAgreementName: string;\n public UnitPrice: number;\n public DiscountAmount: number;\n public DiscountPercent: number;\n public SalesAgreementLineTypeValue: number;\n public PriceUnit: number;\n public EffectiveDate: Date;\n public ExpirationDate: Date;\n public CommittedQuantity: number;\n public RemainingQuantity: number;\n public CommittedAmount: number;\n public RemainingAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SalesAgreementName = \n odataObject.SalesAgreementName;\n \n this.UnitPrice = \n (odataObject.UnitPrice != null) ? parseFloat(odataObject.UnitPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.SalesAgreementLineTypeValue = \n odataObject.SalesAgreementLineTypeValue;\n \n this.PriceUnit = \n (odataObject.PriceUnit != null) ? parseFloat(odataObject.PriceUnit) : undefined;\n \n this.EffectiveDate = \n (odataObject.EffectiveDate instanceof Date) ? odataObject.EffectiveDate\n : (odataObject.EffectiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.EffectiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommittedQuantity = \n (odataObject.CommittedQuantity != null) ? parseFloat(odataObject.CommittedQuantity) : undefined;\n \n this.RemainingQuantity = \n (odataObject.RemainingQuantity != null) ? parseFloat(odataObject.RemainingQuantity) : undefined;\n \n this.CommittedAmount = \n (odataObject.CommittedAmount != null) ? parseFloat(odataObject.CommittedAmount) : undefined;\n \n this.RemainingAmount = \n (odataObject.RemainingAmount != null) ? parseFloat(odataObject.RemainingAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAgreementPriceLine\";\n \n }\n }\n entityDictionary['SalesAgreementPriceLineClass'] = SalesAgreementPriceLineClass;\n \n /**\n * PriceAdjustmentPriceLine entity class.\n */\n export class PriceAdjustmentPriceLineClass\n extends PriceLineClass\n implements Entities.PriceAdjustmentPriceLine {\n public IsCompoundable: boolean;\n public Concurrency: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.Concurrency = \n odataObject.Concurrency;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PriceAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['PriceAdjustmentPriceLineClass'] = PriceAdjustmentPriceLineClass;\n \n /**\n * AttributePricingAdjustmentPriceLine entity class.\n */\n export class AttributePricingAdjustmentPriceLineClass\n extends PriceAdjustmentPriceLineClass\n implements Entities.AttributePricingAdjustmentPriceLine {\n public CanCompoundOnAdjustedPrice: boolean;\n public PricingPriorityNumber: number;\n public AdjustedAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanCompoundOnAdjustedPrice = \n odataObject.CanCompoundOnAdjustedPrice;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.AdjustedAmount = \n (odataObject.AdjustedAmount != null) ? parseFloat(odataObject.AdjustedAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingAdjustmentPriceLineClass'] = AttributePricingAdjustmentPriceLineClass;\n \n /**\n * BasePriceLine entity class.\n */\n export class BasePriceLineClass\n extends PriceLineClass\n implements Entities.BasePriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.BasePriceLine\";\n \n }\n }\n entityDictionary['BasePriceLineClass'] = BasePriceLineClass;\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity class.\n */\n export class ExtensiblePeriodicDiscountOfferTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensiblePeriodicDiscountOfferType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensiblePeriodicDiscountOfferType\";\n \n }\n }\n entityDictionary['ExtensiblePeriodicDiscountOfferTypeClass'] = ExtensiblePeriodicDiscountOfferTypeClass;\n \n /**\n * ChargeLineOverride entity class.\n */\n export class ChargeLineOverrideClass implements Entities.ChargeLineOverride {\n public OriginalAmount: number;\n public OverrideAmount: number;\n public OverrideReasonDescription: string;\n public OverrideDateTime: Date;\n public UserId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalAmount = \n (odataObject.OriginalAmount != null) ? parseFloat(odataObject.OriginalAmount) : undefined;\n \n this.OverrideAmount = \n (odataObject.OverrideAmount != null) ? parseFloat(odataObject.OverrideAmount) : undefined;\n \n this.OverrideReasonDescription = \n odataObject.OverrideReasonDescription;\n \n this.OverrideDateTime = \n (odataObject.OverrideDateTime instanceof Date) ? odataObject.OverrideDateTime\n : (odataObject.OverrideDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OverrideDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.UserId = \n odataObject.UserId;\n \n }\n }\n entityDictionary['ChargeLineOverrideClass'] = ChargeLineOverrideClass;\n \n /**\n * TaxLineGTE entity class.\n */\n export class TaxLineGTEClass\n extends TaxLineClass\n implements Entities.TaxLineGTE {\n public TaxComponent: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaxComponent = \n odataObject.TaxComponent;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaxLineGTE\";\n \n }\n }\n entityDictionary['TaxLineGTEClass'] = TaxLineGTEClass;\n \n /**\n * TaxMeasure entity class.\n */\n export class TaxMeasureClass implements Entities.TaxMeasure {\n public Path: string;\n public Value: number;\n public DataAreaId: string;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Path = \n odataObject.Path;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxMeasureClass'] = TaxMeasureClass;\n \n /**\n * DetailedLineStatus entity class.\n */\n export class DetailedLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedLineStatus\";\n \n }\n }\n entityDictionary['DetailedLineStatusClass'] = DetailedLineStatusClass;\n \n /**\n * CardTokenInfo entity class.\n */\n export class CardTokenInfoClass implements Entities.CardTokenInfo {\n public CardToken: string;\n public UniqueCardId: string;\n public ServiceAccountId: string;\n public MaskedCardNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardToken = \n odataObject.CardToken;\n \n this.UniqueCardId = \n odataObject.UniqueCardId;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n }\n }\n entityDictionary['CardTokenInfoClass'] = CardTokenInfoClass;\n \n /**\n * DataverseTenderLine entity class.\n */\n export class DataverseTenderLineClass\n extends TenderLineClass\n implements Entities.DataverseTenderLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DataverseTenderLine\";\n \n }\n }\n entityDictionary['DataverseTenderLineClass'] = DataverseTenderLineClass;\n \n /**\n * PaymentError entity class.\n */\n export class PaymentErrorClass implements Entities.PaymentError {\n public Code: string;\n public Message: string;\n public IsLocalized: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.Message = \n odataObject.Message;\n \n this.IsLocalized = \n odataObject.IsLocalized;\n \n }\n }\n entityDictionary['PaymentErrorClass'] = PaymentErrorClass;\n \n /**\n * ProductAttributeMetadataFlags entity class.\n */\n export class ProductAttributeMetadataFlagsClass implements Entities.ProductAttributeMetadataFlags {\n public IsSearchable: boolean;\n public IsRetrievable: boolean;\n public IsQueryable: boolean;\n public IsRefinable: boolean;\n public IsSortable: boolean;\n public IsMultiValue: boolean;\n public IsTokenNormalization: boolean;\n public IsCompleteMatch: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSearchable = \n odataObject.IsSearchable;\n \n this.IsRetrievable = \n odataObject.IsRetrievable;\n \n this.IsQueryable = \n odataObject.IsQueryable;\n \n this.IsRefinable = \n odataObject.IsRefinable;\n \n this.IsSortable = \n odataObject.IsSortable;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsTokenNormalization = \n odataObject.IsTokenNormalization;\n \n this.IsCompleteMatch = \n odataObject.IsCompleteMatch;\n \n }\n }\n entityDictionary['ProductAttributeMetadataFlagsClass'] = ProductAttributeMetadataFlagsClass;\n \n /**\n * UnitOfMeasureConversion entity class.\n */\n export class UnitOfMeasureConversionClass implements Entities.UnitOfMeasureConversion {\n public ItemId: string;\n public FromUnitOfMeasureId: string;\n public ToUnitOfMeasureId: string;\n public FromUnitOfMeasureSymbol: string;\n public ToUnitOfMeasureSymbol: string;\n public IsBackward: boolean;\n public RecordId: number;\n public ProductRecordId: number;\n public Factor: number;\n public Numerator: number;\n public Denominator: number;\n public InnerOffset: number;\n public OuterOffset: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.FromUnitOfMeasureId = \n odataObject.FromUnitOfMeasureId;\n \n this.ToUnitOfMeasureId = \n odataObject.ToUnitOfMeasureId;\n \n this.FromUnitOfMeasureSymbol = \n odataObject.FromUnitOfMeasureSymbol;\n \n this.ToUnitOfMeasureSymbol = \n odataObject.ToUnitOfMeasureSymbol;\n \n this.IsBackward = \n odataObject.IsBackward;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.Factor = \n (odataObject.Factor != null) ? parseFloat(odataObject.Factor) : undefined;\n \n this.Numerator = \n odataObject.Numerator;\n \n this.Denominator = \n odataObject.Denominator;\n \n this.InnerOffset = \n (odataObject.InnerOffset != null) ? parseFloat(odataObject.InnerOffset) : undefined;\n \n this.OuterOffset = \n (odataObject.OuterOffset != null) ? parseFloat(odataObject.OuterOffset) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureConversionClass'] = UnitOfMeasureConversionClass;\n \n /**\n * ReturnLabelContent entity class.\n */\n export class ReturnLabelContentClass implements Entities.ReturnLabelContent {\n public ReturnLocationText: string;\n public ReturnWarehouseText: string;\n public ReturnReasonText: string;\n public ReturnPalleteText: string;\n public ItemId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnLocationText = \n odataObject.ReturnLocationText;\n \n this.ReturnWarehouseText = \n odataObject.ReturnWarehouseText;\n \n this.ReturnReasonText = \n odataObject.ReturnReasonText;\n \n this.ReturnPalleteText = \n odataObject.ReturnPalleteText;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnLabelContentClass'] = ReturnLabelContentClass;\n \n /**\n * LoyaltyRewardPointLine entity class.\n */\n export class LoyaltyRewardPointLineClass implements Entities.LoyaltyRewardPointLine {\n public TransactionId: string;\n public SaleLineNumber: number;\n public LoyaltyGroupRecordId: number;\n public LoyaltyCardNumber: string;\n public CustomerAccount: string;\n public EntryDate: Date;\n public EntryTime: number;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public LineNumber: number;\n public LoyaltyTierRecordId: number;\n public RewardPointRecordId: number;\n public RewardPointAmountQuantity: number;\n public RewardPointId: string;\n public RewardPointIsRedeemable: boolean;\n public RewardPointType: string;\n public RewardPointCurrency: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.LoyaltyGroupRecordId = \n (odataObject.LoyaltyGroupRecordId != null) ? parseInt(odataObject.LoyaltyGroupRecordId, 10) : undefined;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.EntryDate = \n (odataObject.EntryDate instanceof Date) ? odataObject.EntryDate\n : (odataObject.EntryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTime = \n odataObject.EntryTime;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.RewardPointRecordId = \n (odataObject.RewardPointRecordId != null) ? parseInt(odataObject.RewardPointRecordId, 10) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.RewardPointIsRedeemable = \n odataObject.RewardPointIsRedeemable;\n \n this.RewardPointType = \n odataObject.RewardPointType;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointLineClass'] = LoyaltyRewardPointLineClass;\n \n /**\n * TrackingInfo entity class.\n */\n export class TrackingInfoClass implements Entities.TrackingInfo {\n public TrackingNumber: string;\n public ServiceType: string;\n public PackageWeight: Entities.Weight;\n public ShippedOnDate: Date;\n public Status: string;\n public DeliveredOnDate: Date;\n public EstimatedDeliveryDate: Date;\n public TrackingUrl: string;\n public PackagingType: string;\n public DestinationAddress: Entities.Address;\n public OriginAddress: Entities.Address;\n public ShipmentProgress: Entities.ShipmentProgress[];\n public ShippingCharge: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.ServiceType = \n odataObject.ServiceType;\n \n if (odataObject.PackageWeight == null) {\n this.PackageWeight = undefined;\n } else if (odataObject.PackageWeight['@odata.type'] == null) {\n this.PackageWeight = new WeightClass(odataObject.PackageWeight);\n } else {\n var className: string = odataObject.PackageWeight['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PackageWeight = new entityDictionary[className](odataObject.PackageWeight)\n }\n }\n\n \n this.ShippedOnDate = \n (odataObject.ShippedOnDate instanceof Date) ? odataObject.ShippedOnDate\n : (odataObject.ShippedOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShippedOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.DeliveredOnDate = \n (odataObject.DeliveredOnDate instanceof Date) ? odataObject.DeliveredOnDate\n : (odataObject.DeliveredOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveredOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EstimatedDeliveryDate = \n (odataObject.EstimatedDeliveryDate instanceof Date) ? odataObject.EstimatedDeliveryDate\n : (odataObject.EstimatedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EstimatedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n this.PackagingType = \n odataObject.PackagingType;\n \n if (odataObject.DestinationAddress == null) {\n this.DestinationAddress = undefined;\n } else if (odataObject.DestinationAddress['@odata.type'] == null) {\n this.DestinationAddress = new AddressClass(odataObject.DestinationAddress);\n } else {\n var className: string = odataObject.DestinationAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationAddress = new entityDictionary[className](odataObject.DestinationAddress)\n }\n }\n\n \n if (odataObject.OriginAddress == null) {\n this.OriginAddress = undefined;\n } else if (odataObject.OriginAddress['@odata.type'] == null) {\n this.OriginAddress = new AddressClass(odataObject.OriginAddress);\n } else {\n var className: string = odataObject.OriginAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OriginAddress = new entityDictionary[className](odataObject.OriginAddress)\n }\n }\n\n \n this.ShipmentProgress = undefined;\n if (odataObject.ShipmentProgress) {\n this.ShipmentProgress = [];\n for (var i = 0; i < odataObject.ShipmentProgress.length; i++) {\n if (odataObject.ShipmentProgress[i] != null) {\n if (odataObject.ShipmentProgress[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentProgress[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentProgress[i] = new entityDictionary[className](odataObject.ShipmentProgress[i])\n }\n } else {\n this.ShipmentProgress[i] = new ShipmentProgressClass(odataObject.ShipmentProgress[i]);\n }\n } else {\n this.ShipmentProgress[i] = undefined;\n }\n }\n }\n \n this.ShippingCharge = \n (odataObject.ShippingCharge != null) ? parseFloat(odataObject.ShippingCharge) : undefined;\n \n }\n }\n entityDictionary['TrackingInfoClass'] = TrackingInfoClass;\n \n /**\n * Weight entity class.\n */\n export class WeightClass implements Entities.Weight {\n public Value: number;\n public Unit: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n }\n }\n entityDictionary['WeightClass'] = WeightClass;\n \n /**\n * ShipmentProgress entity class.\n */\n export class ShipmentProgressClass implements Entities.ShipmentProgress {\n public Location: Entities.Address;\n public DateTime: Date;\n public Activity: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Location == null) {\n this.Location = undefined;\n } else if (odataObject.Location['@odata.type'] == null) {\n this.Location = new AddressClass(odataObject.Location);\n } else {\n var className: string = odataObject.Location['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Location = new entityDictionary[className](odataObject.Location)\n }\n }\n\n \n this.DateTime = \n (odataObject.DateTime instanceof Date) ? odataObject.DateTime\n : (odataObject.DateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Activity = \n odataObject.Activity;\n \n }\n }\n entityDictionary['ShipmentProgressClass'] = ShipmentProgressClass;\n \n /**\n * ShiftKey entity class.\n */\n export class ShiftKeyClass implements Entities.ShiftKey {\n public ShiftTerminalId: string;\n public ShiftId: number;\n public Store: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftKeyClass'] = ShiftKeyClass;\n \n /**\n * LocalizedText entity class.\n */\n export class LocalizedTextClass implements Entities.LocalizedText {\n public RecordId: number;\n public LanguageId: string;\n public TextId: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedTextClass'] = LocalizedTextClass;\n \n /**\n * AddressFormattingInfo entity class.\n */\n export class AddressFormattingInfoClass implements Entities.AddressFormattingInfo {\n public AddressComponentNameValue: number;\n public LineNumber: number;\n public IsDataEntryOnly: boolean;\n public NewLine: boolean;\n public Expand: boolean;\n public Inactive: boolean;\n public Special: boolean;\n public NumberOfSpaces: number;\n public Separator: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressComponentNameValue = \n odataObject.AddressComponentNameValue;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.IsDataEntryOnly = \n odataObject.IsDataEntryOnly;\n \n this.NewLine = \n odataObject.NewLine;\n \n this.Expand = \n odataObject.Expand;\n \n this.Inactive = \n odataObject.Inactive;\n \n this.Special = \n odataObject.Special;\n \n this.NumberOfSpaces = \n odataObject.NumberOfSpaces;\n \n this.Separator = \n odataObject.Separator;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressFormattingInfoClass'] = AddressFormattingInfoClass;\n \n /**\n * HardwareConfigurations entity class.\n */\n export class HardwareConfigurationsClass implements Entities.HardwareConfigurations {\n public CashDrawerConfigurations: Entities.HardwareConfiguration[];\n public PrinterConfigurations: Entities.HardwareConfiguration[];\n public PinPadConfiguration: Entities.HardwareConfiguration;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashDrawerConfigurations = undefined;\n if (odataObject.CashDrawerConfigurations) {\n this.CashDrawerConfigurations = [];\n for (var i = 0; i < odataObject.CashDrawerConfigurations.length; i++) {\n if (odataObject.CashDrawerConfigurations[i] != null) {\n if (odataObject.CashDrawerConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawerConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawerConfigurations[i] = new entityDictionary[className](odataObject.CashDrawerConfigurations[i])\n }\n } else {\n this.CashDrawerConfigurations[i] = new HardwareConfigurationClass(odataObject.CashDrawerConfigurations[i]);\n }\n } else {\n this.CashDrawerConfigurations[i] = undefined;\n }\n }\n }\n \n this.PrinterConfigurations = undefined;\n if (odataObject.PrinterConfigurations) {\n this.PrinterConfigurations = [];\n for (var i = 0; i < odataObject.PrinterConfigurations.length; i++) {\n if (odataObject.PrinterConfigurations[i] != null) {\n if (odataObject.PrinterConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.PrinterConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PrinterConfigurations[i] = new entityDictionary[className](odataObject.PrinterConfigurations[i])\n }\n } else {\n this.PrinterConfigurations[i] = new HardwareConfigurationClass(odataObject.PrinterConfigurations[i]);\n }\n } else {\n this.PrinterConfigurations[i] = undefined;\n }\n }\n }\n \n if (odataObject.PinPadConfiguration == null) {\n this.PinPadConfiguration = undefined;\n } else if (odataObject.PinPadConfiguration['@odata.type'] == null) {\n this.PinPadConfiguration = new HardwareConfigurationClass(odataObject.PinPadConfiguration);\n } else {\n var className: string = odataObject.PinPadConfiguration['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PinPadConfiguration = new entityDictionary[className](odataObject.PinPadConfiguration)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationsClass'] = HardwareConfigurationsClass;\n \n /**\n * HardwareConfiguration entity class.\n */\n export class HardwareConfigurationClass implements Entities.HardwareConfiguration {\n public RecordId: number;\n public HardwareStationRecordId: number;\n public TerminalId: string;\n public DeviceName: string;\n public IPAddress: string;\n public Port: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationRecordId = \n (odataObject.HardwareStationRecordId != null) ? parseInt(odataObject.HardwareStationRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.IPAddress = \n odataObject.IPAddress;\n \n this.Port = \n odataObject.Port;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationClass'] = HardwareConfigurationClass;\n \n /**\n * Printer entity class.\n */\n export class PrinterClass implements Entities.Printer {\n public Name: string;\n public PrinterType: number;\n public Terminal: number;\n public PrintBehaviorValue: number;\n public ReceiptLayoutId: string;\n public HardwareProfileId: string;\n public ReceiptType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.PrinterType = \n odataObject.PrinterType;\n \n this.Terminal = \n (odataObject.Terminal != null) ? parseInt(odataObject.Terminal, 10) : undefined;\n \n this.PrintBehaviorValue = \n odataObject.PrintBehaviorValue;\n \n this.ReceiptLayoutId = \n odataObject.ReceiptLayoutId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.ReceiptType = \n odataObject.ReceiptType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PrinterClass'] = PrinterClass;\n \n /**\n * CustomerRefinerValue entity class.\n */\n export class CustomerRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.CustomerRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefinerValue\";\n \n }\n }\n entityDictionary['CustomerRefinerValueClass'] = CustomerRefinerValueClass;\n \n /**\n * TransferOrderJournalLine entity class.\n */\n export class TransferOrderJournalLineClass implements Entities.TransferOrderJournalLine {\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public TotalQuantityShipped: number;\n public QuantityShipped: number;\n public TransferQuantity: number;\n public UnitId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public DeliveryMethod: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.TransferQuantity = \n (odataObject.TransferQuantity != null) ? parseFloat(odataObject.TransferQuantity) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalLineClass'] = TransferOrderJournalLineClass;\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity class.\n */\n export class InventoryDocumentSourceSerialNumberLineClass implements Entities.InventoryDocumentSourceSerialNumberLine {\n public SourceDocumentTypeValue: number;\n public SourceDocumentId: string;\n public DocumentLineRecordId: number;\n public InventTransRecordId: number;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.DocumentLineRecordId = \n (odataObject.DocumentLineRecordId != null) ? parseInt(odataObject.DocumentLineRecordId, 10) : undefined;\n \n this.InventTransRecordId = \n (odataObject.InventTransRecordId != null) ? parseInt(odataObject.InventTransRecordId, 10) : undefined;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceSerialNumberLineClass'] = InventoryDocumentSourceSerialNumberLineClass;\n \n /**\n * KitTransactionLine entity class.\n */\n export class KitTransactionLineClass implements Entities.KitTransactionLine {\n public ItemId: string;\n public Quantity: number;\n public InventoryDimensionId: string;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitTransactionLineClass'] = KitTransactionLineClass;\n \n /**\n * StoreAddressBook entity class.\n */\n export class StoreAddressBookClass implements Entities.StoreAddressBook {\n public AddressBookId: number;\n public StoreId: number;\n public AddressBookTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressBookId = \n (odataObject.AddressBookId != null) ? parseInt(odataObject.AddressBookId, 10) : undefined;\n \n this.StoreId = \n (odataObject.StoreId != null) ? parseInt(odataObject.StoreId, 10) : undefined;\n \n this.AddressBookTypeValue = \n odataObject.AddressBookTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreAddressBookClass'] = StoreAddressBookClass;\n \n /**\n * TenderDetail entity class.\n */\n export class TenderDetailClass implements Entities.TenderDetail {\n public LineNumber: number;\n public Amount: number;\n public AmountInForeignCurrency: number;\n public ForeignCurrencyExchangeRate: number;\n public ForeignCurrency: string;\n public BankBagNumber: string;\n public TenderTypeId: string;\n public TenderRecount: number;\n public DenominationDetails: Entities.DenominationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountInForeignCurrency = \n (odataObject.AmountInForeignCurrency != null) ? parseFloat(odataObject.AmountInForeignCurrency) : undefined;\n \n this.ForeignCurrencyExchangeRate = \n (odataObject.ForeignCurrencyExchangeRate != null) ? parseFloat(odataObject.ForeignCurrencyExchangeRate) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.BankBagNumber = \n odataObject.BankBagNumber;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderRecount = \n odataObject.TenderRecount;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDetailClass'] = TenderDetailClass;\n \n /**\n * DenominationDetail entity class.\n */\n export class DenominationDetailClass implements Entities.DenominationDetail {\n public Type: number;\n public Currency: string;\n public DenominationAmount: number;\n public QuantityDeclared: number;\n public AmountDeclared: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Type = \n odataObject.Type;\n \n this.Currency = \n odataObject.Currency;\n \n this.DenominationAmount = \n (odataObject.DenominationAmount != null) ? parseFloat(odataObject.DenominationAmount) : undefined;\n \n this.QuantityDeclared = \n odataObject.QuantityDeclared;\n \n this.AmountDeclared = \n (odataObject.AmountDeclared != null) ? parseFloat(odataObject.AmountDeclared) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DenominationDetailClass'] = DenominationDetailClass;\n \n /**\n * ButtonGridZone entity class.\n */\n export class ButtonGridZoneClass implements Entities.ButtonGridZone {\n public ButtonGridId: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridId = \n odataObject.ButtonGridId;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridZoneClass'] = ButtonGridZoneClass;\n \n /**\n * ImageZone entity class.\n */\n export class ImageZoneClass implements Entities.ImageZone {\n public PictureId: number;\n public PictureAsBase64: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ImageZoneClass'] = ImageZoneClass;\n \n /**\n * ReportZone entity class.\n */\n export class ReportZoneClass implements Entities.ReportZone {\n public ReportRecordId: number;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportRecordId = \n (odataObject.ReportRecordId != null) ? parseInt(odataObject.ReportRecordId, 10) : undefined;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportZoneClass'] = ReportZoneClass;\n \n /**\n * SalesInvoiceLine entity class.\n */\n export class SalesInvoiceLineClass implements Entities.SalesInvoiceLine {\n public RecordId: number;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public InventDimensionId: string;\n public InventTransactionId: string;\n public Quantity: number;\n public Price: number;\n public DiscountPercent: number;\n public DiscountAmount: number;\n public BatchId: string;\n public NetAmount: number;\n public Site: string;\n public Warehouse: string;\n public SerialId: string;\n public ColorId: string;\n public SizeId: string;\n public StyleId: string;\n public ConfigId: string;\n public ColorName: string;\n public SizeName: string;\n public StyleName: string;\n public ConfigName: string;\n public SalesTaxGroup: string;\n public ItemTaxGroup: string;\n public SalesMarkup: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public PeriodicPercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.InventTransactionId = \n odataObject.InventTransactionId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.Site = \n odataObject.Site;\n \n this.Warehouse = \n odataObject.Warehouse;\n \n this.SerialId = \n odataObject.SerialId;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.ColorName = \n odataObject.ColorName;\n \n this.SizeName = \n odataObject.SizeName;\n \n this.StyleName = \n odataObject.StyleName;\n \n this.ConfigName = \n odataObject.ConfigName;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.ItemTaxGroup = \n odataObject.ItemTaxGroup;\n \n this.SalesMarkup = \n (odataObject.SalesMarkup != null) ? parseFloat(odataObject.SalesMarkup) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceLineClass'] = SalesInvoiceLineClass;\n \n /**\n * ReportRow entity class.\n */\n export class ReportRowClass implements Entities.ReportRow {\n public RowData: Entities.CommerceProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RowData = undefined;\n if (odataObject.RowData) {\n this.RowData = [];\n for (var i = 0; i < odataObject.RowData.length; i++) {\n if (odataObject.RowData[i] != null) {\n if (odataObject.RowData[i]['@odata.type'] != null) {\n var className: string = odataObject.RowData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RowData[i] = new entityDictionary[className](odataObject.RowData[i])\n }\n } else {\n this.RowData[i] = new CommercePropertyClass(odataObject.RowData[i]);\n }\n } else {\n this.RowData[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportRowClass'] = ReportRowClass;\n \n /**\n * FormAnnotation entity class.\n */\n export class FormAnnotationClass\n extends AnnotationClass\n implements Entities.FormAnnotation {\n public MenuItemLabel: string;\n public MenuItemName: string;\n public MenuItemType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemLabel = \n odataObject.MenuItemLabel;\n \n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormAnnotation\";\n \n }\n }\n entityDictionary['FormAnnotationClass'] = FormAnnotationClass;\n \n /**\n * TaskGuideAnnotation entity class.\n */\n export class TaskGuideAnnotationClass\n extends AnnotationClass\n implements Entities.TaskGuideAnnotation {\n public RecordingValueType: string;\n public Title: string;\n public ExampleText: string;\n public Hidden: boolean;\n public GlobalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RecordingValueType = \n odataObject.RecordingValueType;\n \n this.Title = \n odataObject.Title;\n \n this.ExampleText = \n odataObject.ExampleText;\n \n this.Hidden = \n odataObject.Hidden;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskGuideAnnotation\";\n \n }\n }\n entityDictionary['TaskGuideAnnotationClass'] = TaskGuideAnnotationClass;\n \n /**\n * CommandArgument entity class.\n */\n export class CommandArgumentClass implements Entities.CommandArgument {\n public Value: string;\n public IsReference: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.IsReference = \n odataObject.IsReference;\n \n }\n }\n entityDictionary['CommandArgumentClass'] = CommandArgumentClass;\n \n /**\n * PropertyUserAction entity class.\n */\n export class PropertyUserActionClass\n extends FormUserActionClass\n implements Entities.PropertyUserAction {\n public Value: string;\n public ValueLabel: string;\n public PropertyName: string;\n public ControlName: string;\n public ControlType: string;\n public UserActionType: string;\n public IsReference: boolean;\n public LabelId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ValueLabel = \n odataObject.ValueLabel;\n \n this.PropertyName = \n odataObject.PropertyName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.UserActionType = \n odataObject.UserActionType;\n \n this.IsReference = \n odataObject.IsReference;\n \n this.LabelId = \n odataObject.LabelId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PropertyUserAction\";\n \n }\n }\n entityDictionary['PropertyUserActionClass'] = PropertyUserActionClass;\n \n /**\n * InfoUserAction entity class.\n */\n export class InfoUserActionClass\n extends UserActionClass\n implements Entities.InfoUserAction {\n public FormId: string;\n public ControlLabel: string;\n public ControlLabelId: string;\n public ControlName: string;\n public Text: string;\n public Notes: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this.ControlLabelId = \n odataObject.ControlLabelId;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.Text = \n odataObject.Text;\n \n this.Notes = \n odataObject.Notes;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InfoUserAction\";\n \n }\n }\n entityDictionary['InfoUserActionClass'] = InfoUserActionClass;\n \n /**\n * MenuItemUserAction entity class.\n */\n export class MenuItemUserActionClass\n extends UserActionClass\n implements Entities.MenuItemUserAction {\n public MenuItemName: string;\n public MenuItemType: string;\n public NavigationPath: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this.NavigationPath = undefined;\n if (odataObject.NavigationPath) {\n this.NavigationPath = [];\n for (var i = 0; i < odataObject.NavigationPath.length; i++) {\n if (odataObject.NavigationPath[i] != null) {\n this.NavigationPath[i] = \n odataObject.NavigationPath[i];\n } else {\n this.NavigationPath[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.MenuItemUserAction\";\n \n }\n }\n entityDictionary['MenuItemUserActionClass'] = MenuItemUserActionClass;\n \n /**\n * ValidationUserAction entity class.\n */\n export class ValidationUserActionClass\n extends UserActionClass\n implements Entities.ValidationUserAction {\n public Name: string;\n public Comment: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ValidationUserAction\";\n \n }\n }\n entityDictionary['ValidationUserActionClass'] = ValidationUserActionClass;\n \n /**\n * ArtifactSummary entity class.\n */\n export class ArtifactSummaryClass implements Entities.ArtifactSummary {\n public ArtifactType: string;\n public LanguageTags: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ArtifactType = \n odataObject.ArtifactType;\n \n this.LanguageTags = undefined;\n if (odataObject.LanguageTags) {\n this.LanguageTags = [];\n for (var i = 0; i < odataObject.LanguageTags.length; i++) {\n if (odataObject.LanguageTags[i] != null) {\n this.LanguageTags[i] = \n odataObject.LanguageTags[i];\n } else {\n this.LanguageTags[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ArtifactSummaryClass'] = ArtifactSummaryClass;\n \n /**\n * MetadataPropertyValue entity class.\n */\n export class MetadataPropertyValueClass implements Entities.MetadataPropertyValue {\n public PropertyId: string;\n public SingleValue: string;\n public MultiValue: Entities.MetadataText[];\n public Tags: string[];\n public ComboBox: string;\n public MultiSelect: string[];\n public Links: Entities.MetadataHypertextLink[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PropertyId = \n odataObject.PropertyId;\n \n this.SingleValue = \n odataObject.SingleValue;\n \n this.MultiValue = undefined;\n if (odataObject.MultiValue) {\n this.MultiValue = [];\n for (var i = 0; i < odataObject.MultiValue.length; i++) {\n if (odataObject.MultiValue[i] != null) {\n if (odataObject.MultiValue[i]['@odata.type'] != null) {\n var className: string = odataObject.MultiValue[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MultiValue[i] = new entityDictionary[className](odataObject.MultiValue[i])\n }\n } else {\n this.MultiValue[i] = new MetadataTextClass(odataObject.MultiValue[i]);\n }\n } else {\n this.MultiValue[i] = undefined;\n }\n }\n }\n \n this.Tags = undefined;\n if (odataObject.Tags) {\n this.Tags = [];\n for (var i = 0; i < odataObject.Tags.length; i++) {\n if (odataObject.Tags[i] != null) {\n this.Tags[i] = \n odataObject.Tags[i];\n } else {\n this.Tags[i] = undefined;\n }\n }\n }\n \n this.ComboBox = \n odataObject.ComboBox;\n \n this.MultiSelect = undefined;\n if (odataObject.MultiSelect) {\n this.MultiSelect = [];\n for (var i = 0; i < odataObject.MultiSelect.length; i++) {\n if (odataObject.MultiSelect[i] != null) {\n this.MultiSelect[i] = \n odataObject.MultiSelect[i];\n } else {\n this.MultiSelect[i] = undefined;\n }\n }\n }\n \n this.Links = undefined;\n if (odataObject.Links) {\n this.Links = [];\n for (var i = 0; i < odataObject.Links.length; i++) {\n if (odataObject.Links[i] != null) {\n if (odataObject.Links[i]['@odata.type'] != null) {\n var className: string = odataObject.Links[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Links[i] = new entityDictionary[className](odataObject.Links[i])\n }\n } else {\n this.Links[i] = new MetadataHypertextLinkClass(odataObject.Links[i]);\n }\n } else {\n this.Links[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MetadataPropertyValueClass'] = MetadataPropertyValueClass;\n \n /**\n * FormContext entity class.\n */\n export class FormContextClass implements Entities.FormContext {\n public FormID: string;\n public FormName: string;\n public RecordingName: string;\n public HasMetadata: boolean;\n public Sequence: number;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormID = \n odataObject.FormID;\n \n this.FormName = \n odataObject.FormName;\n \n this.RecordingName = \n odataObject.RecordingName;\n \n this.HasMetadata = \n odataObject.HasMetadata;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FormContextClass'] = FormContextClass;\n \n /**\n * ExtensibleFiscalRegistrationType entity class.\n */\n export class ExtensibleFiscalRegistrationTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleFiscalRegistrationType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleFiscalRegistrationType\";\n \n }\n }\n entityDictionary['ExtensibleFiscalRegistrationTypeClass'] = ExtensibleFiscalRegistrationTypeClass;\n \n /**\n * FiscalTransactionTenderLineAdjustment entity class.\n */\n export class FiscalTransactionTenderLineAdjustmentClass implements Entities.FiscalTransactionTenderLineAdjustment {\n public TenderLineNumber: number;\n public AdjustmentAmount: number;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineNumber = \n (odataObject.TenderLineNumber != null) ? parseFloat(odataObject.TenderLineNumber) : undefined;\n \n this.AdjustmentAmount = \n (odataObject.AdjustmentAmount != null) ? parseFloat(odataObject.AdjustmentAmount) : undefined;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionTenderLineAdjustmentClass'] = FiscalTransactionTenderLineAdjustmentClass;\n \n /**\n * FiscalTransactionSalesLineAdjustment entity class.\n */\n export class FiscalTransactionSalesLineAdjustmentClass implements Entities.FiscalTransactionSalesLineAdjustment {\n public SalesLineNumber: number;\n public Exclude: boolean;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Exclude = \n odataObject.Exclude;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionSalesLineAdjustmentClass'] = FiscalTransactionSalesLineAdjustmentClass;\n \n /**\n * DetailedOrderStatus entity class.\n */\n export class DetailedOrderStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedOrderStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedOrderStatus\";\n \n }\n }\n entityDictionary['DetailedOrderStatusClass'] = DetailedOrderStatusClass;\n \n /**\n * LineValidationResult entity class.\n */\n export class LineValidationResultClass implements Entities.LineValidationResult {\n public LineId: string;\n public ValidationFailures: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.ValidationFailures = undefined;\n if (odataObject.ValidationFailures) {\n this.ValidationFailures = [];\n for (var i = 0; i < odataObject.ValidationFailures.length; i++) {\n if (odataObject.ValidationFailures[i] != null) {\n if (odataObject.ValidationFailures[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailures[i] = new entityDictionary[className](odataObject.ValidationFailures[i])\n }\n } else {\n this.ValidationFailures[i] = new DataValidationFailureClass(odataObject.ValidationFailures[i]);\n }\n } else {\n this.ValidationFailures[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineValidationResultClass'] = LineValidationResultClass;\n \n /**\n * SalesAffiliationLoyaltyTier entity class.\n */\n export class SalesAffiliationLoyaltyTierClass\n extends AffiliationLoyaltyTierClass\n implements Entities.SalesAffiliationLoyaltyTier {\n public TransactionId: string;\n public ChannelId: number;\n public TerminalId: string;\n public ReceiptId: string;\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAffiliationLoyaltyTier\";\n \n }\n }\n entityDictionary['SalesAffiliationLoyaltyTierClass'] = SalesAffiliationLoyaltyTierClass;\n \n /**\n * TaxViewLine entity class.\n */\n export class TaxViewLineClass implements Entities.TaxViewLine {\n public TaxId: string;\n public TaxAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxId = \n odataObject.TaxId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n }\n }\n entityDictionary['TaxViewLineClass'] = TaxViewLineClass;\n \n /**\n * Coupon entity class.\n */\n export class CouponClass implements Entities.Coupon {\n public CodeId: string;\n public Code: string;\n public DiscountOfferId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CodeId = \n odataObject.CodeId;\n \n this.Code = \n odataObject.Code;\n \n this.DiscountOfferId = \n odataObject.DiscountOfferId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CouponClass'] = CouponClass;\n \n /**\n * CustomerAccountDepositLine entity class.\n */\n export class CustomerAccountDepositLineClass implements Entities.CustomerAccountDepositLine {\n public Amount: number;\n public CustomerAccount: string;\n public Comment: string;\n public StoreNumber: string;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.Comment = \n odataObject.Comment;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAccountDepositLineClass'] = CustomerAccountDepositLineClass;\n \n /**\n * CustomerAttribute entity class.\n */\n export class CustomerAttributeClass implements Entities.CustomerAttribute {\n public AttributeValue: Entities.CommercePropertyValue;\n public Units: string;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new CommercePropertyValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.Units = \n odataObject.Units;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAttributeClass'] = CustomerAttributeClass;\n \n /**\n * ContactInfo entity class.\n */\n export class ContactInfoClass implements Entities.ContactInfo {\n public AddressTypeValue: number;\n public RecordId: number;\n public PartyLocationRecordId: number;\n public PartyRecordId: number;\n public PartyNumber: string;\n public Description: string;\n public Value: string;\n public ValueExtension: string;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public ParentLocation: number;\n public IsPrimary: boolean;\n public IsMobilePhone: boolean;\n public IsPrivate: boolean;\n public IsOptedInMarketing: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PartyLocationRecordId = \n (odataObject.PartyLocationRecordId != null) ? parseInt(odataObject.PartyLocationRecordId, 10) : undefined;\n \n this.PartyRecordId = \n (odataObject.PartyRecordId != null) ? parseInt(odataObject.PartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.Description = \n odataObject.Description;\n \n this.Value = \n odataObject.Value;\n \n this.ValueExtension = \n odataObject.ValueExtension;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.ParentLocation = \n (odataObject.ParentLocation != null) ? parseInt(odataObject.ParentLocation, 10) : undefined;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsMobilePhone = \n odataObject.IsMobilePhone;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsOptedInMarketing = \n odataObject.IsOptedInMarketing;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInfoClass'] = ContactInfoClass;\n \n /**\n * InventoryQuantities entity class.\n */\n export class InventoryQuantitiesClass implements Entities.InventoryQuantities {\n public UnitOfMeasure: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public QuantityReturned: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.QuantityReturned = \n (odataObject.QuantityReturned != null) ? parseFloat(odataObject.QuantityReturned) : undefined;\n \n }\n }\n entityDictionary['InventoryQuantitiesClass'] = InventoryQuantitiesClass;\n \n /**\n * DeliveryInformation entity class.\n */\n export class DeliveryInformationClass implements Entities.DeliveryInformation {\n public DeliveryMode: string;\n public DeliveryAddress: Entities.Address;\n public DeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['DeliveryInformationClass'] = DeliveryInformationClass;\n \n /**\n * ShiftTaxLine entity class.\n */\n export class ShiftTaxLineClass implements Entities.ShiftTaxLine {\n public TaxCode: string;\n public TaxAmount: number;\n public TaxRate: number;\n public NetAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxCode = \n odataObject.TaxCode;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxRate = \n (odataObject.TaxRate != null) ? parseFloat(odataObject.TaxRate) : undefined;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTaxLineClass'] = ShiftTaxLineClass;\n \n /**\n * TaxRegistration entity class.\n */\n export class TaxRegistrationClass implements Entities.TaxRegistration {\n public RecordId: number;\n public Name: string;\n public CountryRegionId: string;\n public IsRegistrationNumberUnique: boolean;\n public IsPrimaryAddressRestricted: boolean;\n public TypeApplicabilityRuleRecordId: number;\n public TypeValue: number;\n public Description: string;\n public DirPartyLocationRecordId: number;\n public RegistrationNumber: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public Issuer: string;\n public IssueDate: Date;\n public Section: string;\n public DirectoryPartyRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsRegistrationNumberUnique = \n odataObject.IsRegistrationNumberUnique;\n \n this.IsPrimaryAddressRestricted = \n odataObject.IsPrimaryAddressRestricted;\n \n this.TypeApplicabilityRuleRecordId = \n (odataObject.TypeApplicabilityRuleRecordId != null) ? parseInt(odataObject.TypeApplicabilityRuleRecordId, 10) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DirPartyLocationRecordId = \n (odataObject.DirPartyLocationRecordId != null) ? parseInt(odataObject.DirPartyLocationRecordId, 10) : undefined;\n \n this.RegistrationNumber = \n odataObject.RegistrationNumber;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.IssueDate = \n (odataObject.IssueDate instanceof Date) ? odataObject.IssueDate\n : (odataObject.IssueDate != null) ? jsonLightReadStringPropertyValue(odataObject.IssueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Section = \n odataObject.Section;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxRegistrationClass'] = TaxRegistrationClass;\n \n /**\n * ChannelTaxRegistration entity class.\n */\n export class ChannelTaxRegistrationClass\n extends TaxRegistrationClass\n implements Entities.ChannelTaxRegistration {\n public ChannelId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ChannelTaxRegistration\";\n \n }\n }\n entityDictionary['ChannelTaxRegistrationClass'] = ChannelTaxRegistrationClass;\n \n /**\n * LinkedProduct entity class.\n */\n export class LinkedProductClass implements Entities.LinkedProduct {\n public ProductRecordId: number;\n public LinkedProductRecordId: number;\n public Quantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.LinkedProductRecordId = \n (odataObject.LinkedProductRecordId != null) ? parseInt(odataObject.LinkedProductRecordId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LinkedProductClass'] = LinkedProductClass;\n \n /**\n * DisplayOrderInCategory entity class.\n */\n export class DisplayOrderInCategoryClass implements Entities.DisplayOrderInCategory {\n public CategoryRecordId: number;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryRecordId = \n (odataObject.CategoryRecordId != null) ? parseInt(odataObject.CategoryRecordId, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DisplayOrderInCategoryClass'] = DisplayOrderInCategoryClass;\n \n /**\n * RelatedProduct entity class.\n */\n export class RelatedProductClass implements Entities.RelatedProduct {\n public ProductRecordId: number;\n public RelatedProductRecordId: number;\n public CatalogId: number;\n public RelationName: string;\n public IsExcludedRelation: boolean;\n public IsDirectRelation: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.RelatedProductRecordId = \n (odataObject.RelatedProductRecordId != null) ? parseInt(odataObject.RelatedProductRecordId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.RelationName = \n odataObject.RelationName;\n \n this.IsExcludedRelation = \n odataObject.IsExcludedRelation;\n \n this.IsDirectRelation = \n odataObject.IsDirectRelation;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RelatedProductClass'] = RelatedProductClass;\n \n /**\n * KitComponent entity class.\n */\n export class KitComponentClass implements Entities.KitComponent {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitComponentClass'] = KitComponentClass;\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity class.\n */\n export class ChannelReferenceAdditionalLookupCriteriaClass implements Entities.ChannelReferenceAdditionalLookupCriteria {\n public OrderLookupAdditionalCriteriaTypeValue: number;\n public OrderLookupAdditionalCriteriaTypeParameterValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderLookupAdditionalCriteriaTypeValue = \n odataObject.OrderLookupAdditionalCriteriaTypeValue;\n \n this.OrderLookupAdditionalCriteriaTypeParameterValue = \n odataObject.OrderLookupAdditionalCriteriaTypeParameterValue;\n \n }\n }\n entityDictionary['ChannelReferenceAdditionalLookupCriteriaClass'] = ChannelReferenceAdditionalLookupCriteriaClass;\n \n /**\n * UserAlertFulfillmentLineParameter entity class.\n */\n export class UserAlertFulfillmentLineParameterClass\n extends FulfillmentLineParameterClass\n implements Entities.UserAlertFulfillmentLineParameter {\n public ItemId: string;\n public ProductId: number;\n public UnitOfMeasure: string;\n public SerialNumberInLatestFulfillmentTransaction: string;\n public LatestFulfillmentTransactionOperationTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.SerialNumberInLatestFulfillmentTransaction = \n odataObject.SerialNumberInLatestFulfillmentTransaction;\n \n this.LatestFulfillmentTransactionOperationTypeValue = \n odataObject.LatestFulfillmentTransactionOperationTypeValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAlertFulfillmentLineParameter\";\n \n }\n }\n entityDictionary['UserAlertFulfillmentLineParameterClass'] = UserAlertFulfillmentLineParameterClass;\n \n /**\n * ListingIdentity entity class.\n */\n export class ListingIdentityClass implements Entities.ListingIdentity {\n public ProductId: number;\n public LanguageId: string;\n public CatalogId: number;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingIdentityClass'] = ListingIdentityClass;\n \n /**\n * ProductRatingCount entity class.\n */\n export class ProductRatingCountClass implements Entities.ProductRatingCount {\n public Rating: number;\n public Count: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Rating = \n (odataObject.Rating != null) ? parseFloat(odataObject.Rating) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingCountClass'] = ProductRatingCountClass;\n \n /**\n * RegularStoreHours entity class.\n */\n export class RegularStoreHoursClass implements Entities.RegularStoreHours {\n public MondayOpenTime: number;\n public MondayCloseTime: number;\n public IsClosedOnMonday: boolean;\n public TuesdayOpenTime: number;\n public TuesdayCloseTime: number;\n public IsClosedOnTuesday: boolean;\n public WednesdayOpenTime: number;\n public WednesdayCloseTime: number;\n public IsClosedOnWednesday: boolean;\n public ThursdayOpenTime: number;\n public ThursdayCloseTime: number;\n public IsClosedOnThursday: boolean;\n public FridayOpenTime: number;\n public FridayCloseTime: number;\n public IsClosedOnFriday: boolean;\n public SaturdayOpenTime: number;\n public SaturdayCloseTime: number;\n public IsClosedOnSaturday: boolean;\n public SundayOpenTime: number;\n public SundayCloseTime: number;\n public IsClosedOnSunday: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MondayOpenTime = \n odataObject.MondayOpenTime;\n \n this.MondayCloseTime = \n odataObject.MondayCloseTime;\n \n this.IsClosedOnMonday = \n odataObject.IsClosedOnMonday;\n \n this.TuesdayOpenTime = \n odataObject.TuesdayOpenTime;\n \n this.TuesdayCloseTime = \n odataObject.TuesdayCloseTime;\n \n this.IsClosedOnTuesday = \n odataObject.IsClosedOnTuesday;\n \n this.WednesdayOpenTime = \n odataObject.WednesdayOpenTime;\n \n this.WednesdayCloseTime = \n odataObject.WednesdayCloseTime;\n \n this.IsClosedOnWednesday = \n odataObject.IsClosedOnWednesday;\n \n this.ThursdayOpenTime = \n odataObject.ThursdayOpenTime;\n \n this.ThursdayCloseTime = \n odataObject.ThursdayCloseTime;\n \n this.IsClosedOnThursday = \n odataObject.IsClosedOnThursday;\n \n this.FridayOpenTime = \n odataObject.FridayOpenTime;\n \n this.FridayCloseTime = \n odataObject.FridayCloseTime;\n \n this.IsClosedOnFriday = \n odataObject.IsClosedOnFriday;\n \n this.SaturdayOpenTime = \n odataObject.SaturdayOpenTime;\n \n this.SaturdayCloseTime = \n odataObject.SaturdayCloseTime;\n \n this.IsClosedOnSaturday = \n odataObject.IsClosedOnSaturday;\n \n this.SundayOpenTime = \n odataObject.SundayOpenTime;\n \n this.SundayCloseTime = \n odataObject.SundayCloseTime;\n \n this.IsClosedOnSunday = \n odataObject.IsClosedOnSunday;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RegularStoreHoursClass'] = RegularStoreHoursClass;\n \n /**\n * ValidationPeriod entity class.\n */\n export class ValidationPeriodClass implements Entities.ValidationPeriod {\n public RecordId: number;\n public PeriodId: string;\n public Description: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public StartingTime: number;\n public EndingTime: number;\n public IsTimeBounded: number;\n public MondayStartingTime: number;\n public MondayEndingTime: number;\n public IsMondayTimeBounded: number;\n public TuesdayStartingTime: number;\n public TuesdayEndingTime: number;\n public IsTuesdayTimeBounded: number;\n public WednesdayStartingTime: number;\n public WednesdayEndingTime: number;\n public IsWednesdayTimeBounded: number;\n public ThursdayStartingTime: number;\n public ThursdayEndingTime: number;\n public IsThursdayTimeBounded: number;\n public FridayStartingTime: number;\n public FridayEndingTime: number;\n public IsFridayTimeBounded: number;\n public SaturdayStartingTime: number;\n public SaturdayEndingTime: number;\n public IsSaturdayTimeBounded: number;\n public SundayStartingTime: number;\n public SundayEndingTime: number;\n public IsSundayTimeBounded: number;\n public IsEndTimeAfterMidnight: number;\n public IsMondayEndTimeAfterMidnight: number;\n public IsTuesdayEndTimeAfterMidnight: number;\n public IsWednesdayEndTimeAfterMidnight: number;\n public IsThursdayEndTimeAfterMidnight: number;\n public IsFridayEndTimeAfterMidnight: number;\n public IsSaturdayEndTimeAfterMidnight: number;\n public IsSundayEndTimeAfterMidnight: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PeriodId = \n odataObject.PeriodId;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StartingTime = \n odataObject.StartingTime;\n \n this.EndingTime = \n odataObject.EndingTime;\n \n this.IsTimeBounded = \n odataObject.IsTimeBounded;\n \n this.MondayStartingTime = \n odataObject.MondayStartingTime;\n \n this.MondayEndingTime = \n odataObject.MondayEndingTime;\n \n this.IsMondayTimeBounded = \n odataObject.IsMondayTimeBounded;\n \n this.TuesdayStartingTime = \n odataObject.TuesdayStartingTime;\n \n this.TuesdayEndingTime = \n odataObject.TuesdayEndingTime;\n \n this.IsTuesdayTimeBounded = \n odataObject.IsTuesdayTimeBounded;\n \n this.WednesdayStartingTime = \n odataObject.WednesdayStartingTime;\n \n this.WednesdayEndingTime = \n odataObject.WednesdayEndingTime;\n \n this.IsWednesdayTimeBounded = \n odataObject.IsWednesdayTimeBounded;\n \n this.ThursdayStartingTime = \n odataObject.ThursdayStartingTime;\n \n this.ThursdayEndingTime = \n odataObject.ThursdayEndingTime;\n \n this.IsThursdayTimeBounded = \n odataObject.IsThursdayTimeBounded;\n \n this.FridayStartingTime = \n odataObject.FridayStartingTime;\n \n this.FridayEndingTime = \n odataObject.FridayEndingTime;\n \n this.IsFridayTimeBounded = \n odataObject.IsFridayTimeBounded;\n \n this.SaturdayStartingTime = \n odataObject.SaturdayStartingTime;\n \n this.SaturdayEndingTime = \n odataObject.SaturdayEndingTime;\n \n this.IsSaturdayTimeBounded = \n odataObject.IsSaturdayTimeBounded;\n \n this.SundayStartingTime = \n odataObject.SundayStartingTime;\n \n this.SundayEndingTime = \n odataObject.SundayEndingTime;\n \n this.IsSundayTimeBounded = \n odataObject.IsSundayTimeBounded;\n \n this.IsEndTimeAfterMidnight = \n odataObject.IsEndTimeAfterMidnight;\n \n this.IsMondayEndTimeAfterMidnight = \n odataObject.IsMondayEndTimeAfterMidnight;\n \n this.IsTuesdayEndTimeAfterMidnight = \n odataObject.IsTuesdayEndTimeAfterMidnight;\n \n this.IsWednesdayEndTimeAfterMidnight = \n odataObject.IsWednesdayEndTimeAfterMidnight;\n \n this.IsThursdayEndTimeAfterMidnight = \n odataObject.IsThursdayEndTimeAfterMidnight;\n \n this.IsFridayEndTimeAfterMidnight = \n odataObject.IsFridayEndTimeAfterMidnight;\n \n this.IsSaturdayEndTimeAfterMidnight = \n odataObject.IsSaturdayEndTimeAfterMidnight;\n \n this.IsSundayEndTimeAfterMidnight = \n odataObject.IsSundayEndTimeAfterMidnight;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidationPeriodClass'] = ValidationPeriodClass;\n \n /**\n * ClientBookChange entity class.\n */\n export class ClientBookChangeClass implements Entities.ClientBookChange {\n public FromStaffId: string;\n public ToStaffId: string;\n public CustomerId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromStaffId = \n odataObject.FromStaffId;\n \n this.ToStaffId = \n odataObject.ToStaffId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n }\n }\n entityDictionary['ClientBookChangeClass'] = ClientBookChangeClass;\n \n /**\n * ChannelProfile entity class.\n */\n export class ChannelProfileClass implements Entities.ChannelProfile {\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfileClass'] = ChannelProfileClass;\n \n /**\n * RetailSharedConfigurationParameter entity class.\n */\n export class RetailSharedConfigurationParameterClass implements Entities.RetailSharedConfigurationParameter {\n public RecordId: number;\n public Name: string;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RetailSharedConfigurationParameterClass'] = RetailSharedConfigurationParameterClass;\n \n /**\n * CDXDataStore entity class.\n */\n export class CDXDataStoreClass implements Entities.CDXDataStore {\n public Name: string;\n public RecId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CDXDataStoreClass'] = CDXDataStoreClass;\n \n /**\n * UploadJobPackageRequest entity class.\n */\n export class UploadJobPackageRequestClass implements Entities.UploadJobPackageRequest {\n public JobId: string;\n public RerunUploadSessionId: number;\n public TargetStorage: string;\n public UploadJobDefintion: string;\n public UploadUrl: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JobId = \n odataObject.JobId;\n \n this.RerunUploadSessionId = \n (odataObject.RerunUploadSessionId != null) ? parseInt(odataObject.RerunUploadSessionId, 10) : undefined;\n \n this.TargetStorage = \n odataObject.TargetStorage;\n \n this.UploadJobDefintion = \n odataObject.UploadJobDefintion;\n \n this.UploadUrl = \n odataObject.UploadUrl;\n \n }\n }\n entityDictionary['UploadJobPackageRequestClass'] = UploadJobPackageRequestClass;\n \n /**\n * ExtensibleAuditEventType entity class.\n */\n export class ExtensibleAuditEventTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAuditEventType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAuditEventType\";\n \n }\n }\n entityDictionary['ExtensibleAuditEventTypeClass'] = ExtensibleAuditEventTypeClass;\n \n /**\n * AuditEventFiscalTransaction entity class.\n */\n export class AuditEventFiscalTransactionClass implements Entities.AuditEventFiscalTransaction {\n public EventId: number;\n public LineNumber: number;\n public RegisterResponse: string;\n public Store: string;\n public TransDateTime: Date;\n public Terminal: string;\n public UploadType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.Store = \n odataObject.Store;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalTransactionClass'] = AuditEventFiscalTransactionClass;\n \n /**\n * AuditEventFiscalRegistrationLine entity class.\n */\n export class AuditEventFiscalRegistrationLineClass implements Entities.AuditEventFiscalRegistrationLine {\n public EventId: number;\n public RegisterResponse: string;\n public StoreId: string;\n public TransactionDateTime: Date;\n public TerminalId: string;\n public UploadType: string;\n public UploadTypeValue: number;\n public StaffId: string;\n public RecordGuid: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TransactionDateTime = \n (odataObject.TransactionDateTime instanceof Date) ? odataObject.TransactionDateTime\n : (odataObject.TransactionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.UploadTypeValue = \n odataObject.UploadTypeValue;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalRegistrationLineClass'] = AuditEventFiscalRegistrationLineClass;\n \n /**\n * NotificationDetail entity class.\n */\n export class NotificationDetailClass implements Entities.NotificationDetail {\n public ActionProperty: string;\n public ItemCount: number;\n public DisplayText: string;\n public IsNew: boolean;\n public LastUpdatedDateTimeStr: string;\n public IsSuccess: boolean;\n public IsLiveContentOnly: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActionProperty = \n odataObject.ActionProperty;\n \n this.ItemCount = \n (odataObject.ItemCount != null) ? parseInt(odataObject.ItemCount, 10) : undefined;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n this.IsNew = \n odataObject.IsNew;\n \n this.LastUpdatedDateTimeStr = \n odataObject.LastUpdatedDateTimeStr;\n \n this.IsSuccess = \n odataObject.IsSuccess;\n \n this.IsLiveContentOnly = \n odataObject.IsLiveContentOnly;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationDetailClass'] = NotificationDetailClass;\n \n /**\n * FiscalIntegrationDocumentContext entity class.\n */\n export class FiscalIntegrationDocumentContextClass implements Entities.FiscalIntegrationDocumentContext {\n public AuditEvent: Entities.AuditEvent;\n public SignatureData: Entities.FiscalIntegrationSequentialSignatureData[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AuditEvent == null) {\n this.AuditEvent = undefined;\n } else if (odataObject.AuditEvent['@odata.type'] == null) {\n this.AuditEvent = new AuditEventClass(odataObject.AuditEvent);\n } else {\n var className: string = odataObject.AuditEvent['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AuditEvent = new entityDictionary[className](odataObject.AuditEvent)\n }\n }\n\n \n this.SignatureData = undefined;\n if (odataObject.SignatureData) {\n this.SignatureData = [];\n for (var i = 0; i < odataObject.SignatureData.length; i++) {\n if (odataObject.SignatureData[i] != null) {\n if (odataObject.SignatureData[i]['@odata.type'] != null) {\n var className: string = odataObject.SignatureData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SignatureData[i] = new entityDictionary[className](odataObject.SignatureData[i])\n }\n } else {\n this.SignatureData[i] = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SignatureData[i]);\n }\n } else {\n this.SignatureData[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentContextClass'] = FiscalIntegrationDocumentContextClass;\n \n /**\n * FiscalIntegrationDocumentAdjustment entity class.\n */\n export class FiscalIntegrationDocumentAdjustmentClass implements Entities.FiscalIntegrationDocumentAdjustment {\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentAdjustmentClass'] = FiscalIntegrationDocumentAdjustmentClass;\n \n /**\n * FiscalIntegrationSignatureDataContext entity class.\n */\n export class FiscalIntegrationSignatureDataContextClass implements Entities.FiscalIntegrationSignatureDataContext {\n public SequentialSignatureKey: string;\n public SequentialNumber: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SequentialSignatureKey = \n odataObject.SequentialSignatureKey;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n }\n }\n entityDictionary['FiscalIntegrationSignatureDataContextClass'] = FiscalIntegrationSignatureDataContextClass;\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity class.\n */\n export class FiscalIntegrationRegistrationProcessLineClass implements Entities.FiscalIntegrationRegistrationProcessLine {\n public RegistrationProcessId: string;\n public SequenceNumber: number;\n public Priority: number;\n public ConnectorTypeValue: number;\n public FunctionalityProfileGroupId: string;\n public AllowSkip: boolean;\n public AllowMarkAsRegistered: boolean;\n public AllowPostpone: boolean;\n public Optional: boolean;\n public RegistrationSettings: Entities.FiscalIntegrationRegistrationSettings;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public SequentialKeys: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.SequenceNumber = \n odataObject.SequenceNumber;\n \n this.Priority = \n odataObject.Priority;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.AllowSkip = \n odataObject.AllowSkip;\n \n this.AllowMarkAsRegistered = \n odataObject.AllowMarkAsRegistered;\n \n this.AllowPostpone = \n odataObject.AllowPostpone;\n \n this.Optional = \n odataObject.Optional;\n \n if (odataObject.RegistrationSettings == null) {\n this.RegistrationSettings = undefined;\n } else if (odataObject.RegistrationSettings['@odata.type'] == null) {\n this.RegistrationSettings = new FiscalIntegrationRegistrationSettingsClass(odataObject.RegistrationSettings);\n } else {\n var className: string = odataObject.RegistrationSettings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationSettings = new entityDictionary[className](odataObject.RegistrationSettings)\n }\n }\n\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SequentialKeys = undefined;\n if (odataObject.SequentialKeys) {\n this.SequentialKeys = [];\n for (var i = 0; i < odataObject.SequentialKeys.length; i++) {\n if (odataObject.SequentialKeys[i] != null) {\n this.SequentialKeys[i] = \n odataObject.SequentialKeys[i];\n } else {\n this.SequentialKeys[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessLineClass'] = FiscalIntegrationRegistrationProcessLineClass;\n \n /**\n * FiscalIntegrationRegistrationSettings entity class.\n */\n export class FiscalIntegrationRegistrationSettingsClass implements Entities.FiscalIntegrationRegistrationSettings {\n public SkipReasonCode: string;\n public MarkAsRegisteredReasonCode: string;\n public PostponeReasonCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SkipReasonCode = \n odataObject.SkipReasonCode;\n \n this.MarkAsRegisteredReasonCode = \n odataObject.MarkAsRegisteredReasonCode;\n \n this.PostponeReasonCode = \n odataObject.PostponeReasonCode;\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationSettingsClass'] = FiscalIntegrationRegistrationSettingsClass;\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummaryLine entity class.\n */\n export class FiscalIntegrationFiscalRegistrationProcessSummaryLineClass implements Entities.FiscalIntegrationFiscalRegistrationProcessSummaryLine {\n public RegistrationProcessLine: Entities.FiscalIntegrationRegistrationProcessLine;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public ConnectionProperties: Entities.FiscalIntegrationConfigurationProperty[];\n public ErrorCode: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegistrationProcessLine == null) {\n this.RegistrationProcessLine = undefined;\n } else if (odataObject.RegistrationProcessLine['@odata.type'] == null) {\n this.RegistrationProcessLine = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLine);\n } else {\n var className: string = odataObject.RegistrationProcessLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLine = new entityDictionary[className](odataObject.RegistrationProcessLine)\n }\n }\n\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.ConnectionProperties = undefined;\n if (odataObject.ConnectionProperties) {\n this.ConnectionProperties = [];\n for (var i = 0; i < odataObject.ConnectionProperties.length; i++) {\n if (odataObject.ConnectionProperties[i] != null) {\n if (odataObject.ConnectionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ConnectionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ConnectionProperties[i] = new entityDictionary[className](odataObject.ConnectionProperties[i])\n }\n } else {\n this.ConnectionProperties[i] = new FiscalIntegrationConfigurationPropertyClass(odataObject.ConnectionProperties[i]);\n }\n } else {\n this.ConnectionProperties[i] = undefined;\n }\n }\n }\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n }\n }\n entityDictionary['FiscalIntegrationFiscalRegistrationProcessSummaryLineClass'] = FiscalIntegrationFiscalRegistrationProcessSummaryLineClass;\n \n /**\n * FiscalIntegrationConfigurationProperty entity class.\n */\n export class FiscalIntegrationConfigurationPropertyClass implements Entities.FiscalIntegrationConfigurationProperty {\n public LabelName: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LabelName = \n odataObject.LabelName;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['FiscalIntegrationConfigurationPropertyClass'] = FiscalIntegrationConfigurationPropertyClass;\n \n /**\n * FiscalIntegrationServiceFailureDetails entity class.\n */\n export class FiscalIntegrationServiceFailureDetailsClass implements Entities.FiscalIntegrationServiceFailureDetails {\n public FailureTypeValue: number;\n public IsRetryAllowed: boolean;\n public ErrorCode: string;\n public ErrorMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FailureTypeValue = \n odataObject.FailureTypeValue;\n \n this.IsRetryAllowed = \n odataObject.IsRetryAllowed;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceFailureDetailsClass'] = FiscalIntegrationServiceFailureDetailsClass;\n \n /**\n * CategoryPath entity class.\n */\n export class CategoryPathClass implements Entities.CategoryPath {\n public Segments: Entities.CategoryPathSegment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Segments = undefined;\n if (odataObject.Segments) {\n this.Segments = [];\n for (var i = 0; i < odataObject.Segments.length; i++) {\n if (odataObject.Segments[i] != null) {\n if (odataObject.Segments[i]['@odata.type'] != null) {\n var className: string = odataObject.Segments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Segments[i] = new entityDictionary[className](odataObject.Segments[i])\n }\n } else {\n this.Segments[i] = new CategoryPathSegmentClass(odataObject.Segments[i]);\n }\n } else {\n this.Segments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathClass'] = CategoryPathClass;\n \n /**\n * CategoryPathSegment entity class.\n */\n export class CategoryPathSegmentClass implements Entities.CategoryPathSegment {\n public CategoryName: string;\n public CategoryId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.CategoryId = \n (odataObject.CategoryId != null) ? parseInt(odataObject.CategoryId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathSegmentClass'] = CategoryPathSegmentClass;\n \n /**\n * AttachedService entity class.\n */\n export class AttachedServiceClass implements Entities.AttachedService {\n public BaseUrl: string;\n public ServiceId: string;\n public StatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BaseUrl = \n odataObject.BaseUrl;\n \n this.ServiceId = \n odataObject.ServiceId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttachedServiceClass'] = AttachedServiceClass;\n \n /**\n * ExtensibleInventoryJournalType entity class.\n */\n export class ExtensibleInventoryJournalTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleInventoryJournalType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleInventoryJournalType\";\n \n }\n }\n entityDictionary['ExtensibleInventoryJournalTypeClass'] = ExtensibleInventoryJournalTypeClass;\n \n /**\n * CustomerTimelineItemType entity class.\n */\n export class CustomerTimelineItemTypeClass implements Entities.CustomerTimelineItemType {\n public Description: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeClass'] = CustomerTimelineItemTypeClass;\n \n /**\n * ProductWarehouseInventoryAvailability entity class.\n */\n export class ProductWarehouseInventoryAvailabilityClass implements Entities.ProductWarehouseInventoryAvailability {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public PhysicalInventory: number;\n public PhysicalReserved: number;\n public TotalAvailable: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public OrderedInTotal: number;\n public PhysicalAvailable: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public LastInventoryTransactionId: number;\n public UnpostedOnlineOrderedQuantity: number;\n public UnpostedFulfilledQuantity: number;\n public IsInventoryAvailabilityQuantityReturned: boolean;\n public UnprocessedQuantity: number;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public SumUncountedTransactions: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.PhysicalInventory = \n (odataObject.PhysicalInventory != null) ? parseFloat(odataObject.PhysicalInventory) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.TotalAvailable = \n (odataObject.TotalAvailable != null) ? parseFloat(odataObject.TotalAvailable) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.OrderedInTotal = \n (odataObject.OrderedInTotal != null) ? parseFloat(odataObject.OrderedInTotal) : undefined;\n \n this.PhysicalAvailable = \n (odataObject.PhysicalAvailable != null) ? parseFloat(odataObject.PhysicalAvailable) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.LastInventoryTransactionId = \n (odataObject.LastInventoryTransactionId != null) ? parseInt(odataObject.LastInventoryTransactionId, 10) : undefined;\n \n this.UnpostedOnlineOrderedQuantity = \n (odataObject.UnpostedOnlineOrderedQuantity != null) ? parseFloat(odataObject.UnpostedOnlineOrderedQuantity) : undefined;\n \n this.UnpostedFulfilledQuantity = \n (odataObject.UnpostedFulfilledQuantity != null) ? parseFloat(odataObject.UnpostedFulfilledQuantity) : undefined;\n \n this.IsInventoryAvailabilityQuantityReturned = \n odataObject.IsInventoryAvailabilityQuantityReturned;\n \n this.UnprocessedQuantity = \n (odataObject.UnprocessedQuantity != null) ? parseFloat(odataObject.UnprocessedQuantity) : undefined;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.SumUncountedTransactions = \n (odataObject.SumUncountedTransactions != null) ? parseFloat(odataObject.SumUncountedTransactions) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryAvailabilityClass'] = ProductWarehouseInventoryAvailabilityClass;\n \n /**\n * QuantityUnitType entity class.\n */\n export class QuantityUnitTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.QuantityUnitType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.QuantityUnitType\";\n \n }\n }\n entityDictionary['QuantityUnitTypeClass'] = QuantityUnitTypeClass;\n \n /**\n * ProductInventoryAvailability entity class.\n */\n export class ProductInventoryAvailabilityClass implements Entities.ProductInventoryAvailability {\n public ProductId: number;\n public DataAreaId: string;\n public TotalAvailableQuantity: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableQuantity: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.TotalAvailableQuantity = \n (odataObject.TotalAvailableQuantity != null) ? parseFloat(odataObject.TotalAvailableQuantity) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableQuantity = \n (odataObject.PhysicalAvailableQuantity != null) ? parseFloat(odataObject.PhysicalAvailableQuantity) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductInventoryAvailabilityClass'] = ProductInventoryAvailabilityClass;\n \n /**\n * ParameterSet entity class.\n */\n export class ParameterSetClass implements Entities.ParameterSet {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ParameterSetClass'] = ParameterSetClass;\n \n /**\n * CartLineValidationResults entity class.\n */\n export class CartLineValidationResultsClass implements Entities.CartLineValidationResults {\n public ValidationResultsByLineId: Entities.CartLineValidationResultsByLineId;\n public ValidationFailuresByCartLines: Entities.LineDataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ValidationResultsByLineId == null) {\n this.ValidationResultsByLineId = undefined;\n } else if (odataObject.ValidationResultsByLineId['@odata.type'] == null) {\n this.ValidationResultsByLineId = new CartLineValidationResultsByLineIdClass(odataObject.ValidationResultsByLineId);\n } else {\n var className: string = odataObject.ValidationResultsByLineId['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsByLineId = new entityDictionary[className](odataObject.ValidationResultsByLineId)\n }\n }\n\n \n this.ValidationFailuresByCartLines = undefined;\n if (odataObject.ValidationFailuresByCartLines) {\n this.ValidationFailuresByCartLines = [];\n for (var i = 0; i < odataObject.ValidationFailuresByCartLines.length; i++) {\n if (odataObject.ValidationFailuresByCartLines[i] != null) {\n if (odataObject.ValidationFailuresByCartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailuresByCartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailuresByCartLines[i] = new entityDictionary[className](odataObject.ValidationFailuresByCartLines[i])\n }\n } else {\n this.ValidationFailuresByCartLines[i] = new LineDataValidationFailureClass(odataObject.ValidationFailuresByCartLines[i]);\n }\n } else {\n this.ValidationFailuresByCartLines[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsClass'] = CartLineValidationResultsClass;\n \n /**\n * CommerceException entity class.\n */\n export class CommerceExceptionClass implements Entities.CommerceException {\n public LocalizedMessage: string;\n public ErrorResourceId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n }\n }\n entityDictionary['CommerceExceptionClass'] = CommerceExceptionClass;\n \n /**\n * DataValidationException entity class.\n */\n export class DataValidationExceptionClass\n extends CommerceExceptionClass\n implements Entities.DataValidationException {\n public ValidationResults: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ValidationResults = undefined;\n if (odataObject.ValidationResults) {\n this.ValidationResults = [];\n for (var i = 0; i < odataObject.ValidationResults.length; i++) {\n if (odataObject.ValidationResults[i] != null) {\n if (odataObject.ValidationResults[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResults[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResults[i] = new entityDictionary[className](odataObject.ValidationResults[i])\n }\n } else {\n this.ValidationResults[i] = new DataValidationFailureClass(odataObject.ValidationResults[i]);\n }\n } else {\n this.ValidationResults[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataValidationException\";\n \n }\n }\n entityDictionary['DataValidationExceptionClass'] = DataValidationExceptionClass;\n \n /**\n * MissingRequiredReasonCodeException entity class.\n */\n export class MissingRequiredReasonCodeExceptionClass\n extends DataValidationExceptionClass\n implements Entities.MissingRequiredReasonCodeException {\n public RequiredReasonCodes: Entities.ReasonCode[];\n public TransactionRequiredReasonCodeIds: string[];\n public ReasonCodeRequirements: Entities.ReasonCodeRequirement[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RequiredReasonCodes = undefined;\n if (odataObject.RequiredReasonCodes) {\n this.RequiredReasonCodes = [];\n for (var i = 0; i < odataObject.RequiredReasonCodes.length; i++) {\n if (odataObject.RequiredReasonCodes[i] != null) {\n if (odataObject.RequiredReasonCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.RequiredReasonCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RequiredReasonCodes[i] = new entityDictionary[className](odataObject.RequiredReasonCodes[i])\n }\n } else {\n this.RequiredReasonCodes[i] = new ReasonCodeClass(odataObject.RequiredReasonCodes[i]);\n }\n } else {\n this.RequiredReasonCodes[i] = undefined;\n }\n }\n }\n \n this.TransactionRequiredReasonCodeIds = undefined;\n if (odataObject.TransactionRequiredReasonCodeIds) {\n this.TransactionRequiredReasonCodeIds = [];\n for (var i = 0; i < odataObject.TransactionRequiredReasonCodeIds.length; i++) {\n if (odataObject.TransactionRequiredReasonCodeIds[i] != null) {\n this.TransactionRequiredReasonCodeIds[i] = \n odataObject.TransactionRequiredReasonCodeIds[i];\n } else {\n this.TransactionRequiredReasonCodeIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeRequirements = undefined;\n if (odataObject.ReasonCodeRequirements) {\n this.ReasonCodeRequirements = [];\n for (var i = 0; i < odataObject.ReasonCodeRequirements.length; i++) {\n if (odataObject.ReasonCodeRequirements[i] != null) {\n if (odataObject.ReasonCodeRequirements[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeRequirements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeRequirements[i] = new entityDictionary[className](odataObject.ReasonCodeRequirements[i])\n }\n } else {\n this.ReasonCodeRequirements[i] = new ReasonCodeRequirementClass(odataObject.ReasonCodeRequirements[i]);\n }\n } else {\n this.ReasonCodeRequirements[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.MissingRequiredReasonCodeException\";\n \n }\n }\n entityDictionary['MissingRequiredReasonCodeExceptionClass'] = MissingRequiredReasonCodeExceptionClass;\n \n /**\n * SecurityException entity class.\n */\n export class SecurityExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecurityException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecurityException\";\n \n }\n }\n entityDictionary['SecurityExceptionClass'] = SecurityExceptionClass;\n \n /**\n * DeviceAuthenticationException entity class.\n */\n export class DeviceAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.DeviceAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DeviceAuthenticationException\";\n \n }\n }\n entityDictionary['DeviceAuthenticationExceptionClass'] = DeviceAuthenticationExceptionClass;\n \n /**\n * HeadquarterTransactionServiceException entity class.\n */\n export class HeadquarterTransactionServiceExceptionClass\n extends CommerceExceptionClass\n implements Entities.HeadquarterTransactionServiceException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.HeadquarterTransactionServiceException\";\n \n }\n }\n entityDictionary['HeadquarterTransactionServiceExceptionClass'] = HeadquarterTransactionServiceExceptionClass;\n \n /**\n * UserAuthenticationException entity class.\n */\n export class UserAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthenticationException\";\n \n }\n }\n entityDictionary['UserAuthenticationExceptionClass'] = UserAuthenticationExceptionClass;\n \n /**\n * UserAuthorizationException entity class.\n */\n export class UserAuthorizationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthorizationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthorizationException\";\n \n }\n }\n entityDictionary['UserAuthorizationExceptionClass'] = UserAuthorizationExceptionClass;\n \n /**\n * FeatureNotSupportedException entity class.\n */\n export class FeatureNotSupportedExceptionClass\n extends CommerceExceptionClass\n implements Entities.FeatureNotSupportedException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.FeatureNotSupportedException\";\n \n }\n }\n entityDictionary['FeatureNotSupportedExceptionClass'] = FeatureNotSupportedExceptionClass;\n \n /**\n * CartValidationException entity class.\n */\n export class CartValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.CartValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CartValidationException\";\n \n }\n }\n entityDictionary['CartValidationExceptionClass'] = CartValidationExceptionClass;\n \n /**\n * TenderValidationException entity class.\n */\n export class TenderValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.TenderValidationException {\n public TenderTypeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TenderValidationException\";\n \n }\n }\n entityDictionary['TenderValidationExceptionClass'] = TenderValidationExceptionClass;\n \n /**\n * CommerceDataExchangeException entity class.\n */\n export class CommerceDataExchangeExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceDataExchangeException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceDataExchangeException\";\n \n }\n }\n entityDictionary['CommerceDataExchangeExceptionClass'] = CommerceDataExchangeExceptionClass;\n \n /**\n * ExtensibleEnumerationException entity class.\n */\n export class ExtensibleEnumerationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationExceptionClass'] = ExtensibleEnumerationExceptionClass;\n \n /**\n * TaskManagementException entity class.\n */\n export class TaskManagementExceptionClass\n extends CommerceExceptionClass\n implements Entities.TaskManagementException {\n public TaskManagementErrors: Entities.TaskManagementError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaskManagementErrors = undefined;\n if (odataObject.TaskManagementErrors) {\n this.TaskManagementErrors = [];\n for (var i = 0; i < odataObject.TaskManagementErrors.length; i++) {\n if (odataObject.TaskManagementErrors[i] != null) {\n if (odataObject.TaskManagementErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.TaskManagementErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaskManagementErrors[i] = new entityDictionary[className](odataObject.TaskManagementErrors[i])\n }\n } else {\n this.TaskManagementErrors[i] = new TaskManagementErrorClass(odataObject.TaskManagementErrors[i]);\n }\n } else {\n this.TaskManagementErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementException\";\n \n }\n }\n entityDictionary['TaskManagementExceptionClass'] = TaskManagementExceptionClass;\n \n /**\n * TaskManagementServerException entity class.\n */\n export class TaskManagementServerExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementServerException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementServerException\";\n \n }\n }\n entityDictionary['TaskManagementServerExceptionClass'] = TaskManagementServerExceptionClass;\n \n /**\n * TaskManagementClientException entity class.\n */\n export class TaskManagementClientExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementClientException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementClientException\";\n \n }\n }\n entityDictionary['TaskManagementClientExceptionClass'] = TaskManagementClientExceptionClass;\n \n /**\n * PaymentException entity class.\n */\n export class PaymentExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentException {\n public AdditionalContext: string;\n public PaymentSdkErrors: Entities.PaymentError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentException\";\n \n }\n }\n entityDictionary['PaymentExceptionClass'] = PaymentExceptionClass;\n \n /**\n * DataValidationFailure entity class.\n */\n export class DataValidationFailureClass implements Entities.DataValidationFailure {\n public ErrorContext: string;\n public ErrorResourceId: string;\n public MemberNames: string[];\n public LocalizedMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorContext = \n odataObject.ErrorContext;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.MemberNames = undefined;\n if (odataObject.MemberNames) {\n this.MemberNames = [];\n for (var i = 0; i < odataObject.MemberNames.length; i++) {\n if (odataObject.MemberNames[i] != null) {\n this.MemberNames[i] = \n odataObject.MemberNames[i];\n } else {\n this.MemberNames[i] = undefined;\n }\n }\n }\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n }\n }\n entityDictionary['DataValidationFailureClass'] = DataValidationFailureClass;\n \n /**\n * ItemDiscontinuedException entity class.\n */\n export class ItemDiscontinuedExceptionClass\n extends CommerceExceptionClass\n implements Entities.ItemDiscontinuedException {\n public RemovedUnavailableItemIds: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RemovedUnavailableItemIds = \n odataObject.RemovedUnavailableItemIds;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ItemDiscontinuedException\";\n \n }\n }\n entityDictionary['ItemDiscontinuedExceptionClass'] = ItemDiscontinuedExceptionClass;\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity class.\n */\n export class InventoryDocumentLockedByOtherTerminalExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentLockedByOtherTerminalException {\n public WorkingTerminalId: string;\n public CurrentTerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.WorkingTerminalId = \n odataObject.WorkingTerminalId;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentLockedByOtherTerminalException\";\n \n }\n }\n entityDictionary['InventoryDocumentLockedByOtherTerminalExceptionClass'] = InventoryDocumentLockedByOtherTerminalExceptionClass;\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity class.\n */\n export class InventoryDocumentExceedMaximumQuantityExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentExceedMaximumQuantityException {\n public MaximumQuantity: number;\n public AllowOverDelivery: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentExceedMaximumQuantityException\";\n \n }\n }\n entityDictionary['InventoryDocumentExceedMaximumQuantityExceptionClass'] = InventoryDocumentExceedMaximumQuantityExceptionClass;\n \n /**\n * CartLineValidationResultsByLineId entity class.\n */\n export class CartLineValidationResultsByLineIdClass implements Entities.CartLineValidationResultsByLineId {\n public LineIdToProductBehaviorMap: Entities.KeyValuePair_2OfString_ProductBehavior[];\n public ValidationResultsPairs: Entities.LineValidationResult[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIdToProductBehaviorMap = undefined;\n if (odataObject.LineIdToProductBehaviorMap) {\n this.LineIdToProductBehaviorMap = [];\n for (var i = 0; i < odataObject.LineIdToProductBehaviorMap.length; i++) {\n if (odataObject.LineIdToProductBehaviorMap[i] != null) {\n if (odataObject.LineIdToProductBehaviorMap[i]['@odata.type'] != null) {\n var className: string = odataObject.LineIdToProductBehaviorMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LineIdToProductBehaviorMap[i] = new entityDictionary[className](odataObject.LineIdToProductBehaviorMap[i])\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = new KeyValuePair_2OfString_ProductBehaviorClass(odataObject.LineIdToProductBehaviorMap[i]);\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = undefined;\n }\n }\n }\n \n this.ValidationResultsPairs = undefined;\n if (odataObject.ValidationResultsPairs) {\n this.ValidationResultsPairs = [];\n for (var i = 0; i < odataObject.ValidationResultsPairs.length; i++) {\n if (odataObject.ValidationResultsPairs[i] != null) {\n if (odataObject.ValidationResultsPairs[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResultsPairs[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsPairs[i] = new entityDictionary[className](odataObject.ValidationResultsPairs[i])\n }\n } else {\n this.ValidationResultsPairs[i] = new LineValidationResultClass(odataObject.ValidationResultsPairs[i]);\n }\n } else {\n this.ValidationResultsPairs[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsByLineIdClass'] = CartLineValidationResultsByLineIdClass;\n \n /**\n * CommerceRuntimeCompositionException entity class.\n */\n export class CommerceRuntimeCompositionExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceRuntimeCompositionException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceRuntimeCompositionException\";\n \n }\n }\n entityDictionary['CommerceRuntimeCompositionExceptionClass'] = CommerceRuntimeCompositionExceptionClass;\n \n /**\n * ChecklistTaskValidationException entity class.\n */\n export class ChecklistTaskValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.ChecklistTaskValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChecklistTaskValidationException\";\n \n }\n }\n entityDictionary['ChecklistTaskValidationExceptionClass'] = ChecklistTaskValidationExceptionClass;\n \n /**\n * InsufficientCredentialLengthException entity class.\n */\n export class InsufficientCredentialLengthExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InsufficientCredentialLengthException {\n public ActualLength: number;\n public MinLength: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ActualLength = \n odataObject.ActualLength;\n \n this.MinLength = \n odataObject.MinLength;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InsufficientCredentialLengthException\";\n \n }\n }\n entityDictionary['InsufficientCredentialLengthExceptionClass'] = InsufficientCredentialLengthExceptionClass;\n \n /**\n * ExtensibleEnumerationCacheException entity class.\n */\n export class ExtensibleEnumerationCacheExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationCacheException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationCacheException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationCacheExceptionClass'] = ExtensibleEnumerationCacheExceptionClass;\n \n /**\n * ExtensionConfigurationException entity class.\n */\n export class ExtensionConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensionConfigurationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensionConfigurationException\";\n \n }\n }\n entityDictionary['ExtensionConfigurationExceptionClass'] = ExtensionConfigurationExceptionClass;\n \n /**\n * StaffPasswordExpiredException entity class.\n */\n export class StaffPasswordExpiredExceptionClass\n extends UserAuthenticationExceptionClass\n implements Entities.StaffPasswordExpiredException {\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.StaffPasswordExpiredException\";\n \n }\n }\n entityDictionary['StaffPasswordExpiredExceptionClass'] = StaffPasswordExpiredExceptionClass;\n \n /**\n * ChannelConfigurationNotFoundException entity class.\n */\n export class ChannelConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.ChannelConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChannelConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['ChannelConfigurationNotFoundExceptionClass'] = ChannelConfigurationNotFoundExceptionClass;\n \n /**\n * PaymentConfigurationException entity class.\n */\n export class PaymentConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentConfigurationException {\n public PaymentConfigurationSdkErrors: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.PaymentConfigurationSdkErrors = undefined;\n if (odataObject.PaymentConfigurationSdkErrors) {\n this.PaymentConfigurationSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentConfigurationSdkErrors.length; i++) {\n if (odataObject.PaymentConfigurationSdkErrors[i] != null) {\n this.PaymentConfigurationSdkErrors[i] = \n odataObject.PaymentConfigurationSdkErrors[i];\n } else {\n this.PaymentConfigurationSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentConfigurationException\";\n \n }\n }\n entityDictionary['PaymentConfigurationExceptionClass'] = PaymentConfigurationExceptionClass;\n \n /**\n * SecretConfigurationNotFoundException entity class.\n */\n export class SecretConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecretConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecretConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['SecretConfigurationNotFoundExceptionClass'] = SecretConfigurationNotFoundExceptionClass;\n \n /**\n * TenderTypePolicy entity class.\n */\n export class TenderTypePolicyClass implements Entities.TenderTypePolicy {\n public OriginalTenderType: string;\n public AllowedReturnTenderTypes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalTenderType = \n odataObject.OriginalTenderType;\n \n this.AllowedReturnTenderTypes = undefined;\n if (odataObject.AllowedReturnTenderTypes) {\n this.AllowedReturnTenderTypes = [];\n for (var i = 0; i < odataObject.AllowedReturnTenderTypes.length; i++) {\n if (odataObject.AllowedReturnTenderTypes[i] != null) {\n this.AllowedReturnTenderTypes[i] = \n odataObject.AllowedReturnTenderTypes[i];\n } else {\n this.AllowedReturnTenderTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypePolicyClass'] = TenderTypePolicyClass;\n \n /**\n * AccountStatementRequest entity class.\n */\n export class AccountStatementRequestClass implements Entities.AccountStatementRequest {\n public RequestedUserId: string;\n public IsForFullOrganization: boolean;\n public FromDate: Date;\n public ToDate: Date;\n public RequestingUserEmail: string;\n public DeliveryTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedUserId = \n odataObject.RequestedUserId;\n \n this.IsForFullOrganization = \n odataObject.IsForFullOrganization;\n \n this.FromDate = \n (odataObject.FromDate instanceof Date) ? odataObject.FromDate\n : (odataObject.FromDate != null) ? jsonLightReadStringPropertyValue(odataObject.FromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDate = \n (odataObject.ToDate instanceof Date) ? odataObject.ToDate\n : (odataObject.ToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestingUserEmail = \n odataObject.RequestingUserEmail;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AccountStatementRequestClass'] = AccountStatementRequestClass;\n \n /**\n * BusinessPartnerOperationRequestDetails entity class.\n */\n export class BusinessPartnerOperationRequestDetailsClass implements Entities.BusinessPartnerOperationRequestDetails {\n public InvoiceId: string;\n public AccountStatementStartDateTime: Date;\n public AccountStatementEndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.AccountStatementStartDateTime = \n (odataObject.AccountStatementStartDateTime instanceof Date) ? odataObject.AccountStatementStartDateTime\n : (odataObject.AccountStatementStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.AccountStatementEndDateTime = \n (odataObject.AccountStatementEndDateTime instanceof Date) ? odataObject.AccountStatementEndDateTime\n : (odataObject.AccountStatementEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestDetailsClass'] = BusinessPartnerOperationRequestDetailsClass;\n \n /**\n * TaskManagementError entity class.\n */\n export class TaskManagementErrorClass implements Entities.TaskManagementError {\n public ErrorResourceId: string;\n public LocalizedMessage: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.TaskId = \n odataObject.TaskId;\n \n }\n }\n entityDictionary['TaskManagementErrorClass'] = TaskManagementErrorClass;\n \n /**\n * LineDataValidationFailure entity class.\n */\n export class LineDataValidationFailureClass implements Entities.LineDataValidationFailure {\n public DataValidationFailure: Entities.DataValidationFailure;\n public LineIndex: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.DataValidationFailure == null) {\n this.DataValidationFailure = undefined;\n } else if (odataObject.DataValidationFailure['@odata.type'] == null) {\n this.DataValidationFailure = new DataValidationFailureClass(odataObject.DataValidationFailure);\n } else {\n var className: string = odataObject.DataValidationFailure['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataValidationFailure = new entityDictionary[className](odataObject.DataValidationFailure)\n }\n }\n\n \n this.LineIndex = \n odataObject.LineIndex;\n \n }\n }\n entityDictionary['LineDataValidationFailureClass'] = LineDataValidationFailureClass;\n \n /**\n * WrongEndpointException entity class.\n */\n export class WrongEndpointExceptionClass\n extends CommerceExceptionClass\n implements Entities.WrongEndpointException {\n public RedirectUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RedirectUri = \n odataObject.RedirectUri;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.WrongEndpointException\";\n \n }\n }\n entityDictionary['WrongEndpointExceptionClass'] = WrongEndpointExceptionClass;\n \n /**\n * BadRequestException entity class.\n */\n export class BadRequestExceptionClass\n extends CommerceExceptionClass\n implements Entities.BadRequestException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.BadRequestException\";\n \n }\n }\n entityDictionary['BadRequestExceptionClass'] = BadRequestExceptionClass;\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity class.\n */\n export class KeyValuePair_2OfString_ProductBehaviorClass implements Entities.KeyValuePair_2OfString_ProductBehavior {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['KeyValuePair_2OfString_ProductBehaviorClass'] = KeyValuePair_2OfString_ProductBehaviorClass;\n ","\n \n /**\n * The matched retail server api version.\n */\n export const ApiVersion: string = \"7.3\";\n \n export const EntityIdentifier = {\n \n 'Category' : {\n 'Key': \n 'RecordId'\n },\n 'Cart' : {\n 'Key': \n 'Id'\n },\n 'Customer' : {\n 'Key': \n 'AccountNumber'\n },\n 'Employee' : {\n 'Key': \n 'StaffId'\n },\n 'Checklist' : {\n 'Key': \n 'RecordId'\n },\n 'SalesOrder' : {\n 'Key': \n 'Id'\n },\n 'Shift' : {\n 'Key': [ \n 'ShiftId',\n 'TerminalId' ] \n },\n 'StockCountJournal' : {\n 'Key': \n 'JournalId'\n },\n 'OrgUnit' : {\n 'Key': \n 'OrgUnitNumber'\n },\n 'Product' : {\n 'Key': \n 'RecordId'\n },\n 'ProductCatalog' : {\n 'Key': \n 'RecordId'\n },\n 'CommerceList' : {\n 'Key': \n 'Id'\n },\n 'ProductList' : {\n 'Key': \n 'Id'\n },\n 'Recommendation' : {\n 'Key': \n 'Id'\n },\n 'TransferOrder' : {\n 'Key': \n 'OrderId'\n },\n 'PurchaseOrder' : {\n 'Key': \n 'OrderId'\n },\n 'PickingList' : {\n 'Key': \n 'OrderId'\n },\n 'Warehouse' : {\n 'Key': \n 'InventLocation'\n },\n 'ScanResult' : {\n 'Key': \n 'ScannedText'\n },\n 'SalesOrderContextualOperationsMap' : {\n 'Key': \n 'Id'\n },\n 'InventoryInboundOutboundDocument' : {\n 'Key': \n 'WorkDocumentId'\n },\n 'BusinessPartner' : {\n 'Key': \n 'BusinessPartnerId'\n },\n 'BusinessPartnerUser' : {\n 'Key': \n 'B2BUserId'\n },\n 'SuspendedCart' : {\n 'Key': \n 'Id'\n } \n };\n \n \n /**\n * AutoExitMethodType enum type.\n */\n export enum AutoExitMethodType {\n \n /**\n * The Logoff member.\n */\n Logoff = 0,\n \n /**\n * The Lock member.\n */\n Lock = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CardType enum type.\n */\n export enum CardType {\n \n /**\n * The InternationalCreditCard member.\n */\n InternationalCreditCard = 0,\n \n /**\n * The InternationalDebitCard member.\n */\n InternationalDebitCard = 1,\n \n /**\n * The LoyaltyCard member.\n */\n LoyaltyCard = 2,\n \n /**\n * The CorporateCard member.\n */\n CorporateCard = 3,\n \n /**\n * The CustomerCard member.\n */\n CustomerCard = 4,\n \n /**\n * The EmployeeCard member.\n */\n EmployeeCard = 5,\n \n /**\n * The SalespersonCard member.\n */\n SalespersonCard = 6,\n \n /**\n * The GiftCard member.\n */\n GiftCard = 7,\n \n /**\n * The Check member.\n */\n Check = 8,\n \n /**\n * The Wallet member.\n */\n Wallet = 9,\n \n /**\n * The FoodCard member.\n */\n FoodCard = 21,\n \n /**\n * The MealCard member.\n */\n MealCard = 22,\n \n /**\n * The FuelCard member.\n */\n FuelCard = 23,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * PublishingAction enum type.\n */\n export enum PublishingAction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Publish member.\n */\n Publish = 1,\n \n /**\n * The Delete member.\n */\n Delete = 2,\n \n /**\n * The Expire member.\n */\n Expire = 3\n }\n \n /**\n * ListingPublishingActionStatus enum type.\n */\n export enum ListingPublishingActionStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Ready member.\n */\n Ready = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Done member.\n */\n Done = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * OnlineChannelPublishStatusType enum type.\n */\n export enum OnlineChannelPublishStatusType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Draft member.\n */\n Draft = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Published member.\n */\n Published = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * ReceiptTransactionType enum type.\n */\n export enum ReceiptTransactionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sale member.\n */\n Sale = 1,\n \n /**\n * The Return member.\n */\n Return = 2,\n \n /**\n * The Payment member.\n */\n Payment = 5,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 6,\n \n /**\n * The Quote member.\n */\n Quote = 7,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 9\n }\n \n /**\n * EmployeePriceOverrideType enum type.\n */\n export enum EmployeePriceOverrideType {\n \n /**\n * The HigherAndLower member.\n */\n HigherAndLower = 0,\n \n /**\n * The HigherOnly member.\n */\n HigherOnly = 1,\n \n /**\n * The LowerOnly member.\n */\n LowerOnly = 2,\n \n /**\n * The NotAllowed member.\n */\n NotAllowed = 3\n }\n \n /**\n * KeyInPriceRestriction enum type.\n */\n export enum KeyInPriceRestriction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NewPrice member.\n */\n NewPrice = 1,\n \n /**\n * The HigherOrEqualPrice member.\n */\n HigherOrEqualPrice = 2,\n \n /**\n * The LowerOrEqualPrice member.\n */\n LowerOrEqualPrice = 3,\n \n /**\n * The NotAllowed member.\n */\n NotAllowed = 4\n }\n \n /**\n * KeyInQuantityRestriction enum type.\n */\n export enum KeyInQuantityRestriction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Required member.\n */\n Required = 1,\n \n /**\n * The NotAllowed member.\n */\n NotAllowed = 2\n }\n \n /**\n * ProductDimensionType enum type.\n */\n export enum ProductDimensionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Color member.\n */\n Color = 1,\n \n /**\n * The Configuration member.\n */\n Configuration = 2,\n \n /**\n * The Size member.\n */\n Size = 3,\n \n /**\n * The Style member.\n */\n Style = 4\n }\n \n /**\n * ProductType enum type.\n */\n export enum ProductType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The KitMaster member.\n */\n KitMaster = 1,\n \n /**\n * The KitVariant member.\n */\n KitVariant = 2,\n \n /**\n * The Master member.\n */\n Master = 3,\n \n /**\n * The Standalone member.\n */\n Standalone = 4,\n \n /**\n * The Variant member.\n */\n Variant = 5\n }\n \n /**\n * NumberSequenceSeedType enum type.\n */\n export enum NumberSequenceSeedType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ReceiptDefault member.\n */\n ReceiptDefault = 1,\n \n /**\n * The ReceiptSale member.\n */\n ReceiptSale = 2,\n \n /**\n * The ReceiptReturn member.\n */\n ReceiptReturn = 3,\n \n /**\n * The ReceiptSalesOrder member.\n */\n ReceiptSalesOrder = 4,\n \n /**\n * The ReceiptSalesInvoice member.\n */\n ReceiptSalesInvoice = 5,\n \n /**\n * The ReceiptPayment member.\n */\n ReceiptPayment = 6,\n \n /**\n * The BatchId member.\n */\n BatchId = 7,\n \n /**\n * The TransactionId member.\n */\n TransactionId = 8,\n \n /**\n * The ReceiptCustomerSalesOrder member.\n */\n ReceiptCustomerSalesOrder = 10,\n \n /**\n * The ReceiptCustomerQuote member.\n */\n ReceiptCustomerQuote = 11,\n \n /**\n * The ReceiptSuspendedTransaction member.\n */\n ReceiptSuspendedTransaction = 22\n }\n \n /**\n * ReasonCodeSourceType enum type.\n */\n export enum ReasonCodeSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The AddSalesperson member.\n */\n AddSalesperson = 1,\n \n /**\n * The EndOfTransaction member.\n */\n EndOfTransaction = 2,\n \n /**\n * The ItemDiscount member.\n */\n ItemDiscount = 3,\n \n /**\n * The ItemNotOnFile member.\n */\n ItemNotOnFile = 4,\n \n /**\n * The LineItemTaxChange member.\n */\n LineItemTaxChange = 5,\n \n /**\n * The Markup member.\n */\n Markup = 6,\n \n /**\n * The NegativeAdjustment member.\n */\n NegativeAdjustment = 7,\n \n /**\n * The NfcEContingencyModeEnabled member.\n */\n NfcEContingencyModeEnabled = 8,\n \n /**\n * The NfcEVoided member.\n */\n NfcEVoided = 9,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 10,\n \n /**\n * The OverridePrice member.\n */\n OverridePrice = 11,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 12,\n \n /**\n * The ReturnTransaction member.\n */\n ReturnTransaction = 13,\n \n /**\n * The SerialNumber member.\n */\n SerialNumber = 14,\n \n /**\n * The StartOfTransaction member.\n */\n StartOfTransaction = 15,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 16,\n \n /**\n * The TotalDiscount member.\n */\n TotalDiscount = 17,\n \n /**\n * The TransactionTaxChange member.\n */\n TransactionTaxChange = 18,\n \n /**\n * The VoidItem member.\n */\n VoidItem = 19,\n \n /**\n * The VoidPayment member.\n */\n VoidPayment = 20,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 21,\n \n /**\n * The OrderFulfillment member.\n */\n OrderFulfillment = 22,\n \n /**\n * The ManualCharge member.\n */\n ManualCharge = 23\n }\n \n /**\n * TriggerFunctionType enum type.\n */\n export enum TriggerFunctionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The InfoCode member.\n */\n InfoCode = 2\n }\n \n /**\n * QueryType enum type.\n */\n export enum QueryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NameAndDescription member.\n */\n NameAndDescription = 1,\n \n /**\n * The AotObject member.\n */\n AotObject = 2\n }\n \n /**\n * ChangeAction enum type.\n */\n export enum ChangeAction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Insert member.\n */\n Insert = 1,\n \n /**\n * The Update member.\n */\n Update = 2,\n \n /**\n * The Delete member.\n */\n Delete = 3\n }\n \n /**\n * PeriodicDiscountOfferType enum type.\n */\n export enum PeriodicDiscountOfferType {\n \n /**\n * The MultipleBuy member.\n */\n MultipleBuy = 0,\n \n /**\n * The MixAndMatch member.\n */\n MixAndMatch = 1,\n \n /**\n * The Offer member.\n */\n Offer = 2,\n \n /**\n * The Promotion member.\n */\n Promotion = 3,\n \n /**\n * The Threshold member.\n */\n Threshold = 4,\n \n /**\n * The LeastExpensiveFavorRetailer member.\n */\n LeastExpensiveFavorRetailer = 5,\n \n /**\n * The OfferLineQuantityLimit member.\n */\n OfferLineQuantityLimit = 6,\n \n /**\n * The ShippingThreshold member.\n */\n ShippingThreshold = 7\n }\n \n /**\n * SearchFilterType enum type.\n */\n export enum SearchFilterType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Text member.\n */\n Text = 1\n }\n \n /**\n * InfoCodeActivity enum type.\n */\n export enum InfoCodeActivity {\n \n /**\n * The Transaction member.\n */\n Transaction = 0,\n \n /**\n * The OrderFulfillment member.\n */\n OrderFulfillment = 1\n }\n \n /**\n * SrsReportFileFormat enum type.\n */\n export enum SrsReportFileFormat {\n \n /**\n * The CSV member.\n */\n CSV = 0,\n \n /**\n * The Excel member.\n */\n Excel = 1,\n \n /**\n * The HTML4_0 member.\n */\n HTML4_0 = 2,\n \n /**\n * The Image member.\n */\n Image = 3,\n \n /**\n * The MHTML member.\n */\n MHTML = 4,\n \n /**\n * The PDF member.\n */\n PDF = 5,\n \n /**\n * The XML member.\n */\n XML = 6\n }\n \n /**\n * ShiftReconciliationLineStatus enum type.\n */\n export enum ShiftReconciliationLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pending member.\n */\n Pending = 1,\n \n /**\n * The Reconciled member.\n */\n Reconciled = 2,\n \n /**\n * The Closed member.\n */\n Closed = 3\n }\n \n /**\n * ProductSearchServiceType enum type.\n */\n export enum ProductSearchServiceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ChannelDatabase member.\n */\n ChannelDatabase = 1,\n \n /**\n * The CommerceAzureSearchService member.\n */\n CommerceAzureSearchService = 2,\n \n /**\n * The CommerceBingSearchService member.\n */\n CommerceBingSearchService = 3\n }\n \n /**\n * SearchSuggestionType enum type.\n */\n export enum SearchSuggestionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Keyword member.\n */\n Keyword = 1,\n \n /**\n * The Product member.\n */\n Product = 2,\n \n /**\n * The ScopedCategory member.\n */\n ScopedCategory = 4,\n \n /**\n * The Category member.\n */\n Category = 8,\n \n /**\n * The Customer member.\n */\n Customer = 16\n }\n \n /**\n * SalesStatus enum type.\n */\n export enum SalesStatus {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The Created member.\n */\n Created = 1,\n \n /**\n * The Processing member.\n */\n Processing = 2,\n \n /**\n * The Delivered member.\n */\n Delivered = 3,\n \n /**\n * The Invoiced member.\n */\n Invoiced = 4,\n \n /**\n * The Confirmed member.\n */\n Confirmed = 5,\n \n /**\n * The Sent member.\n */\n Sent = 6,\n \n /**\n * The Canceled member.\n */\n Canceled = 7,\n \n /**\n * The Lost member.\n */\n Lost = 8\n }\n \n /**\n * EFTType enum type.\n */\n export enum EFTType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The External member.\n */\n External = 1,\n \n /**\n * The PaymentSDK member.\n */\n PaymentSDK = 2,\n \n /**\n * The DynamicsOnline member.\n */\n DynamicsOnline = 3\n }\n \n /**\n * FilterDeliveryModeOption enum type.\n */\n export enum FilterDeliveryModeOption {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The FilterOutNonCarrierDeliveryMode member.\n */\n FilterOutNonCarrierDeliveryMode = 1,\n \n /**\n * The DoNotFilterByChannel member.\n */\n DoNotFilterByChannel = 2,\n \n /**\n * The FilterOutNonPickupDeliveryMode member.\n */\n FilterOutNonPickupDeliveryMode = 4\n }\n \n /**\n * InventoryDocumentLineOperationResultMode enum type.\n */\n export enum InventoryDocumentLineOperationResultMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NoLines member.\n */\n NoLines = 1,\n \n /**\n * The AllLines member.\n */\n AllLines = 2\n }\n \n /**\n * InventoryDocumentStatus enum type.\n */\n export enum InventoryDocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Paused member.\n */\n Paused = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Committed member.\n */\n Committed = 3,\n \n /**\n * The ProcessSucceeded member.\n */\n ProcessSucceeded = 4,\n \n /**\n * The ProcessFailed member.\n */\n ProcessFailed = 5\n }\n \n /**\n * InventoryDocumentUpdateLinesActionType enum type.\n */\n export enum InventoryDocumentUpdateLinesActionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ApplyQuantity member.\n */\n ApplyQuantity = 1,\n \n /**\n * The ApplyMaximumQuantity member.\n */\n ApplyMaximumQuantity = 2\n }\n \n /**\n * InventoryInboundOutboundDocumentOperationType enum type.\n */\n export enum InventoryInboundOutboundDocumentOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ReceivePurchaseOrder member.\n */\n ReceivePurchaseOrder = 1,\n \n /**\n * The ReceiveTransferOrder member.\n */\n ReceiveTransferOrder = 2,\n \n /**\n * The ShipTransferOrder member.\n */\n ShipTransferOrder = 3,\n \n /**\n * The CreateTransferOrder member.\n */\n CreateTransferOrder = 4,\n \n /**\n * The SaveInventoryAdjustment member.\n */\n SaveInventoryAdjustment = 5,\n \n /**\n * The PostInventoryAdjustment member.\n */\n PostInventoryAdjustment = 6,\n \n /**\n * The PostInventoryTransfer member.\n */\n PostInventoryTransfer = 7,\n \n /**\n * The SaveStockCounting member.\n */\n SaveStockCounting = 8,\n \n /**\n * The PostStockCounting member.\n */\n PostStockCounting = 9,\n \n /**\n * The CreateStockCounting member.\n */\n CreateStockCounting = 10\n }\n \n /**\n * InventoryInboundOutboundSourceDocumentStatus enum type.\n */\n export enum InventoryInboundOutboundSourceDocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Requested member.\n */\n Requested = 1,\n \n /**\n * The Shipped member.\n */\n Shipped = 2,\n \n /**\n * The PartiallyShipped member.\n */\n PartiallyShipped = 3,\n \n /**\n * The Received member.\n */\n Received = 4,\n \n /**\n * The PartiallyReceived member.\n */\n PartiallyReceived = 5,\n \n /**\n * The Cancelled member.\n */\n Cancelled = 6,\n \n /**\n * The Posted member.\n */\n Posted = 8,\n \n /**\n * The Committed member.\n */\n Committed = 9\n }\n \n /**\n * InventorySourceDocumentType enum type.\n */\n export enum InventorySourceDocumentType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 1,\n \n /**\n * The TransferOrder member.\n */\n TransferOrder = 2,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 3,\n \n /**\n * The InventoryTransfer member.\n */\n InventoryTransfer = 4,\n \n /**\n * The StockCounting member.\n */\n StockCounting = 5\n }\n \n /**\n * InventoryInboundOutboundDocumentState enum type.\n */\n export enum InventoryInboundOutboundDocumentState {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Active member.\n */\n Active = 1,\n \n /**\n * The Complete member.\n */\n Complete = 2,\n \n /**\n * The Draft member.\n */\n Draft = 3\n }\n \n /**\n * ReceiptNumberResetType enum type.\n */\n export enum ReceiptNumberResetType {\n \n /**\n * The SingleTime member.\n */\n SingleTime = 0,\n \n /**\n * The YearlyRecurrence member.\n */\n YearlyRecurrence = 1\n }\n \n /**\n * PeriodUnit enum type.\n */\n export enum PeriodUnit {\n \n /**\n * The Day member.\n */\n Day = 0,\n \n /**\n * The Week member.\n */\n Week = 1,\n \n /**\n * The Month member.\n */\n Month = 2,\n \n /**\n * The Year member.\n */\n Year = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * WarrantyPriceRangeBaseType enum type.\n */\n export enum WarrantyPriceRangeBaseType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The BasePrice member.\n */\n BasePrice = 1,\n \n /**\n * The SellingPrice member.\n */\n SellingPrice = 2\n }\n \n /**\n * LogOnKeyboardType enum type.\n */\n export enum LogOnKeyboardType {\n \n /**\n * The OSKeyboard member.\n */\n OSKeyboard = 0,\n \n /**\n * The Numpad member.\n */\n Numpad = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * LogOnLayoutType enum type.\n */\n export enum LogOnLayoutType {\n \n /**\n * The Centered member.\n */\n Centered = 0,\n \n /**\n * The Right member.\n */\n Right = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeliveryModeTypeFilter enum type.\n */\n export enum DeliveryModeTypeFilter {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shipping member.\n */\n Shipping = 1,\n \n /**\n * The Pickup member.\n */\n Pickup = 2\n }\n \n /**\n * InventoryDocumentValidationResultSeverity enum type.\n */\n export enum InventoryDocumentValidationResultSeverity {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Informational member.\n */\n Informational = 1,\n \n /**\n * The Warning member.\n */\n Warning = 2,\n \n /**\n * The Error member.\n */\n Error = 3\n }\n \n /**\n * InventoryDocumentOverreceivingErrors enum type.\n */\n export enum InventoryDocumentOverreceivingErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The QuantityExceededAllowed member.\n */\n QuantityExceededAllowed,\n \n /**\n * The QuantityExceededAllowedWithinOverreceivingTolerance member.\n */\n QuantityExceededAllowedWithinOverreceivingTolerance,\n \n /**\n * The QuantityExceededOverreceivingTolerance member.\n */\n QuantityExceededOverreceivingTolerance\n }\n \n /**\n * InventoryDocumentSerialNumberErrors enum type.\n */\n export enum InventoryDocumentSerialNumberErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The RequiredSerialNumberNotProvided member.\n */\n RequiredSerialNumberNotProvided,\n \n /**\n * The DuplicateSerialNumberIsNotAllowed member.\n */\n DuplicateSerialNumberIsNotAllowed,\n \n /**\n * The RequiredSerialNumberValidationNotProvided member.\n */\n RequiredSerialNumberValidationNotProvided,\n \n /**\n * The SerialNumberNotAvailable member.\n */\n SerialNumberNotAvailable\n }\n \n /**\n * EmployeeIdentityType enum type.\n */\n export enum EmployeeIdentityType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CommerceIdentity member.\n */\n CommerceIdentity = 1,\n \n /**\n * The AadIdentity member.\n */\n AadIdentity = 2\n }\n \n /**\n * FulfillmentOperationType enum type.\n */\n export enum FulfillmentOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pick member.\n */\n Pick = 1,\n \n /**\n * The Pack member.\n */\n Pack = 2,\n \n /**\n * The Ship member.\n */\n Ship = 3,\n \n /**\n * The Pickup member.\n */\n Pickup = 4\n }\n \n /**\n * PaymentStatus enum type.\n */\n export enum PaymentStatus {\n \n /**\n * The NotSubmitted member.\n */\n NotSubmitted = 0,\n \n /**\n * The Authorized member.\n */\n Authorized = 1,\n \n /**\n * The Declined member.\n */\n Declined = 2,\n \n /**\n * The Posted member.\n */\n Posted = 3,\n \n /**\n * The Paid member.\n */\n Paid = 4\n }\n \n /**\n * UserAlertSourceType enum type.\n */\n export enum UserAlertSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Inventory_SerialNumberMissing member.\n */\n Inventory_SerialNumberMissing = 1,\n \n /**\n * The Inventory_SerialNumberInsufficientStock member.\n */\n Inventory_SerialNumberInsufficientStock = 2\n }\n \n /**\n * CustomerOrderMode enum type.\n */\n export enum CustomerOrderMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CustomerOrderCreateOrEdit member.\n */\n CustomerOrderCreateOrEdit = 1,\n \n /**\n * The OrderRecalled member.\n */\n OrderRecalled = 2,\n \n /**\n * The Pickup member.\n */\n Pickup = 3,\n \n /**\n * The Return member.\n */\n Return = 4,\n \n /**\n * The Cancellation member.\n */\n Cancellation = 5,\n \n /**\n * The QuoteCreateOrEdit member.\n */\n QuoteCreateOrEdit = 6\n }\n \n /**\n * InventoryValidationErrors enum type.\n */\n export enum InventoryValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryAvailableQuantitiesRecordsExceedLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryAvailableQuantitiesRecordsExceedLimit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllNotAllowedForAdvancedWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllNotAllowedForAdvancedWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_PurchaseOrderUnderDeliveryNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_PurchaseOrderUnderDeliveryNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseLineNotAllowedWhenReceiveNowQuantityIsZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseLineNotAllowedWhenReceiveNowQuantityIsZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseOrderLineNotAllowWhenReceiveQuantityUnderTolerance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseOrderLineNotAllowWhenReceiveQuantityUnderTolerance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CloseTransferLineNotAllowedWhenShipNowQuantityIsZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CloseTransferLineNotAllowedWhenShipNowQuantityIsZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllForAdvancedWarehouseWithoutIssueLocation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllForAdvancedWarehouseWithoutIssueLocation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ProductBehaviorMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ProductBehaviorMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StockCountJournal_JournalNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StockCountJournal_JournalNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_NoLineToCommit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_NoLineToCommit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_Journal_Name_Search_Criteria_Not_Valid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_Journal_Name_Search_Criteria_Not_Valid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_Movement_Journal_Location_Dimension_Missing_For_Product member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_Movement_Journal_Location_Dimension_Missing_For_Product,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateEmptyLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateEmptyLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SearchCriteriaContainsWarehouseLocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SearchCriteriaContainsWarehouseLocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultIssueLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultIssueLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultReceiptLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultReceiptLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CommitDocumentFailToDeserialize member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CommitDocumentFailToDeserialize,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineCannotBeDeleted member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineCannotBeDeleted,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload\n }\n \n /**\n * InventoryJournalPosAdjustmentType enum type.\n */\n export enum InventoryJournalPosAdjustmentType {\n \n /**\n * The In member.\n */\n In = 0,\n \n /**\n * The Out member.\n */\n Out = 1\n }\n \n /**\n * ProductDataValidationErrors enum type.\n */\n export enum ProductDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported\n }\n \n /**\n * AddressOperationType enum type.\n */\n export enum AddressOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Create member.\n */\n Create = 1,\n \n /**\n * The Update member.\n */\n Update = 2,\n \n /**\n * The Deactivate member.\n */\n Deactivate = 3\n }\n \n /**\n * AddressType enum type.\n */\n export enum AddressType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Invoice member.\n */\n Invoice = 1,\n \n /**\n * The Delivery member.\n */\n Delivery = 2,\n \n /**\n * The AltDlv member.\n */\n AltDlv = 3,\n \n /**\n * The SWIFT member.\n */\n SWIFT = 4,\n \n /**\n * The Payment member.\n */\n Payment = 5,\n \n /**\n * The Service member.\n */\n Service = 6,\n \n /**\n * The Home member.\n */\n Home = 7,\n \n /**\n * The Other member.\n */\n Other = 8,\n \n /**\n * The Business member.\n */\n Business = 9,\n \n /**\n * The RemitTo member.\n */\n RemitTo = 10,\n \n /**\n * The ShipCarrierThirdPartyShipping member.\n */\n ShipCarrierThirdPartyShipping = 11,\n \n /**\n * The Statement member.\n */\n Statement = 12,\n \n /**\n * The FixedAsset member.\n */\n FixedAsset = 15,\n \n /**\n * The Onetime member.\n */\n Onetime = 16,\n \n /**\n * The Recruit member.\n */\n Recruit = 17,\n \n /**\n * The SMS member.\n */\n SMS = 18,\n \n /**\n * The Lading_W member.\n */\n Lading_W = 101,\n \n /**\n * The Unlading_W member.\n */\n Unlading_W = 102,\n \n /**\n * The Consignment_IN member.\n */\n Consignment_IN = 103\n }\n \n /**\n * AttributeDataType enum type.\n */\n export enum AttributeDataType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Currency member.\n */\n Currency = 1,\n \n /**\n * The DateTime member.\n */\n DateTime = 2,\n \n /**\n * The Decimal member.\n */\n Decimal = 3,\n \n /**\n * The Integer member.\n */\n Integer = 4,\n \n /**\n * The Text member.\n */\n Text = 5,\n \n /**\n * The TrueFalse member.\n */\n TrueFalse = 6,\n \n /**\n * The Video member.\n */\n Video = 40,\n \n /**\n * The Image member.\n */\n Image = 41\n }\n \n /**\n * BarcodeEntryMethodType enum type.\n */\n export enum BarcodeEntryMethodType {\n \n /**\n * The SingleScanned member.\n */\n SingleScanned = 0,\n \n /**\n * The MultipleScanned member.\n */\n MultipleScanned = 1,\n \n /**\n * The ManuallyEntered member.\n */\n ManuallyEntered = 2,\n \n /**\n * The Selected member.\n */\n Selected = 3\n }\n \n /**\n * BarcodeMaskType enum type.\n */\n export enum BarcodeMaskType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The Customer member.\n */\n Customer = 2,\n \n /**\n * The Employee member.\n */\n Employee = 3,\n \n /**\n * The Coupon member.\n */\n Coupon = 4,\n \n /**\n * The DataEntry member.\n */\n DataEntry = 5,\n \n /**\n * The Salesperson member.\n */\n Salesperson = 6,\n \n /**\n * The Pharmacy member.\n */\n Pharmacy = 7,\n \n /**\n * The DiscountCode member.\n */\n DiscountCode = 8,\n \n /**\n * The GiftCard member.\n */\n GiftCard = 9,\n \n /**\n * The LoyaltyCard member.\n */\n LoyaltyCard = 10\n }\n \n /**\n * TransactionStatus enum type.\n */\n export enum TransactionStatus {\n \n /**\n * The Normal member.\n */\n Normal = 0,\n \n /**\n * The Voided member.\n */\n Voided = 1,\n \n /**\n * The Posted member.\n */\n Posted = 2,\n \n /**\n * The Concluded member.\n */\n Concluded = 3,\n \n /**\n * The Canceled member.\n */\n Canceled = 4,\n \n /**\n * The OnHold member.\n */\n OnHold = 5,\n \n /**\n * The Training member.\n */\n Training = 6,\n \n /**\n * The Aborted member.\n */\n Aborted = 7\n }\n \n /**\n * GiftCardOperationType enum type.\n */\n export enum GiftCardOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Issue member.\n */\n Issue = 1,\n \n /**\n * The AddTo member.\n */\n AddTo = 2,\n \n /**\n * The CashOut member.\n */\n CashOut = 3\n }\n \n /**\n * RetailGiftCardType enum type.\n */\n export enum RetailGiftCardType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The InternalGiftCard member.\n */\n InternalGiftCard = 1,\n \n /**\n * The ExternalGiftCard member.\n */\n ExternalGiftCard = 2\n }\n \n /**\n * PriceMethod enum type.\n */\n export enum PriceMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Fixed member.\n */\n Fixed = 1,\n \n /**\n * The AmountOff member.\n */\n AmountOff = 2,\n \n /**\n * The PercentOff member.\n */\n PercentOff = 3\n }\n \n /**\n * ConcurrencyMode enum type.\n */\n export enum ConcurrencyMode {\n \n /**\n * The Exclusive member.\n */\n Exclusive = 0,\n \n /**\n * The BestPrice member.\n */\n BestPrice = 1,\n \n /**\n * The Compounded member.\n */\n Compounded = 2,\n \n /**\n * The AlwaysApply member.\n */\n AlwaysApply = 3,\n \n /**\n * The HighestCombinedPricingPriority member.\n */\n HighestCombinedPricingPriority = 4\n }\n \n /**\n * SalesAgreementLineType enum type.\n */\n export enum SalesAgreementLineType {\n \n /**\n * The ProductQuantity member.\n */\n ProductQuantity = 0,\n \n /**\n * The ProductVolume member.\n */\n ProductVolume = 1,\n \n /**\n * The ProductCategory member.\n */\n ProductCategory = 2,\n \n /**\n * The ProductRootCategory member.\n */\n ProductRootCategory = 3\n }\n \n /**\n * DiscountLineType enum type.\n */\n export enum DiscountLineType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CustomerDiscount member.\n */\n CustomerDiscount = 1,\n \n /**\n * The PeriodicDiscount member.\n */\n PeriodicDiscount = 2,\n \n /**\n * The ManualDiscount member.\n */\n ManualDiscount = 3,\n \n /**\n * The LoyaltyDiscount member.\n */\n LoyaltyDiscount = 4,\n \n /**\n * The TenderTypeDiscount member.\n */\n TenderTypeDiscount = 5\n }\n \n /**\n * ManualDiscountType enum type.\n */\n export enum ManualDiscountType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The LineDiscountAmount member.\n */\n LineDiscountAmount = 1,\n \n /**\n * The LineDiscountPercent member.\n */\n LineDiscountPercent = 2,\n \n /**\n * The TotalDiscountAmount member.\n */\n TotalDiscountAmount = 3,\n \n /**\n * The TotalDiscountPercent member.\n */\n TotalDiscountPercent = 4\n }\n \n /**\n * CustomerDiscountType enum type.\n */\n export enum CustomerDiscountType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The LineDiscount member.\n */\n LineDiscount = 1,\n \n /**\n * The MultilineDiscount member.\n */\n MultilineDiscount = 2,\n \n /**\n * The TotalDiscount member.\n */\n TotalDiscount = 3\n }\n \n /**\n * ReasonCodeInputType enum type.\n */\n export enum ReasonCodeInputType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SubCode member.\n */\n SubCode = 1,\n \n /**\n * The Date member.\n */\n Date = 2,\n \n /**\n * The Numeric member.\n */\n Numeric = 3,\n \n /**\n * The Item member.\n */\n Item = 4,\n \n /**\n * The Customer member.\n */\n Customer = 5,\n \n /**\n * The Staff member.\n */\n Staff = 6,\n \n /**\n * The Text member.\n */\n Text = 9,\n \n /**\n * The SubCodeButtons member.\n */\n SubCodeButtons = 10,\n \n /**\n * The AgeLimit member.\n */\n AgeLimit = 11,\n \n /**\n * The CompositeSubCodes member.\n */\n CompositeSubCodes = 12\n }\n \n /**\n * ReasonCodeLineType enum type.\n */\n export enum ReasonCodeLineType {\n \n /**\n * The Header member.\n */\n Header = 0,\n \n /**\n * The Sales member.\n */\n Sales = 1,\n \n /**\n * The Payment member.\n */\n Payment = 2,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 3,\n \n /**\n * The NoSale member.\n */\n NoSale = 4,\n \n /**\n * The Affiliation member.\n */\n Affiliation = 5,\n \n /**\n * The Fiscal member.\n */\n Fiscal = 6\n }\n \n /**\n * ChargeModule enum type.\n */\n export enum ChargeModule {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sales member.\n */\n Sales = 1,\n \n /**\n * The Retail member.\n */\n Retail = 3\n }\n \n /**\n * ChargeType enum type.\n */\n export enum ChargeType {\n \n /**\n * The ManualCharge member.\n */\n ManualCharge = 0,\n \n /**\n * The PriceCharge member.\n */\n PriceCharge = 1,\n \n /**\n * The AutoCharge member.\n */\n AutoCharge = 2\n }\n \n /**\n * ChargeMethod enum type.\n */\n export enum ChargeMethod {\n \n /**\n * The Fixed member.\n */\n Fixed = 0,\n \n /**\n * The Pieces member.\n */\n Pieces = 1,\n \n /**\n * The Percent member.\n */\n Percent = 2,\n \n /**\n * The InterCompanyPercent member.\n */\n InterCompanyPercent = 3,\n \n /**\n * The External member.\n */\n External = 4,\n \n /**\n * The Proportional member.\n */\n Proportional = 5\n }\n \n /**\n * CashType enum type.\n */\n export enum CashType {\n \n /**\n * The Coin member.\n */\n Coin = 0,\n \n /**\n * The Note member.\n */\n Note = 1\n }\n \n /**\n * IncomeExpenseAccountType enum type.\n */\n export enum IncomeExpenseAccountType {\n \n /**\n * The Income member.\n */\n Income = 0,\n \n /**\n * The Expense member.\n */\n Expense = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * TenderLineStatus enum type.\n */\n export enum TenderLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotProcessed member.\n */\n NotProcessed = 1,\n \n /**\n * The PendingCommit member.\n */\n PendingCommit = 2,\n \n /**\n * The Voided member.\n */\n Voided = 3,\n \n /**\n * The Committed member.\n */\n Committed = 4,\n \n /**\n * The Historical member.\n */\n Historical = 5\n }\n \n /**\n * TenderLineVoidStatus enum type.\n */\n export enum TenderLineVoidStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NormalVoid member.\n */\n NormalVoid = 1,\n \n /**\n * The ForceVoided member.\n */\n ForceVoided = 2,\n \n /**\n * The ForceVoidReconciled member.\n */\n ForceVoidReconciled = 3\n }\n \n /**\n * PaymentProcessingType enum type.\n */\n export enum PaymentProcessingType {\n \n /**\n * The Immediate member.\n */\n Immediate = 0,\n \n /**\n * The Deferred member.\n */\n Deferred = 1,\n \n /**\n * The LinkedRefund member.\n */\n LinkedRefund = 2,\n \n /**\n * The Recalled member.\n */\n Recalled = 3\n }\n \n /**\n * CreditCardProcessorStatus enum type.\n */\n export enum CreditCardProcessorStatus {\n \n /**\n * The NA member.\n */\n NA = 0,\n \n /**\n * The Approved member.\n */\n Approved = 1,\n \n /**\n * The Declined member.\n */\n Declined = 2,\n \n /**\n * The Error member.\n */\n Error = 3\n }\n \n /**\n * ContactInformationType enum type.\n */\n export enum ContactInformationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Phone member.\n */\n Phone = 1,\n \n /**\n * The Email member.\n */\n Email = 2,\n \n /**\n * The Url member.\n */\n Url = 3,\n \n /**\n * The Telex member.\n */\n Telex = 4,\n \n /**\n * The Fax member.\n */\n Fax = 5,\n \n /**\n * The CellularPhone member.\n */\n CellularPhone = 6\n }\n \n /**\n * CommerceEntityDataLevel enum type.\n */\n export enum CommerceEntityDataLevel {\n \n /**\n * The Identity member.\n */\n Identity = 0,\n \n /**\n * The Minimal member.\n */\n Minimal = 1,\n \n /**\n * The Standard member.\n */\n Standard = 2,\n \n /**\n * The Extended member.\n */\n Extended = 3,\n \n /**\n * The Complete member.\n */\n Complete = 4\n }\n \n /**\n * ProductPropertyType enum type.\n */\n export enum ProductPropertyType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Currency member.\n */\n Currency = 1,\n \n /**\n * The DateTime member.\n */\n DateTime = 2,\n \n /**\n * The Decimal member.\n */\n Decimal = 3,\n \n /**\n * The Integer member.\n */\n Integer = 4,\n \n /**\n * The Text member.\n */\n Text = 5,\n \n /**\n * The Boolean member.\n */\n Boolean = 6,\n \n /**\n * The Video member.\n */\n Video = 40,\n \n /**\n * The Image member.\n */\n Image = 41\n }\n \n /**\n * AttributeGroupType enum type.\n */\n export enum AttributeGroupType {\n \n /**\n * The Default member.\n */\n Default = 0,\n \n /**\n * The Specification member.\n */\n Specification = 1\n }\n \n /**\n * ProductSource enum type.\n */\n export enum ProductSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Local member.\n */\n Local = 1,\n \n /**\n * The Remote member.\n */\n Remote = 2\n }\n \n /**\n * RoundingMethod enum type.\n */\n export enum RoundingMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Nearest member.\n */\n Nearest = 1,\n \n /**\n * The Up member.\n */\n Up = 2,\n \n /**\n * The Down member.\n */\n Down = 3\n }\n \n /**\n * LineMultilineDiscountOnItem enum type.\n */\n export enum LineMultilineDiscountOnItem {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Line member.\n */\n Line = 1,\n \n /**\n * The Multiline member.\n */\n Multiline = 2,\n \n /**\n * The Both member.\n */\n Both = 3\n }\n \n /**\n * LoyaltyRewardPointEntryType enum type.\n */\n export enum LoyaltyRewardPointEntryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Earn member.\n */\n Earn = 1,\n \n /**\n * The Redeem member.\n */\n Redeem = 2,\n \n /**\n * The ReturnEarned member.\n */\n ReturnEarned = 3,\n \n /**\n * The Adjust member.\n */\n Adjust = 4,\n \n /**\n * The Refund member.\n */\n Refund = 5\n }\n \n /**\n * LoyaltyRewardPointType enum type.\n */\n export enum LoyaltyRewardPointType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Quantity member.\n */\n Quantity = 1,\n \n /**\n * The Amount member.\n */\n Amount = 2\n }\n \n /**\n * TransactionType enum type.\n */\n export enum TransactionType {\n \n /**\n * The LogOff member.\n */\n LogOff = 0,\n \n /**\n * The LogOn member.\n */\n LogOn = 1,\n \n /**\n * The Sales member.\n */\n Sales = 2,\n \n /**\n * The Payment member.\n */\n Payment = 3,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 4,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 5,\n \n /**\n * The ChangeTender member.\n */\n ChangeTender = 6,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 7,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 9,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 14,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 15,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 16,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 17,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 18,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 19,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 20,\n \n /**\n * The SuspendShift member.\n */\n SuspendShift = 21,\n \n /**\n * The BlindCloseShift member.\n */\n BlindCloseShift = 22,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 23,\n \n /**\n * The PrintX member.\n */\n PrintX = 24,\n \n /**\n * The PrintZ member.\n */\n PrintZ = 25,\n \n /**\n * The PendingSalesOrder member.\n */\n PendingSalesOrder = 27,\n \n /**\n * The KitDisassembly member.\n */\n KitDisassembly = 28,\n \n /**\n * The AsyncCustomerQuote member.\n */\n AsyncCustomerQuote = 31,\n \n /**\n * The AsyncCustomerOrder member.\n */\n AsyncCustomerOrder = 33,\n \n /**\n * The ForceDeleteShift member.\n */\n ForceDeleteShift = 34,\n \n /**\n * The GiftCardInquiry member.\n */\n GiftCardInquiry = 35,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 36,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CashManagementTransactionContext enum type.\n */\n export enum CashManagementTransactionContext {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The Shift member.\n */\n Shift = 1,\n \n /**\n * The Safe member.\n */\n Safe = 2,\n \n /**\n * The Bank member.\n */\n Bank = 3\n }\n \n /**\n * CustomerTimelineItemEntityType enum type.\n */\n export enum CustomerTimelineItemEntityType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Activity member.\n */\n Activity = 1,\n \n /**\n * The Note member.\n */\n Note = 2,\n \n /**\n * The UnifiedActivity member.\n */\n UnifiedActivity = 3\n }\n \n /**\n * EmployeePermissionsAllowPrintingReceiptCopy enum type.\n */\n export enum EmployeePermissionsAllowPrintingReceiptCopy {\n \n /**\n * The Always member.\n */\n Always = 0,\n \n /**\n * The OnlyOnce member.\n */\n OnlyOnce = 1,\n \n /**\n * The OnlyOnceHqAvailable member.\n */\n OnlyOnceHqAvailable = 2,\n \n /**\n * The Never member.\n */\n Never = 3\n }\n \n /**\n * AddressFormatLineType enum type.\n */\n export enum AddressFormatLineType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ZipCode member.\n */\n ZipCode = 1,\n \n /**\n * The City member.\n */\n City = 2,\n \n /**\n * The County member.\n */\n County = 3,\n \n /**\n * The State member.\n */\n State = 4,\n \n /**\n * The CountryRegion member.\n */\n CountryRegion = 5,\n \n /**\n * The StreetName member.\n */\n StreetName = 6,\n \n /**\n * The District member.\n */\n District = 7,\n \n /**\n * The StreetNumber member.\n */\n StreetNumber = 8,\n \n /**\n * The BuildingCompliment member.\n */\n BuildingCompliment = 9,\n \n /**\n * The Postbox member.\n */\n Postbox = 10,\n \n /**\n * The House_RU member.\n */\n House_RU = 21,\n \n /**\n * The Flat_RU member.\n */\n Flat_RU = 22,\n \n /**\n * The CountryOKSMCode_RU member.\n */\n CountryOKSMCode_RU = 23\n }\n \n /**\n * StatementMethod enum type.\n */\n export enum StatementMethod {\n \n /**\n * The Staff member.\n */\n Staff = 0,\n \n /**\n * The PosTerminal member.\n */\n PosTerminal = 1,\n \n /**\n * The Total member.\n */\n Total = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * SalesRepPromptType enum type.\n */\n export enum SalesRepPromptType {\n \n /**\n * The NoPrompt member.\n */\n NoPrompt = 0,\n \n /**\n * The PromptOnCartCreation member.\n */\n PromptOnCartCreation = 1,\n \n /**\n * The PromptOnCartLineCreation member.\n */\n PromptOnCartLineCreation = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * RetailProductSearchType enum type.\n */\n export enum RetailProductSearchType {\n \n /**\n * The MatchAnySearchTerms member.\n */\n MatchAnySearchTerms = 0,\n \n /**\n * The MatchAllSearchTerms member.\n */\n MatchAllSearchTerms = 1\n }\n \n /**\n * RetailDenominationsToDisplay enum type.\n */\n export enum RetailDenominationsToDisplay {\n \n /**\n * The GreaterOrEqualToAmountDue member.\n */\n GreaterOrEqualToAmountDue = 0,\n \n /**\n * The AllDenominations member.\n */\n AllDenominations = 1\n }\n \n /**\n * EmployeeLogonType enum type.\n */\n export enum EmployeeLogonType {\n \n /**\n * The RetailIdentityProvider member.\n */\n RetailIdentityProvider = 0,\n \n /**\n * The AzureActiveDirectory member.\n */\n AzureActiveDirectory = 1,\n \n /**\n * The AzureActiveDirectorySingleSignOn member.\n */\n AzureActiveDirectorySingleSignOn = 2\n }\n \n /**\n * RetailCustomerSearchMode enum type.\n */\n export enum RetailCustomerSearchMode {\n \n /**\n * The Local member.\n */\n Local = 0,\n \n /**\n * The Remote member.\n */\n Remote = 1\n }\n \n /**\n * RequirePaymentForFulfillment enum type.\n */\n export enum RequirePaymentForFulfillment {\n \n /**\n * The AllowPayLater member.\n */\n AllowPayLater = 0,\n \n /**\n * The CardRequired member.\n */\n CardRequired = 1\n }\n \n /**\n * CardNotPresentProcessingConfiguration enum type.\n */\n export enum CardNotPresentProcessingConfiguration {\n \n /**\n * The UseHardwareStation member.\n */\n UseHardwareStation = 0,\n \n /**\n * The UseCommerceEngine member.\n */\n UseCommerceEngine = 1\n }\n \n /**\n * ChangeDueBehavior enum type.\n */\n export enum ChangeDueBehavior {\n \n /**\n * The ShowAlways member.\n */\n ShowAlways = 0,\n \n /**\n * The SkipWhenZero member.\n */\n SkipWhenZero = 1\n }\n \n /**\n * FontSchemeType enum type.\n */\n export enum FontSchemeType {\n \n /**\n * The Standard member.\n */\n Standard = 0,\n \n /**\n * The Large member.\n */\n Large = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeviceActivationStatus enum type.\n */\n export enum DeviceActivationStatus {\n \n /**\n * The Pending member.\n */\n Pending = 0,\n \n /**\n * The Activated member.\n */\n Activated = 1,\n \n /**\n * The Deactivated member.\n */\n Deactivated = 2,\n \n /**\n * The Disabled member.\n */\n Disabled = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeviceType enum type.\n */\n export enum DeviceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The OPOS member.\n */\n OPOS = 1,\n \n /**\n * The WindowsPrinter member.\n */\n WindowsPrinter = 2,\n \n /**\n * The Network member.\n */\n Network = 3\n }\n \n /**\n * DualDisplayType enum type.\n */\n export enum DualDisplayType {\n \n /**\n * The Logo member.\n */\n Logo = 0,\n \n /**\n * The ImageRotator member.\n */\n ImageRotator = 1,\n \n /**\n * The WebBrowser member.\n */\n WebBrowser = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * FiscalRegisterType enum type.\n */\n export enum FiscalRegisterType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Manufacturer member.\n */\n Manufacturer = 1\n }\n \n /**\n * PrinterLogotype enum type.\n */\n export enum PrinterLogotype {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Download member.\n */\n Download = 1,\n \n /**\n * The EpsonFlash member.\n */\n EpsonFlash = 2\n }\n \n /**\n * PrinterLogoAlignmentType enum type.\n */\n export enum PrinterLogoAlignmentType {\n \n /**\n * The Left member.\n */\n Left = 0,\n \n /**\n * The Center member.\n */\n Center = 1,\n \n /**\n * The Right member.\n */\n Right = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * FiscalIntegrationConnectorType enum type.\n */\n export enum FiscalIntegrationConnectorType {\n \n /**\n * The Local member.\n */\n Local = 0,\n \n /**\n * The External member.\n */\n External = 1,\n \n /**\n * The Internal member.\n */\n Internal = 2\n }\n \n /**\n * FiscalIntegrationConnectorLocation enum type.\n */\n export enum FiscalIntegrationConnectorLocation {\n \n /**\n * The HardwareStation member.\n */\n HardwareStation = 0,\n \n /**\n * The Pos member.\n */\n Pos = 1\n }\n \n /**\n * ReceiptType enum type.\n */\n export enum ReceiptType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The SalesReceipt member.\n */\n SalesReceipt = 1,\n \n /**\n * The CardReceiptForShop member.\n */\n CardReceiptForShop = 2,\n \n /**\n * The CardReceiptForCustomer member.\n */\n CardReceiptForCustomer = 3,\n \n /**\n * The CardReceiptForShopReturn member.\n */\n CardReceiptForShopReturn = 4,\n \n /**\n * The CardReceiptForCustomerReturn member.\n */\n CardReceiptForCustomerReturn = 5,\n \n /**\n * The CustomerAccountReceiptForShop member.\n */\n CustomerAccountReceiptForShop = 7,\n \n /**\n * The CustomerAccountReceiptForCustomer member.\n */\n CustomerAccountReceiptForCustomer = 8,\n \n /**\n * The CustomerAccountReceiptForShopReturn member.\n */\n CustomerAccountReceiptForShopReturn = 9,\n \n /**\n * The CustomerAccountReceiptForCustomerReturn member.\n */\n CustomerAccountReceiptForCustomerReturn = 10,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 14,\n \n /**\n * The CreditMemo member.\n */\n CreditMemo = 15,\n \n /**\n * The SalesOrderReceipt member.\n */\n SalesOrderReceipt = 18,\n \n /**\n * The GiftCertificate member.\n */\n GiftCertificate = 20,\n \n /**\n * The QuotationReceipt member.\n */\n QuotationReceipt = 21,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 22,\n \n /**\n * The PickupReceipt member.\n */\n PickupReceipt = 23,\n \n /**\n * The XReport member.\n */\n XReport = 24,\n \n /**\n * The ZReport member.\n */\n ZReport = 25,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 26,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 27,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 28,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 29,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 30,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 31,\n \n /**\n * The OrderSummaryReceipt member.\n */\n OrderSummaryReceipt = 32,\n \n /**\n * The GiftReceipt member.\n */\n GiftReceipt = 33,\n \n /**\n * The ReturnLabel member.\n */\n ReturnLabel = 34,\n \n /**\n * The EFDocDANFESimplified member.\n */\n EFDocDANFESimplified = 35,\n \n /**\n * The EFDocDANFEDetailed member.\n */\n EFDocDANFEDetailed = 36,\n \n /**\n * The PickingList member.\n */\n PickingList = 37,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 38,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 39,\n \n /**\n * The GiftCardInquiry member.\n */\n GiftCardInquiry = 40,\n \n /**\n * The CardTerminationReceiptForShop member.\n */\n CardTerminationReceiptForShop = 41,\n \n /**\n * The CardTerminationReceiptForCustomer member.\n */\n CardTerminationReceiptForCustomer = 42,\n \n /**\n * The TransferPackingSlip member.\n */\n TransferPackingSlip = 43,\n \n /**\n * The EFDocDanfeModel55 member.\n */\n EFDocDanfeModel55 = 44,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 45,\n \n /**\n * The InventoryTransfer member.\n */\n InventoryTransfer = 46,\n \n /**\n * The CfeDetailed member.\n */\n CfeDetailed = 47,\n \n /**\n * The CfeSimplified member.\n */\n CfeSimplified = 48,\n \n /**\n * The CfeCancelled member.\n */\n CfeCancelled = 49,\n \n /**\n * The CustomReceipt1 member.\n */\n CustomReceipt1 = 101,\n \n /**\n * The CustomReceipt2 member.\n */\n CustomReceipt2 = 102,\n \n /**\n * The CustomReceipt3 member.\n */\n CustomReceipt3 = 103,\n \n /**\n * The CustomReceipt4 member.\n */\n CustomReceipt4 = 104,\n \n /**\n * The CustomReceipt5 member.\n */\n CustomReceipt5 = 105,\n \n /**\n * The CustomReceipt6 member.\n */\n CustomReceipt6 = 106,\n \n /**\n * The CustomReceipt7 member.\n */\n CustomReceipt7 = 107,\n \n /**\n * The CustomReceipt8 member.\n */\n CustomReceipt8 = 108,\n \n /**\n * The CustomReceipt9 member.\n */\n CustomReceipt9 = 109,\n \n /**\n * The CustomReceipt10 member.\n */\n CustomReceipt10 = 110,\n \n /**\n * The CustomReceipt11 member.\n */\n CustomReceipt11 = 111,\n \n /**\n * The CustomReceipt12 member.\n */\n CustomReceipt12 = 112,\n \n /**\n * The CustomReceipt13 member.\n */\n CustomReceipt13 = 113,\n \n /**\n * The CustomReceipt14 member.\n */\n CustomReceipt14 = 114,\n \n /**\n * The CustomReceipt15 member.\n */\n CustomReceipt15 = 115,\n \n /**\n * The CustomReceipt16 member.\n */\n CustomReceipt16 = 116,\n \n /**\n * The CustomReceipt17 member.\n */\n CustomReceipt17 = 117,\n \n /**\n * The CustomReceipt18 member.\n */\n CustomReceipt18 = 118,\n \n /**\n * The CustomReceipt19 member.\n */\n CustomReceipt19 = 119,\n \n /**\n * The CustomReceipt20 member.\n */\n CustomReceipt20 = 120\n }\n \n /**\n * PrintBehavior enum type.\n */\n export enum PrintBehavior {\n \n /**\n * The Always member.\n */\n Always = 0,\n \n /**\n * The Never member.\n */\n Never = 1,\n \n /**\n * The Prompt member.\n */\n Prompt = 2,\n \n /**\n * The AsRequired member.\n */\n AsRequired = 3\n }\n \n /**\n * DistanceUnit enum type.\n */\n export enum DistanceUnit {\n \n /**\n * The Miles member.\n */\n Miles = 0,\n \n /**\n * The Kilometers member.\n */\n Kilometers = 1\n }\n \n /**\n * StockCountStatus enum type.\n */\n export enum StockCountStatus {\n \n /**\n * The Unchanged member.\n */\n Unchanged = 0,\n \n /**\n * The PendingUpdate member.\n */\n PendingUpdate = 1\n }\n \n /**\n * RecommendedElementType enum type.\n */\n export enum RecommendedElementType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Product member.\n */\n Product = 1,\n \n /**\n * The Content member.\n */\n Content = 2\n }\n \n /**\n * CommerceListInvitationStatus enum type.\n */\n export enum CommerceListInvitationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pending member.\n */\n Pending = 1,\n \n /**\n * The Accepted member.\n */\n Accepted = 2\n }\n \n /**\n * CommerceListInvitationType enum type.\n */\n export enum CommerceListInvitationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Public member.\n */\n Public = 1,\n \n /**\n * The Email member.\n */\n Email = 2\n }\n \n /**\n * SearchLocation enum type.\n */\n export enum SearchLocation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Local member.\n */\n Local = 1,\n \n /**\n * The Remote member.\n */\n Remote = 2,\n \n /**\n * The All member.\n */\n All = 3\n }\n \n /**\n * OrderSearchType enum type.\n */\n export enum OrderSearchType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 1,\n \n /**\n * The SalesTransaction member.\n */\n SalesTransaction = 2,\n \n /**\n * The ConsolidateOrder member.\n */\n ConsolidateOrder = 3\n }\n \n /**\n * SalesTransactionType enum type.\n */\n export enum SalesTransactionType {\n \n /**\n * The Sales member.\n */\n Sales = 2,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 3,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 15,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 18,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 19,\n \n /**\n * The PendingSalesOrder member.\n */\n PendingSalesOrder = 27,\n \n /**\n * The AsyncCustomerQuote member.\n */\n AsyncCustomerQuote = 31,\n \n /**\n * The AsyncCustomerOrder member.\n */\n AsyncCustomerOrder = 33,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 36,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CustomerRefinerSource enum type.\n */\n export enum CustomerRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The CustomerSearchField member.\n */\n CustomerSearchField = 2\n }\n \n /**\n * PriceSourceType enum type.\n */\n export enum PriceSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The BasePrice member.\n */\n BasePrice = 1,\n \n /**\n * The TradeAgreement member.\n */\n TradeAgreement = 2,\n \n /**\n * The PriceAdjustment member.\n */\n PriceAdjustment = 3,\n \n /**\n * The SalesAgreement member.\n */\n SalesAgreement = 4\n }\n \n /**\n * RetailAffiliationType enum type.\n */\n export enum RetailAffiliationType {\n \n /**\n * The General member.\n */\n General = 0,\n \n /**\n * The Loyalty member.\n */\n Loyalty = 1,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * InventoryDocumentLineOriginType enum type.\n */\n export enum InventoryDocumentLineOriginType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Headquarters member.\n */\n Headquarters = 1,\n \n /**\n * The Channel member.\n */\n Channel = 2\n }\n \n /**\n * InventorySerialNumberLineStatus enum type.\n */\n export enum InventorySerialNumberLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotRegistered member.\n */\n NotRegistered = 1,\n \n /**\n * The Registering member.\n */\n Registering = 2,\n \n /**\n * The Registered member.\n */\n Registered = 3\n }\n \n /**\n * InventorySourceDocumentLineStatus enum type.\n */\n export enum InventorySourceDocumentLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Deleted member.\n */\n Deleted = 1,\n \n /**\n * The ReadOnly member.\n */\n ReadOnly = 2\n }\n \n /**\n * RetailOperation enum type.\n */\n export enum RetailOperation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ItemSale member.\n */\n ItemSale = 100,\n \n /**\n * The PriceCheck member.\n */\n PriceCheck = 101,\n \n /**\n * The VoidItem member.\n */\n VoidItem = 102,\n \n /**\n * The ItemComment member.\n */\n ItemComment = 103,\n \n /**\n * The PriceOverride member.\n */\n PriceOverride = 104,\n \n /**\n * The SetQuantity member.\n */\n SetQuantity = 105,\n \n /**\n * The ClearQuantity member.\n */\n ClearQuantity = 106,\n \n /**\n * The ItemSearch member.\n */\n ItemSearch = 108,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 109,\n \n /**\n * The WeighItem member.\n */\n WeighItem = 110,\n \n /**\n * The LinkedItemsAdd member.\n */\n LinkedItemsAdd = 112,\n \n /**\n * The SetDimensions member.\n */\n SetDimensions = 113,\n \n /**\n * The ReturnTransaction member.\n */\n ReturnTransaction = 114,\n \n /**\n * The ShowJournal member.\n */\n ShowJournal = 115,\n \n /**\n * The SetCostPrice member.\n */\n SetCostPrice = 116,\n \n /**\n * The LoyaltyRequest member.\n */\n LoyaltyRequest = 117,\n \n /**\n * The ProcessInput member.\n */\n ProcessInput = 118,\n \n /**\n * The SalespersonBarcode member.\n */\n SalespersonBarcode = 119,\n \n /**\n * The SalespersonCard member.\n */\n SalespersonCard = 120,\n \n /**\n * The SalespersonClear member.\n */\n SalespersonClear = 121,\n \n /**\n * The InvoiceComment member.\n */\n InvoiceComment = 122,\n \n /**\n * The ChangeUnitOfMeasure member.\n */\n ChangeUnitOfMeasure = 123,\n \n /**\n * The ItemSaleMultiple member.\n */\n ItemSaleMultiple = 124,\n \n /**\n * The RFIDSale member.\n */\n RFIDSale = 125,\n \n /**\n * The SalesHistory member.\n */\n SalesHistory = 126,\n \n /**\n * The OverrideTaxTransaction member.\n */\n OverrideTaxTransaction = 127,\n \n /**\n * The OverrideTaxTransactionList member.\n */\n OverrideTaxTransactionList = 128,\n \n /**\n * The OverrideTaxLine member.\n */\n OverrideTaxLine = 129,\n \n /**\n * The OverrideTaxLineList member.\n */\n OverrideTaxLineList = 130,\n \n /**\n * The PackSlip member.\n */\n PackSlip = 131,\n \n /**\n * The DepositOverride member.\n */\n DepositOverride = 132,\n \n /**\n * The BuyWarranty member.\n */\n BuyWarranty = 133,\n \n /**\n * The AddAffiliation member.\n */\n AddAffiliation = 134,\n \n /**\n * The AddAffiliationFromList member.\n */\n AddAffiliationFromList = 135,\n \n /**\n * The AddSerialNumber member.\n */\n AddSerialNumber = 136,\n \n /**\n * The AddAffiliationToCustomer member.\n */\n AddAffiliationToCustomer = 137,\n \n /**\n * The RemoveAffiliationFromCustomer member.\n */\n RemoveAffiliationFromCustomer = 138,\n \n /**\n * The ConcludeTransaction member.\n */\n ConcludeTransaction = 139,\n \n /**\n * The AddLineCharge member.\n */\n AddLineCharge = 140,\n \n /**\n * The AddHeaderCharge member.\n */\n AddHeaderCharge = 141,\n \n /**\n * The ManageCharges member.\n */\n ManageCharges = 142,\n \n /**\n * The RecalculateCharges member.\n */\n RecalculateCharges = 143,\n \n /**\n * The AddWarrantyToAnExistingTransaction member.\n */\n AddWarrantyToAnExistingTransaction = 144,\n \n /**\n * The PayCash member.\n */\n PayCash = 200,\n \n /**\n * The PayCard member.\n */\n PayCard = 201,\n \n /**\n * The PayCustomerAccount member.\n */\n PayCustomerAccount = 202,\n \n /**\n * The PayCurrency member.\n */\n PayCurrency = 203,\n \n /**\n * The PayCheck member.\n */\n PayCheck = 204,\n \n /**\n * The PayCashQuick member.\n */\n PayCashQuick = 206,\n \n /**\n * The PayLoyalty member.\n */\n PayLoyalty = 207,\n \n /**\n * The PayCorporateCard member.\n */\n PayCorporateCard = 208,\n \n /**\n * The ChangeBack member.\n */\n ChangeBack = 210,\n \n /**\n * The VoidPayment member.\n */\n VoidPayment = 211,\n \n /**\n * The FleetCardInfo member.\n */\n FleetCardInfo = 212,\n \n /**\n * The PayCreditMemo member.\n */\n PayCreditMemo = 213,\n \n /**\n * The PayGiftCertificate member.\n */\n PayGiftCertificate = 214,\n \n /**\n * The CashOutGiftCard member.\n */\n CashOutGiftCard = 215,\n \n /**\n * The PayCardExact member.\n */\n PayCardExact = 216,\n \n /**\n * The PayCheckExact member.\n */\n PayCheckExact = 217,\n \n /**\n * The PayCustomerAccountExact member.\n */\n PayCustomerAccountExact = 218,\n \n /**\n * The PayGiftCardExact member.\n */\n PayGiftCardExact = 219,\n \n /**\n * The PayLoyaltyCardExact member.\n */\n PayLoyaltyCardExact = 220,\n \n /**\n * The LineDiscountAmount member.\n */\n LineDiscountAmount = 300,\n \n /**\n * The LineDiscountPercent member.\n */\n LineDiscountPercent = 301,\n \n /**\n * The TotalDiscountAmount member.\n */\n TotalDiscountAmount = 302,\n \n /**\n * The TotalDiscountPercent member.\n */\n TotalDiscountPercent = 303,\n \n /**\n * The DiscountCodeBarcode member.\n */\n DiscountCodeBarcode = 304,\n \n /**\n * The CalculateFullDiscounts member.\n */\n CalculateFullDiscounts = 310,\n \n /**\n * The RemovePeriodicDiscountsFromTransaction member.\n */\n RemovePeriodicDiscountsFromTransaction = 311,\n \n /**\n * The RecalculatePeriodicDiscounts member.\n */\n RecalculatePeriodicDiscounts = 312,\n \n /**\n * The PopupMenu member.\n */\n PopupMenu = 400,\n \n /**\n * The Submenu member.\n */\n Submenu = 401,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 500,\n \n /**\n * The TransactionComment member.\n */\n TransactionComment = 501,\n \n /**\n * The SalesPerson member.\n */\n SalesPerson = 502,\n \n /**\n * The SuspendTransaction member.\n */\n SuspendTransaction = 503,\n \n /**\n * The RecallTransaction member.\n */\n RecallTransaction = 504,\n \n /**\n * The RecallUnconcludedTransaction member.\n */\n RecallUnconcludedTransaction = 505,\n \n /**\n * The CardSwipe member.\n */\n CardSwipe = 506,\n \n /**\n * The PharmacyPrescriptionAdd member.\n */\n PharmacyPrescriptionAdd = 507,\n \n /**\n * The PharmacyPrescriptionCancel member.\n */\n PharmacyPrescriptionCancel = 508,\n \n /**\n * The PharmacyPrescriptionPaid member.\n */\n PharmacyPrescriptionPaid = 509,\n \n /**\n * The PharmacyPrescriptions member.\n */\n PharmacyPrescriptions = 510,\n \n /**\n * The IssueCreditMemo member.\n */\n IssueCreditMemo = 511,\n \n /**\n * The IssueGiftCertificate member.\n */\n IssueGiftCertificate = 512,\n \n /**\n * The DisplayTotal member.\n */\n DisplayTotal = 513,\n \n /**\n * The RecallSalesOrder member.\n */\n RecallSalesOrder = 515,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 516,\n \n /**\n * The IncomeAccounts member.\n */\n IncomeAccounts = 517,\n \n /**\n * The ExpenseAccounts member.\n */\n ExpenseAccounts = 518,\n \n /**\n * The AddToGiftCard member.\n */\n AddToGiftCard = 519,\n \n /**\n * The GiftCardBalance member.\n */\n GiftCardBalance = 520,\n \n /**\n * The LoyaltyCardPointsBalance member.\n */\n LoyaltyCardPointsBalance = 521,\n \n /**\n * The CashChangerRegisterAmount member.\n */\n CashChangerRegisterAmount = 550,\n \n /**\n * The CashChangerReset member.\n */\n CashChangerReset = 551,\n \n /**\n * The CashChangerRegret member.\n */\n CashChangerRegret = 552,\n \n /**\n * The CashChangerExit member.\n */\n CashChangerExit = 553,\n \n /**\n * The CashChangerChange member.\n */\n CashChangerChange = 554,\n \n /**\n * The CashChangerLogOn member.\n */\n CashChangerLogOn = 555,\n \n /**\n * The CashChangerInit member.\n */\n CashChangerInit = 556,\n \n /**\n * The SetCustomer member.\n */\n SetCustomer = 600,\n \n /**\n * The CustomerSearch member.\n */\n CustomerSearch = 602,\n \n /**\n * The CustomerClear member.\n */\n CustomerClear = 603,\n \n /**\n * The CustomerCard member.\n */\n CustomerCard = 604,\n \n /**\n * The CustomerTransactions member.\n */\n CustomerTransactions = 609,\n \n /**\n * The CustomerTransactionsReport member.\n */\n CustomerTransactionsReport = 610,\n \n /**\n * The CustomerBalanceReport member.\n */\n CustomerBalanceReport = 611,\n \n /**\n * The CustomerAdd member.\n */\n CustomerAdd = 612,\n \n /**\n * The CustomerBarcode member.\n */\n CustomerBarcode = 613,\n \n /**\n * The EditCustomerOrder member.\n */\n EditCustomerOrder = 614,\n \n /**\n * The EditQuotation member.\n */\n EditQuotation = 615,\n \n /**\n * The CreateCustomerOrder member.\n */\n CreateCustomerOrder = 620,\n \n /**\n * The CreateQuotation member.\n */\n CreateQuotation = 621,\n \n /**\n * The Search member.\n */\n Search = 622,\n \n /**\n * The CustomerEdit member.\n */\n CustomerEdit = 623,\n \n /**\n * The LoyaltyIssueCard member.\n */\n LoyaltyIssueCard = 625,\n \n /**\n * The RecalculateCustomerOrder member.\n */\n RecalculateCustomerOrder = 627,\n \n /**\n * The ShipSelectedProducts member.\n */\n ShipSelectedProducts = 629,\n \n /**\n * The ShipAllProducts member.\n */\n ShipAllProducts = 630,\n \n /**\n * The PickupSelectedProducts member.\n */\n PickupSelectedProducts = 631,\n \n /**\n * The PickupAllProducts member.\n */\n PickupAllProducts = 632,\n \n /**\n * The SetQuotationExpirationDate member.\n */\n SetQuotationExpirationDate = 633,\n \n /**\n * The PaymentsHistory member.\n */\n PaymentsHistory = 634,\n \n /**\n * The ReturnChargesOverride member.\n */\n ReturnChargesOverride = 635,\n \n /**\n * The CreateRetailTransaction member.\n */\n CreateRetailTransaction = 636,\n \n /**\n * The SetCommissionSalesGroupOnTransaction member.\n */\n SetCommissionSalesGroupOnTransaction = 637,\n \n /**\n * The SetCommissionSalesGroupOnLine member.\n */\n SetCommissionSalesGroupOnLine = 638,\n \n /**\n * The ClearCommissionSalesGroupOnTransaction member.\n */\n ClearCommissionSalesGroupOnTransaction = 639,\n \n /**\n * The ClearCommissionSalesGroupOnLine member.\n */\n ClearCommissionSalesGroupOnLine = 640,\n \n /**\n * The CarryoutSelectedProducts member.\n */\n CarryoutSelectedProducts = 641,\n \n /**\n * The CarryoutAllProducts member.\n */\n CarryoutAllProducts = 642,\n \n /**\n * The AddCoupons member.\n */\n AddCoupons = 643,\n \n /**\n * The RemoveCoupons member.\n */\n RemoveCoupons = 644,\n \n /**\n * The ViewAllDiscounts member.\n */\n ViewAllDiscounts = 645,\n \n /**\n * The ViewAvailableDiscounts member.\n */\n ViewAvailableDiscounts = 646,\n \n /**\n * The ChangeDeliveryMode member.\n */\n ChangeDeliveryMode = 647,\n \n /**\n * The CancelOrder member.\n */\n CancelOrder = 648,\n \n /**\n * The CreatePickingList member.\n */\n CreatePickingList = 649,\n \n /**\n * The PrintPackingSlip member.\n */\n PrintPackingSlip = 650,\n \n /**\n * The EditFulfillmentLine member.\n */\n EditFulfillmentLine = 651,\n \n /**\n * The AcceptFulfillmentLine member.\n */\n AcceptFulfillmentLine = 652,\n \n /**\n * The RejectFulfillmentLine member.\n */\n RejectFulfillmentLine = 653,\n \n /**\n * The PickFulfillmentLine member.\n */\n PickFulfillmentLine = 654,\n \n /**\n * The PackFulfillmentLine member.\n */\n PackFulfillmentLine = 655,\n \n /**\n * The ShipFulfillmentLine member.\n */\n ShipFulfillmentLine = 656,\n \n /**\n * The PickupFulfillmentLine member.\n */\n PickupFulfillmentLine = 657,\n \n /**\n * The ChangePickupLines member.\n */\n ChangePickupLines = 658,\n \n /**\n * The LogOn member.\n */\n LogOn = 700,\n \n /**\n * The LogOff member.\n */\n LogOff = 701,\n \n /**\n * The ChangeUser member.\n */\n ChangeUser = 702,\n \n /**\n * The LockTerminal member.\n */\n LockTerminal = 703,\n \n /**\n * The LogOffForce member.\n */\n LogOffForce = 704,\n \n /**\n * The EmployeeCard member.\n */\n EmployeeCard = 705,\n \n /**\n * The EmployeeBarcode member.\n */\n EmployeeBarcode = 706,\n \n /**\n * The ActivateDevice member.\n */\n ActivateDevice = 707,\n \n /**\n * The DeactivateDevice member.\n */\n DeactivateDevice = 708,\n \n /**\n * The ChangeHardwareStation member.\n */\n ChangeHardwareStation = 709,\n \n /**\n * The PairHardwareStation member.\n */\n PairHardwareStation = 710,\n \n /**\n * The MassActivateDevice member.\n */\n MassActivateDevice = 711,\n \n /**\n * The ViewMyClientBook member.\n */\n ViewMyClientBook = 712,\n \n /**\n * The ViewStoreClientBooks member.\n */\n ViewStoreClientBooks = 713,\n \n /**\n * The AddCustomerToClientBook member.\n */\n AddCustomerToClientBook = 714,\n \n /**\n * The RemoveCustomersFromClientBook member.\n */\n RemoveCustomersFromClientBook = 715,\n \n /**\n * The ReassignClientBookCustomers member.\n */\n ReassignClientBookCustomers = 716,\n \n /**\n * The HealthCheck member.\n */\n HealthCheck = 717,\n \n /**\n * The NegativeAdjustment member.\n */\n NegativeAdjustment = 800,\n \n /**\n * The InventoryLookup member.\n */\n InventoryLookup = 801,\n \n /**\n * The StockCount member.\n */\n StockCount = 802,\n \n /**\n * The PickingAndReceiving member.\n */\n PickingAndReceiving = 803,\n \n /**\n * The InboundInventory member.\n */\n InboundInventory = 804,\n \n /**\n * The OutboundInventory member.\n */\n OutboundInventory = 805,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 806,\n \n /**\n * The InventoryMovement member.\n */\n InventoryMovement = 807,\n \n /**\n * The PostStockCounting member.\n */\n PostStockCounting = 808,\n \n /**\n * The ApplicationExit member.\n */\n ApplicationExit = 900,\n \n /**\n * The PrintTaxFree member.\n */\n PrintTaxFree = 906,\n \n /**\n * The PrintPreviousSlip member.\n */\n PrintPreviousSlip = 907,\n \n /**\n * The PrintPreviousInvoice member.\n */\n PrintPreviousInvoice = 908,\n \n /**\n * The UploadPrinterLogo member.\n */\n UploadPrinterLogo = 909,\n \n /**\n * The RestartComputer member.\n */\n RestartComputer = 910,\n \n /**\n * The ShutdownComputer member.\n */\n ShutdownComputer = 911,\n \n /**\n * The DesignModeEnable member.\n */\n DesignModeEnable = 912,\n \n /**\n * The DesignModeDisable member.\n */\n DesignModeDisable = 913,\n \n /**\n * The MinimizePOSWindow member.\n */\n MinimizePOSWindow = 914,\n \n /**\n * The BlankOperation member.\n */\n BlankOperation = 915,\n \n /**\n * The WindowsWorkflowOperation member.\n */\n WindowsWorkflowOperation = 916,\n \n /**\n * The DatabaseConnectionStatus member.\n */\n DatabaseConnectionStatus = 917,\n \n /**\n * The ShowBlindClosedShifts member.\n */\n ShowBlindClosedShifts = 918,\n \n /**\n * The ExtendedLogOn member.\n */\n ExtendedLogOn = 919,\n \n /**\n * The TimeRegistration member.\n */\n TimeRegistration = 920,\n \n /**\n * The ViewTimeClockEntries member.\n */\n ViewTimeClockEntries = 921,\n \n /**\n * The ViewProductDetails member.\n */\n ViewProductDetails = 922,\n \n /**\n * The ViewOrderFulfillmentLines member.\n */\n ViewOrderFulfillmentLines = 928,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 1000,\n \n /**\n * The ViewReport member.\n */\n ViewReport = 1003,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 1052,\n \n /**\n * The BlindCloseShift member.\n */\n BlindCloseShift = 1053,\n \n /**\n * The SuspendShift member.\n */\n SuspendShift = 1054,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 1055,\n \n /**\n * The PrintX member.\n */\n PrintX = 1056,\n \n /**\n * The PrintZ member.\n */\n PrintZ = 1057,\n \n /**\n * The PrintFiscalX member.\n */\n PrintFiscalX = 1058,\n \n /**\n * The PrintFiscalZ member.\n */\n PrintFiscalZ = 1059,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 1100,\n \n /**\n * The DeclareStartAmount member.\n */\n DeclareStartAmount = 1200,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 1201,\n \n /**\n * The TenderRemoval member.\n */\n TenderRemoval = 1210,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 1211,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 1212,\n \n /**\n * The ShippingAddressSearch member.\n */\n ShippingAddressSearch = 1213,\n \n /**\n * The ShippingAddressAdd member.\n */\n ShippingAddressAdd = 1214,\n \n /**\n * The ChangePassword member.\n */\n ChangePassword = 1215,\n \n /**\n * The ResetPassword member.\n */\n ResetPassword = 1216,\n \n /**\n * The KitDisassembly member.\n */\n KitDisassembly = 1217,\n \n /**\n * The ForceUnlockPeripheral member.\n */\n ForceUnlockPeripheral = 1218,\n \n /**\n * The OpenURL member.\n */\n OpenURL = 1219,\n \n /**\n * The ManageSafe member.\n */\n ManageSafe = 1220,\n \n /**\n * The VoidSuspendedTransactions member.\n */\n VoidSuspendedTransactions = 1221,\n \n /**\n * The SkipFiscalRegistration member.\n */\n SkipFiscalRegistration = 1300,\n \n /**\n * The MarkFiscalEventRegistered member.\n */\n MarkFiscalEventRegistered = 1301,\n \n /**\n * The CompleteFiscalRegistrationProcess member.\n */\n CompleteFiscalRegistrationProcess = 1302,\n \n /**\n * The SkipHealthCheckError member.\n */\n SkipHealthCheckError = 1303,\n \n /**\n * The PostponeFiscalRegistration member.\n */\n PostponeFiscalRegistration = 1304,\n \n /**\n * The ManageChecklistsAndTasks member.\n */\n ManageChecklistsAndTasks = 1400,\n \n /**\n * The Invalid member.\n */\n Invalid = 65535\n }\n \n /**\n * RefinerType enum type.\n */\n export enum RefinerType {\n \n /**\n * The SingleSelect member.\n */\n SingleSelect = 0,\n \n /**\n * The MultiSelect member.\n */\n MultiSelect = 1,\n \n /**\n * The FreeText member.\n */\n FreeText = 2\n }\n \n /**\n * DisplayTemplate enum type.\n */\n export enum DisplayTemplate {\n \n /**\n * The List member.\n */\n List = 0,\n \n /**\n * The Slider member.\n */\n Slider = 1,\n \n /**\n * The SliderWithBars member.\n */\n SliderWithBars = 2,\n \n /**\n * The Range member.\n */\n Range = 3,\n \n /**\n * The TextBox member.\n */\n TextBox = 4\n }\n \n /**\n * ClientBookRefinerSource enum type.\n */\n export enum ClientBookRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The CustomerSearchKeyword member.\n */\n CustomerSearchKeyword = 2,\n \n /**\n * The StaffId member.\n */\n StaffId = 3\n }\n \n /**\n * ProductRefinerSource enum type.\n */\n export enum ProductRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The Category member.\n */\n Category = 2,\n \n /**\n * The Price member.\n */\n Price = 3,\n \n /**\n * The Rating member.\n */\n Rating = 4\n }\n \n /**\n * LoyaltyCardTenderType enum type.\n */\n export enum LoyaltyCardTenderType {\n \n /**\n * The AsCardTender member.\n */\n AsCardTender = 0,\n \n /**\n * The AsContactTender member.\n */\n AsContactTender = 1,\n \n /**\n * The NoTender member.\n */\n NoTender = 2,\n \n /**\n * The Blocked member.\n */\n Blocked = 3\n }\n \n /**\n * ReleasedProductType enum type.\n */\n export enum ReleasedProductType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The Service member.\n */\n Service = 2\n }\n \n /**\n * RetailChannelType enum type.\n */\n export enum RetailChannelType {\n \n /**\n * The RetailStore member.\n */\n RetailStore = 0,\n \n /**\n * The OnlineStore member.\n */\n OnlineStore = 1,\n \n /**\n * The OnlineMarketplace member.\n */\n OnlineMarketplace = 2,\n \n /**\n * The SharePointOnlineStore member.\n */\n SharePointOnlineStore = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * LogOnConfiguration enum type.\n */\n export enum LogOnConfiguration {\n \n /**\n * The LocalDatabase member.\n */\n LocalDatabase = 0,\n \n /**\n * The RealTimeService member.\n */\n RealTimeService = 1\n }\n \n /**\n * TransactionServiceAuthenticationType enum type.\n */\n export enum TransactionServiceAuthenticationType {\n \n /**\n * The CertificateAuthentication member.\n */\n CertificateAuthentication = 0,\n \n /**\n * The ServiceToServiceAuthentication member.\n */\n ServiceToServiceAuthentication = 1,\n \n /**\n * The AdfsServiceToServiceClientSecretAuthentication member.\n */\n AdfsServiceToServiceClientSecretAuthentication = 2,\n \n /**\n * The ServiceToServiceClientCertificateAuthentication member.\n */\n ServiceToServiceClientCertificateAuthentication = 3,\n \n /**\n * The AdfsServiceToServiceClientCertificateAuthentication member.\n */\n AdfsServiceToServiceClientCertificateAuthentication = 4\n }\n \n /**\n * IncludePersonalDataInGuestOrderLookupPolicy enum type.\n */\n export enum IncludePersonalDataInGuestOrderLookupPolicy {\n \n /**\n * The Never member.\n */\n Never = 0,\n \n /**\n * The GuestOrdersOnly member.\n */\n GuestOrdersOnly = 1,\n \n /**\n * The AllOrders member.\n */\n AllOrders = 2\n }\n \n /**\n * RetailAddressBookType enum type.\n */\n export enum RetailAddressBookType {\n \n /**\n * The Customer member.\n */\n Customer = 0,\n \n /**\n * The Employee member.\n */\n Employee = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * InventAvailabilityCalculationMode enum type.\n */\n export enum InventAvailabilityCalculationMode {\n \n /**\n * The RealTimeService member.\n */\n RealTimeService = 0,\n \n /**\n * The Channel member.\n */\n Channel = 1\n }\n \n /**\n * InventoryAvailabilityClientDisplayMode enum type.\n */\n export enum InventoryAvailabilityClientDisplayMode {\n \n /**\n * The Raw member.\n */\n Raw = 0,\n \n /**\n * The Buffered member.\n */\n Buffered = 1,\n \n /**\n * The None member.\n */\n None = 2,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * EmployeeActivityType enum type.\n */\n export enum EmployeeActivityType {\n \n /**\n * The ClockIn member.\n */\n ClockIn = 0,\n \n /**\n * The JobStop member.\n */\n JobStop = 1,\n \n /**\n * The JobStart member.\n */\n JobStart = 2,\n \n /**\n * The TeamStop member.\n */\n TeamStop = 3,\n \n /**\n * The TeamStart member.\n */\n TeamStart = 4,\n \n /**\n * The BreakFlowStart member.\n */\n BreakFlowStart = 5,\n \n /**\n * The BreakCancelOne member.\n */\n BreakCancelOne = 6,\n \n /**\n * The BreakCancelAll member.\n */\n BreakCancelAll = 7,\n \n /**\n * The BreakFlowStop member.\n */\n BreakFlowStop = 8,\n \n /**\n * The FinishQuantity member.\n */\n FinishQuantity = 9,\n \n /**\n * The ClockOut member.\n */\n ClockOut = 10,\n \n /**\n * The EventCode member.\n */\n EventCode = 11,\n \n /**\n * The BreakFromWork member.\n */\n BreakFromWork = 12,\n \n /**\n * The BreakForLunch member.\n */\n BreakForLunch = 13,\n \n /**\n * The Logbook member.\n */\n Logbook = 14,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeliveryPreferenceType enum type.\n */\n export enum DeliveryPreferenceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ShipToAddress member.\n */\n ShipToAddress = 1,\n \n /**\n * The PickupFromStore member.\n */\n PickupFromStore = 2,\n \n /**\n * The ElectronicDelivery member.\n */\n ElectronicDelivery = 3,\n \n /**\n * The DeliverItemsIndividually member.\n */\n DeliverItemsIndividually = 4\n }\n \n /**\n * LayoutType enum type.\n */\n export enum LayoutType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ModernPosCompact member.\n */\n ModernPosCompact = 1,\n \n /**\n * The ModernPosFull member.\n */\n ModernPosFull = 2,\n \n /**\n * The Epos member.\n */\n Epos = 3\n }\n \n /**\n * SalesInvoiceType enum type.\n */\n export enum SalesInvoiceType {\n \n /**\n * The Journal member.\n */\n Journal = 0,\n \n /**\n * The DEL_Quotation member.\n */\n DEL_Quotation = 1,\n \n /**\n * The Subscription member.\n */\n Subscription = 2,\n \n /**\n * The Sales member.\n */\n Sales = 3,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 4,\n \n /**\n * The DEL_Blanket member.\n */\n DEL_Blanket = 5,\n \n /**\n * The ItemReq member.\n */\n ItemReq = 6\n }\n \n /**\n * InvoiceType enum type.\n */\n export enum InvoiceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SalesOrderInvoice member.\n */\n SalesOrderInvoice = 1,\n \n /**\n * The FreeTextInvoice member.\n */\n FreeTextInvoice = 2,\n \n /**\n * The ProjectInvoice member.\n */\n ProjectInvoice = 3,\n \n /**\n * The CreditNoteInvoice member.\n */\n CreditNoteInvoice = 4,\n \n /**\n * The FreeTextCreditNoteInvoice member.\n */\n FreeTextCreditNoteInvoice = 5,\n \n /**\n * The ProjectCreditNoteInvoice member.\n */\n ProjectCreditNoteInvoice = 6\n }\n \n /**\n * InvoicePaidStatus enum type.\n */\n export enum InvoicePaidStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Unpaid member.\n */\n Unpaid = 1,\n \n /**\n * The PartiallyPaid member.\n */\n PartiallyPaid = 2,\n \n /**\n * The Paid member.\n */\n Paid = 3\n }\n \n /**\n * TaxOverrideType enum type.\n */\n export enum TaxOverrideType {\n \n /**\n * The ItemSalesTaxGroup member.\n */\n ItemSalesTaxGroup = 0,\n \n /**\n * The SalesTaxGroup member.\n */\n SalesTaxGroup = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * TaxOverrideBy enum type.\n */\n export enum TaxOverrideBy {\n \n /**\n * The Line member.\n */\n Line = 0,\n \n /**\n * The Cart member.\n */\n Cart = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * ReasonCodeInputRequiredType enum type.\n */\n export enum ReasonCodeInputRequiredType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Always member.\n */\n Always = 1,\n \n /**\n * The Positive member.\n */\n Positive = 2,\n \n /**\n * The Negative member.\n */\n Negative = 3\n }\n \n /**\n * RecordingValueType enum type.\n */\n export enum RecordingValueType {\n \n /**\n * The Preferred member.\n */\n Preferred = 0,\n \n /**\n * The Example member.\n */\n Example = 1\n }\n \n /**\n * UserActionType enum type.\n */\n export enum UserActionType {\n \n /**\n * The Input member.\n */\n Input = 1,\n \n /**\n * The Output member.\n */\n Output = 16,\n \n /**\n * The Validation member.\n */\n Validation = 256\n }\n \n /**\n * ArtifactType enum type.\n */\n export enum ArtifactType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Ax7Bpm member.\n */\n Ax7Bpm = 1,\n \n /**\n * The Visio member.\n */\n Visio = 2,\n \n /**\n * The TaskGuide member.\n */\n TaskGuide = 3,\n \n /**\n * The Ax6Bpm member.\n */\n Ax6Bpm = 4,\n \n /**\n * The TaskGuideResources member.\n */\n TaskGuideResources = 5,\n \n /**\n * The TaskXml member.\n */\n TaskXml = 6,\n \n /**\n * The VideoWma member.\n */\n VideoWma = 7,\n \n /**\n * The ProcessXml member.\n */\n ProcessXml = 8,\n \n /**\n * The Trace member.\n */\n Trace = 9,\n \n /**\n * The RapidStartXml member.\n */\n RapidStartXml = 10,\n \n /**\n * The UserDrawing member.\n */\n UserDrawing = 100\n }\n \n /**\n * FrameworkAccess enum type.\n */\n export enum FrameworkAccess {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Global member.\n */\n Global = 1,\n \n /**\n * The Corporate member.\n */\n Corporate = 2,\n \n /**\n * The Private member.\n */\n Private = 3,\n \n /**\n * The BoxPackage member.\n */\n BoxPackage = 4\n }\n \n /**\n * MetadataControl enum type.\n */\n export enum MetadataControl {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SingleValue member.\n */\n SingleValue = 1,\n \n /**\n * The MultiValue member.\n */\n MultiValue = 2,\n \n /**\n * The Tags member.\n */\n Tags = 3,\n \n /**\n * The Links member.\n */\n Links = 4,\n \n /**\n * The ComboBox member.\n */\n ComboBox = 5,\n \n /**\n * The MultiSelect member.\n */\n MultiSelect = 6\n }\n \n /**\n * FiscalIntegrationRegistrationStatus enum type.\n */\n export enum FiscalIntegrationRegistrationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Completed member.\n */\n Completed = 1,\n \n /**\n * The Skipped member.\n */\n Skipped = 2,\n \n /**\n * The MarkedAsRegistered member.\n */\n MarkedAsRegistered = 3,\n \n /**\n * The AutoSkipped member.\n */\n AutoSkipped = 4,\n \n /**\n * The Postponed member.\n */\n Postponed = 5\n }\n \n /**\n * CustomerOrderOperation enum type.\n */\n export enum CustomerOrderOperation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Edit member.\n */\n Edit = 1,\n \n /**\n * The Cancel member.\n */\n Cancel = 2,\n \n /**\n * The PickUpFromStore member.\n */\n PickUpFromStore = 3,\n \n /**\n * The CreatePickingList member.\n */\n CreatePickingList = 4,\n \n /**\n * The CreatePackingSlip member.\n */\n CreatePackingSlip = 5,\n \n /**\n * The PrintPackingSlip member.\n */\n PrintPackingSlip = 6,\n \n /**\n * The Return member.\n */\n Return = 7,\n \n /**\n * The RejectFulfillmentLine member.\n */\n RejectFulfillmentLine = 8,\n \n /**\n * The AcceptFulfillmentLine member.\n */\n AcceptFulfillmentLine = 9,\n \n /**\n * The PackFulfillmentLine member.\n */\n PackFulfillmentLine = 10,\n \n /**\n * The ShipFulfillmentLine member.\n */\n ShipFulfillmentLine = 11,\n \n /**\n * The PickFulfillmentLine member.\n */\n PickFulfillmentLine = 12\n }\n \n /**\n * BusinessPartnerOperationType enum type.\n */\n export enum BusinessPartnerOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CreateProspect member.\n */\n CreateProspect = 1,\n \n /**\n * The AddUser member.\n */\n AddUser = 2,\n \n /**\n * The DeleteUser member.\n */\n DeleteUser = 3,\n \n /**\n * The EditUser member.\n */\n EditUser = 4,\n \n /**\n * The AccountStatement member.\n */\n AccountStatement = 5,\n \n /**\n * The InvoiceRequest member.\n */\n InvoiceRequest = 6\n }\n \n /**\n * BusinessPartnerOperationStatus enum type.\n */\n export enum BusinessPartnerOperationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Processed member.\n */\n Processed = 1,\n \n /**\n * The Error member.\n */\n Error = 2\n }\n \n /**\n * CartType enum type.\n */\n export enum CartType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shopping member.\n */\n Shopping = 1,\n \n /**\n * The Checkout member.\n */\n Checkout = 2,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 3,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 4,\n \n /**\n * The AccountDeposit member.\n */\n AccountDeposit = 5\n }\n \n /**\n * CartStatus enum type.\n */\n export enum CartStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Created member.\n */\n Created = 1,\n \n /**\n * The Suspended member.\n */\n Suspended = 2,\n \n /**\n * The Voided member.\n */\n Voided = 3\n }\n \n /**\n * PeriodicDiscountsCalculateScope enum type.\n */\n export enum PeriodicDiscountsCalculateScope {\n \n /**\n * The All member.\n */\n All = 0,\n \n /**\n * The None member.\n */\n None = 1,\n \n /**\n * The CouponDiscountsOnly member.\n */\n CouponDiscountsOnly = 2\n }\n \n /**\n * CustomerType enum type.\n */\n export enum CustomerType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Person member.\n */\n Person = 1,\n \n /**\n * The Organization member.\n */\n Organization = 2\n }\n \n /**\n * ContactInfoType enum type.\n */\n export enum ContactInfoType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Phone member.\n */\n Phone = 1,\n \n /**\n * The Email member.\n */\n Email = 2,\n \n /**\n * The Url member.\n */\n Url = 3,\n \n /**\n * The Telex member.\n */\n Telex = 4,\n \n /**\n * The Fax member.\n */\n Fax = 5\n }\n \n /**\n * ChecklistStatus enum type.\n */\n export enum ChecklistStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotStarted member.\n */\n NotStarted = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Completed member.\n */\n Completed = 3\n }\n \n /**\n * ChecklistTaskDeepLinkType enum type.\n */\n export enum ChecklistTaskDeepLinkType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Display member.\n */\n Display = 1,\n \n /**\n * The Output member.\n */\n Output = 2,\n \n /**\n * The Action member.\n */\n Action = 3,\n \n /**\n * The Url member.\n */\n Url = 4,\n \n /**\n * The PosOperation member.\n */\n PosOperation = 5,\n \n /**\n * The CustomerAccount member.\n */\n CustomerAccount = 6,\n \n /**\n * The PosOperationWithParameters member.\n */\n PosOperationWithParameters = 7\n }\n \n /**\n * ChecklistTaskStatus enum type.\n */\n export enum ChecklistTaskStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotStarted member.\n */\n NotStarted = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Completed member.\n */\n Completed = 3\n }\n \n /**\n * DocumentStatus enum type.\n */\n export enum DocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Quotation member.\n */\n Quotation = 1,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 2,\n \n /**\n * The Confirmation member.\n */\n Confirmation = 3,\n \n /**\n * The PickingList member.\n */\n PickingList = 4,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 5,\n \n /**\n * The ReceiptsList member.\n */\n ReceiptsList = 6,\n \n /**\n * The Invoice member.\n */\n Invoice = 7,\n \n /**\n * The ApproveJournal member.\n */\n ApproveJournal = 8,\n \n /**\n * The ProjectInvoice member.\n */\n ProjectInvoice = 9,\n \n /**\n * The ProjectPackingSlip member.\n */\n ProjectPackingSlip = 10,\n \n /**\n * The CRMQuotation member.\n */\n CRMQuotation = 11,\n \n /**\n * The Lost member.\n */\n Lost = 12,\n \n /**\n * The Canceled member.\n */\n Canceled = 13,\n \n /**\n * The FreeTextInvoice member.\n */\n FreeTextInvoice = 14,\n \n /**\n * The RFQ member.\n */\n RFQ = 15,\n \n /**\n * The RFQAccept member.\n */\n RFQAccept = 16,\n \n /**\n * The RFQReject member.\n */\n RFQReject = 17,\n \n /**\n * The PurchaseRequest member.\n */\n PurchaseRequest = 18,\n \n /**\n * The RFQResend member.\n */\n RFQResend = 19\n }\n \n /**\n * CustomerOrderType enum type.\n */\n export enum CustomerOrderType {\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 0,\n \n /**\n * The Quote member.\n */\n Quote = 1\n }\n \n /**\n * LineDiscountCalculationType enum type.\n */\n export enum LineDiscountCalculationType {\n \n /**\n * The Line member.\n */\n Line = 0,\n \n /**\n * The Multiline member.\n */\n Multiline = 1,\n \n /**\n * The MaxLineMultiline member.\n */\n MaxLineMultiline = 2,\n \n /**\n * The MinLineMultiline member.\n */\n MinLineMultiline = 3,\n \n /**\n * The LinePlusMultiline member.\n */\n LinePlusMultiline = 4,\n \n /**\n * The LineMultiplyMultiline member.\n */\n LineMultiplyMultiline = 5\n }\n \n /**\n * TaxCalculationType enum type.\n */\n export enum TaxCalculationType {\n \n /**\n * The Regular member.\n */\n Regular = 0,\n \n /**\n * The GTE member.\n */\n GTE = 1\n }\n \n /**\n * ShiftStatus enum type.\n */\n export enum ShiftStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Open member.\n */\n Open = 1,\n \n /**\n * The Closed member.\n */\n Closed = 2,\n \n /**\n * The BlindClosed member.\n */\n BlindClosed = 3,\n \n /**\n * The Suspended member.\n */\n Suspended = 4,\n \n /**\n * The Invalid member.\n */\n Invalid = 5\n }\n \n /**\n * TaxRegistrationType enum type.\n */\n export enum TaxRegistrationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The INN member.\n */\n INN = 1,\n \n /**\n * The KPP member.\n */\n KPP = 2,\n \n /**\n * The OKPO member.\n */\n OKPO = 3,\n \n /**\n * The OKDP member.\n */\n OKDP = 4,\n \n /**\n * The OKATO member.\n */\n OKATO = 5,\n \n /**\n * The OGRN member.\n */\n OGRN = 6,\n \n /**\n * The SNILS member.\n */\n SNILS = 7,\n \n /**\n * The CIFTS member.\n */\n CIFTS = 8,\n \n /**\n * The UID member.\n */\n UID = 9,\n \n /**\n * The TaxId member.\n */\n TaxId = 10,\n \n /**\n * The BranchId member.\n */\n BranchId = 11,\n \n /**\n * The CommercialRegisterCZ member.\n */\n CommercialRegisterCZ = 12,\n \n /**\n * The CustomsCustomerId member.\n */\n CustomsCustomerId = 14,\n \n /**\n * The Passport member.\n */\n Passport = 15,\n \n /**\n * The OfficialIdDoc member.\n */\n OfficialIdDoc = 16,\n \n /**\n * The ResidenceCertificate member.\n */\n ResidenceCertificate = 17,\n \n /**\n * The OtherIdDoc member.\n */\n OtherIdDoc = 18,\n \n /**\n * The NotCensused member.\n */\n NotCensused = 19,\n \n /**\n * The BusinessPremiseId member.\n */\n BusinessPremiseId = 20,\n \n /**\n * The LotteryCode member.\n */\n LotteryCode = 21\n }\n \n /**\n * CommerceListType enum type.\n */\n export enum CommerceListType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The WishList member.\n */\n WishList = 1\n }\n \n /**\n * ProductListType enum type.\n */\n export enum ProductListType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The OrderTemplate member.\n */\n OrderTemplate = 1,\n \n /**\n * The QuickOrder member.\n */\n QuickOrder = 2,\n \n /**\n * The WishList member.\n */\n WishList = 3\n }\n \n /**\n * RecommendationType enum type.\n */\n export enum RecommendationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Editorial member.\n */\n Editorial = 1,\n \n /**\n * The New member.\n */\n New = 2,\n \n /**\n * The Trending member.\n */\n Trending = 3,\n \n /**\n * The Bestselling member.\n */\n Bestselling = 4,\n \n /**\n * The Cart member.\n */\n Cart = 5,\n \n /**\n * The PeopleAlsoBuy member.\n */\n PeopleAlsoBuy = 6,\n \n /**\n * The Picks member.\n */\n Picks = 7,\n \n /**\n * The ShopSimilarLooks member.\n */\n ShopSimilarLooks = 8,\n \n /**\n * The ShopSimilarDescriptions member.\n */\n ShopSimilarDescriptions = 9\n }\n \n /**\n * PurchaseTransferOrderType enum type.\n */\n export enum PurchaseTransferOrderType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 1,\n \n /**\n * The TransferIn member.\n */\n TransferIn = 2,\n \n /**\n * The TransferOut member.\n */\n TransferOut = 3,\n \n /**\n * The TransferOrder member.\n */\n TransferOrder = 4,\n \n /**\n * The PickingList member.\n */\n PickingList = 5\n }\n \n /**\n * BusinessPartnerUserStatus enum type.\n */\n export enum BusinessPartnerUserStatus {\n \n /**\n * The Pending member.\n */\n Pending = 0,\n \n /**\n * The Active member.\n */\n Active = 1,\n \n /**\n * The Removed member.\n */\n Removed = 2\n }\n \n /**\n * ElectronicAddressType enum type.\n */\n export enum ElectronicAddressType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Email member.\n */\n Email = 1\n }\n \n /**\n * DownloadSessionStatus enum type.\n */\n export enum DownloadSessionStatus {\n \n /**\n * The Started member.\n */\n Started = 0,\n \n /**\n * The Available member.\n */\n Available = 1,\n \n /**\n * The Requested member.\n */\n Requested = 2,\n \n /**\n * The Downloaded member.\n */\n Downloaded = 3,\n \n /**\n * The Applied member.\n */\n Applied = 4,\n \n /**\n * The Canceled member.\n */\n Canceled = 5,\n \n /**\n * The CreateFailed member.\n */\n CreateFailed = 6,\n \n /**\n * The DownloadFailed member.\n */\n DownloadFailed = 7,\n \n /**\n * The ApplyFailed member.\n */\n ApplyFailed = 8\n }\n \n /**\n * HardwareStationType enum type.\n */\n export enum HardwareStationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shared member.\n */\n Shared = 1,\n \n /**\n * The Dedicated member.\n */\n Dedicated = 2\n }\n \n /**\n * AuditEventUploadType enum type.\n */\n export enum AuditEventUploadType {\n \n /**\n * The Async member.\n */\n Async = 0,\n \n /**\n * The RealTime member.\n */\n RealTime = 1\n }\n \n /**\n * AuditEventType enum type.\n */\n export enum AuditEventType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The UserLogOn member.\n */\n UserLogOn = 1,\n \n /**\n * The UserLogOff member.\n */\n UserLogOff = 2,\n \n /**\n * The ManagerOverride member.\n */\n ManagerOverride = 3,\n \n /**\n * The ItemVoid member.\n */\n ItemVoid = 4,\n \n /**\n * The TransactionVoid member.\n */\n TransactionVoid = 5,\n \n /**\n * The PrintReceiptCopy member.\n */\n PrintReceiptCopy = 6,\n \n /**\n * The PriceCheck member.\n */\n PriceCheck = 7,\n \n /**\n * The TaxOverride member.\n */\n TaxOverride = 8,\n \n /**\n * The QuantityCorrection member.\n */\n QuantityCorrection = 9,\n \n /**\n * The PurgeTransactionsData member.\n */\n PurgeTransactionsData = 10\n }\n \n /**\n * AuditLogTraceLevel enum type.\n */\n export enum AuditLogTraceLevel {\n \n /**\n * The Trace member.\n */\n Trace = 0,\n \n /**\n * The Debug member.\n */\n Debug = 1,\n \n /**\n * The Error member.\n */\n Error = 2\n }\n \n /**\n * FiscalIntegrationEventType enum type.\n */\n export enum FiscalIntegrationEventType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sale member.\n */\n Sale = 1,\n \n /**\n * The PrintReceiptCopy member.\n */\n PrintReceiptCopy = 2,\n \n /**\n * The ZReport member.\n */\n ZReport = 3,\n \n /**\n * The XReport member.\n */\n XReport = 4,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 5,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 6,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 7,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 8,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 9,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 10,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 11,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 12,\n \n /**\n * The GiftReceipt member.\n */\n GiftReceipt = 13,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 14,\n \n /**\n * The CreditMemo member.\n */\n CreditMemo = 15,\n \n /**\n * The EditCustomerOrder member.\n */\n EditCustomerOrder = 16,\n \n /**\n * The CreateCustomerOrder member.\n */\n CreateCustomerOrder = 17,\n \n /**\n * The DepositOverride member.\n */\n DepositOverride = 18,\n \n /**\n * The FiscalXReport member.\n */\n FiscalXReport = 19,\n \n /**\n * The FiscalZReport member.\n */\n FiscalZReport = 20,\n \n /**\n * The AuditEvent member.\n */\n AuditEvent = 21,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 22,\n \n /**\n * The CancelCustomerOrder member.\n */\n CancelCustomerOrder = 23,\n \n /**\n * The BeginSale member.\n */\n BeginSale = 24,\n \n /**\n * The PreSale member.\n */\n PreSale = 25,\n \n /**\n * The IncomeAccounts member.\n */\n IncomeAccounts = 26,\n \n /**\n * The ExpenseAccounts member.\n */\n ExpenseAccounts = 27,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 28,\n \n /**\n * The SuspendTransaction member.\n */\n SuspendTransaction = 29,\n \n /**\n * The RecallTransaction member.\n */\n RecallTransaction = 30\n }\n \n /**\n * FiscalIntegrationDocumentGenerationResultType enum type.\n */\n export enum FiscalIntegrationDocumentGenerationResultType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Succeeded member.\n */\n Succeeded = 1,\n \n /**\n * The NotSupported member.\n */\n NotSupported = 2,\n \n /**\n * The NotRequired member.\n */\n NotRequired = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * FiscalIntegrationRegistrationProcessMode enum type.\n */\n export enum FiscalIntegrationRegistrationProcessMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Disabled member.\n */\n Disabled = 1,\n \n /**\n * The Excepted member.\n */\n Excepted = 2,\n \n /**\n * The Full member.\n */\n Full = 3\n }\n \n /**\n * FiscalIntegrationServiceCommunicationResultType enum type.\n */\n export enum FiscalIntegrationServiceCommunicationResultType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Succeeded member.\n */\n Succeeded = 1,\n \n /**\n * The Failed member.\n */\n Failed = 2\n }\n \n /**\n * FiscalIntegrationServiceFailureType enum type.\n */\n export enum FiscalIntegrationServiceFailureType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Busy member.\n */\n Busy = 1,\n \n /**\n * The NotAvailable member.\n */\n NotAvailable = 2,\n \n /**\n * The SubmissionFailed member.\n */\n SubmissionFailed = 3,\n \n /**\n * The Other member.\n */\n Other = 4,\n \n /**\n * The BadResponse member.\n */\n BadResponse = 5,\n \n /**\n * The Timeout member.\n */\n Timeout = 6\n }\n \n /**\n * PickupTimeslotAvailabilitySearchOption enum type.\n */\n export enum PickupTimeslotAvailabilitySearchOption {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The DailyGroupingTimeslotOnly member.\n */\n DailyGroupingTimeslotOnly = 1,\n \n /**\n * The All member.\n */\n All = 2\n }\n \n /**\n * AttachedServiceStatus enum type.\n */\n export enum AttachedServiceStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Disabled member.\n */\n Disabled = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Enabled member.\n */\n Enabled = 3,\n \n /**\n * The Submitted member.\n */\n Submitted = 4\n }\n \n /**\n * ReceiptEmailBehavior enum type.\n */\n export enum ReceiptEmailBehavior {\n \n /**\n * The DoNotEmail member.\n */\n DoNotEmail = 0,\n \n /**\n * The PromptUser member.\n */\n PromptUser = 1,\n \n /**\n * The AlwaysEmail member.\n */\n AlwaysEmail = 2\n }\n \n /**\n * CartLineQuantityLimitsErrors enum type.\n */\n export enum CartLineQuantityLimitsErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber\n }\n \n /**\n * CommunicationErrors enum type.\n */\n export enum CommunicationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault\n }\n \n /**\n * ConfigurationErrors enum type.\n */\n export enum ConfigurationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound\n }\n \n /**\n * DataValidationErrors enum type.\n */\n export enum DataValidationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The RegexAttribute_ValidationError member.\n */\n RegexAttribute_ValidationError,\n \n /**\n * The RequiredAttribute_ValidationError member.\n */\n RequiredAttribute_ValidationError,\n \n /**\n * The StringLengthAttribute_ValidationError member.\n */\n StringLengthAttribute_ValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicateObject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicateObject,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingParameter member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingParameter,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnknownRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnSupportedType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnSupportedType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IdMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IdMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCounty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCounty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartNotActive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartNotActive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOperation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOperation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartState member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartState,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_InvalidShift member.\n */\n Microsoft_Dynamics_Commerce_InvalidShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing,\n \n /**\n * The Microsoft_Dynamics_RetailServer_BadRequest member.\n */\n Microsoft_Dynamics_RetailServer_BadRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty\n }\n \n /**\n * FeatureNotSupportedErrors enum type.\n */\n export enum FeatureNotSupportedErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported\n }\n \n /**\n * SecurityErrors enum type.\n */\n export enum SecurityErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserNotActivated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserNotActivated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPassword member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPassword,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAudience member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAudience,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InternalServerError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InternalServerError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed\n }\n \n /**\n * StorageErrors enum type.\n */\n export enum StorageErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransientStorageError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransientStorageError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ValueTooLong member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ValueTooLong\n }\n \n /**\n * VersionNotSupportedErrors enum type.\n */\n export enum VersionNotSupportedErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported\n }\n \n /**\n * PaymentErrors enum type.\n */\n export enum PaymentErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FraudRisk member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FraudRisk,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderLineIsNotAvailableInSalesTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderLineIsNotAvailableInSalesTransaction\n }\n \n /**\n * FiscalIntegrationServiceErrors enum type.\n */\n export enum FiscalIntegrationServiceErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableResolveRegistrationProcess member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableResolveRegistrationProcess,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableResolveTechnicalProfileForRegistrationProcessLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableResolveTechnicalProfileForRegistrationProcessLine\n }\n \n /**\n * CommerceDataExchangeErrors enum type.\n */\n export enum CommerceDataExchangeErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CdxDataPackageApplicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CdxDataPackageApplicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CdxSyncLibraryHealthCheckFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CdxSyncLibraryHealthCheckFailure\n }\n \n /**\n * TaskManagementErrorCode enum type.\n */\n export enum TaskManagementErrorCode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateTaskFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateTaskFailure = 1,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GetTaskFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GetTaskFailure = 2,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateTaskFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateTaskFailure = 3,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphCallTimeOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphCallTimeOut = 4,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnauthorized member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnauthorized = 5,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotFound = 6,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceConflict member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceConflict = 7,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceVersionMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceVersionMismatch = 8,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceGeneralError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceGeneralError = 9,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumActiveTasksInProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumActiveTasksInProject = 10,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumAssigneesInTasks member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumAssigneesInTasks = 11,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksAssignedToUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksAssignedToUser = 12,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksCreatedByUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksCreatedByUser = 13,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksInProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksInProject = 14,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumBucketsInProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumBucketsInProject = 15,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumChecklistItemsOnTask member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumChecklistItemsOnTask = 16,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumPlannerPlans member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumPlannerPlans = 17,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsOwnedByUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsOwnedByUser = 18,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsSharedWithUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsSharedWithUser = 19,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumReferencesOnTask member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumReferencesOnTask = 20,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumUsersSharedWithProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumUsersSharedWithProject = 21,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_General member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_General = 22,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotValidData member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotValidData = 23,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceInternalServerError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceInternalServerError = 24,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnavailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnavailable = 25,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToGetPlanId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToGetPlanId = 26,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToFindExternalSubId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToFindExternalSubId = 27,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskService_EmptyGraphToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskService_EmptyGraphToken = 28\n }\n \n /**\n * PricingDataValidationErrors enum type.\n */\n export enum PricingDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithNoLineGroups member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithNoLineGroups\n }\n \n /**\n * PaymentConfigurationErrors enum type.\n */\n export enum PaymentConfigurationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardPaymentNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardPaymentNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCardTypeInformation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCardTypeInformation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDataInTokenizedCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDataInTokenizedCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorFilesNotFoundWhileLoadingAssemblies member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorFilesNotFoundWhileLoadingAssemblies\n }\n \n /**\n * BusinessPartnerOperationDeliveryType enum type.\n */\n export enum BusinessPartnerOperationDeliveryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Email member.\n */\n Email = 1\n }\n \n /**\n * OnlineStoreCustomerType enum type.\n */\n export enum OnlineStoreCustomerType {\n \n /**\n * The B2C member.\n */\n B2C = 0,\n \n /**\n * The B2B member.\n */\n B2B = 1\n }\n \n /**\n * WrongEndpointErrors enum type.\n */\n export enum WrongEndpointErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_WrongEndpoint member.\n */\n Microsoft_Dynamics_Commerce_WrongEndpoint\n }\n \n /**\n * RetailServerApiErrors enum type.\n */\n export enum RetailServerApiErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Internal_Server_Error member.\n */\n Microsoft_Dynamics_Internal_Server_Error,\n \n /**\n * The Microsoft_Dynamics_RetailServer_BadRequest member.\n */\n Microsoft_Dynamics_RetailServer_BadRequest,\n \n /**\n * The Microsoft_Dynamics_RetailServer_RequestTooLarge member.\n */\n Microsoft_Dynamics_RetailServer_RequestTooLarge,\n \n /**\n * The Microsoft_Dynamics_RetailServer_ODataModelError member.\n */\n Microsoft_Dynamics_RetailServer_ODataModelError,\n \n /**\n * The Microsoft_Dynamics_RetailServer_MissingRequiredArgument member.\n */\n Microsoft_Dynamics_RetailServer_MissingRequiredArgument,\n \n /**\n * The Microsoft_Dynamics_RetailServer_InvalidArgumentType member.\n */\n Microsoft_Dynamics_RetailServer_InvalidArgumentType,\n \n /**\n * The Microsoft_Dynamics_RetailServer_ParameterHasNullValue member.\n */\n Microsoft_Dynamics_RetailServer_ParameterHasNullValue,\n \n /**\n * The Microsoft_Dynamics_RetailServer_MultipleValuesOfSameArgument member.\n */\n Microsoft_Dynamics_RetailServer_MultipleValuesOfSameArgument,\n \n /**\n * The Microsoft_Dynamics_RetailServer_ODataControllerError member.\n */\n Microsoft_Dynamics_RetailServer_ODataControllerError\n }\n \n /**\n * ExceptionSeverity enum type.\n */\n export enum ExceptionSeverity {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Error member.\n */\n Error = 1,\n \n /**\n * The Warning member.\n */\n Warning = 2,\n \n /**\n * The Critical member.\n */\n Critical = 3,\n \n /**\n * The Informational member.\n */\n Informational = 4\n }\n \n /**\n * Category entity interface.\n */\n export interface Category {\n RecordId: number;\n OfflineImage?: string;\n Name?: string;\n ParentCategory?: number;\n DisplayOrder?: number;\n LocalizedDescription?: string;\n Images?: MediaLocation[];\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Cart entity interface.\n */\n export interface Cart {\n AffiliationLines?: AffiliationLoyaltyTier[];\n IsRequiredAmountPaid?: boolean;\n IsDiscountFullyCalculated?: boolean;\n IgnoreDiscountCalculation?: boolean;\n AmountDue?: number;\n AmountPaid?: number;\n AttributeValues?: AttributeValueBase[];\n IsTaxIncludedInPrice?: boolean;\n BeginDateTime?: Date;\n BusinessDate?: Date;\n CancellationChargeAmount?: number;\n EstimatedShippingAmount?: number;\n CartLines?: CartLine[];\n CartTypeValue?: number;\n ChannelId?: number;\n ChargeAmount?: number;\n CustomerOrderRemainingBalance?: number;\n ChargeLines?: ChargeLine[];\n TaxViewLines?: TaxViewLine[];\n Comment?: string;\n InvoiceComment?: string;\n Coupons?: Coupon[];\n CustomerId?: string;\n CustomerOrderModeValue?: number;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n DiscountCodes?: string[];\n Id: string;\n SuspendedCartId?: string;\n TransactionTypeValue?: number;\n CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n IncomeExpenseLines?: IncomeExpenseLine[];\n IncomeExpenseTotalAmount?: number;\n IsReturnByReceipt?: boolean;\n ReturnTransactionHasLoyaltyPayment?: boolean;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsSuspended?: boolean;\n LoyaltyCardId?: string;\n ModifiedDateTime?: Date;\n Name?: string;\n OrderNumber?: string;\n AvailableDepositAmount?: number;\n OverriddenDepositAmount?: number;\n OverriddenDepositWithoutCarryoutAmount?: number;\n PrepaymentAmountPaid?: number;\n PrepaymentRoundingDifference?: number;\n PrepaymentAppliedOnPickup?: number;\n PrepaymentAmountInvoiced?: number;\n PromotionLines?: string[];\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n RequestedDeliveryDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n SalesId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n NetPrice?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxOnCancellationCharge?: number;\n TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n WarehouseId?: string;\n IsCreatedOffline?: boolean;\n CartStatusValue?: number;\n ReceiptTransactionTypeValue?: number;\n CommissionSalesGroup?: string;\n Version?: number;\n TotalItems?: number;\n HasTaxCalculationTriggered?: boolean;\n MerchantProperties?: PaymentMerchantInformation[];\n HasChargeCalculationTriggered?: boolean;\n FiscalTransactions?: FiscalTransaction[];\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Customer entity interface.\n */\n export interface Customer {\n AccountNumber: string;\n RecordId?: number;\n CreatedDateTime?: Date;\n ChargeGroup?: string;\n PriceGroup?: string;\n IsCustomerTaxInclusive?: boolean;\n Phone?: string;\n PhoneRecordId?: number;\n PhoneExt?: string;\n Cellphone?: string;\n Email?: string;\n EmailRecordId?: number;\n Url?: string;\n UrlRecordId?: number;\n Name?: string;\n PersonNameId?: number;\n FirstName?: string;\n MiddleName?: string;\n LastName?: string;\n DirectoryPartyRecordId?: number;\n PartyNumber?: string;\n CustomerTypeValue?: number;\n Language?: string;\n CustomerGroup?: string;\n CurrencyCode?: string;\n CNPJCPFNumber?: string;\n IdentificationNumber?: string;\n InvoiceAccount?: string;\n MandatoryCreditLimit?: boolean;\n CreditRating?: string;\n CreditLimit?: number;\n Balance?: number;\n Blocked?: boolean;\n BlockedType?: number;\n UseOrderNumberReference?: boolean;\n OrganizationId?: string;\n UsePurchaseRequest?: boolean;\n MultilineDiscountGroup?: string;\n TotalDiscountGroup?: string;\n LineDiscountGroup?: string;\n TaxGroup?: string;\n SalesTaxGroup?: string;\n CommissionSalesGroupId?: string;\n TaxExemptNumber?: string;\n VatNumber?: string;\n TaxOffice?: string;\n NonChargeableAccount?: boolean;\n Tag?: string;\n ReceiptSettings?: number;\n ReceiptEmail?: string;\n OptOutPersonalization?: boolean;\n OptOutWebActivityTracking?: boolean;\n RetailCustomerTableRecordId?: number;\n OfflineImage?: string;\n IsAsyncCustomer?: boolean;\n NewCustomerPartyNumber?: string;\n CustomerAffiliations?: CustomerAffiliation[];\n Addresses?: Address[];\n Attributes?: CustomerAttribute[];\n Images?: MediaLocation[];\n TitleRecordId?: number;\n IsFloorLimitBlocked?: boolean;\n IsB2b?: boolean;\n IsB2bAdmin?: boolean;\n BusinessPartnerId?: string;\n Contacts?: ContactInfo[];\n AllowOnAccountPayment?: boolean;\n DefaultPaymentMethod?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Employee entity interface.\n */\n export interface Employee {\n StaffId: string;\n NameOnReceipt?: string;\n Name?: string;\n CultureName?: string;\n NumberOfDaysToPasswordExpiry?: number;\n Permissions?: EmployeePermissions;\n Images?: MediaLocation[];\n DefaultImage?: string;\n DefaultCommissionSalesGroup?: string;\n IdentifierTypeValue?: number;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Checklist entity interface.\n */\n export interface Checklist {\n RecordId: number;\n Tasks?: ChecklistTask[];\n Version?: string;\n ProcessId?: string;\n Name?: string;\n Description?: string;\n AssignedToChannelId?: number;\n AssignedToWorkerPersonnelNumber?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n TargetDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesOrder entity interface.\n */\n export interface SalesOrder {\n DocumentStatusValue?: number;\n RecordId?: number;\n StatusValue?: number;\n McrOrderStopped?: boolean;\n Shipments?: Shipment[];\n AggregateInventoryQuantities?: InventoryQuantities;\n UnifiedDeliveryInformation?: DeliveryInformation;\n PaymentStatusValue?: number;\n DetailedOrderStatusValue?: number;\n AffiliationLoyaltyTierLines?: SalesAffiliationLoyaltyTier[];\n IsRequiredAmountPaid?: boolean;\n IsDiscountFullyCalculated?: boolean;\n IgnoreDiscountCalculation?: boolean;\n AmountDue?: number;\n EstimatedShippingAmount?: number;\n AmountPaid?: number;\n CustomerOrderRemainingBalance?: number;\n AttributeValues?: AttributeValueBase[];\n AvailableDepositAmount?: number;\n BeginDateTime?: Date;\n CreatedDateTime?: Date;\n BusinessDate?: Date;\n CalculatedDepositAmount?: number;\n CancellationCharge?: number;\n ChannelId?: number;\n ChannelReferenceId?: string;\n ChargeAmount?: number;\n ChargeLines?: ChargeLine[];\n Comment?: string;\n Coupons?: Coupon[];\n InvoiceComment?: string;\n ContactInformationCollection?: ContactInformation[];\n CurrencyCode?: string;\n CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n CustomerId?: string;\n CustomerOrderModeValue?: number;\n CustomerOrderTypeValue?: number;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n NetPrice?: number;\n DiscountCodes?: string[];\n EntryStatusValue?: number;\n GrossAmount?: number;\n HasLoyaltyPayment?: boolean;\n Id: string;\n InternalTransactionId?: string;\n SuspendedTransactionId?: string;\n IncomeExpenseLines?: IncomeExpenseLine[];\n IncomeExpenseTotalAmount?: number;\n InventoryLocationId?: string;\n IsCreatedOffline?: boolean;\n IsReturnByReceipt?: boolean;\n IsSuspended?: boolean;\n IsTaxIncludedInPrice?: boolean;\n IsTaxExemptedForPriceInclusive?: boolean;\n LineDiscount?: number;\n LineDiscountCalculationTypeValue?: number;\n LoyaltyCardId?: string;\n LoyaltyDiscountAmount?: number;\n LoyaltyManualDiscountAmount?: number;\n LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n ModifiedDateTime?: Date;\n Name?: string;\n NetAmount?: number;\n NetAmountWithoutTax?: number;\n NetAmountWithNoTax?: number;\n NetAmountWithTax?: number;\n NumberOfItems?: number;\n OverriddenDepositAmount?: number;\n OverriddenDepositWithoutCarryoutAmount?: number;\n PeriodicDiscountAmount?: number;\n TenderDiscountAmount?: number;\n PrepaymentAmountAppliedOnPickup?: number;\n PrepaymentAmountInvoiced?: number;\n PrepaymentAmountPaid?: number;\n PrepaymentRoundingDifference?: number;\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n ReceiptId?: string;\n RequestedDeliveryDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n ReturnTransactionHasLoyaltyPayment?: boolean;\n SalesId?: string;\n SalesPaymentDifference?: number;\n SalesLines?: SalesLine[];\n ShiftId?: number;\n ShiftTerminalId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n StatementCode?: string;\n StoreId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxAmountExclusive?: number;\n TaxAmountInclusive?: number;\n TaxLines?: TaxLine[];\n TaxOnCancellationCharge?: number;\n TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalDiscount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n TransactionTypeValue?: number;\n TaxCalculationTypeValue?: number;\n SalesInvoiceAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardBalance?: number;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n GiftCardIssueAmount?: number;\n GiftCardIdMasked?: string;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n HasTaxCalculationTriggered?: boolean;\n HasChargeCalculationTriggered?: boolean;\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n CustomerName?: string;\n FiscalTransactions?: FiscalTransaction[];\n LanguageId?: string;\n SalesAgreementRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Shift entity interface.\n */\n export interface Shift {\n ShiftId: number;\n TerminalId: string;\n StartingAmountTotal: number;\n FloatingEntryAmountTotal: number;\n AddToTenderAmountTotal: number;\n SafeDropTotal: number;\n BankDropTotal: number;\n RemoveTenderAmountTotal: number;\n DeclareTenderAmountTotal: number;\n OverShortTotal: number;\n TenderedTotal: number;\n ChangeTotal: number;\n IncomeAccountTotal: number;\n ExpenseAccountTotal: number;\n CashDrawer?: string;\n StoreRecordId?: number;\n StoreId?: string;\n StaffId?: string;\n CurrentStaffId?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n CloseDateTime?: Date;\n ClosedAtTerminalId?: string;\n ClosedAtShiftId?: number;\n CurrentTerminalId?: string;\n SalesTotal?: number;\n StatusDateTime?: Date;\n ReturnsTotal?: number;\n PaidToAccountTotal?: number;\n TaxTotal?: number;\n ChargeTotal?: number;\n DiscountTotal?: number;\n RoundedAmountTotal?: number;\n CustomerCount?: number;\n SaleTransactionCount?: number;\n NoSaleTransactionCount?: number;\n VoidTransactionCount?: number;\n LogOnTransactionCount?: number;\n SuspendedTransactionCount?: number;\n TransactionCount?: number;\n ReceiptsCount?: number;\n ReturnsCount?: number;\n GoodsSoldQty?: number;\n ServicesSoldQty?: number;\n ReceiptCopiesCount?: number;\n ReceiptCopiesTotal?: number;\n PriceOverrideTotal?: number;\n SuspendedTotal?: number;\n SalesTotalIncludingTax?: number;\n SalesTotalExcludingTax?: number;\n SalesGrandTotal?: number;\n ReturnsGrandTotal?: number;\n TaxLines?: ShiftTaxLine[];\n TenderLines?: ShiftTenderLine[];\n AccountLines?: ShiftAccountLine[];\n IsShared?: boolean;\n StartingAmountRunningTotal?: number;\n GiftCardsTotal?: number;\n GiftCardCashOutTotal?: number;\n VoidedSalesTotal?: number;\n ShiftSalesTotal?: number;\n ShiftReturnsTotal?: number;\n HasPendingOfflineTransactions?: number;\n NumberOfUnreconciledLines?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StockCountJournal entity interface.\n */\n export interface StockCountJournal {\n JournalId: string;\n RecordId?: string;\n Description?: string;\n InventLocationId?: string;\n DataAreaId?: string;\n StockCountTransactionLines?: StockCountJournalTransaction[];\n Worker?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnit entity interface.\n */\n export interface OrgUnit {\n OrgUnitNumber: string;\n RecordId: number;\n InventoryLocationId?: string;\n OMOperatingUnitNumber?: string;\n TaxGroup?: string;\n FunctionalityProfileId?: string;\n UseCustomerBasedTax?: boolean;\n UseCustomerBasedTaxExemption?: boolean;\n UseDestinationBasedTax?: boolean;\n Currency?: string;\n TimeZoneCode?: number;\n OrgUnitAddress?: Address;\n OrgUnitFullAddress?: string;\n OrgUnitName?: string;\n Latitude?: number;\n Longitude?: number;\n EmailReceiptProfileId?: string;\n ShippingWarehouseAddress?: Address;\n TaxRegistrations?: TaxRegistration[];\n EventNotificationProfileId?: string;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Product entity interface.\n */\n export interface Product {\n RecordId: number;\n ProductName?: string;\n ProductNumber?: string;\n Description?: string;\n IsMasterProduct: boolean;\n IsKit: boolean;\n ItemId?: string;\n HasLinkedProducts: boolean;\n Rules: ProductRules;\n DefaultUnitOfMeasure?: string;\n Name?: string;\n Locale?: string;\n OfflineImage?: string;\n IsRemote?: boolean;\n ChangeTrackingInformation?: ProductChangeTrackingInformation;\n Image?: RichMediaLocations;\n UnitsOfMeasureSymbol?: string[];\n LinkedProducts?: LinkedProduct[];\n BasePrice?: number;\n Price?: number;\n AdjustedPrice?: number;\n RetailContext?: ProjectionDomain;\n PrimaryCategoryId?: number;\n CategoryIds?: number[];\n DisplayOrderInCategories?: DisplayOrderInCategory[];\n RelatedProducts?: RelatedProduct[];\n ProductsRelatedToThis?: RelatedProduct[];\n ProductSchema?: string[];\n ProductProperties?: ProductPropertyTranslation[];\n CompositionInformation?: ProductCompositionInformation;\n ParentKits?: KitComponent[];\n SearchName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductCatalog entity interface.\n */\n export interface ProductCatalog {\n RecordId: number;\n Name?: string;\n Description?: string;\n Language?: string;\n IsSnapshotEnabled: boolean;\n ValidFrom: Date;\n ValidTo: Date;\n CreatedOn: Date;\n ModifiedOn: Date;\n PublishedOn: Date;\n Images?: MediaLocation[];\n ChannelId?: number;\n DefaultImage?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceList entity interface.\n */\n export interface CommerceList {\n Id: number;\n Name?: string;\n CustomerId?: string;\n CustomerName?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n IsCollaborative?: boolean;\n CreatedDateTime?: Date;\n DueDateTime?: Date;\n CommerceListTypeValue?: number;\n CommerceListLines?: CommerceListLine[];\n CommerceListContributors?: CommerceListContributor[];\n CommerceListInvitations?: CommerceListInvitation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductList entity interface.\n */\n export interface ProductList {\n Id: string;\n Name?: string;\n CustomerId?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n ProductListTypeValue?: number;\n DataAreaId?: string;\n ProductListLines?: ProductListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Recommendation entity interface.\n */\n export interface Recommendation {\n Id: string;\n RecommendationTypeValue?: number;\n Title?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrder entity interface.\n */\n export interface TransferOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityShipRemaining?: number;\n QuantityReceiveRemaining?: number;\n ShipDate?: Date;\n ReceiveDate?: Date;\n DeliveryModeId?: string;\n OrderLines?: TransferOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseOrder entity interface.\n */\n export interface PurchaseOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n TotalReceived?: number;\n OrderLines?: PurchaseOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingList entity interface.\n */\n export interface PickingList {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationId?: string;\n DeliveryDate?: Date;\n DeliveryMode?: string;\n TotalReceived?: number;\n OrderLines?: PickingListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warehouse entity interface.\n */\n export interface Warehouse {\n InventLocation: string;\n Name?: string;\n IsWMSEnabled: boolean;\n DefaultInventoryStatus?: string;\n DefaultReceiptLocation?: string;\n DefaultLocationId?: string;\n DefaultIssueLocation?: string;\n Address?: Address;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScanResult entity interface.\n */\n export interface ScanResult {\n ScannedText: string;\n MaskTypeValue?: number;\n Barcode?: Barcode;\n Product?: SimpleProduct;\n LoyaltyCard?: LoyaltyCard;\n GiftCard?: GiftCard;\n ExtensionProperties?: CommerceProperty[];\n Customer?: Customer;\n }\n \n /**\n * SalesOrderContextualOperationsMap entity interface.\n */\n export interface SalesOrderContextualOperationsMap {\n Id: string;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n SalesOrder: SalesOrder;\n }\n \n /**\n * InventoryInboundOutboundDocument entity interface.\n */\n export interface InventoryInboundOutboundDocument {\n WorkDocumentId: string;\n TerminalId?: string;\n CommitRequestId?: string;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n OperationTypeValue?: number;\n StatusValue?: number;\n ReceiptId?: string;\n Note?: string;\n OperationResultMessage?: string;\n DocumentId?: string;\n LongVersion?: number;\n SourceDocument?: InventoryInboundOutboundSourceDocument;\n SourceDocumentTypeValue?: number;\n CreatedDateTime?: Date;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentTypeId?: string;\n Description?: string;\n StaffId?: string;\n TransactionDate?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartner entity interface.\n */\n export interface BusinessPartner {\n BusinessPartnerId: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerUser entity interface.\n */\n export interface BusinessPartnerUser {\n B2BUserId: string;\n BusinessPartnerId?: string;\n FirstName?: string;\n LastName?: string;\n Email?: string;\n SpendingLimit?: number;\n LastOperationId?: string;\n StatusValue?: number;\n IsAdmin?: boolean;\n AccountNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SuspendedCart entity interface.\n */\n export interface SuspendedCart {\n Id: string;\n ReceiptId?: string;\n ShiftId?: number;\n ShiftTerminalId?: string;\n ExtensionProperties?: CommerceProperty[];\n Cart?: Cart;\n }\n \n /**\n * CountryRegion entity interface.\n */\n export interface CountryRegion {\n CountryRegionId: string;\n IsoCode?: string;\n ShortName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleEnumeration entity interface.\n */\n export interface ExtensibleEnumeration {\n Name: string;\n Value: number;\n }\n \n /**\n * ExtensibleEnumeration_1OfT entity interface.\n */\n export interface ExtensibleEnumeration_1OfT extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleTransactionType entity interface.\n */\n export interface ExtensibleTransactionType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleSalesTransactionType entity interface.\n */\n export interface ExtensibleSalesTransactionType extends ExtensibleEnumeration {\n }\n \n /**\n * FulfillmentLineStatus entity interface.\n */\n export interface FulfillmentLineStatus extends ExtensibleEnumeration {\n }\n \n /**\n * FulfillmentLineDeliveryType entity interface.\n */\n export interface FulfillmentLineDeliveryType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleAddressType entity interface.\n */\n export interface ExtensibleAddressType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity interface.\n */\n export interface ExtensibleLoyaltyRewardPointActivityEntryType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleAttributeDataType entity interface.\n */\n export interface ExtensibleAttributeDataType extends ExtensibleEnumeration {\n }\n \n /**\n * ReleasedProductServiceType entity interface.\n */\n export interface ReleasedProductServiceType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleElectronicAddressType entity interface.\n */\n export interface ExtensibleElectronicAddressType extends ExtensibleEnumeration {\n }\n \n /**\n * ReceiptOutputFormatType entity interface.\n */\n export interface ReceiptOutputFormatType extends ExtensibleEnumeration {\n }\n \n /**\n * OrderLookupAdditionalCriteriaType entity interface.\n */\n export interface OrderLookupAdditionalCriteriaType extends ExtensibleEnumeration {\n }\n \n /**\n * Address entity interface.\n */\n export interface Address {\n Name?: string;\n Id?: string;\n FullAddress?: string;\n RecordId?: number;\n Street?: string;\n StreetNumber?: string;\n County?: string;\n CountyName?: string;\n City?: string;\n DistrictName?: string;\n State?: string;\n StateName?: string;\n ZipCode?: string;\n ThreeLetterISORegionName?: string;\n Phone?: string;\n PhoneRecordId?: number;\n PhoneExt?: string;\n Email?: string;\n EmailContent?: string;\n EmailRecordId?: number;\n Url?: string;\n UrlRecordId?: number;\n TwoLetterISORegionName?: string;\n Deactivate?: boolean;\n AttentionTo?: string;\n BuildingCompliment?: string;\n Postbox?: string;\n TaxGroup?: string;\n AddressTypeValue?: number;\n IsPrimary?: boolean;\n IsPrivate?: boolean;\n PartyNumber?: string;\n IsAsyncAddress?: boolean;\n DirectoryPartyTableRecordId?: number;\n DirectoryPartyLocationRecordId?: number;\n DirectoryPartyLocationRoleRecordId?: number;\n LogisticsLocationId?: string;\n LogisticsLocationRecordId?: number;\n LogisticsLocationExtRecordId?: number;\n LogisticsLocationRoleRecordId?: number;\n PhoneLogisticsLocationRecordId?: number;\n PhoneLogisticsLocationId?: string;\n EmailLogisticsLocationRecordId?: number;\n EmailLogisticsLocationId?: string;\n UrlLogisticsLocationRecordId?: number;\n UrlLogisticsLocationId?: string;\n ExpireRecordId?: number;\n SortOrder?: number;\n RoleCount?: number;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAffiliation entity interface.\n */\n export interface CustomerAffiliation {\n RecordId?: number;\n RetailAffiliationId?: number;\n Name?: string;\n Description?: string;\n HideInChannels?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerBalances entity interface.\n */\n export interface CustomerBalances {\n Balance: number;\n PendingBalance: number;\n CreditLimit: number;\n InvoiceAccountBalance: number;\n InvoiceAccountPendingBalance: number;\n InvoiceAccountCreditLimit: number;\n OpenInvoiceBalance?: number;\n OpenInvoiceCount?: number;\n }\n \n /**\n * GlobalCustomer entity interface.\n */\n export interface GlobalCustomer {\n PartyNumber?: string;\n RecordId?: number;\n IsAsyncCustomer?: boolean;\n AccountNumber?: string;\n FullName?: string;\n FullAddress?: string;\n Phone?: string;\n Email?: string;\n CustomerTypeValue?: number;\n Images?: MediaLocation[];\n OfflineImage?: string;\n IsB2b?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeValue entity interface.\n */\n export interface AttributeValue {\n Name?: string;\n KeyName?: string;\n UnitOfMeasureSymbol?: string;\n DataTypeValue?: number;\n BooleanValue?: boolean;\n DateTimeOffsetValue?: Date;\n FloatValue?: number;\n IntegerValue?: number;\n TextValue?: string;\n CurrencyValue?: number;\n CurrencyCode?: string;\n AttributeValueId?: number;\n RecordId?: number;\n Swatches?: AttributeSwatch[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeValueBase entity interface.\n */\n export interface AttributeValueBase {\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Barcode entity interface.\n */\n export interface Barcode {\n BarcodeId?: string;\n BarcodePrice?: number;\n Quantity?: number;\n CustomerId?: string;\n EmployeeId?: string;\n SalespersonId?: string;\n EANLicenseId?: string;\n DataEntry?: string;\n DiscountCode?: string;\n GiftCardNumber?: string;\n LoyaltyCardNumber?: string;\n ItemBarcode?: ItemBarcode;\n EntryMethodTypeValue?: number;\n ItemType?: number;\n EnterDimensions?: boolean;\n ItemGroupId?: string;\n ItemDepartmentId?: string;\n ScaleItem?: boolean;\n ZeroPriceValid?: boolean;\n NegativeQuantity?: boolean;\n DiscountNotAllowed?: boolean;\n DateToBeBlocked?: Date;\n DateToBeActivated?: Date;\n CheckDigitValidated?: boolean;\n CouponId?: string;\n Message?: string;\n LineDiscountGroup?: string;\n MultilineDiscountGroup?: string;\n IncludedInTotalDiscount?: boolean;\n CostPrice?: number;\n BatchId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemBarcode entity interface.\n */\n export interface ItemBarcode {\n RecordId?: number;\n ItemId?: string;\n Description?: string;\n BarcodeSetupId?: string;\n ItemBarcodeValue?: string;\n InventoryDimensionId?: string;\n IsBlocked?: boolean;\n Display?: boolean;\n VariantId?: string;\n UnitId?: string;\n UseForInput?: boolean;\n UseForPrinting?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ButtonGrid entity interface.\n */\n export interface ButtonGrid {\n Id?: string;\n Name?: string;\n DefaultColor?: number;\n SpaceBetweenButtonsInPixels?: number;\n Buttons?: ButtonGridButton[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * GetButtonGridsByIdsCriteria entity interface.\n */\n export interface GetButtonGridsByIdsCriteria {\n ButtonGridIds?: string[];\n }\n \n /**\n * CartLine entity interface.\n */\n export interface CartLine {\n LineId?: string;\n TaxOverrideCode?: string;\n ItemId?: string;\n Barcode?: string;\n EntryMethodTypeValue?: number;\n Description?: string;\n InventoryDimensionId?: string;\n Comment?: string;\n ProductId?: number;\n WarehouseId?: string;\n Quantity?: number;\n Price?: number;\n ExtendedPrice?: number;\n TaxAmount?: number;\n ItemTaxGroupId?: string;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n NetPrice?: number;\n DiscountAmountWithoutTax?: number;\n DiscountAmount?: number;\n LineDiscount?: number;\n LinePercentageDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n UnitOfMeasureSymbol?: string;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n RequestedDeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n IsWarrantyLine?: boolean;\n WarrantableTransactionId?: string;\n WarrantableSalesId?: string;\n WarrantableLineNumber?: number;\n WarrantableSerialNumber?: string;\n WarrantiedId?: string;\n ReturnTransactionId?: string;\n ReturnLineNumber?: number;\n ReturnInventTransId?: string;\n IsVoided?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n IsGiftCardLine?: boolean;\n IsPriceKeyedIn?: boolean;\n GiftCardId?: string;\n GiftCardCurrencyCode?: string;\n GiftCardOperationValue?: number;\n GiftCardTypeValue?: number;\n SalesStatusValue?: number;\n QuantityOrdered?: number;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityCanceled?: number;\n FulfillmentStoreId?: string;\n SerialNumber?: string;\n ElectronicDeliveryEmail?: string;\n ElectronicDeliveryEmailContent?: string;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n IsInvoiceLine?: boolean;\n InvoiceId?: string;\n InvoiceAmount?: number;\n GiftCardBalance?: number;\n LineVersion?: number;\n PromotionLines?: string[];\n PriceLines?: PriceLine[];\n DiscountLines?: DiscountLine[];\n RelatedDiscountedLineIds?: string[];\n ReasonCodeLines?: ReasonCodeLine[];\n ChargeLines?: ChargeLine[];\n TaxRatePercent?: number;\n IsCustomerAccountDeposit?: boolean;\n LinkedParentLineId?: string;\n QuantityReturnable?: number;\n ExtensionProperties?: CommerceProperty[];\n LineNumber?: number;\n CommissionSalesGroup?: string;\n TrackingId?: string;\n StaffId?: string;\n QuantityRemained?: number;\n QuantityShipped?: number;\n CatalogId?: number;\n AttributeValues?: AttributeValueBase[];\n ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n InvoiceTypeValue?: number;\n InvoicedSalesId?: string;\n WarehouseLocation?: string;\n DetailedLineStatusValue?: number;\n SalesAgreementLineRecordId?: number;\n }\n \n /**\n * ThirdPartyGiftCardInfo entity interface.\n */\n export interface ThirdPartyGiftCardInfo {\n Amount?: number;\n Authorization?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardTypeInfo entity interface.\n */\n export interface CardTypeInfo {\n RecordId?: number;\n TypeId?: string;\n Name?: string;\n PaymentMethodId?: string;\n CardTypeValue?: number;\n Issuer?: string;\n NumberFrom?: string;\n NumberTo?: string;\n CashBackLimit?: number;\n AllowManualInput?: boolean;\n CheckModulus?: boolean;\n HasTenderDiscount?: boolean;\n IsPinRequired?: boolean;\n IsExpirationDateRequired?: boolean;\n ConnectorName?: string;\n PaymentProcessorMethod?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CashDeclaration entity interface.\n */\n export interface CashDeclaration {\n RecordId?: number;\n Currency?: string;\n Amount?: number;\n CashTypeValue?: number;\n IncludeInQuickPayShortcuts?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * IncomeExpenseAccount entity interface.\n */\n export interface IncomeExpenseAccount {\n Amount?: number;\n AccountNumber?: string;\n AccountName?: string;\n AccountNameAlias?: string;\n AccountTypeValue?: number;\n Quantity?: number;\n Message1Line?: string;\n Message2Line?: string;\n SlipText1Line?: string;\n SlipText2Line?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * IncomeExpenseLine entity interface.\n */\n export interface IncomeExpenseLine {\n Amount?: number;\n IncomeExpenseAccount?: string;\n StoreNumber?: string;\n AccountTypeValue?: number;\n Terminal?: string;\n Shift?: string;\n TransactionStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CartTenderLine entity interface.\n */\n export interface CartTenderLine {\n PaymentCard?: PaymentCard;\n TokenizedPaymentCard?: TokenizedPaymentCard;\n CardPaymentAcceptResult?: CardPaymentAcceptResult;\n IsLinkedRefund?: boolean;\n LinkedPaymentStore?: string;\n LinkedPaymentTerminalId?: string;\n LinkedPaymentTransactionId?: string;\n LinkedPaymentLineNumber?: number;\n LinkedPaymentCurrency?: string;\n TenderLineId?: string;\n Amount?: number;\n CashBackAmount?: number;\n AmountInTenderedCurrency?: number;\n AmountInCompanyCurrency?: number;\n Currency?: string;\n ExchangeRate?: number;\n CompanyCurrencyExchangeRate?: number;\n TenderTypeId?: string;\n SignatureData?: string;\n ReasonCodeLines?: ReasonCodeLine[];\n LineNumber?: number;\n GiftCardId?: string;\n GiftCardPin?: string;\n GiftCardExpirationYear?: number;\n GiftCardExpirationMonth?: number;\n CreditMemoId?: string;\n CustomerId?: string;\n LoyaltyCardId?: string;\n CardTypeId?: string;\n IsChangeLine?: boolean;\n IsHistorical?: boolean;\n IsVoidable?: boolean;\n StatusValue?: number;\n VoidStatusValue?: number;\n AuthorizedAmount?: number;\n PaymentRefRecId?: number;\n CardPaymentAccountId?: string;\n ProcessingTypeValue?: number;\n CardProcessorStatusValue?: number;\n LinkedPaymentRefRecId?: number;\n IsPolicyBypassed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChargeLine entity interface.\n */\n export interface ChargeLine {\n ChargeLineId?: string;\n ChargeCode?: string;\n CurrencyCode?: string;\n ModuleTypeValue?: number;\n IsHeaderChargeProrated?: boolean;\n ChargeTypeValue?: number;\n ChargeMethodValue?: number;\n CalculatedAmount?: number;\n Value?: number;\n Description?: string;\n TransactionId?: string;\n MarkupAutoLineRecordId?: number;\n MarkupAutoTableRecId?: number;\n SaleLineNumber?: number;\n FromAmount?: number;\n ToAmount?: number;\n Keep?: number;\n AmountRefunded?: number;\n ChargeLineOverrides?: ChargeLineOverride[];\n ReasonCodeLines?: ReasonCodeLine[];\n IsRefundable?: boolean;\n IsShipping?: boolean;\n IsOverridden?: boolean;\n IsInvoiced?: boolean;\n CalculatedProratedAmount?: number;\n ItemId?: string;\n Quantity?: number;\n Price?: number;\n ItemTaxGroupId?: string;\n SalesTaxGroupId?: string;\n OriginalSalesTaxGroupId?: string;\n OriginalItemTaxGroupId?: string;\n TaxAmount?: number;\n SalesOrderUnitOfMeasure?: string;\n NetAmount?: number;\n NetAmountPerUnit?: number;\n GrossAmount?: number;\n TaxLines?: TaxLine[];\n TaxMeasures?: TaxMeasure[];\n TaxAmountExemptInclusive?: number;\n TaxAmountInclusive?: number;\n TaxAmountExclusive?: number;\n NetAmountWithAllInclusiveTax?: number;\n BeginDateTime?: Date;\n EndDateTime?: Date;\n TaxRatePercent?: number;\n IsReturnByReceipt?: boolean;\n ReturnLineTaxAmount?: number;\n ReturnTaxLines?: TaxLine[];\n TaxExemptPriceInclusiveReductionAmount?: number;\n TaxExemptPriceInclusiveOriginalPrice?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CityInfo entity interface.\n */\n export interface CityInfo {\n Name?: string;\n Description?: string;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommissionSalesGroup entity interface.\n */\n export interface CommissionSalesGroup {\n GroupId?: string;\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ContactInformation entity interface.\n */\n export interface ContactInformation {\n Value?: string;\n ContactInformationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeCategory entity interface.\n */\n export interface AttributeCategory {\n Value?: CommercePropertyValue;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeProduct entity interface.\n */\n export interface AttributeProduct {\n MetadataFlags?: ProductAttributeMetadataFlags;\n IsDimension?: boolean;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComparisonEntry entity interface.\n */\n export interface ProductComparisonEntry {\n ProductId: number;\n AttributeValue?: AttributeValue;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComparisonLine entity interface.\n */\n export interface ProductComparisonLine {\n AttributeRecordId: number;\n AttributeName?: string;\n ProductAttributeComparisonEntries?: ProductComparisonEntry[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchField entity interface.\n */\n export interface CustomerSearchField {\n IsShortcut?: boolean;\n DisplayName?: string;\n CanBeRefined?: boolean;\n SearchField?: CustomerSearchFieldType;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchByFieldCriteria entity interface.\n */\n export interface CustomerSearchByFieldCriteria {\n Criteria?: CustomerSearchByFieldCriterion[];\n DataLevelValue?: number;\n }\n \n /**\n * CustomerSearchByFieldCriterion entity interface.\n */\n export interface CustomerSearchByFieldCriterion {\n SearchTerm?: string;\n SearchField?: CustomerSearchFieldType;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchFieldType entity interface.\n */\n export interface CustomerSearchFieldType extends ExtensibleEnumeration {\n }\n \n /**\n * OrderShipments entity interface.\n */\n export interface OrderShipments {\n SalesId?: string;\n ChannelId?: number;\n ChannelReferenceId?: string;\n TransactionId?: string;\n CreatedDateTime?: Date;\n StatusValue?: number;\n CurrencyCode?: string;\n CustomerId?: string;\n DeliveryMode?: string;\n GrossAmount?: number;\n InventoryLocationId?: string;\n ReceiptId?: string;\n RequestedDeliveryDate?: Date;\n TotalAmount?: number;\n TaxAmount?: number;\n SalesLines?: SalesLine[];\n Shipments?: Shipment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Shipment entity interface.\n */\n export interface Shipment {\n SalesId?: string;\n ShipmentId?: string;\n DeliveryAddress?: Address;\n ShipDate?: Date;\n DeliveryMode?: string;\n TermsOfDelivery?: string;\n WeightUnit?: string;\n TrackingNumber?: string;\n TrackingUrl?: string;\n LatestCarrierTrackingInfo?: TrackingInfo;\n CarrierId?: string;\n CarrierName?: string;\n ShippingWeight?: number;\n ShipmentLines?: ShipmentLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShipmentLine entity interface.\n */\n export interface ShipmentLine {\n ShipmentLineId?: string;\n ItemId?: string;\n Description?: string;\n InventDimId?: string;\n OrderedQuantity?: number;\n DeliveredQuantity?: number;\n RemainingQuantity?: number;\n InventoryTransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Transaction entity interface.\n */\n export interface Transaction {\n Id?: string;\n StoreId?: string;\n TerminalId?: string;\n IsCreatedOffline?: boolean;\n StaffId?: string;\n LanguageId?: string;\n ShiftId?: string;\n ShiftTerminalId?: string;\n Description?: string;\n ReceiptId?: string;\n GrossAmount?: number;\n TotalAmount?: number;\n CreatedDateTime?: Date;\n TransactionTypeValue?: number;\n TransactionStatusValue?: number;\n BeginDateTime?: Date;\n GiftCardActiveFrom?: Date;\n GiftCardBalance?: number;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n GiftCardIssueAmount?: number;\n GiftCardIdMasked?: string;\n FromSafe?: string;\n ToSafe?: string;\n FromShiftTerminalId?: string;\n ToShiftTerminalId?: string;\n FromShiftId?: string;\n TransactionSourceContextTypeValue?: number;\n TransactionDestinationContextTypeValue?: number;\n ToShiftId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftReconciliationLine entity interface.\n */\n export interface ShiftReconciliationLine extends Transaction {\n GroupId?: number;\n GroupDescription?: string;\n ShiftGroupLinesCount?: number;\n ShiftGroupLinesClosedCount?: number;\n }\n \n /**\n * ShiftReconciliationLineRetrievalCriteria entity interface.\n */\n export interface ShiftReconciliationLineRetrievalCriteria {\n TransactionTypeValues?: number[];\n ShiftReconciliationLineStatusValue?: number;\n Shifts?: ShiftKey[];\n DestinationShift?: ShiftKey;\n SourceShift?: ShiftKey;\n SourceSafe?: string;\n DestinationSafe?: string;\n TransactionSourceContextTypeValue?: number;\n TransactionDestinationContextTypeValue?: number;\n }\n \n /**\n * SearchConfiguration entity interface.\n */\n export interface SearchConfiguration {\n ProductSortColumns?: SortColumn[];\n ProductSearchServiceTypeValue?: number;\n ProductSortColumnsLabels?: LocalizedText[];\n }\n \n /**\n * CustomerTimelineItem entity interface.\n */\n export interface CustomerTimelineItem {\n CustomerId?: string;\n Description?: string;\n Id?: string;\n EntityType?: string;\n TypeId?: string;\n StaffId?: string;\n StartDateTime?: Date;\n Title?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeDefinition entity interface.\n */\n export interface AttributeDefinition {\n RecordId: number;\n Name?: string;\n AttributeTypeName?: string;\n ExtDataType?: ExtensibleAttributeDataType;\n DataTypeValue?: number;\n IsHidden?: boolean;\n IsMandatory?: boolean;\n IsMultiValue?: boolean;\n IsEnumeration?: boolean;\n TranslationDetails?: AttributeTranslationDetails[];\n EnumerationDetails?: AttributeEnumeration[];\n DefaultValue?: CommercePropertyValue;\n UpperBound?: CommercePropertyValue;\n LowerBound?: CommercePropertyValue;\n DisplayOrder?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeTranslationDetails entity interface.\n */\n export interface AttributeTranslationDetails {\n AttributeRecordId: number;\n LanguageId?: string;\n FriendlyName?: string;\n Description?: string;\n HelpText?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeEnumeration entity interface.\n */\n export interface AttributeEnumeration {\n OrdinalNumber?: number;\n EnumerationValue?: string;\n AttributeEnumerationTranslations?: AttributeEnumerationTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeEnumerationTranslation entity interface.\n */\n export interface AttributeEnumerationTranslation {\n LanguageId?: string;\n EnumerationTranslationValue?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeDefinitionCriteria entity interface.\n */\n export interface AttributeDefinitionCriteria {\n AttributeGroupIdentifier?: number;\n Languages?: string[];\n }\n \n /**\n * AttributeGroupDefinition entity interface.\n */\n export interface AttributeGroupDefinition {\n RecordId: number;\n Name?: string;\n TranslationDetails?: AttributeGroupTranslationDetails[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeGroupTranslationDetails entity interface.\n */\n export interface AttributeGroupTranslationDetails {\n AttributeGroupRecordId: number;\n LanguageId?: string;\n FriendlyName?: string;\n Description?: string;\n HelpText?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeGroupDefinitionCriteria entity interface.\n */\n export interface AttributeGroupDefinitionCriteria {\n AttributeGroupIdentifiers?: number[];\n Languages?: string[];\n }\n \n /**\n * CountyInfo entity interface.\n */\n export interface CountyInfo {\n Name?: string;\n CountyId?: string;\n CountryRegionId?: string;\n StateId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerGroup entity interface.\n */\n export interface CustomerGroup {\n CustomerGroupNumber?: string;\n CustomerGroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountLine entity interface.\n */\n export interface DiscountLine {\n SaleLineNumber?: number;\n OfferId?: string;\n OfferName?: string;\n OfferDescription?: string;\n Amount?: number;\n DiscountCost?: number;\n EffectiveAmount?: number;\n EffectivePercentage?: number;\n LineNumber?: number;\n SavedEffectiveAmount?: number;\n Percentage?: number;\n DealPrice?: number;\n DiscountLineTypeValue?: number;\n ManualDiscountTypeValue?: number;\n CustomerDiscountTypeValue?: number;\n PeriodicDiscountTypeValue?: number;\n DiscountApplicationGroup?: string;\n ConcurrencyModeValue?: number;\n IsCompoundable?: boolean;\n DiscountCode?: string;\n PricingPriorityNumber?: number;\n PricingAttributeCombinationPriority?: number;\n IsDiscountCodeRequired?: boolean;\n ThresholdAmountRequired?: number;\n BundleId?: number;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmployeePermissions entity interface.\n */\n export interface EmployeePermissions {\n PriceOverrideRestrictionValue?: number;\n AllowPriceOverride?: number;\n MaximumDiscountPercentage?: number;\n MaximumLineDiscountAmount?: number;\n MaximumLineReturnAmount?: number;\n MaximumTotalDiscountAmount?: number;\n MaximumTotalDiscountPercentage?: number;\n MaxTotalReturnAmount?: number;\n StaffId?: string;\n Roles?: string[];\n AllowUseSharedShift?: boolean;\n AllowManageSharedShift?: boolean;\n AllowTaskGuides?: boolean;\n AllowSaleOutsideAssortment?: boolean;\n AllowPrintingReceiptCopy?: string;\n AllowSkipFiscalRegistration?: boolean;\n AllowSkipRegistrationOrMarkAsRegistered?: boolean;\n AllowPostponeRegistration?: boolean;\n AllowCreateTransferOrder?: boolean;\n AllowAcceptOrder?: boolean;\n AllowTaskManagement?: boolean;\n AllowRejectOrder?: boolean;\n AllowMassActivation?: boolean;\n AllowPostInventoryAdjustment?: boolean;\n AllowPostStockCounting?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceProperty entity interface.\n */\n export interface CommerceProperty {\n Key?: string;\n Value?: CommercePropertyValue;\n }\n \n /**\n * CommercePropertyValue entity interface.\n */\n export interface CommercePropertyValue {\n BooleanValue?: boolean;\n ByteValue?: number;\n DateTimeOffsetValue?: Date;\n DecimalValue?: number;\n IntegerValue?: number;\n LongValue?: number;\n StringValue?: string;\n }\n \n /**\n * CountryRegionInfo entity interface.\n */\n export interface CountryRegionInfo {\n CountryRegionId?: string;\n ShortName?: string;\n LongName?: string;\n ISOCode?: string;\n TimeZone?: number;\n LanguageId?: string;\n AddressFormatLines?: AddressFormattingInfo[];\n AddressFormatId?: string;\n AddressFormatName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CreditMemo entity interface.\n */\n export interface CreditMemo {\n Id?: string;\n Balance?: number;\n CurrencyCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Currency entity interface.\n */\n export interface Currency {\n CurrencyCode?: string;\n CurrencySymbol?: string;\n RoundOffPrice?: number;\n RoundOffSales?: number;\n RoundOffTypePrice?: number;\n RoundOffTypeSales?: number;\n NumberOfDecimals?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CurrencyAmount entity interface.\n */\n export interface CurrencyAmount {\n CurrencyCode?: string;\n CurrencySymbol?: string;\n ConvertedAmount?: number;\n RoundedConvertedAmount?: number;\n ExchangeRate?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScaleUnitConfiguration entity interface.\n */\n export interface ScaleUnitConfiguration {\n Id?: string;\n Name?: string;\n Region?: string;\n }\n \n /**\n * EnvironmentConfiguration entity interface.\n */\n export interface EnvironmentConfiguration {\n EnvironmentId?: string;\n EnvironmentName?: string;\n TenantId?: string;\n ClientAppInsightsInstrumentationKey?: string;\n HardwareStationAppInsightsInstrumentationKey?: string;\n WindowsPhonePosAppInsightsInstrumentationKey?: string;\n BaseVersion?: string;\n ScaleUnit?: ScaleUnitConfiguration;\n AADAuthority?: string;\n FrameworkName?: string;\n }\n \n /**\n * DeviceConfiguration entity interface.\n */\n export interface DeviceConfiguration {\n UseInMemoryDeviceDataStorage?: boolean;\n AllowItemsAggregation?: boolean;\n AggregateItemsForPrinting?: boolean;\n AggregatePayments?: boolean;\n AlwaysExpandTransactionScreenLineDetails?: boolean;\n AuditEnabled?: boolean;\n DiscountAtTotal?: string;\n ProductDiscount?: string;\n ManuallyCalculateComplexDiscounts?: boolean;\n DisplaySecondaryTotalCurrency?: boolean;\n EndOfTransaction?: string;\n ItemNotOnFile?: string;\n LimitStaffListToStore?: boolean;\n LineItemTaxChange?: string;\n MarkUp?: string;\n MaximumPrice?: number;\n MaximumQuantity?: number;\n MinimumPasswordLength?: number;\n MustKeyInPriceIfZero?: boolean;\n NfcEContingencyModeEnabled?: string;\n NfcEVoided?: string;\n FunctionalityProfileDescription?: string;\n OverridePrice?: string;\n PrintVoidTransactionReceipts?: boolean;\n PrintReceiptsOnCardDecline?: boolean;\n PrintXZReportsOnTerminal?: boolean;\n PrintTenderDetailsOnXReport?: boolean;\n ProfileId?: string;\n RefundSale?: string;\n ReturnProduct?: string;\n SalesPerson?: string;\n SecondaryTotalCurrency?: string;\n SelectHardwareStationOnTendering?: boolean;\n SerialNumber?: string;\n ShowStaffListAtLogOn?: boolean;\n StaffBarcodeLogOn?: boolean;\n StaffBarcodeLogOnRequiresPassword?: boolean;\n StaffCardLogOn?: boolean;\n StaffCardLogOnRequiresPassword?: boolean;\n StartOfTransaction?: string;\n EnableTimeRegistration?: boolean;\n TenderDeclaration?: string;\n TransactionTaxChange?: string;\n VoidItem?: string;\n VoidPayment?: string;\n SalesModeDefaultsAsCustomerOrder?: boolean;\n CreateOfflineCustomerOrders?: boolean;\n CreateAsyncCustomers?: boolean;\n EnableAxCustomerSearch?: boolean;\n VoidTransaction?: string;\n CultureName?: string;\n SystemLegalTermsUrl?: string;\n SystemPrivacyStatementUrl?: string;\n HideTrainingMode?: boolean;\n StorePhone?: string;\n StatementMethod?: string;\n StoreNumber?: string;\n ChannelId?: number;\n StoreTaxGroup?: string;\n TaxIdNumber?: string;\n TaxOverrideGroup?: number;\n TenderDeclarationCalculation?: number;\n UseCustomerBasedTax?: boolean;\n UseDestinationBasedTax?: boolean;\n AutoLogOffTimeoutInMinutes?: number;\n AutoExitMethodValue?: number;\n CustomerDisplayText1?: string;\n CustomerDisplayText2?: string;\n EFTStoreId?: number;\n EFTTerminalId?: string;\n ExitAfterEachTransaction?: boolean;\n HardwareProfile?: string;\n Placement?: string;\n TerminalDescription?: string;\n OpenDrawer?: string;\n OpenDrawerAtLogOnLogOff?: boolean;\n PrintTaxRefundChecks?: boolean;\n StandAlone?: boolean;\n TerminalId?: string;\n TerminalStatement?: boolean;\n VisualProfile?: string;\n Currency?: string;\n InventLocationId?: string;\n IncludeKitComponents?: boolean;\n AccentColor?: number;\n HeaderColor?: number;\n Theme?: string;\n FontScheme?: number;\n ShowAppBarLabel?: boolean;\n LogOnBackgroundPictureAsBase64?: string;\n LogOnBackgroundPicturePortraitAsBase64?: string;\n BackgroundPictureAsBase64?: string;\n LogonBackgroundPictureId?: number;\n LogonBackgroundPictureIdCompact?: number;\n LogonBackgroundPictureIdPortrait?: number;\n LogonBackgroundPictureIdCompactPortrait?: number;\n BackgroundPictureId?: number;\n RequireAmountDeclaration?: boolean;\n DecimalNotRequiredForMinorCurrencyUnit?: boolean;\n MaxTransactionSearchResults?: number;\n OfflineProfileId?: number;\n NewOfflineDatabaseCheckInterval?: number;\n OfflineTransactionUploadInterval?: number;\n ReconnectToOnlineInterval?: number;\n SwitchToOfflineTimeout?: number;\n OfflineSwitchApiPerformanceThresholdInSeconds?: number;\n ReconnectFromPerformanceInducedOfflineIntervalInSeconds?: number;\n RetentionDays?: number;\n HardwareConfigurations?: HardwareConfigurations;\n CreateRecording?: boolean;\n PlaybackRecording?: boolean;\n ShouldUseDefaultCommisionSalesGroup?: boolean;\n AskForSalesRepresentative?: number;\n IsSalesRepRequired?: boolean;\n ProhibitMixingSalesAndReturns?: boolean;\n ApplyDiscountsToPriceKeyedIn?: boolean;\n ApplyDiscountsToPriceOverrides?: boolean;\n IsProductSuggestionsEnabled?: boolean;\n ProductSearchType?: string;\n TerminalRecId?: number;\n DeviceRecId?: number;\n DenominationsToDisplayValue?: number;\n PromptOnSeamlessOffline?: boolean;\n RetryCountToOffline?: number;\n EnableAdvancedOfflineSwitching?: boolean;\n SystemHealthCheckInterval?: number;\n RejectOrderFulfillment?: string;\n ManuallyCalculateTaxes?: boolean;\n EmployeeLogonTypeValue?: number;\n StartAmountCalculation?: number;\n BankDropCalculation?: number;\n GenerateLoyaltyCardNumber?: boolean;\n FiscalRegistrationProcessId?: string;\n IncludeSalesOrderInvoices?: boolean;\n IncludeFreeTextInvoices?: boolean;\n IncludeProjectInvoices?: boolean;\n IncludeCreditNoteInvoices?: boolean;\n DisplayTaxExemptInLineDetails?: boolean;\n TaxExemptReceiptIndicator?: string;\n ManuallyCalculateCharges?: boolean;\n ChargeOverrideReasonCode?: string;\n ShiftReconcilation?: string;\n CustomerAccountFloorLimit?: number;\n VoidSuspendedTransactionsOnCloseShift?: boolean;\n ShowDateTime?: boolean;\n UseAdvancedCashManagement?: boolean;\n DefaultCustomerSearchModeValue?: number;\n AllowManualOfflineBeforeSignIn?: boolean;\n UseFinancialReconciliationInStore?: boolean;\n RequirePaymentForFulfillmentValue?: number;\n CardNotPresentProcessingConfigurationValue?: number;\n EnableQuickPayShortcuts?: boolean;\n ChangeDueBehaviorValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * VisualProfile entity interface.\n */\n export interface VisualProfile {\n ChannelId?: number;\n TerminalId?: string;\n AccentColor?: number;\n HeaderColor?: number;\n Theme?: string;\n FontSchemeTypeValue?: number;\n IsAppBarLabelVisible?: boolean;\n IsDateTimeVisible?: boolean;\n LogOnLayoutTypeValue?: number;\n LogOnKeyboardTypeValue?: number;\n LogonBackgroundPictureId?: number;\n CompactLogonBackgroundPictureId?: number;\n PortraitLogonBackgroundPictureId?: number;\n CompactPortraitLogonBackgroundPictureId?: number;\n BackgroundPictureId?: number;\n LogOnLogoPictureId?: number;\n IsProductIdVisibleOnCartLine?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OperationalInsightsConfiguration entity interface.\n */\n export interface OperationalInsightsConfiguration {\n InstrumentationKey?: string;\n EnvironmentId?: string;\n IsEnabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Device entity interface.\n */\n export interface Device {\n ChannelId: number;\n RecordId?: number;\n DeviceNumber?: string;\n DeviceId?: string;\n Description?: string;\n DeviceType?: number;\n TerminalRecordId?: number;\n TerminalId?: string;\n ChannelName?: string;\n UseInMemoryDeviceDataStorage?: boolean;\n AllowMassActivation?: boolean;\n TokenIssueTime?: Date;\n ActivationStatusValue?: number;\n Token?: string;\n CountryRegionIsoCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountCode entity interface.\n */\n export interface DiscountCode {\n RecordId: number;\n Barcode?: string;\n Code?: string;\n ConcurrencyMode?: number;\n Description?: string;\n Disclaimer?: string;\n IsDiscountCodeRequired?: boolean;\n Name?: string;\n OfferId?: string;\n IsEnabled?: boolean;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DistrictInfo entity interface.\n */\n export interface DistrictInfo {\n Name?: string;\n Description?: string;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n CityName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfile entity interface.\n */\n export interface HardwareProfile {\n RecordId?: number;\n LineDisplayDelayForLinkedItems?: number;\n LineDisplayBalanceText?: string;\n LineDisplayBinaryConversion?: boolean;\n LineDisplayCharacterSet?: number;\n LineDisplayClosedLine1?: string;\n LineDisplayClosedLine2?: string;\n LineDisplayDeviceDescription?: string;\n LineDisplayDeviceTypeValue?: number;\n LineDisplayDeviceName?: string;\n LineDisplayDisplayLinkedItem?: boolean;\n LineDisplayDisplayTerminalClosed?: boolean;\n LineDisplayTotalText?: string;\n DualDisplayActive?: boolean;\n DualDisplayWebBrowserUrl?: string;\n DualDisplayImageRotatorInterval?: number;\n DualDisplayImageRotatorPath?: string;\n DualDisplayReceiptWidthPercentage?: number;\n DualDisplayDisplayType?: string;\n EftTypeId?: number;\n EftCompanyId?: string;\n EftConfiguration?: number;\n EftPaymentConnectorName?: string;\n EftData?: string;\n EftDescription?: string;\n EftMerchantId?: string;\n EftPassword?: string;\n EftServerName?: string;\n EftServerPort?: string;\n EftUserId?: string;\n EftTestMode?: boolean;\n MsrEndTrack1?: string;\n MsrEndTrack2?: string;\n FiscalPrinterManagementReportPAFIdentification?: string;\n FiscalPrinterManagementReportConfigParameter?: string;\n FiscalPrinterManagementReportTenderType?: string;\n FiscalPrinterManagementReportGiftCard?: string;\n FiscalRegisterDeviceTypeValue?: number;\n FiscalRegisterConfiguration?: string;\n FiscalRegisterDeviceDescription?: string;\n FiscalRegisterDeviceName?: string;\n KeyboardMappingId?: string;\n KeyLockDeviceTypeValue?: number;\n KeyLockDeviceDescription?: string;\n KeyLockDeviceName?: string;\n MsrDeviceTypeValue?: number;\n MsrDeviceDescription?: string;\n MsrDeviceName?: string;\n MsrMake?: string;\n MsrModel?: string;\n MsrSeparator?: string;\n MsrStartTrack?: string;\n PinPadDeviceTypeValue?: number;\n PinPadDeviceName?: string;\n PinPadMake?: string;\n PinPadModel?: string;\n PinPadDeviceDescription?: string;\n ProfileDescription?: string;\n ProfileId?: string;\n RFIDDeviceTypeValue?: number;\n RFIDDeviceName?: string;\n RFIDDeviceDescription?: string;\n ScaleDeviceTypeValue?: number;\n ScaleDeviceName?: string;\n ScaleDeviceDescription?: string;\n ScaleManualInputAllowed?: boolean;\n ScaleTimeoutInSeconds?: number;\n SignatureCaptureDeviceTypeValue?: number;\n SignatureCaptureDeviceName?: string;\n SignatureCaptureMake?: string;\n SignatureCaptureModel?: string;\n SignatureCaptureDeviceDescription?: string;\n SignatureCaptureFormName?: string;\n Printers?: HardwareProfilePrinter[];\n Scanners?: HardwareProfileScanner[];\n FiscalIntegrationTechnicalProfiles?: FiscalIntegrationTechnicalProfile[];\n CashDrawers?: HardwareProfileCashDrawer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SupportedLanguage entity interface.\n */\n export interface SupportedLanguage {\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentCard entity interface.\n */\n export interface PaymentCard {\n UseShippingAddress?: boolean;\n CardNumber?: string;\n CCID?: string;\n Track1?: string;\n Track2?: string;\n Track3?: string;\n VoiceAuthorizationCode?: string;\n EncryptedPin?: string;\n AdditionalSecurityData?: string;\n IsSwipe?: boolean;\n Phone?: string;\n Country?: string;\n House?: string;\n Address1?: string;\n Address2?: string;\n City?: string;\n State?: string;\n Zip?: string;\n NameOnCard?: string;\n CardTypeId?: string;\n ExpirationMonth?: number;\n ExpirationYear?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardPaymentAcceptSettings entity interface.\n */\n export interface CardPaymentAcceptSettings {\n HostPageOrigin?: string;\n AdaptorPath?: string;\n CardTokenizationEnabled?: boolean;\n CardPaymentEnabled?: boolean;\n PaymentAmount?: number;\n HideBillingAddress?: boolean;\n TenderTypeId?: string;\n Locale?: string;\n RequireShippingAddress?: boolean;\n }\n \n /**\n * CardPaymentAcceptPoint entity interface.\n */\n export interface CardPaymentAcceptPoint {\n AcceptPageUrl?: string;\n AcceptPageSubmitUrl?: string;\n MessageOrigin?: string;\n AcceptPageContent?: string;\n PaymentConnectorId?: string;\n }\n \n /**\n * CardPaymentAcceptResult entity interface.\n */\n export interface CardPaymentAcceptResult {\n TenderLine?: TenderLine;\n TokenizedPaymentCard?: TokenizedPaymentCard;\n PaymentSdkErrors?: PaymentError[];\n AdditionalContext?: string;\n AccessCode?: string;\n Settings?: RetrievePaymentResultSettings;\n Email?: string;\n }\n \n /**\n * ReasonCodeLine entity interface.\n */\n export interface ReasonCodeLine {\n LineId?: string;\n Amount?: number;\n Information?: string;\n InformationAmount?: number;\n InputTypeValue?: number;\n ItemTender?: string;\n LineNumber?: number;\n LineTypeValue?: number;\n ParentLineId?: string;\n ReasonCodeId?: string;\n StatementCode?: string;\n SubReasonCodeId?: string;\n SourceCode?: string;\n SourceCode2?: string;\n SourceCode3?: string;\n TransactionId?: string;\n CreatedDateTime?: Date;\n FiscalTransactionParentGuid?: string;\n IsChanged?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonSubCode entity interface.\n */\n export interface ReasonSubCode {\n TriggerCode?: string;\n AmountPercent: number;\n ReasonCodeId?: string;\n SubCodeId?: string;\n Description?: string;\n TriggerFunctionTypeValue?: number;\n ProductId?: number;\n PriceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Receipt entity interface.\n */\n export interface Receipt {\n TransactionId?: string;\n Header?: string;\n Body?: string;\n Footer?: string;\n Width?: number;\n ReceiptId?: string;\n LayoutId?: string;\n ReceiptTitle?: string;\n ReceiptTypeValue?: number;\n ReceiptTypeStrValue?: string;\n Printers?: Printer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptMask entity interface.\n */\n export interface ReceiptMask {\n FunctionalityProfileId?: string;\n IsIndependent: boolean;\n ReceiptTransactionTypeValue: number;\n RecordId: number;\n Mask?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLine entity interface.\n */\n export interface SalesLine {\n StaffId?: string;\n LineId?: string;\n Description?: string;\n OriginLineId?: string;\n TaxOverrideCode?: string;\n IsPriceKeyedIn?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n ProductId?: number;\n Barcode?: string;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n EntryMethodTypeValue?: number;\n MasterProductId?: number;\n ListingId?: number;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n NetPrice?: number;\n TotalDiscount?: number;\n TotalPercentageDiscount?: number;\n LineDiscount?: number;\n PeriodicDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n Comment?: string;\n RequestedDeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n InventoryLocationId?: string;\n InventorySiteId?: string;\n WarehouseLocation?: string;\n InventoryStatusId?: string;\n LicensePlate?: string;\n InventoryDimensionId?: string;\n InventoryTransactionId?: string;\n ItemType?: number;\n ReservationId?: string;\n LineNumber?: number;\n ReturnQuantity?: number;\n QuantityRemained?: number;\n QuantityShipped?: number;\n LineVersion?: number;\n StatusValue?: number;\n SalesStatusValue?: number;\n ProductSourceValue?: number;\n IsGiftCardLine?: boolean;\n GiftCardId?: string;\n GiftCardCurrencyCode?: string;\n GiftCardOperationValue?: number;\n GiftCardTypeValue?: number;\n IsInvoiceLine?: boolean;\n InvoiceId?: string;\n InvoiceAmount?: number;\n IsInvoiceSettled?: boolean;\n InvoiceTypeValue?: number;\n InvoicedSalesId?: string;\n IsVoided?: boolean;\n IsPriceLocked?: boolean;\n ChargeLines?: ChargeLine[];\n BasePrice?: number;\n AgreementPrice?: number;\n AdjustedPrice?: number;\n IsWarrantyLine?: boolean;\n WarrantableTransactionId?: string;\n WarrantableSalesId?: string;\n WarrantableLineNumber?: number;\n WarrantableSerialNumber?: string;\n ReturnTransactionId?: string;\n ReturnLineNumber?: number;\n ReturnInventTransId?: string;\n ReturnStore?: string;\n ReturnTerminalId?: string;\n ReturnChannelId?: number;\n FulfillmentStoreId?: string;\n SalesDate?: Date;\n QuantityInvoiced?: number;\n QuantityOrdered?: number;\n QuantityCanceled?: number;\n SavedQuantity?: number;\n IsSavedDiscount?: boolean;\n RecordId?: number;\n SerialNumber?: string;\n BatchId?: string;\n DeliveryModeChargeAmount?: number;\n UnitOfMeasureSymbol?: string;\n CatalogId?: number;\n ElectronicDeliveryEmailAddress?: string;\n ElectronicDeliveryEmailContent?: string;\n LoyaltyDiscountAmount?: number;\n LoyaltyPercentageDiscount?: number;\n TenderDiscountAmount?: number;\n TenderDiscountPercentage?: number;\n GiftCardBalance?: number;\n IsCustomerAccountDeposit?: boolean;\n Blocked?: boolean;\n Found?: boolean;\n DateToActivateItem?: Date;\n LinePercentageDiscount?: number;\n PeriodicPercentageDiscount?: number;\n QuantityDiscounted?: number;\n UnitQuantity?: number;\n UnitOfMeasureConversion?: UnitOfMeasureConversion;\n DiscountLines?: DiscountLine[];\n PriceLines?: PriceLine[];\n AttainablePriceLines?: PriceLine[];\n PeriodicDiscountPossibilities?: DiscountLine[];\n ReasonCodeLines?: ReasonCodeLine[];\n ReturnLabelProperties?: ReturnLabelContent;\n LineMultilineDiscOnItem?: string;\n RelatedDiscountedLineIds?: string[];\n LinkedParentLineId?: string;\n LineMultilineDiscOnItemValue?: number;\n WasChanged?: boolean;\n OriginalSalesOrderUnitOfMeasure?: string;\n InventOrderUnitOfMeasure?: string;\n TrackingId?: string;\n IsLoyaltyDiscountApplied?: boolean;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n AttributeValues?: AttributeValueBase[];\n ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n QuantityReturnable?: number;\n LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n ReturnLoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n FulfillmentStatus?: FulfillmentLineStatus;\n FulfillmentStatusValue?: number;\n DetailedLineStatusValue?: number;\n DetailedLineStatus?: DetailedLineStatus;\n LastReturnProcessedTime?: Date;\n SalesAgreementPrice?: number;\n SalesAgreementLineRecordId?: number;\n IsSalesAgreementSkipped?: boolean;\n ItemId?: string;\n Quantity?: number;\n Price?: number;\n ItemTaxGroupId?: string;\n SalesTaxGroupId?: string;\n OriginalSalesTaxGroupId?: string;\n OriginalItemTaxGroupId?: string;\n TaxAmount?: number;\n SalesOrderUnitOfMeasure?: string;\n NetAmount?: number;\n NetAmountPerUnit?: number;\n GrossAmount?: number;\n TaxLines?: TaxLine[];\n TaxMeasures?: TaxMeasure[];\n TaxAmountExemptInclusive?: number;\n TaxAmountInclusive?: number;\n TaxAmountExclusive?: number;\n NetAmountWithAllInclusiveTax?: number;\n BeginDateTime?: Date;\n EndDateTime?: Date;\n TaxRatePercent?: number;\n IsReturnByReceipt?: boolean;\n ReturnLineTaxAmount?: number;\n ReturnTaxLines?: TaxLine[];\n TaxExemptPriceInclusiveReductionAmount?: number;\n TaxExemptPriceInclusiveOriginalPrice?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchArea entity interface.\n */\n export interface SearchArea {\n Longitude?: number;\n Latitude?: number;\n Radius?: number;\n DistanceUnitValue?: number;\n }\n \n /**\n * ShiftAccountLine entity interface.\n */\n export interface ShiftAccountLine {\n AccountTypeValue?: number;\n AccountNumber?: string;\n Amount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftTenderLine entity interface.\n */\n export interface ShiftTenderLine {\n TenderTypeId?: string;\n TenderTypeName?: string;\n CardTypeId?: string;\n TenderCurrency?: string;\n CountingRequired?: boolean;\n StartingAmountOfStoreCurrency?: number;\n StartingAmountOfTenderCurrency?: number;\n FloatingEntryAmountOfStoreCurrency?: number;\n FloatingEntryAmountOfTenderCurrency?: number;\n SafeDropAmountOfStoreCurrency?: number;\n SafeDropAmountOfTenderCurrency?: number;\n BankDropAmountOfStoreCurrency?: number;\n BankDropAmountOfTenderCurrency?: number;\n RemoveTenderAmountOfStoreCurrency?: number;\n RemoveTenderAmountOfTenderCurrency?: number;\n DeclareTenderAmountOfStoreCurrency?: number;\n DeclareTenderAmountOfTenderCurrency?: number;\n TenderedAmountOfStoreCurrency?: number;\n TenderedAmountOfTenderCurrency?: number;\n ChangeAmountOfStoreCurrency?: number;\n ChangeAmountOfTenderCurrency?: number;\n Count?: number;\n Notes?: string;\n Overridden?: boolean;\n OverriddenFloatEntryAmountInStoreCurrency?: number;\n OverriddenFloatEntryAmountInTenderedCurrency?: number;\n OverriddenBankDropAmountInStoreCurrency?: number;\n OverriddenBankDropAmountInTenderedCurrency?: number;\n OverriddenChangeAmountInStoreCurrency?: number;\n OverriddenChangeAmountInTenderedCurrency?: number;\n OverriddenDeclaredTenderAmountInStoreCurrency?: number;\n OverriddenDeclaredTenderAmountInTenderedCurrency?: number;\n OverriddenRemovedTenderAmountInStoreCurrency?: number;\n OverriddenRemovedTenderAmountInTenderedCurrency?: number;\n OverriddenSafeDropAmountInStoreCurrency?: number;\n OverriddenSafeDropAmountInTenderedCurrency?: number;\n OverriddenStartingAmountInStoreCurrency?: number;\n OverriddenStartingAmountInTenderedCurrency?: number;\n OverriddenTenderedAmountInStoreCurrency?: number;\n OverriddenTenderedAmountInTenderedCurrency?: number;\n OverShortAmountOfTenderCurrency?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StockCountJournalTransaction entity interface.\n */\n export interface StockCountJournalTransaction {\n JournalId?: string;\n RecordId?: number;\n OperationType?: number;\n ItemId?: string;\n DataAreaId?: string;\n ProductRecordId?: number;\n ItemName?: string;\n InventDimId?: string;\n Counted?: number;\n Quantity?: number;\n EstimatedOnHandQuantity?: number;\n OnHandCalculationDateTime?: Date;\n Unit?: string;\n UserId?: string;\n TerminalId?: string;\n CountedDate?: Date;\n Status?: number;\n InventBatchId?: string;\n WarehouseLocationId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n WarehousePalletId?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n InventSerialId?: string;\n TrackingGuid?: string;\n UpdatedInAx?: boolean;\n Message?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxLine entity interface.\n */\n export interface TaxLine {\n TaxGroup?: string;\n Percentage?: number;\n IsExempt?: boolean;\n TaxBasis?: number;\n IsIncludedInPrice?: boolean;\n SaleLineNumber?: number;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n TaxCode?: string;\n Amount?: number;\n AmountRefunded?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderLine entity interface.\n */\n export interface TenderLine {\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n InternalTransactionId?: string;\n RefundableAmount?: number;\n CaptureToken?: string;\n CardToken?: string;\n Authorization?: string;\n TransactionStatusValue?: number;\n IncomeExpenseAccountTypeValue?: number;\n MaskedCardNumber?: string;\n TenderDate?: Date;\n IsPreProcessed?: boolean;\n IsDeposit?: boolean;\n IsCustomerAccountFloorLimitUsed?: boolean;\n AuthorizationReferenceId?: string;\n IsIncrementalCaptureEnabled?: boolean;\n IsReauthorizationEnabled?: boolean;\n IncrementalOffsetAmount?: number;\n ChannelId?: number;\n IsLinkedRefund?: boolean;\n LinkedPaymentStore?: string;\n LinkedPaymentTerminalId?: string;\n LinkedPaymentTransactionId?: string;\n LinkedPaymentLineNumber?: number;\n LinkedPaymentCurrency?: string;\n RoundingDifference?: number;\n TenderLineId?: string;\n Amount?: number;\n CashBackAmount?: number;\n AmountInTenderedCurrency?: number;\n AmountInCompanyCurrency?: number;\n Currency?: string;\n ExchangeRate?: number;\n CompanyCurrencyExchangeRate?: number;\n TenderTypeId?: string;\n SignatureData?: string;\n ReasonCodeLines?: ReasonCodeLine[];\n LineNumber?: number;\n GiftCardId?: string;\n GiftCardPin?: string;\n GiftCardExpirationYear?: number;\n GiftCardExpirationMonth?: number;\n CreditMemoId?: string;\n CustomerId?: string;\n LoyaltyCardId?: string;\n CardTypeId?: string;\n IsChangeLine?: boolean;\n IsHistorical?: boolean;\n IsVoidable?: boolean;\n StatusValue?: number;\n VoidStatusValue?: number;\n AuthorizedAmount?: number;\n PaymentRefRecId?: number;\n CardPaymentAccountId?: string;\n ProcessingTypeValue?: number;\n CardProcessorStatusValue?: number;\n LinkedPaymentRefRecId?: number;\n IsPolicyBypassed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TextValueTranslation entity interface.\n */\n export interface TextValueTranslation {\n Language?: string;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UnitOfMeasure entity interface.\n */\n export interface UnitOfMeasure {\n DecimalPrecision?: number;\n Symbol?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecommendedElement entity interface.\n */\n export interface RecommendedElement {\n ElementId?: string;\n ElementTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecommendationCriteria entity interface.\n */\n export interface RecommendationCriteria {\n CustomerAccountNumber?: string;\n CatalogId?: number;\n ProductIds?: number[];\n CategoryIds?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductListLine entity interface.\n */\n export interface ProductListLine {\n ProductListId?: string;\n LineId?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListLine entity interface.\n */\n export interface CommerceListLine {\n CommerceListId?: number;\n LineId?: number;\n CustomerId?: string;\n CustomerName?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListContributor entity interface.\n */\n export interface CommerceListContributor {\n RecordId?: number;\n CustomerId?: string;\n CustomerName?: string;\n InvitationId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListInvitation entity interface.\n */\n export interface CommerceListInvitation {\n RecordId?: number;\n Invitee?: string;\n IsSent?: boolean;\n LastRequestDateTime?: Date;\n LastSentDateTime?: Date;\n StatusValue?: number;\n Token?: string;\n InvitationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchFilter entity interface.\n */\n export interface SearchFilter {\n Key?: string;\n FilterTypeValue: number;\n SearchValues?: SearchFilterValue[];\n }\n \n /**\n * SearchFilterValue entity interface.\n */\n export interface SearchFilterValue {\n Value?: CommercePropertyValue;\n }\n \n /**\n * TransactionSearchCriteria entity interface.\n */\n export interface TransactionSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n StartDateTime?: Date;\n EndDateTime?: Date;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SearchLocationTypeValue?: number;\n CustomFilters?: SearchFilter[];\n }\n \n /**\n * SalesOrderSearchCriteria entity interface.\n */\n export interface SalesOrderSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n SearchTypeValue?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n IncludeDetails?: boolean;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SalesTransactionTypeValues?: number[];\n SearchLocationTypeValue?: number;\n TransactionStatusTypeValues?: number[];\n }\n \n /**\n * SearchStoreCriteria entity interface.\n */\n export interface SearchStoreCriteria {\n ChannelId?: number;\n StoreNumber?: string;\n InventoryLocationId?: string;\n }\n \n /**\n * CustomerSearchCriteria entity interface.\n */\n export interface CustomerSearchCriteria {\n Keyword?: string;\n SearchOnlyCurrentCompany?: boolean;\n SearchLocationValue?: number;\n Refinements?: CustomerRefinerValue[];\n DataLevelValue?: number;\n }\n \n /**\n * ProductPrice entity interface.\n */\n export interface ProductPrice {\n ProductId?: number;\n ListingId?: number;\n BasePrice?: number;\n TradeAgreementPrice?: number;\n AdjustedPrice?: number;\n MaxVariantPrice?: number;\n MinVariantPrice?: number;\n CustomerContextualPrice?: number;\n DiscountAmount?: number;\n CurrencyCode?: string;\n ItemId?: string;\n InventoryDimensionId?: string;\n UnitOfMeasure?: string;\n ValidFrom?: Date;\n ProductLookupId?: number;\n ChannelId?: number;\n CatalogId?: number;\n DiscountLines?: DiscountLine[];\n SalesAgreementPrice?: number;\n PriceSourceTypeValue?: number;\n AttainablePriceLines?: PriceLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAvailability entity interface.\n */\n export interface OrgUnitAvailability {\n OrgUnitLocation?: OrgUnitLocation;\n ItemAvailabilities?: ItemAvailability[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductVariantPropertySet entity interface.\n */\n export interface ProductVariantPropertySet {\n VariantId?: number;\n ProductVariantPropertiesAsList?: ProductPropertyTranslation[];\n }\n \n /**\n * PurchaseOrderLine entity interface.\n */\n export interface PurchaseOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseQuantity?: number;\n PurchaseUnit?: string;\n PurchaseReceived?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n UniqueIdentifier?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderLine entity interface.\n */\n export interface TransferOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityTransferred?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityRemainShip?: number;\n QuantityRemainReceive?: number;\n PurchaseUnit?: string;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderJournal entity interface.\n */\n export interface TransferOrderJournal {\n OrderId?: string;\n VoucherId?: string;\n UpdatedByWorker?: string;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n PostingDate?: Date;\n DeliveryMode?: string;\n Comments?: string;\n JournalLines?: TransferOrderJournalLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingListLine entity interface.\n */\n export interface PickingListLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Affiliation entity interface.\n */\n export interface Affiliation {\n RecordId?: number;\n AffiliationTypeValue?: number;\n Description?: string;\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity interface.\n */\n export interface InventoryInboundOutboundDocumentLinesSummary {\n InProgressQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity interface.\n */\n export interface InventoryDocumentSerialNumberLinesSummary {\n RegisteringQuantity?: number;\n RegisteredQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLine entity interface.\n */\n export interface InventoryInboundOutboundDocumentLine {\n WorkDocumentId?: string;\n LineId?: string;\n SourceDocumentRecordId?: number;\n SourceDocumentLineRecordId?: number;\n SourceDocumentTypeValue?: number;\n QuantityOrdered?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityCancelled?: number;\n QuantityToUpdate?: number;\n LocationId?: string;\n ItemId?: string;\n ProductId?: number;\n ItemName?: string;\n ItemPrimaryImageUrl?: string;\n IsLocationActive?: boolean;\n IsLocationAllowBlankReceiptEnabled?: boolean;\n IsLocationBlankIssueAllowed?: boolean;\n ProductDimensions?: ProductDimension[];\n Note?: string;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n OperationResultMessage?: string;\n IsCloseLine?: boolean;\n OriginTypeValue?: number;\n UnitOfMeasure?: string;\n SourceDocumentLine?: InventoryInboundOutboundSourceDocumentLine;\n SerialNumberLines?: InventoryDocumentSerialNumberLine[];\n LongVersion?: number;\n ToLocationId?: string;\n AdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundSourceDocument entity interface.\n */\n export interface InventoryInboundOutboundSourceDocument {\n RecordId?: number;\n DocumentTypeValue?: number;\n DocumentId?: string;\n StatusValue?: number;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n TotalQuantityOrdered?: number;\n TotalQuantityShipped?: number;\n TotalQuantityReceived?: number;\n TotalQuantityCancelled?: number;\n DataAreaId?: string;\n Note?: string;\n TotalLines?: number;\n IsChangeAllowed?: boolean;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentTypeId?: string;\n Description?: string;\n StaffId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity interface.\n */\n export interface InventoryInboundOutboundSourceDocumentLine {\n DocumentRecordId?: number;\n DocumentTypeValue?: number;\n RecordId?: number;\n LineNumber?: number;\n ItemId?: string;\n ProductId?: number;\n QuantityOrdered?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityCancelled?: number;\n LocationId?: string;\n OverDeliveryPercentage?: number;\n UnderDeliveryPercentage?: number;\n UnitId?: string;\n Receiver?: string;\n DataAreaId?: string;\n Note?: string;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentId?: string;\n ItemName?: string;\n ItemPrimaryImageUrl?: string;\n IsLocationActive?: boolean;\n IsLocationAllowBlankReceiptEnabled?: boolean;\n IsLocationBlankIssueAllowed?: boolean;\n HasSerialNumber?: boolean;\n IsSerialNumberBlankReceiptAllowed?: boolean;\n IsSerialNumberDuplicateCheckEnabled?: boolean;\n ProductDimensions?: ProductDimension[];\n SerialNumberLines?: InventoryDocumentSourceSerialNumberLine[];\n StatusValue?: number;\n ToProductId?: number;\n ToLocationId?: string;\n InventoryDimensionId?: string;\n ToInventoryDimensionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineFilterCriteria entity interface.\n */\n export interface InventoryDocumentLineFilterCriteria {\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentUpdateLinesAction entity interface.\n */\n export interface InventoryDocumentUpdateLinesAction {\n Quantity?: number;\n ActionTypeValue?: number;\n LocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineOperationResultSettings entity interface.\n */\n export interface InventoryDocumentLineOperationResultSettings {\n ModeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineSearchCriteria entity interface.\n */\n export interface InventoryDocumentLineSearchCriteria {\n SourceDocumentId?: string;\n SourceDocumentTypeValue?: number;\n WorkDocumentId?: string;\n ProductId?: number;\n ItemIds?: string[];\n AvailableSerializedLineOnly?: boolean;\n DocumentLineIds?: string[];\n DocumentOperationTypeValue?: number;\n OperationTypeValue?: number;\n LocationId?: string;\n ToLocationId?: string;\n AdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSearchCriteria entity interface.\n */\n export interface InventoryDocumentSearchCriteria {\n DocumentId?: string;\n TransferFromWarehouse?: string;\n ShipFromWarehouse?: string;\n TransferToWarehouse?: string;\n Description?: string;\n DocumentTypeIds?: string[];\n DocumentStateValue?: number;\n DocumentTypeValues?: number[];\n CustomFilters?: SearchFilter[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity interface.\n */\n export interface InventoryDocumentSerialNumberLineSearchCriteria {\n DocumentLineId?: string;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity interface.\n */\n export interface InventoryDocumentSerialNumberLineUpdateAction {\n DocumentLineId?: string;\n LineId?: string;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity interface.\n */\n export interface InventoryDocumentSerialNumberLineResetAction {\n DocumentLineId?: string;\n LineId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity interface.\n */\n export interface InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n UpdatedLines?: InventoryInboundOutboundDocumentLine[];\n TotalLinesUpdated?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * WarehouseLocationSearchCriteria entity interface.\n */\n export interface WarehouseLocationSearchCriteria {\n WarehouseIds?: string[];\n IsLocationProfileRequired?: boolean;\n SearchText?: string;\n }\n \n /**\n * InventoryDocumentSerialNumberLine entity interface.\n */\n export interface InventoryDocumentSerialNumberLine {\n WorkDocumentId?: string;\n WorkDocumentLineId?: string;\n SourceLineId?: string;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n ModifiedDateTime?: Date;\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n SourceLine?: InventoryDocumentSourceSerialNumberLine;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity interface.\n */\n export interface InventoryDocumentValidationCategoryResultsSummary {\n CategoryName?: string;\n SeverityValue?: number;\n TotalValidationResultCount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultSummary entity interface.\n */\n export interface InventoryDocumentValidationResultSummary {\n DocumentId?: string;\n DocumentVersion?: number;\n CategorySummaries?: InventoryDocumentValidationCategoryResultsSummary[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultLine entity interface.\n */\n export interface InventoryDocumentValidationResultLine {\n DocumentValidationResultLineId?: string;\n CategoryName?: string;\n SeverityValue?: number;\n ErrorCode?: number;\n ErrorMessage?: string;\n DocumentId?: string;\n DocumentLongVersion?: number;\n DocumentLineId?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity interface.\n */\n export interface InventoryDocumentValidationResultSearchCriteria {\n DocumentId?: string;\n DocumentVersion?: number;\n SeverityValue?: number;\n Categories?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionValueInventoryAvailability entity interface.\n */\n export interface ProductDimensionValueInventoryAvailability {\n DimensionTypeValue?: number;\n DimensionValue?: ProductDimensionValue;\n ProductIds?: number[];\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n }\n \n /**\n * ProductDimension entity interface.\n */\n export interface ProductDimension {\n DimensionTypeValue: number;\n DimensionValue?: ProductDimensionValue;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionValue entity interface.\n */\n export interface ProductDimensionValue {\n RecordId: number;\n Value?: string;\n DimensionId?: string;\n ColorHexCode?: string;\n ImageUrl?: string;\n RefinerGroup?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionCombination entity interface.\n */\n export interface ProductDimensionCombination {\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchRefiner entity interface.\n */\n export interface SearchRefiner {\n RecordId?: number;\n KeyName?: string;\n DataTypeValue?: number;\n RefinerTypeValue?: number;\n DisplayTemplateValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchRefinerValue entity interface.\n */\n export interface SearchRefinerValue {\n RefinerRecordId?: number;\n DataTypeValue?: number;\n LeftValueBoundString?: string;\n RightValueBoundString?: string;\n UnitText?: string;\n RowNumber?: number;\n Count?: number;\n LeftValueBoundLocalizedString?: string;\n RightValueBoundLocalizedString?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRefiner entity interface.\n */\n export interface ProductRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: ProductRefinerValue[];\n IsDimension?: boolean;\n }\n \n /**\n * ProductRefinerValue entity interface.\n */\n export interface ProductRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n }\n \n /**\n * ClientBookRefiner entity interface.\n */\n export interface ClientBookRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: ClientBookRefinerValue[];\n }\n \n /**\n * ClientBookRefinerValue entity interface.\n */\n export interface ClientBookRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n }\n \n /**\n * ProductRelationType entity interface.\n */\n export interface ProductRelationType {\n Name?: string;\n RecordId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ComponentInSlotRelation entity interface.\n */\n export interface ComponentInSlotRelation {\n ComponentId: number;\n SlotId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRules entity interface.\n */\n export interface ProductRules {\n HasLinkedProducts: boolean;\n IsSerialized: boolean;\n IsActiveInSalesProcess: boolean;\n IsBlocked: boolean;\n DateOfBlocking: Date;\n DateToActivate: Date;\n DateToBlock: Date;\n DefaultUnitOfMeasure?: string;\n PriceKeyingRequirementValue: number;\n QuantityKeyingRequirementValue: number;\n MustKeyInComment: boolean;\n CanQuantityBecomeNegative: boolean;\n MustScaleItem: boolean;\n CanPriceBeZero: boolean;\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LocalizedString entity interface.\n */\n export interface LocalizedString {\n RecordId?: number;\n LanguageId?: string;\n TextId?: number;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCard entity interface.\n */\n export interface LoyaltyCard {\n CardNumber?: string;\n CardTenderTypeValue?: number;\n CustomerAccount?: string;\n LoyaltyGroups?: LoyaltyGroup[];\n RewardPoints?: LoyaltyRewardPoint[];\n LoyaltyEnrollmentDate?: Date;\n LoyaltyEnrollmentDateLocal?: Date;\n LoyaltyEnrollmentTime?: number;\n LoyaltyEnrollmentTimeLocal?: number;\n OmOperatingUnitId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComponent entity interface.\n */\n export interface ProductComponent {\n ProductId: number;\n SlotId: number;\n Product?: SimpleProduct;\n AdditionalChargeForComponent?: number;\n Behavior?: ProductBehavior;\n Description?: string;\n Dimensions?: ProductDimension[];\n ItemId?: string;\n Name?: string;\n ProductTypeValue?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SimpleProduct entity interface.\n */\n export interface SimpleProduct {\n RecordId: number;\n ItemId?: string;\n Name?: string;\n Description?: string;\n ProductTypeValue: number;\n DefaultUnitOfMeasure?: string;\n BasePrice: number;\n Price: number;\n AdjustedPrice: number;\n MasterProductId?: number;\n Components?: ProductComponent[];\n IsGiftCard?: boolean;\n Dimensions?: ProductDimension[];\n Behavior?: ProductBehavior;\n LinkedProducts?: SimpleLinkedProduct[];\n PrimaryImageUrl?: string;\n ItemTypeValue?: number;\n ItemServiceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductBehavior entity interface.\n */\n export interface ProductBehavior {\n HasSerialNumber: boolean;\n IsDiscountAllowed: boolean;\n IsManualDiscountAllowed: boolean;\n IsKitDisassemblyAllowed: boolean;\n IsNegativeQuantityAllowed: boolean;\n IsReturnAllowed: boolean;\n IsSaleAtPhysicalStoresAllowed: boolean;\n IsZeroSalePriceAllowed: boolean;\n KeyInPriceValue: number;\n KeyInQuantityValue: number;\n MustKeyInComment: boolean;\n MustPrintIndividualShelfLabelsForVariants: boolean;\n MustPromptForSerialNumberOnlyAtSale: boolean;\n MustWeighProductAtSale: boolean;\n ValidFromDateForSaleAtPhysicalStores: Date;\n ValidToDateForSaleAtPhysicalStores: Date;\n IsStorageDimensionGroupLocationActive: boolean;\n IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n AllowNegativePhysicalInventory: boolean;\n IsStockedProduct: boolean;\n IsBlankSerialNumberAllowed?: boolean;\n IsBlankSerialNumberReceiptAllowed?: boolean;\n IsSerialNumberControlEnabled?: boolean;\n IsStorageDimensionGroupLocationBlankIssueAllowed?: boolean;\n IsSerialNumberRequired?: boolean;\n DefaultQuantity?: number;\n MaximumQuantity?: number;\n MinimumQuantity?: number;\n MultipleOfQuantity?: number;\n InventoryLocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SimpleLinkedProduct entity interface.\n */\n export interface SimpleLinkedProduct {\n RecordId: number;\n ItemId?: string;\n Name?: string;\n Description?: string;\n ProductTypeValue: number;\n DefaultUnitOfMeasure?: string;\n BasePrice: number;\n Price: number;\n AdjustedPrice: number;\n Quantity: number;\n Behavior?: ProductBehavior;\n Dimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductSearchResult entity interface.\n */\n export interface ProductSearchResult {\n ItemId?: string;\n Name?: string;\n Price: number;\n PrimaryImageUrl?: string;\n RecordId: number;\n TrackingId?: string;\n AverageRating?: number;\n TotalRatings?: number;\n Description?: string;\n BasePrice?: number;\n MinVariantPrice?: number;\n MaxVariantPrice?: number;\n DisplayOrder?: number;\n AttributeValues?: AttributeValue[];\n IsMasterProduct?: boolean;\n MasterProductId?: number;\n DefaultUnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchSuggestion entity interface.\n */\n export interface SearchSuggestion {\n Value?: string;\n Value2?: CommerceProperty;\n Value3?: CommerceProperty;\n Value4?: CommerceProperty;\n SuggestionType?: string;\n Id?: string;\n ImageUrl?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyPointRedemptionEstimate entity interface.\n */\n export interface LoyaltyPointRedemptionEstimate {\n MaxCurrencyValueOfLoyaltyPoints?: number;\n RewardPointToRedeemList?: LoyaltyRewardPointLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyGroup entity interface.\n */\n export interface LoyaltyGroup {\n Description?: string;\n Name?: string;\n RecordId: number;\n LoyaltyTiers?: LoyaltyTier[];\n LoyaltyCardTiers?: LoyaltyCardTier[];\n HighestActiveLoyaltyCardTier?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyTier entity interface.\n */\n export interface LoyaltyTier {\n Description?: string;\n RecordId: number;\n TierId?: string;\n TierLevel: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCardTier entity interface.\n */\n export interface LoyaltyCardTier {\n RecordId: number;\n TierId?: string;\n LoyaltyTierRecordId: number;\n ValidFrom: Date;\n ValidTo: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyRewardPoint entity interface.\n */\n export interface LoyaltyRewardPoint {\n IsRedeemable: boolean;\n RewardPointCurrency?: string;\n RewardPointTypeValue: number;\n Description?: string;\n RewardPointId?: string;\n IssuedPoints?: number;\n UsedPoints?: number;\n ExpiredPoints?: number;\n ActivePoints?: number;\n PointsExpiringSoon?: number;\n UnvestedPoints?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCardTransaction entity interface.\n */\n export interface LoyaltyCardTransaction {\n ChannelName?: string;\n EntryDateTime: Date;\n EntryTypeValue: number;\n ExpirationDate: Date;\n RewardPointAmountQuantity: number;\n TransactionId?: string;\n }\n \n /**\n * GiftCard entity interface.\n */\n export interface GiftCard {\n Id?: string;\n Balance?: number;\n BalanceCurrencyCode?: string;\n BalanceInCardCurrency?: number;\n CardCurrencyCode?: string;\n GiftCardIssueAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OperationPermission entity interface.\n */\n export interface OperationPermission {\n OperationName?: string;\n OperationId?: number;\n CheckUserAccess?: boolean;\n AllowAnonymousAccess?: boolean;\n AllowCustomerAccess?: boolean;\n AllowApplicationAccess?: boolean;\n IsEnabledForTaskManagement?: boolean;\n Permissions?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StateProvinceInfo entity interface.\n */\n export interface StateProvinceInfo {\n CountryRegionId?: string;\n StateId?: string;\n StateName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransactionLog entity interface.\n */\n export interface TransactionLog extends Transaction {\n }\n \n /**\n * KitTransaction entity interface.\n */\n export interface KitTransaction extends TransactionLog {\n KitTransactionLines?: KitTransactionLine[];\n }\n \n /**\n * SalesTaxGroup entity interface.\n */\n export interface SalesTaxGroup {\n RecordId: number;\n TaxGroup?: string;\n TaxGroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductProperty entity interface.\n */\n export interface ProductProperty {\n ValueString?: string;\n UnitText?: string;\n PropertyTypeValue?: number;\n KeyName?: string;\n FriendlyName?: string;\n RecordId?: number;\n IsDimensionProperty?: boolean;\n AttributeValueId?: number;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n GroupId?: number;\n GroupTypeValue?: number;\n GroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n ProductId?: number;\n CatalogId?: number;\n }\n \n /**\n * ProductCompositionInformation entity interface.\n */\n export interface ProductCompositionInformation {\n VariantInformation?: ProductVariantInformation;\n KitDefinition?: KitDefinition;\n }\n \n /**\n * ProductVariantInformation entity interface.\n */\n export interface ProductVariantInformation {\n ActiveVariantProductId: number;\n Variants?: ProductVariant[];\n Dimensions?: ProductDimensionSet[];\n ItemId?: string;\n MasterProductId?: number;\n }\n \n /**\n * ProductChangeTrackingInformation entity interface.\n */\n export interface ProductChangeTrackingInformation {\n ModifiedDateTime: Date;\n ChangeActionValue?: number;\n RequestedActionValue?: number;\n }\n \n /**\n * ProductDimensionSet entity interface.\n */\n export interface ProductDimensionSet {\n DimensionKey?: string;\n DimensionValues?: ProductDimensionValueSet[];\n }\n \n /**\n * ProductDimensionValueSet entity interface.\n */\n export interface ProductDimensionValueSet {\n DimensionId?: string;\n DimensionValue?: string;\n VariantSet?: number[];\n Language?: string;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n SwatchRefinerGroupValue?: string;\n SwatchRefinerGroupTranslation?: string;\n SwatchRefinerGroupImageUrl?: string;\n SwatchRefinerGroupColorHexCode?: string;\n }\n \n /**\n * RichMediaLocations entity interface.\n */\n export interface RichMediaLocations {\n Items?: RichMediaLocationsRichMediaLocation[];\n }\n \n /**\n * RichMediaLocationsRichMediaLocation entity interface.\n */\n export interface RichMediaLocationsRichMediaLocation {\n Url?: string;\n AltText?: string;\n IsSelfHosted?: boolean;\n IsDefault?: boolean;\n }\n \n /**\n * KitDefinition entity interface.\n */\n export interface KitDefinition {\n DisassembleAtRegister: boolean;\n KitLineDefinitions?: KitLineDefinition[];\n KitLineProductToVariantMap?: ComponentKitVariantSet[];\n KitVariantToComponentMap?: KitVariantContent[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ComponentKitVariantSet entity interface.\n */\n export interface ComponentKitVariantSet {\n KitLineProductId: number;\n KitVariantIdList?: number[];\n }\n \n /**\n * KitLineDefinition entity interface.\n */\n export interface KitLineDefinition {\n ComponentProductId: number;\n KitLineIdentifier: number;\n SubstituteProductIds?: number[];\n ComponentProperties?: KitLineProductProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitLineProductProperty entity interface.\n */\n export interface KitLineProductProperty {\n KitLineIdentifier: number;\n ProductId: number;\n Unit?: string;\n Quantity: number;\n Charge: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitComponentKey entity interface.\n */\n export interface KitComponentKey {\n KitLineIdentifier: number;\n DistinctProductId: number;\n }\n \n /**\n * KitVariantContent entity interface.\n */\n export interface KitVariantContent {\n KitVariantId: number;\n KitComponentKeyList?: KitComponentKey[];\n }\n \n /**\n * ProductLookupClause entity interface.\n */\n export interface ProductLookupClause {\n ItemId?: string;\n InventDimensionId?: string;\n Barcode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductAssortmentInterval entity interface.\n */\n export interface ProductAssortmentInterval {\n ProductId?: number;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitLocation entity interface.\n */\n export interface OrgUnitLocation {\n Contacts?: OrgUnitContact[];\n ChannelId?: number;\n Latitude?: number;\n Longitude?: number;\n OrgUnitName?: string;\n OrgUnitNumber?: string;\n Address?: string;\n Street?: string;\n StreetNumber?: string;\n City?: string;\n DistrictName?: string;\n BuildingCompliment?: string;\n Postbox?: string;\n Zip?: string;\n County?: string;\n CountyName?: string;\n State?: string;\n StateName?: string;\n Country?: string;\n Distance?: number;\n InventoryLocationId?: string;\n InventorySiteId?: string;\n PostalAddressId?: number;\n OpenFrom?: number;\n OpenTo?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitContact entity interface.\n */\n export interface OrgUnitContact {\n ChannelId: number;\n Locator?: string;\n LocatorExtension?: string;\n ContactTypeValue: number;\n IsPrimary: boolean;\n IsPrivate: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLineDeliveryOption entity interface.\n */\n export interface SalesLineDeliveryOption {\n SalesLineId?: string;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * DeliveryOption entity interface.\n */\n export interface DeliveryOption {\n ChargeGroup?: string;\n Code?: string;\n Description?: string;\n RecordId: number;\n DeliveryChargeLines?: DeliveryChargeLine[];\n TotalChargeAmount?: number;\n ShippingChargeAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelDeliveryOption entity interface.\n */\n export interface ChannelDeliveryOption {\n ChannelId: number;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * ChannelIdentity entity interface.\n */\n export interface ChannelIdentity {\n ChannelType: ExtensibleRetailChannelType;\n Name?: string;\n OperatingUnitNumber?: string;\n DataAreaId?: string;\n RecordId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleRetailChannelType entity interface.\n */\n export interface ExtensibleRetailChannelType extends ExtensibleEnumeration {\n }\n \n /**\n * ChannelProfileProperty entity interface.\n */\n export interface ChannelProfileProperty {\n Key: number;\n Value?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelConfiguration entity interface.\n */\n export interface ChannelConfiguration {\n RecordId: number;\n ChannelNaturalId?: string;\n MinimumDepositPercentage: number;\n QuoteExpirationDays: number;\n PickupDeliveryModeCode?: string;\n CarryoutDeliveryModeCode?: string;\n CancellationChargePercentage: number;\n InventLocation?: string;\n InventLocationDataAreaId?: string;\n BingMapsApiKey?: string;\n BingMapsEnabled: boolean;\n Currency?: string;\n CatalogDefaultImageTemplate?: string;\n CompanyCurrency?: string;\n PriceIncludesSalesTax: boolean;\n CountryRegionId?: string;\n ChannelCountryRegionISOCode?: string;\n DefaultLanguageId?: string;\n TimeZoneInfoId?: string;\n EmailDeliveryModeCode?: string;\n GiftCardItemId?: string;\n EnableProductRecommendations: boolean;\n RefundableShippingAmountWithoutApproval: number;\n RefundShippingCharges: boolean;\n ReceiptSettingsValue: number;\n CustomerAttributeGroupId: number;\n ClientBookAttributeGroupId: number;\n NotificationRefreshInterval: number;\n AllowExchangeOnReturnOrders?: boolean;\n FiscalRegistrationProcessId?: string;\n IsInventoryAutomaticValidationEnabled: boolean;\n ProfileProperties?: ChannelProfileProperty[];\n Properties?: ChannelProperty[];\n Languages?: ChannelLanguage[];\n UseAdvancedAutoCharges?: boolean;\n UseRTSForOnlineOrderCreation?: boolean;\n IsWarrantyAutoPromptEnabled?: boolean;\n EnableProductRatingsForRetailStores?: boolean;\n EnableFetchingPickingListsForPickingAndReceiving?: boolean;\n EnableReturnsForMultipleOrderInvoices?: boolean;\n EnableAnonymousOrderLookupByChannelReferenceId?: boolean;\n VoidSuspendedTransactionsOnCloseShift?: number;\n EnableOmniChannelPayments?: boolean;\n UseAdvancedCashManagement?: boolean;\n EnableFiscalRegistrationStorageBackup?: boolean;\n UseSalesReceiptAsDefaultReceiptTypeInJournal?: boolean;\n SalesOrderHeaderAttributeGroups?: number[];\n SalesOrderLinesAttributeGroups?: number[];\n CustomerAddressBooks?: StoreAddressBook[];\n EnableReturnPolicies?: boolean;\n InventAvailabilityCalculationMode?: string;\n IsPriceInclusiveTaxExemptCalculationEnabled?: boolean;\n EnableValidationOfSerialNumbersForInStoreReturns?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelProperty entity interface.\n */\n export interface ChannelProperty {\n Name?: string;\n Value?: string;\n Channel?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelLanguage entity interface.\n */\n export interface ChannelLanguage {\n LanguageId?: string;\n IsDefault: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelDeliveryOptionConfiguration entity interface.\n */\n export interface ChannelDeliveryOptionConfiguration {\n PickupDeliveryModeCodes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NonSalesTransaction entity interface.\n */\n export interface NonSalesTransaction extends Transaction {\n ReasonCodeLines?: ReasonCodeLine[];\n Amount?: number;\n ForeignCurrency?: string;\n OpenDrawer?: boolean;\n DenominationDetails?: DenominationDetail[];\n }\n \n /**\n * DropAndDeclareTransaction entity interface.\n */\n export interface DropAndDeclareTransaction extends Transaction {\n TenderDetails?: TenderDetail[];\n ReasonCodeLines?: ReasonCodeLine[];\n OpenDrawer?: boolean;\n }\n \n /**\n * ProductSearchCriteria entity interface.\n */\n export interface ProductSearchCriteria {\n Ids?: number[];\n CategoryIds?: number[];\n IncludeProductsFromDescendantCategories?: boolean;\n SearchCondition?: string;\n SkipVariantExpansion?: boolean;\n IncludeAttributes?: boolean;\n Barcodes?: string[];\n ItemIds?: ProductLookupClause[];\n Refinement?: ProductRefinerValue[];\n CustomerAccountNumber?: string;\n RecommendationListId?: string;\n DownloadProductData?: boolean;\n Context?: ProjectionDomain;\n Language?: string;\n IsOnline?: boolean;\n DataLevelValue?: number;\n }\n \n /**\n * ChangedProductsSearchCriteria entity interface.\n */\n export interface ChangedProductsSearchCriteria {\n SynchronizationToken?: string;\n Context?: ProjectionDomain;\n AsListings?: boolean;\n Session?: ReadChangedProductsSession;\n DataLevelValue?: number;\n }\n \n /**\n * EmployeeActivitySearchCriteria entity interface.\n */\n export interface EmployeeActivitySearchCriteria {\n FromDateTimeOffset?: Date;\n ToDateTimeOffset?: Date;\n StoreNumber?: string;\n EmployeeActivityTypeValues?: number[];\n DataLevelValue?: number;\n }\n \n /**\n * SearchSuggestionCriteria entity interface.\n */\n export interface SearchSuggestionCriteria {\n ProductSearchCriteria?: ProductSearchCriteria;\n CustomerSearchCriteria?: CustomerSearchCriteria;\n SuggestionType?: string;\n HitPrefix?: string;\n HitSuffix?: string;\n }\n \n /**\n * CartLineDeliveryPreference entity interface.\n */\n export interface CartLineDeliveryPreference {\n LineId?: string;\n DeliveryPreferenceTypeValues?: number[];\n }\n \n /**\n * CartLinePromotion entity interface.\n */\n export interface CartLinePromotion {\n LineId?: string;\n Promotions?: string[];\n }\n \n /**\n * ProductVariant entity interface.\n */\n export interface ProductVariant {\n ItemId?: string;\n MasterProductId: number;\n InventoryDimensionId?: string;\n AdjustedPrice: number;\n BasePrice: number;\n Price: number;\n Color?: string;\n Style?: string;\n Size?: string;\n Configuration?: string;\n ColorId?: string;\n StyleId?: string;\n SizeId?: string;\n ConfigId?: string;\n VariantId?: string;\n Images?: RichMediaLocations[];\n DistinctProductVariantId?: number;\n ProductNumber?: string;\n PropertiesAsList?: ProductPropertyTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfilePrinter entity interface.\n */\n export interface HardwareProfilePrinter {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceMake?: string;\n DeviceModel?: string;\n DeviceDescription?: string;\n CharacterSet?: number;\n ReceiptProfileId?: string;\n BinaryConversion?: boolean;\n DocInsertRemovalTimeout?: number;\n Logo?: string;\n LogoAlignment?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfileScanner entity interface.\n */\n export interface HardwareProfileScanner {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceDescription?: string;\n DecodeData?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfileCashDrawer entity interface.\n */\n export interface HardwareProfileCashDrawer {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceDescription?: string;\n DeviceMake?: string;\n DeviceModel?: string;\n IsSharedShiftDrawer?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TillLayout entity interface.\n */\n export interface TillLayout {\n CashChangerLayoutXml?: string;\n CustomerLayoutId?: string;\n CustomerLayoutXml?: string;\n Height?: number;\n LayoutId?: string;\n LayoutTypeValue?: number;\n LayoutXml?: string;\n LayoutXmlPortrait?: string;\n Name?: string;\n ReceiptId?: string;\n ReceiptItemsLayoutXml?: string;\n ReceiptPaymentLayoutXml?: string;\n TotalId?: string;\n TotalsLayoutXml?: string;\n Width?: number;\n RecordId?: number;\n StartScreen?: number;\n ButtonGridZones?: ButtonGridZone[];\n ImageZones?: ImageZone[];\n ReportZones?: ReportZone[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesInvoice entity interface.\n */\n export interface SalesInvoice {\n RecordId?: number;\n ChannelId?: number;\n Id?: string;\n SalesId?: string;\n SalesType?: string;\n InvoiceDate?: Date;\n DueDate?: Date;\n CurrencyCode?: string;\n InvoiceSubtotal?: number;\n TotalCharges?: number;\n TotalTaxAmount?: number;\n TotalLineDiscount?: number;\n TotalDiscount?: number;\n Amount?: number;\n AmountPaid?: number;\n AmountBalance?: number;\n Account?: string;\n Name?: string;\n TotalManualDiscountPercentage?: number;\n TotalManualDiscountAmount?: number;\n SalesInvoiceLine?: SalesInvoiceLine[];\n ChargeLines?: ChargeLine[];\n TenderLines?: TenderLine[];\n DeliveryModeChargeAmount?: number;\n OrderAccount?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrderInvoice entity interface.\n */\n export interface OrderInvoice {\n Id?: string;\n CustomerAccountNumber?: string;\n CustomerName?: string;\n InvoiceDate?: Date;\n TotalAmount?: number;\n AmountPaid?: number;\n AmountBalance?: number;\n InvoiceTypeValue?: number;\n CurrencyCode?: string;\n InvoiceDueDate?: Date;\n InvoicePaidStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxOverride entity interface.\n */\n export interface TaxOverride {\n Code?: string;\n SourceTaxGroup?: string;\n DestinationTaxGroup?: string;\n SourceItemTaxGroup?: string;\n DestinationItemTaxGroup?: string;\n ChannelId?: number;\n AdditionalDescription?: string;\n Status?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderType entity interface.\n */\n export interface TenderType {\n Function: number;\n TenderTypeId?: string;\n Name?: string;\n OperationId?: number;\n OperationName?: string;\n ChangeTenderTypeId?: string;\n AboveMinimumChangeAmount?: number;\n AboveMinimumChangeTenderTypeId?: string;\n OpenDrawer?: boolean;\n UseSignatureCaptureDevice?: boolean;\n MinimumSignatureCaptureAmount?: number;\n IsOvertenderAllowed?: boolean;\n IsUndertenderAllowed?: boolean;\n MaximumOvertenderAmount?: number;\n MaximumUndertenderAmount?: number;\n MaximumAmountPerTransaction?: number;\n MaximumAmountPerLine?: number;\n MinimumAmountPerTransaction?: number;\n MinimumAmountPerLine?: number;\n RoundOff?: number;\n CountingRequired?: number;\n TakenToBank?: number;\n TakenToSafe?: number;\n ConnectorId?: string;\n GiftCardItem?: string;\n GiftCardCashoutOutThreshold?: number;\n ChangeLineOnReceipt?: string;\n HideCardInputDetails?: boolean;\n CashDrawerLimitEnabled?: boolean;\n CashDrawerLimit?: number;\n RestrictReturnsWithoutReceipt?: boolean;\n HasTenderDiscount?: boolean;\n DefaultCardTypeId?: string;\n UseForDeclareStartAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonCode entity interface.\n */\n export interface ReasonCode {\n InputRequired: boolean;\n LinkedReasonCodeId?: string;\n MaximumLength: number;\n MaximumValue: number;\n MinimumLength: number;\n MinimumValue: number;\n OncePerTransaction: boolean;\n PrintInputNameOnReceipt: boolean;\n PrintInputToReceipt: boolean;\n PrintPromptToReceipt: boolean;\n Prompt?: string;\n RandomFactor: number;\n RetailUseReasonCode: boolean;\n ReasonCodeId?: string;\n Description?: string;\n InputTypeValue?: number;\n ActivityValue?: number;\n IsMultiLineText?: boolean;\n ReasonSubCodes?: ReasonSubCode[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportDataSet entity interface.\n */\n export interface ReportDataSet {\n ReportId?: string;\n Parameters?: CommerceProperty[];\n Locale?: string;\n Output?: ReportRow[];\n HasTotalRow?: boolean;\n HasDisclaimer?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ZipCodeInfo entity interface.\n */\n export interface ZipCodeInfo {\n ZipPostalCode?: string;\n StreetName?: string;\n TimeZone?: number;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n CityName?: string;\n CityAlias?: string;\n District?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonCodeRequirement entity interface.\n */\n export interface ReasonCodeRequirement {\n ReasonCodeId?: string;\n SourceId?: string;\n TableRefTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * QueryResultSettings entity interface.\n */\n export interface QueryResultSettings {\n Paging?: PagingInfo;\n Sorting?: SortingInfo;\n }\n \n /**\n * SortingInfo entity interface.\n */\n export interface SortingInfo {\n Columns?: SortColumn[];\n }\n \n /**\n * SortColumn entity interface.\n */\n export interface SortColumn {\n ColumnName?: string;\n IsDescending?: boolean;\n }\n \n /**\n * PagingInfo entity interface.\n */\n export interface PagingInfo {\n NextPageToken?: string;\n Top?: number;\n Skip?: number;\n }\n \n /**\n * ProductPropertyTranslation entity interface.\n */\n export interface ProductPropertyTranslation {\n TranslationLanguage?: string;\n TranslatedProperties?: ProductProperty[];\n }\n \n /**\n * NumberSequenceSeedData entity interface.\n */\n export interface NumberSequenceSeedData {\n DataTypeValue?: number;\n DataValue?: number;\n LastTransactionDataValue?: number;\n LastTransactionCreatedDateTime?: Date;\n LastTransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptNumberResetInfo entity interface.\n */\n export interface ReceiptNumberResetInfo {\n ValidFrom?: Date;\n ValidTo?: Date;\n ResetDate?: Date;\n TypeValue?: number;\n Enabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DeviceActivationResult entity interface.\n */\n export interface DeviceActivationResult {\n Device?: Device;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseHistory entity interface.\n */\n export interface PurchaseHistory {\n DatePurchased?: Date;\n ImageUrl?: string;\n ItemId?: string;\n ProductId?: number;\n ProductName?: string;\n ReceiptId?: string;\n SalesId?: string;\n ChannelId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Node entity interface.\n */\n export interface Node {\n ParentScopeId?: string;\n ParentSequence?: number;\n Id?: string;\n Sequence?: number;\n Description?: string;\n ScreenshotUri?: string;\n }\n \n /**\n * Line entity interface.\n */\n export interface Line {\n ChildrenIds?: number[];\n Id?: number;\n Name?: string;\n Description?: string;\n IsLinked?: boolean;\n LineMetadataId?: number;\n Artifacts?: ArtifactSummary[];\n MetadataPropertyValues?: MetadataPropertyValue[];\n }\n \n /**\n * MetadataText entity interface.\n */\n export interface MetadataText {\n Id?: string;\n Text?: string;\n }\n \n /**\n * MetadataHypertextLink entity interface.\n */\n export interface MetadataHypertextLink {\n Id?: string;\n DisplayName?: string;\n Url?: string;\n }\n \n /**\n * Scope entity interface.\n */\n export interface Scope extends Node {\n Name?: string;\n ScopeTypeValue: number;\n Children?: Node[];\n ActiveCount: number;\n IsForm?: boolean;\n }\n \n /**\n * Framework entity interface.\n */\n export interface Framework {\n Lines?: Line[];\n Id?: number;\n Name?: string;\n Access?: string;\n Hierarchy?: Line[];\n Publisher?: string;\n }\n \n /**\n * UserAction entity interface.\n */\n export interface UserAction extends Node {\n SystemGenerated?: boolean;\n GlobalId?: string;\n Annotations?: Annotation[];\n }\n \n /**\n * TaskUserAction entity interface.\n */\n export interface TaskUserAction extends UserAction {\n UserActionTypeValue: number;\n Name?: string;\n Comment?: string;\n TaskId?: string;\n }\n \n /**\n * FormUserAction entity interface.\n */\n export interface FormUserAction extends UserAction {\n FormId?: string;\n ControlLabel?: string;\n }\n \n /**\n * CommandUserAction entity interface.\n */\n export interface CommandUserAction extends FormUserAction {\n ReturnTypeValue: number;\n CommandName?: string;\n ControlName?: string;\n ControlType?: string;\n Arguments?: CommandArgument[];\n LabelId?: string;\n ReturnValue?: string;\n }\n \n /**\n * Annotation entity interface.\n */\n export interface Annotation {\n Description?: string;\n }\n \n /**\n * Recording entity interface.\n */\n export interface Recording {\n Scopes?: Scope[];\n FormContextEntries?: FormContextDictionaryEntry[];\n RootScope?: Scope;\n Name?: string;\n Description?: string;\n }\n \n /**\n * FormContextDictionaryEntry entity interface.\n */\n export interface FormContextDictionaryEntry {\n FormId?: string;\n FormContext?: FormContext;\n }\n \n /**\n * ProductVariantResolutionContext entity interface.\n */\n export interface ProductVariantResolutionContext {\n }\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity interface.\n */\n export interface ProductVariantResolutionOnKitSelectionContext extends ProductVariantResolutionContext {\n SelectedComponents?: ComponentInSlotRelation[];\n SlotId?: number;\n }\n \n /**\n * WarehouseLocation entity interface.\n */\n export interface WarehouseLocation {\n LocationId?: string;\n IsLicensePlateControlled: boolean;\n ProfileId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalTransaction entity interface.\n */\n export interface FiscalTransaction {\n CreatedDateTime?: Date;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n TransDateTime?: Date;\n LineNumber?: number;\n RegisterResponse?: string;\n ReceiptCopy?: boolean;\n RecordGUID?: string;\n RegisterStoreId?: string;\n RegisterTerminalId?: string;\n StaffId?: string;\n RegistrationStatusValue?: number;\n RegistrationProcessId?: string;\n ConnectorGroup?: string;\n ConnectorName?: string;\n ConnectorFunctionalityProfileId?: string;\n RegisterInfo?: string;\n DocumentNumber?: string;\n RegistrationTypeValue?: number;\n ServiceName?: string;\n CountryRegionIsoCode?: string;\n TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n ReasonCodeLines?: ReasonCodeLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLine entity interface.\n */\n export interface FulfillmentLine {\n SalesId?: string;\n SalesPersonStoreId?: string;\n SalesPersonId?: string;\n SalesPersonFirstName?: string;\n SalesPersonLastName?: string;\n SalesLineNumber?: number;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerId?: string;\n CustomerName?: string;\n EmailAddress?: string;\n DeliveryModeCode?: string;\n DocumentStatusValue?: number;\n FulfillmentDeliveryType?: FulfillmentLineDeliveryType;\n DeliveryTypeValue?: number;\n QuantityOrdered?: number;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n StoreInventoryTotalQuantity?: number;\n StoreInventoryReservedQuantity?: number;\n StoreInventoryOrderedQuantity?: number;\n ItemId?: string;\n ProductId?: number;\n ProductVariant?: string;\n ItemName?: string;\n SerialNumber?: string;\n FulfillmentStatus?: FulfillmentLineStatus;\n FulfillmentStatusValue?: number;\n UnitOfMeasureSymbol?: string;\n RequestedShipDate?: Date;\n RequestedDeliveryDate?: Date;\n RequestedReceiptDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n CreatedDate?: Date;\n TotalAmount?: number;\n Balance?: number;\n ShippingAddress?: Address;\n DetailedOrderStatusValue?: number;\n DetailedLineStatusValue?: number;\n ChannelTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineSearchCriteria entity interface.\n */\n export interface FulfillmentLineSearchCriteria {\n CustomerId?: string;\n CustomerName?: string;\n EmailAddress?: string;\n SalesId?: string;\n OrderCreatedStartDate?: Date;\n OrderCreatedEndDate?: Date;\n ReceiptId?: string;\n StoreId?: string;\n ChannelReferenceId?: string;\n RequestedReceiptStartDate?: Date;\n RequestedReceiptEndDate?: Date;\n RequestedDeliveryStartDate?: Date;\n RequestedDeliveryEndDate?: Date;\n FulfillmentStatusValues?: number[];\n DeliveryModeCode?: string;\n WarehouseId?: string;\n LoyaltyCardNumber?: string;\n CustomerPhoneNumber?: string;\n DeliveryTypeValue?: number;\n CustomFilters?: SearchFilter[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Comment entity interface.\n */\n export interface Comment {\n RecordId?: number;\n AuthorStaffId?: string;\n AuthorName?: string;\n Text?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AddressPurpose entity interface.\n */\n export interface AddressPurpose {\n RecordId: number;\n AddressType: number;\n Name?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DeliveryChargeLine entity interface.\n */\n export interface DeliveryChargeLine {\n ChargeCode?: string;\n CurrencyCode?: string;\n CalculatedAmount: number;\n Description?: string;\n IsRefundable: boolean;\n IsShipping: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensionPackageDefinition entity interface.\n */\n export interface ExtensionPackageDefinition {\n Name?: string;\n Publisher?: string;\n IsEnabled: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnPolicy entity interface.\n */\n export interface ReturnPolicy {\n RecordId: number;\n TenderTypePolicies?: TenderTypePolicy[];\n IsManagerOverrideEnabled: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderTypeAmount entity interface.\n */\n export interface TenderTypeAmount {\n TenderTypeId?: string;\n Amount: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FeatureState entity interface.\n */\n export interface FeatureState {\n Name?: string;\n IsEnabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warranty entity interface.\n */\n export interface Warranty extends SimpleProduct {\n DurationUnitValue?: number;\n Duration?: number;\n ApplicablePriceRangeBaseTypeValue?: number;\n ApplicablePriceRangeMin?: number;\n ApplicablePriceRangeMax?: number;\n }\n \n /**\n * RecallInvoicedSalesLineLookup entity interface.\n */\n export interface RecallInvoicedSalesLineLookup {\n InvoicedLineId: number;\n Quantity: number;\n SerialNumber?: string;\n IgnoreSerialNumberMismatch: boolean;\n ReasonCodeLines?: ReasonCodeLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * WarrantyGroup entity interface.\n */\n export interface WarrantyGroup {\n Warranties?: Warranty[];\n RecordId?: number;\n GroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarrantiesMapping entity interface.\n */\n export interface ProductWarrantiesMapping {\n WarrantyGroups?: WarrantyGroup[];\n WarrantableProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineContextualOperationsMap entity interface.\n */\n export interface FulfillmentLineContextualOperationsMap {\n FulfillmentLine?: FulfillmentLine;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UserAlert entity interface.\n */\n export interface UserAlert {\n AlertSourceIdValue?: number;\n LocalizedMessage?: string;\n IsBlocking?: boolean;\n }\n \n /**\n * CartLineUserAlerts entity interface.\n */\n export interface CartLineUserAlerts {\n LineIndex?: number;\n LineNumber?: number;\n UserAlerts?: UserAlert[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineUserAlerts entity interface.\n */\n export interface FulfillmentLineUserAlerts {\n SalesId?: string;\n SalesLineNumber?: number;\n UserAlerts?: UserAlert[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerProspect entity interface.\n */\n export interface BusinessPartnerProspect {\n FirstName?: string;\n LastName?: string;\n CompanyName?: string;\n Address?: Address;\n JobTitle?: string;\n Department?: string;\n CompanySize?: number;\n Comments?: string;\n LastOperationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelSearchCriteria entity interface.\n */\n export interface ChannelSearchCriteria {\n SearchLocationValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperation entity interface.\n */\n export interface BusinessPartnerOperation {\n TypeValue?: number;\n StatusValue?: number;\n Value?: string;\n Description?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperationRequest entity interface.\n */\n export interface BusinessPartnerOperationRequest {\n TypeValue?: number;\n StatusValue?: number;\n CreatedDateTime?: Date;\n Details?: BusinessPartnerOperationRequestDetails;\n UserId?: string;\n UserFirstName?: string;\n UserLastName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptTypesByFormatType entity interface.\n */\n export interface ReceiptTypesByFormatType {\n ReceiptOutputFormatType?: ReceiptOutputFormatType;\n ReceiptTypesValues?: number[];\n }\n \n /**\n * InventoryJournalNameSearchCriteria entity interface.\n */\n export interface InventoryJournalNameSearchCriteria {\n JournalNameIds?: string[];\n DocumentTypeValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AssortedProductIdentity entity interface.\n */\n export interface AssortedProductIdentity {\n ProductId?: number;\n IsRemoteProduct?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductExistenceId entity interface.\n */\n export interface ProductExistenceId {\n ProductId?: number;\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductExistenceCriteria entity interface.\n */\n export interface ProductExistenceCriteria {\n ChannelId?: number;\n CatalogId?: number;\n Ids?: ProductExistenceId[];\n }\n \n /**\n * ChecklistTask entity interface.\n */\n export interface ChecklistTask {\n Version?: string;\n InstructionsVersion?: string;\n AssignedToPersonnelNumbers?: string[];\n AssignedToExternalSubId?: string;\n Id?: string;\n Name?: string;\n Description?: string;\n DueDateTime?: Date;\n DeepLinkTypeValue?: number;\n DeepLink?: string;\n DeepLinkPosOperationName?: string;\n ContactPersonPersonnelNumber?: string;\n Instructions?: string;\n StatusValue?: number;\n CompletionDateTime?: Date;\n ResolvedByPersonnelNumber?: string;\n ChecklistId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * MediaLocation entity interface.\n */\n export interface MediaLocation {\n Uri?: string;\n AltText?: string;\n IsDefault?: boolean;\n IsSelfHosted?: boolean;\n Priority?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmployeeActivity entity interface.\n */\n export interface EmployeeActivity {\n StaffId?: string;\n StaffName?: string;\n Activity?: string;\n ActivityDateTimeOffset?: Date;\n StoreNumber?: string;\n EmployeeActivityTypeValue?: number;\n BreakCategory?: string;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerRefiner entity interface.\n */\n export interface CustomerRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: CustomerRefinerValue[];\n }\n \n /**\n * TokenizedPaymentCard entity interface.\n */\n export interface TokenizedPaymentCard {\n IsSwipe?: boolean;\n TenderType?: string;\n CardTokenInfo?: CardTokenInfo;\n Phone?: string;\n Country?: string;\n House?: string;\n Address1?: string;\n Address2?: string;\n City?: string;\n State?: string;\n Zip?: string;\n NameOnCard?: string;\n CardTypeId?: string;\n ExpirationMonth?: number;\n ExpirationYear?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity interface.\n */\n export interface ProductDimensionAvailabilitySearchCriteria {\n RequestedDimensionTypeValue?: number;\n MatchingDimensionValues?: ProductDimension[];\n DefaultWarehouseOnly?: boolean;\n FilterByChannelFulfillmentGroup?: boolean;\n DeliveryModeTypeFilterValue?: number;\n CatalogId?: number;\n }\n \n /**\n * LineShippingAddress entity interface.\n */\n export interface LineShippingAddress {\n LineId?: string;\n ShippingAddress?: Address;\n }\n \n /**\n * CartDeliveryPreferences entity interface.\n */\n export interface CartDeliveryPreferences {\n HeaderDeliveryPreferenceTypeValues?: number[];\n CartLineDeliveryPreferences?: CartLineDeliveryPreference[];\n }\n \n /**\n * LineDeliverySpecification entity interface.\n */\n export interface LineDeliverySpecification {\n LineId?: string;\n DeliverySpecification?: DeliverySpecification;\n }\n \n /**\n * DeliverySpecification entity interface.\n */\n export interface DeliverySpecification {\n DeliveryModeId?: string;\n DeliveryPreferenceTypeValue?: number;\n DeliveryAddress?: Address;\n RequestedDeliveryDate?: Date;\n PickUpStoreId?: string;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n ElectronicDeliveryEmailAddress?: string;\n ElectronicDeliveryEmailContent?: string;\n ShipFromStoreId?: string;\n }\n \n /**\n * OrderSearchCriteria entity interface.\n */\n export interface OrderSearchCriteria {\n CustomerAccountNumber?: string;\n CustomerName?: string;\n EmailAddress?: string;\n LoyaltyCardNumber?: string;\n CustomerPhoneNumber?: string;\n SalesId?: string;\n ReceiptId?: string;\n OrderStatusValues?: number[];\n StartDateTime?: Date;\n EndDateTime?: Date;\n ChannelReferenceId?: string;\n StoreId?: string;\n OrderType?: number;\n CustomFilters?: SearchFilter[];\n FulfillmentTypeValues?: number[];\n DeliveryMode?: string;\n PickupStartDate?: Date;\n PickupEndDate?: Date;\n PickupTimeslotStartTime?: number;\n PickupTimeslotEndTime?: number;\n }\n \n /**\n * ChecklistSearchCriteria entity interface.\n */\n export interface ChecklistSearchCriteria {\n ChannelId?: number;\n PersonnelNumber?: string;\n ChecklistIds?: string[];\n StatusValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaskSearchCriteria entity interface.\n */\n export interface TaskSearchCriteria {\n ChannelId?: number;\n PersonnelNumber?: string;\n TaskIds?: string[];\n StatusValues?: number[];\n FilterMyTasks: boolean;\n FilterOverdueTasks: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity interface.\n */\n export interface ChecklistTaskTeamsIntegrationConfiguration {\n IsEnabled?: boolean;\n MicrosoftGraphResource?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnCartLine entity interface.\n */\n export interface ReturnCartLine {\n Description?: string;\n ItemId?: string;\n ProductId?: number;\n Quantity?: number;\n ReturnLineNumber?: number;\n ReturnTransactionId?: string;\n SerialNumber?: string;\n IgnoreSerialNumberMismatch?: boolean;\n ReasonCodeLines?: ReasonCodeLine[];\n Price?: number;\n IsPriceKeyedIn?: boolean;\n }\n \n /**\n * TenderDiscountLine entity interface.\n */\n export interface TenderDiscountLine {\n DiscountAmount?: number;\n PaymentAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptRetrievalCriteria entity interface.\n */\n export interface ReceiptRetrievalCriteria {\n IsCopy?: boolean;\n IsRemoteTransaction?: boolean;\n IsPreview?: boolean;\n QueryBySalesId?: boolean;\n ReceiptTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n HardwareProfileId?: string;\n }\n \n /**\n * CartSearchCriteria entity interface.\n */\n export interface CartSearchCriteria {\n CartId?: string;\n ExpectedCartVersion?: number;\n CustomerAccountNumber?: string;\n IncludeAnonymous?: boolean;\n SuspendedOnly?: boolean;\n CartTypeValue?: number;\n LastModifiedDateTimeFrom?: Date;\n LastModifiedDateTimeTo?: Date;\n }\n \n /**\n * RetrievePaymentResultSettings entity interface.\n */\n export interface RetrievePaymentResultSettings {\n ReturnUrl?: string;\n PaymentConnectorId?: string;\n }\n \n /**\n * SearchReceiptCriteria entity interface.\n */\n export interface SearchReceiptCriteria {\n TransactionId?: string;\n ReceiptTypeValue?: number;\n ReceiptTypesByFormatTypeCollection?: ReceiptTypesByFormatType[];\n IsCopy?: boolean;\n GiftReceiptLineNumbers?: number[];\n }\n \n /**\n * ElectronicAddress entity interface.\n */\n export interface ElectronicAddress {\n AddressTypeValue?: number;\n ExtensibleEAddressType?: ExtensibleElectronicAddressType;\n Address?: string;\n }\n \n /**\n * ChannelReferenceLookupCriteria entity interface.\n */\n export interface ChannelReferenceLookupCriteria {\n ChannelReferenceId?: string;\n SearchLocationValue?: number;\n ChannelReferenceAdditionalLookupCriteria?: ChannelReferenceAdditionalLookupCriteria[];\n }\n \n /**\n * FulfillmentLineParameter entity interface.\n */\n export interface FulfillmentLineParameter {\n SalesId?: string;\n SalesLineNumber?: number;\n Quantity?: number;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShipFulfillmentLine entity interface.\n */\n export interface ShipFulfillmentLine extends FulfillmentLineParameter {\n ProductId?: number;\n }\n \n /**\n * RejectFulfillmentLine entity interface.\n */\n export interface RejectFulfillmentLine extends FulfillmentLineParameter {\n RejectedQuantity?: number;\n InfoCodeId?: string;\n SubInfoCodeId?: string;\n }\n \n /**\n * ReadChangedProductsSession entity interface.\n */\n export interface ReadChangedProductsSession {\n Id?: string;\n TotalNumberOfProducts?: number;\n NumberOfProductsRead?: number;\n NumberOfProductsReadInCurrentPage?: number;\n NextSynchronizationToken?: string;\n IsInitialSync?: boolean;\n }\n \n /**\n * DeletedListingsResult entity interface.\n */\n export interface DeletedListingsResult {\n HasMorePublishedListings?: boolean;\n DeletedListings?: ListingIdentity[];\n }\n \n /**\n * ProductRating entity interface.\n */\n export interface ProductRating {\n ProductId?: number;\n AverageRating?: number;\n TotalRatings?: number;\n RatingDistribution?: ProductRatingCount[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDeliveryOptions entity interface.\n */\n export interface ProductDeliveryOptions {\n ProductId?: number;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * ListingPublishStatus entity interface.\n */\n export interface ListingPublishStatus {\n PublishStatusValue?: number;\n ListingModifiedDateTime?: Date;\n ChannelListingId?: string;\n ChannelId?: number;\n CatalogId?: number;\n ProductId?: number;\n LanguageId?: string;\n AppliedActionValue?: number;\n StatusMessage?: string;\n Tag?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitLocationSearchCriteria entity interface.\n */\n export interface OrgUnitLocationSearchCriteria {\n OrgUnitNumber?: string;\n OrgUnitName?: string;\n InventoryLocationIds?: string[];\n DeliveryModeTypeFilterValue?: number;\n }\n \n /**\n * StoreHours entity interface.\n */\n export interface StoreHours {\n RegularStoreHours?: RegularStoreHours;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CartPromotions entity interface.\n */\n export interface CartPromotions {\n HeaderPromotions?: string[];\n CartLinePromotions?: CartLinePromotion[];\n }\n \n /**\n * CartPromotionLine entity interface.\n */\n export interface CartPromotionLine {\n LineId?: string;\n Promotion?: Promotion;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemUnit entity interface.\n */\n export interface ItemUnit {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n Product?: number;\n DistinctProductVariant?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductAvailableQuantity entity interface.\n */\n export interface ProductAvailableQuantity {\n ProductId?: number;\n AvailableQuantity?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity interface.\n */\n export interface OrgUnitAvailabilitySearchCriteria {\n OrgUnitName?: string;\n OrgUnitNumber?: string;\n }\n \n /**\n * InvoiceSearchCriteria entity interface.\n */\n export interface InvoiceSearchCriteria {\n BusinessPartnerId?: string;\n CustomerId?: string;\n InvoiceIds?: string[];\n InvoiceTypeValues?: number[];\n InvoicePaidStatusValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InvoiceDetailsSearchCriteria entity interface.\n */\n export interface InvoiceDetailsSearchCriteria {\n InvoiceId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickAndPackSalesLineParameter entity interface.\n */\n export interface PickAndPackSalesLineParameter {\n SalesLineNumber?: number;\n Quantity?: number;\n }\n \n /**\n * ProductListSearchCriteria entity interface.\n */\n export interface ProductListSearchCriteria {\n CustomerId?: string;\n ProductListId?: string;\n ProductListType?: string;\n }\n \n /**\n * ProjectionDomain entity interface.\n */\n export interface ProjectionDomain {\n ChannelId?: number;\n CatalogId?: number;\n }\n \n /**\n * AffiliationLoyaltyTier entity interface.\n */\n export interface AffiliationLoyaltyTier {\n AffiliationId?: number;\n LoyaltyTierId?: number;\n AffiliationTypeValue?: number;\n ReasonCodeLines?: ReasonCodeLine[];\n CustomerId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookCustomerSearchCriteria entity interface.\n */\n export interface ClientBookCustomerSearchCriteria {\n FilterByCurrentEmployee?: boolean;\n Refinement?: ClientBookRefinerValue[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookCustomer entity interface.\n */\n export interface ClientBookCustomer {\n CustomerId?: string;\n Name?: string;\n Phone?: string;\n Email?: string;\n StaffId?: string;\n ImageUris?: MediaLocation[];\n Attributes?: CustomerAttribute[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookChanges entity interface.\n */\n export interface ClientBookChanges {\n Changes?: ClientBookChange[];\n }\n \n /**\n * ChargeCode entity interface.\n */\n export interface ChargeCode {\n Code?: string;\n ModuleTypeValue?: number;\n Description?: string;\n ItemTaxGroupId?: string;\n IsRefundable?: boolean;\n IsShipping?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentMerchantInformation entity interface.\n */\n export interface PaymentMerchantInformation {\n PaymentConnectorPropertiesXml?: string;\n MerchantPropertiesHashValue?: string;\n ServiceAccountId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StoreSafe entity interface.\n */\n export interface StoreSafe {\n SafeNumber?: string;\n Name?: string;\n StoreNumber?: string;\n SafeBalance?: number;\n LastUpdatedTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity interface.\n */\n export interface InventoryDocumentReceiptSearchCriteria {\n SourceDocumentId?: string;\n SourceDocumentTypeValue?: number;\n WorkDocumentId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity interface.\n */\n export interface InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity interface.\n */\n export interface InventoryDocumentSourceDocumentLineCommitRecord {\n WorkDocumentId?: string;\n LineId?: string;\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n StaffId?: string;\n UpdateNowQuantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CreateHardwareStationTokenResult entity interface.\n */\n export interface CreateHardwareStationTokenResult {\n HardwareStationToken?: string;\n PairingKey?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ValidateHardwareStationTokenResult entity interface.\n */\n export interface ValidateHardwareStationTokenResult {\n PairingKey?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * MediaBlob entity interface.\n */\n export interface MediaBlob {\n MediaType?: string;\n Content?: string;\n IsDefault?: boolean;\n AltText?: string;\n PictureId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OnlineChannel entity interface.\n */\n export interface OnlineChannel {\n OnlineChannelName?: string;\n CurrencyCode?: string;\n EventNotificationProfileId?: string;\n RecordId?: number;\n OrgUnitTypeValue?: number;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n InventoryLocationId?: string;\n ChannelProfile?: ChannelProfile;\n ChannelProperties?: ChannelProperty[];\n ChannelLanguages?: ChannelLanguage[];\n Contacts?: OrgUnitContact[];\n ExtensionProperties?: CommerceProperty[];\n CountryRegions?: CountryRegion[];\n }\n \n /**\n * TerminalDataDownloadRequestInfo entity interface.\n */\n export interface TerminalDataDownloadRequestInfo {\n TerminalId?: string;\n RequiresDataInitialization?: boolean;\n HasBeenInitializedBefore?: boolean;\n }\n \n /**\n * DataDownloadParameters entity interface.\n */\n export interface DataDownloadParameters {\n DownloadInterval?: number;\n DownloadSessions?: DownloadSession[];\n FeatureControlList?: RetailSharedConfigurationParameter[];\n DataStore?: CDXDataStore;\n }\n \n /**\n * TerminalDataUploadRequestInfo entity interface.\n */\n export interface TerminalDataUploadRequestInfo {\n TerminalId?: string;\n }\n \n /**\n * DataUploadParameters entity interface.\n */\n export interface DataUploadParameters {\n UploadInterval?: number;\n UploadJobPackageRequests?: UploadJobPackageRequest[];\n FeatureControlList?: RetailSharedConfigurationParameter[];\n DataStore?: CDXDataStore;\n }\n \n /**\n * DownloadSession entity interface.\n */\n export interface DownloadSession {\n Id?: number;\n JobId?: string;\n JobDescription?: string;\n FileSize?: number;\n RowsAffected?: number;\n Checksum?: string;\n DateDownloaded?: string;\n DateRequested?: string;\n DataStoreName?: string;\n StatusValue?: number;\n Message?: string;\n DownloadLink?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OfflineTerminalState entity interface.\n */\n export interface OfflineTerminalState {\n TerminalId?: string;\n State?: string;\n }\n \n /**\n * LoyaltyRewardPointActivity entity interface.\n */\n export interface LoyaltyRewardPointActivity {\n ActivityDate?: Date;\n LoyaltyRewardPointTimelineEntryType?: string;\n ExtensibleLoyaltyRewardPointActivityEntryTypeValue?: number;\n LoyaltyPoints?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CurrencyRequest entity interface.\n */\n export interface CurrencyRequest {\n AmountToConvert?: number;\n CurrencyCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareStationProfile entity interface.\n */\n export interface HardwareStationProfile {\n RecordId?: number;\n HardwareStationId?: string;\n HardwareStationTypeValue?: number;\n HardwareProfileId?: string;\n HardwareStationName?: string;\n HardwareStationDescription?: string;\n HardwareStationUrl?: string;\n HardwareStationHostName?: string;\n HardwareStationEftTerminalId?: string;\n HardwareConfigurations?: HardwareConfigurations;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NameValuePair entity interface.\n */\n export interface NameValuePair {\n Name?: string;\n Value?: string;\n }\n \n /**\n * LinkToExistingCustomerResult entity interface.\n */\n export interface LinkToExistingCustomerResult {\n EmailAddress?: string;\n ExternalIdentityProvider?: string;\n ExternalIdentityLinkRecordId?: number;\n }\n \n /**\n * OfflineSyncStatsLine entity interface.\n */\n export interface OfflineSyncStatsLine {\n IsUploadJob?: boolean;\n JobDescription?: string;\n LastSyncDateTime?: Date;\n Status?: string;\n FileSize?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StorageAccessToken entity interface.\n */\n export interface StorageAccessToken {\n Url?: string;\n SasKey?: string;\n }\n \n /**\n * TaskGuidesSearchResult entity interface.\n */\n export interface TaskGuidesSearchResult {\n Lines?: Line[];\n FrameworkPublisherName?: string;\n FrameworkName?: string;\n }\n \n /**\n * AuditEvent entity interface.\n */\n export interface AuditEvent {\n EventId?: number;\n EventIdString?: string;\n Channel?: number;\n Store?: string;\n Terminal?: string;\n UploadType?: string;\n EventType?: string;\n EventDateTime?: Date;\n DurationInMilliseconds?: number;\n Source?: string;\n EventMessage?: string;\n LogLevel?: string;\n Staff?: string;\n ShiftId?: number;\n ClosedShiftId?: number;\n ReferenceId?: number;\n RefChannel?: number;\n RefStore?: string;\n RefTerminal?: string;\n RefTransactionId?: string;\n AuditEventTypeValue?: number;\n FiscalTransactions?: AuditEventFiscalTransaction[];\n FiscalRegistrationLines?: AuditEventFiscalRegistrationLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemAvailability entity interface.\n */\n export interface ItemAvailability {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n InventoryLocationId?: string;\n ProductId?: number;\n AvailableQuantity?: number;\n OrderedSum?: number;\n PhysicalReserved?: number;\n UnitOfMeasure?: string;\n InventoryUnitOfMeasure?: string;\n InventoryUnitOfMeasureDescription?: string;\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryAvailableToPromise entity interface.\n */\n export interface InventoryAvailableToPromise extends ItemAvailability {\n Date?: string;\n }\n \n /**\n * NotificationItem entity interface.\n */\n export interface NotificationItem {\n Action?: number;\n ActionName?: string;\n NotificationDetails?: NotificationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity interface.\n */\n export interface FiscalIntegrationDocumentRetrievalCriteria {\n TransactionId?: string;\n IsRemoteTransaction?: boolean;\n QueryBySalesId?: boolean;\n FiscalRegistrationEventTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n DocumentContext?: FiscalIntegrationDocumentContext;\n }\n \n /**\n * FiscalIntegrationDocument entity interface.\n */\n export interface FiscalIntegrationDocument {\n Document?: string;\n DocumentGenerationResultTypeValue?: number;\n FiscalConnectorTechnicalProfile?: FiscalIntegrationTechnicalProfile;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n SequentialSignatureDataContext?: FiscalIntegrationSignatureDataContext;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationResult entity interface.\n */\n export interface FiscalIntegrationRegistrationResult {\n TransactionID?: string;\n AuditEventId?: string;\n Response?: string;\n SubmittedDocument?: string;\n RegisterInfo?: string;\n RegistrationStatusValue?: number;\n FiscalRegistrationEventTypeValue?: number;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n ReasonCodeLines?: ReasonCodeLine[];\n SequentialSignatureData?: FiscalIntegrationSequentialSignatureData;\n }\n \n /**\n * FiscalIntegrationRegistrationProcess entity interface.\n */\n export interface FiscalIntegrationRegistrationProcess {\n RecordId?: number;\n RegistrationProcessId?: string;\n Description?: string;\n ModeValue?: number;\n RegistrationProcessLines?: FiscalIntegrationRegistrationProcessLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationSupportedEvents entity interface.\n */\n export interface FiscalIntegrationSupportedEvents {\n FunctionalityProfileGroupId?: string;\n SupportedFiscalEventTypes?: number[];\n SupportedNonFiscalEventTypes?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationTechnicalProfile entity interface.\n */\n export interface FiscalIntegrationTechnicalProfile {\n ProfileId?: string;\n Description?: string;\n ConnectorName?: string;\n ConnectorTypeValue?: number;\n ConnectorLocationValue?: number;\n TechnicalProfile?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummary entity interface.\n */\n export interface FiscalIntegrationFiscalRegistrationProcessSummary {\n RegistrationProcessId?: string;\n FiscalRegistrationProcessSummaryLines?: FiscalIntegrationFiscalRegistrationProcessSummaryLine[];\n ErrorCode?: number;\n }\n \n /**\n * FiscalIntegrationTechnicalProfileSearchCriteria entity interface.\n */\n export interface FiscalIntegrationTechnicalProfileSearchCriteria {\n ExcludeOptionalProcessLines?: boolean;\n FunctionalityProfileGroupIds?: string[];\n }\n \n /**\n * FiscalIntegrationServiceInfo entity interface.\n */\n export interface FiscalIntegrationServiceInfo {\n ServiceName?: string;\n ServiceProperties?: string;\n }\n \n /**\n * FiscalIntegrationServiceStatus entity interface.\n */\n export interface FiscalIntegrationServiceStatus {\n IsReady?: boolean;\n }\n \n /**\n * FiscalIntegrationServiceCommunicationResult entity interface.\n */\n export interface FiscalIntegrationServiceCommunicationResult {\n Response?: string;\n CommunicationResultTypeValue?: number;\n FailureDetails?: FiscalIntegrationServiceFailureDetails;\n FiscalIntegrationServiceInfo?: string;\n UserNotificationMessage?: string;\n }\n \n /**\n * FiscalIntegrationSequentialSignatureData entity interface.\n */\n export interface FiscalIntegrationSequentialSignatureData {\n LastRegisterResponse?: string;\n SequenceKey?: string;\n IsOffline?: boolean;\n SequentialNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountsSearchCriteria entity interface.\n */\n export interface DiscountsSearchCriteria {\n ChannelId?: number;\n Keyword?: string;\n IsDiscountCodeRequired?: boolean;\n StartDate?: Date;\n EndDate?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Promotion entity interface.\n */\n export interface Promotion {\n OfferId?: string;\n OfferName?: string;\n PeriodicDiscountTypeValue?: number;\n IsDiscountCodeRequired?: boolean;\n ValidationPeriodId?: string;\n AdditionalRestrictions?: string;\n Description?: string;\n ValidFromDate?: Date;\n ValidToDate?: Date;\n ValidationPeriod?: ValidationPeriod;\n CouponCodes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathLookup entity interface.\n */\n export interface CategoryPathLookup {\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathResult entity interface.\n */\n export interface CategoryPathResult {\n ProductId?: number;\n CategoryPath?: CategoryPath[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickupTimeslotAvailabilitySearchCriteria entity interface.\n */\n export interface PickupTimeslotAvailabilitySearchCriteria {\n DeliveryModeCode?: string;\n StoreId?: string;\n StartDate?: Date;\n EndDate?: Date;\n SearchOptionValue?: number;\n }\n \n /**\n * PickupTimeslotAvailability entity interface.\n */\n export interface PickupTimeslotAvailability {\n AvailableCapacity?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CheckInForOrderPickupConfirmation entity interface.\n */\n export interface CheckInForOrderPickupConfirmation {\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensionProfile entity interface.\n */\n export interface ExtensionProfile {\n ExtensionServiceUrl?: string;\n AttachedServices?: AttachedService[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelInventoryConfiguration entity interface.\n */\n export interface ChannelInventoryConfiguration {\n RecordId?: number;\n ChannelId?: string;\n AllowTransferOrderOverDelivery?: boolean;\n AllowTransferOrderUnderDelivery?: boolean;\n UserLocationProfileId?: string;\n InventoryProductAttributeRecordId?: number;\n InventoryOutOfStockAttributeValueText?: string;\n ProductAvailabilitySortableAttributeRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelPurchaseConfiguration entity interface.\n */\n export interface ChannelPurchaseConfiguration {\n RecordId?: number;\n ChannelId?: string;\n AllowOverDelivery?: boolean;\n AllowSubDelivery?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryJournalName entity interface.\n */\n export interface InventoryJournalName {\n RecordId?: number;\n JournalNameId?: string;\n InventoryJournalTypeValue?: number;\n Description?: string;\n DefaultAdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftRetrievalCriteria entity interface.\n */\n export interface ShiftRetrievalCriteria {\n ShiftStatusValue?: number;\n FilterByUserRole?: boolean;\n IncludeAllShiftsForStore?: boolean;\n }\n \n /**\n * UserDefinedSecretCertificateResult entity interface.\n */\n export interface UserDefinedSecretCertificateResult {\n CertificateData?: string;\n }\n \n /**\n * TerminalInfo entity interface.\n */\n export interface TerminalInfo {\n TerminalId?: string;\n DeviceNumber?: string;\n Name?: string;\n DeviceType?: number;\n ActivationStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTimelineItemTypeMap entity interface.\n */\n export interface CustomerTimelineItemTypeMap {\n EntityType?: string;\n Types?: CustomerTimelineItemType[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTimelineRefiner entity interface.\n */\n export interface CustomerTimelineRefiner {\n RefinedResultsCount?: number;\n EntityType?: string;\n TypeId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTitle entity interface.\n */\n export interface CustomerTitle {\n Text?: string;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouse entity interface.\n */\n export interface ProductWarehouse {\n ProductId?: number;\n InventLocationId?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouseInventoryInformation entity interface.\n */\n export interface ProductWarehouseInventoryInformation {\n ProductWarehouseInventoryAvailabilities?: ProductWarehouseInventoryAvailability[];\n AggregatedProductInventoryAvailabilities?: ProductInventoryAvailability[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryAvailabilitySearchCriteria entity interface.\n */\n export interface InventoryAvailabilitySearchCriteria {\n ProductIds?: number[];\n DefaultWarehouseOnly?: boolean;\n SearchArea?: SearchArea;\n FilterByChannelFulfillmentGroup?: boolean;\n DeliveryModeTypeFilterValue?: number;\n QuantityUnitTypeValue?: number;\n DataLevelValue?: number;\n }\n \n /**\n * ExtensibleEnumerationContainer entity interface.\n */\n export interface ExtensibleEnumerationContainer {\n TypeName?: string;\n ExtensibleEnumerations?: ExtensibleEnumeration[];\n }\n \n /**\n * PackingSlipData entity interface.\n */\n export interface PackingSlipData {\n PackingSlipId?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmailReceiptSettings entity interface.\n */\n export interface EmailReceiptSettings {\n ReceiptTypeValue?: number;\n EmailBehaviorValue?: number;\n ReceiptTitle?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAddress entity interface.\n */\n export interface OrgUnitAddress extends Address {\n }\n \n /**\n * WarehouseDetails entity interface.\n */\n export interface WarehouseDetails extends Address {\n InventoryLocationId?: string;\n }\n \n /**\n * AttributeSwatch entity interface.\n */\n export interface AttributeSwatch {\n SwatchValue?: string;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n IsDefault?: boolean;\n ProductImageUrls?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeBooleanValue entity interface.\n */\n export interface AttributeBooleanValue extends AttributeValueBase {\n Value?: boolean;\n }\n \n /**\n * AttributeCurrencyValue entity interface.\n */\n export interface AttributeCurrencyValue extends AttributeValueBase {\n CurrencyValue?: number;\n CurrencyCode?: string;\n }\n \n /**\n * AttributeDateTimeOffsetValue entity interface.\n */\n export interface AttributeDateTimeOffsetValue extends AttributeValueBase {\n Value?: Date;\n }\n \n /**\n * AttributeFloatValue entity interface.\n */\n export interface AttributeFloatValue extends AttributeValueBase {\n Value?: number;\n UnitSymbol?: string;\n }\n \n /**\n * AttributeIntValue entity interface.\n */\n export interface AttributeIntValue extends AttributeValueBase {\n Value?: number;\n UnitSymbol?: string;\n }\n \n /**\n * AttributeMediaLocationValue entity interface.\n */\n export interface AttributeMediaLocationValue extends AttributeValueBase {\n Value?: MediaLocation[];\n }\n \n /**\n * AttributeTextValue entity interface.\n */\n export interface AttributeTextValue extends AttributeValueBase {\n TextValue?: string;\n TextValueTranslations?: TextValueTranslation[];\n }\n \n /**\n * ButtonGridButton entity interface.\n */\n export interface ButtonGridButton {\n Action?: number;\n ActionProperty?: string;\n BackColorAsARGB?: ARGBColor;\n BorderColorAsARGB?: ARGBColor;\n Column?: number;\n ColumnSpan?: number;\n DisplayText?: string;\n FontColorAsARGB?: ARGBColor;\n ButtonId?: number;\n Row?: number;\n RowSpan?: number;\n UseCustomLookAndFeel?: boolean;\n PictureId?: number;\n PictureAsBase64?: string;\n FontStyle?: number;\n FontSize?: number;\n EnableCustomFontForPOS?: boolean;\n HideButtonText?: boolean;\n Tooltip?: string;\n EnableLiveContent?: boolean;\n NotificationContentAlignment?: number;\n ImageAlignment?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ARGBColor entity interface.\n */\n export interface ARGBColor {\n A?: number;\n R?: number;\n G?: number;\n B?: number;\n }\n \n /**\n * PriceLine entity interface.\n */\n export interface PriceLine {\n RecordId?: number;\n Value?: number;\n PriceMethod?: string;\n OriginId?: string;\n PriceChangedByExtensions?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TradeAgreementPriceLine entity interface.\n */\n export interface TradeAgreementPriceLine extends PriceLine {\n }\n \n /**\n * AttributePricingTradeAgreementPriceLine entity interface.\n */\n export interface AttributePricingTradeAgreementPriceLine extends TradeAgreementPriceLine {\n CanApplyPriceAdjustments?: boolean;\n }\n \n /**\n * SalesAgreementPriceLine entity interface.\n */\n export interface SalesAgreementPriceLine extends PriceLine {\n SalesAgreementName?: string;\n UnitPrice?: number;\n DiscountAmount?: number;\n DiscountPercent?: number;\n SalesAgreementLineTypeValue?: number;\n PriceUnit?: number;\n EffectiveDate?: Date;\n ExpirationDate?: Date;\n CommittedQuantity?: number;\n RemainingQuantity?: number;\n CommittedAmount?: number;\n RemainingAmount?: number;\n }\n \n /**\n * PriceAdjustmentPriceLine entity interface.\n */\n export interface PriceAdjustmentPriceLine extends PriceLine {\n IsCompoundable?: boolean;\n Concurrency?: string;\n }\n \n /**\n * AttributePricingAdjustmentPriceLine entity interface.\n */\n export interface AttributePricingAdjustmentPriceLine extends PriceAdjustmentPriceLine {\n CanCompoundOnAdjustedPrice?: boolean;\n PricingPriorityNumber?: number;\n AdjustedAmount?: number;\n }\n \n /**\n * BasePriceLine entity interface.\n */\n export interface BasePriceLine extends PriceLine {\n }\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity interface.\n */\n export interface ExtensiblePeriodicDiscountOfferType extends ExtensibleEnumeration {\n }\n \n /**\n * ChargeLineOverride entity interface.\n */\n export interface ChargeLineOverride {\n OriginalAmount?: number;\n OverrideAmount?: number;\n OverrideReasonDescription?: string;\n OverrideDateTime?: Date;\n UserId?: string;\n }\n \n /**\n * TaxLineGTE entity interface.\n */\n export interface TaxLineGTE extends TaxLine {\n TaxComponent?: string;\n }\n \n /**\n * TaxMeasure entity interface.\n */\n export interface TaxMeasure {\n Path?: string;\n Value?: number;\n DataAreaId?: string;\n SaleLineNumber?: number;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DetailedLineStatus entity interface.\n */\n export interface DetailedLineStatus extends ExtensibleEnumeration {\n }\n \n /**\n * CardTokenInfo entity interface.\n */\n export interface CardTokenInfo {\n CardToken?: string;\n UniqueCardId?: string;\n ServiceAccountId?: string;\n MaskedCardNumber?: string;\n }\n \n /**\n * DataverseTenderLine entity interface.\n */\n export interface DataverseTenderLine extends TenderLine {\n }\n \n /**\n * PaymentError entity interface.\n */\n export interface PaymentError {\n Code?: string;\n Message?: string;\n IsLocalized?: boolean;\n }\n \n /**\n * ProductAttributeMetadataFlags entity interface.\n */\n export interface ProductAttributeMetadataFlags {\n IsSearchable?: boolean;\n IsRetrievable?: boolean;\n IsQueryable?: boolean;\n IsRefinable?: boolean;\n IsSortable?: boolean;\n IsMultiValue?: boolean;\n IsTokenNormalization?: boolean;\n IsCompleteMatch?: boolean;\n }\n \n /**\n * UnitOfMeasureConversion entity interface.\n */\n export interface UnitOfMeasureConversion {\n ItemId?: string;\n FromUnitOfMeasureId?: string;\n ToUnitOfMeasureId?: string;\n FromUnitOfMeasureSymbol?: string;\n ToUnitOfMeasureSymbol?: string;\n IsBackward?: boolean;\n RecordId?: number;\n ProductRecordId?: number;\n Factor?: number;\n Numerator?: number;\n Denominator?: number;\n InnerOffset?: number;\n OuterOffset?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnLabelContent entity interface.\n */\n export interface ReturnLabelContent {\n ReturnLocationText?: string;\n ReturnWarehouseText?: string;\n ReturnReasonText?: string;\n ReturnPalleteText?: string;\n ItemId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyRewardPointLine entity interface.\n */\n export interface LoyaltyRewardPointLine {\n TransactionId?: string;\n SaleLineNumber?: number;\n LoyaltyGroupRecordId?: number;\n LoyaltyCardNumber?: string;\n CustomerAccount?: string;\n EntryDate?: Date;\n EntryTime?: number;\n EntryTypeValue?: number;\n ExpirationDate?: Date;\n LineNumber?: number;\n LoyaltyTierRecordId?: number;\n RewardPointRecordId?: number;\n RewardPointAmountQuantity?: number;\n RewardPointId?: string;\n RewardPointIsRedeemable?: boolean;\n RewardPointType?: string;\n RewardPointCurrency?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TrackingInfo entity interface.\n */\n export interface TrackingInfo {\n TrackingNumber?: string;\n ServiceType?: string;\n PackageWeight?: Weight;\n ShippedOnDate?: Date;\n Status?: string;\n DeliveredOnDate?: Date;\n EstimatedDeliveryDate?: Date;\n TrackingUrl?: string;\n PackagingType?: string;\n DestinationAddress?: Address;\n OriginAddress?: Address;\n ShipmentProgress?: ShipmentProgress[];\n ShippingCharge?: number;\n }\n \n /**\n * Weight entity interface.\n */\n export interface Weight {\n Value?: number;\n Unit?: string;\n }\n \n /**\n * ShipmentProgress entity interface.\n */\n export interface ShipmentProgress {\n Location?: Address;\n DateTime?: Date;\n Activity?: string;\n }\n \n /**\n * ShiftKey entity interface.\n */\n export interface ShiftKey {\n ShiftTerminalId?: string;\n ShiftId?: number;\n Store?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LocalizedText entity interface.\n */\n export interface LocalizedText {\n RecordId?: number;\n LanguageId?: string;\n TextId?: string;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AddressFormattingInfo entity interface.\n */\n export interface AddressFormattingInfo {\n AddressComponentNameValue?: number;\n LineNumber?: number;\n IsDataEntryOnly?: boolean;\n NewLine?: boolean;\n Expand?: boolean;\n Inactive?: boolean;\n Special?: boolean;\n NumberOfSpaces?: number;\n Separator?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareConfigurations entity interface.\n */\n export interface HardwareConfigurations {\n CashDrawerConfigurations?: HardwareConfiguration[];\n PrinterConfigurations?: HardwareConfiguration[];\n PinPadConfiguration?: HardwareConfiguration;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareConfiguration entity interface.\n */\n export interface HardwareConfiguration {\n RecordId?: number;\n HardwareStationRecordId?: number;\n TerminalId?: string;\n DeviceName?: string;\n IPAddress?: string;\n Port?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Printer entity interface.\n */\n export interface Printer {\n Name?: string;\n PrinterType?: number;\n Terminal?: number;\n PrintBehaviorValue?: number;\n ReceiptLayoutId?: string;\n HardwareProfileId?: string;\n ReceiptType?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerRefinerValue entity interface.\n */\n export interface CustomerRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n }\n \n /**\n * TransferOrderJournalLine entity interface.\n */\n export interface TransferOrderJournalLine {\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n TotalQuantityShipped?: number;\n QuantityShipped?: number;\n TransferQuantity?: number;\n UnitId?: string;\n ConfigId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n DeliveryMethod?: string;\n Barcode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity interface.\n */\n export interface InventoryDocumentSourceSerialNumberLine {\n SourceDocumentTypeValue?: number;\n SourceDocumentId?: string;\n DocumentLineRecordId?: number;\n InventTransRecordId?: number;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitTransactionLine entity interface.\n */\n export interface KitTransactionLine {\n ItemId?: string;\n Quantity?: number;\n InventoryDimensionId?: string;\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StoreAddressBook entity interface.\n */\n export interface StoreAddressBook {\n AddressBookId?: number;\n StoreId?: number;\n AddressBookTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderDetail entity interface.\n */\n export interface TenderDetail {\n LineNumber?: number;\n Amount?: number;\n AmountInForeignCurrency?: number;\n ForeignCurrencyExchangeRate?: number;\n ForeignCurrency?: string;\n BankBagNumber?: string;\n TenderTypeId?: string;\n TenderRecount?: number;\n DenominationDetails?: DenominationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DenominationDetail entity interface.\n */\n export interface DenominationDetail {\n Type?: number;\n Currency?: string;\n DenominationAmount?: number;\n QuantityDeclared?: number;\n AmountDeclared?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ButtonGridZone entity interface.\n */\n export interface ButtonGridZone {\n ButtonGridId?: string;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ImageZone entity interface.\n */\n export interface ImageZone {\n PictureId?: number;\n PictureAsBase64?: string;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportZone entity interface.\n */\n export interface ReportZone {\n ReportRecordId?: number;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesInvoiceLine entity interface.\n */\n export interface SalesInvoiceLine {\n RecordId?: number;\n ItemId?: string;\n ProductId?: number;\n ProductName?: string;\n InventDimensionId?: string;\n InventTransactionId?: string;\n Quantity?: number;\n Price?: number;\n DiscountPercent?: number;\n DiscountAmount?: number;\n BatchId?: string;\n NetAmount?: number;\n Site?: string;\n Warehouse?: string;\n SerialId?: string;\n ColorId?: string;\n SizeId?: string;\n StyleId?: string;\n ConfigId?: string;\n ColorName?: string;\n SizeName?: string;\n StyleName?: string;\n ConfigName?: string;\n SalesTaxGroup?: string;\n ItemTaxGroup?: string;\n SalesMarkup?: number;\n TotalDiscount?: number;\n TotalPercentageDiscount?: number;\n LineDiscount?: number;\n PeriodicDiscount?: number;\n PeriodicPercentageDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportRow entity interface.\n */\n export interface ReportRow {\n RowData?: CommerceProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FormAnnotation entity interface.\n */\n export interface FormAnnotation extends Annotation {\n MenuItemLabel?: string;\n MenuItemName?: string;\n MenuItemType?: string;\n }\n \n /**\n * TaskGuideAnnotation entity interface.\n */\n export interface TaskGuideAnnotation extends Annotation {\n RecordingValueType?: string;\n Title?: string;\n ExampleText?: string;\n Hidden?: boolean;\n GlobalId?: string;\n }\n \n /**\n * CommandArgument entity interface.\n */\n export interface CommandArgument {\n Value?: string;\n IsReference?: boolean;\n }\n \n /**\n * PropertyUserAction entity interface.\n */\n export interface PropertyUserAction extends FormUserAction {\n Value?: string;\n ValueLabel?: string;\n PropertyName?: string;\n ControlName?: string;\n ControlType?: string;\n UserActionType?: string;\n IsReference?: boolean;\n LabelId?: string;\n }\n \n /**\n * InfoUserAction entity interface.\n */\n export interface InfoUserAction extends UserAction {\n FormId?: string;\n ControlLabel?: string;\n ControlLabelId?: string;\n ControlName?: string;\n Text?: string;\n Notes?: string;\n }\n \n /**\n * MenuItemUserAction entity interface.\n */\n export interface MenuItemUserAction extends UserAction {\n MenuItemName?: string;\n MenuItemType?: string;\n NavigationPath?: string[];\n }\n \n /**\n * ValidationUserAction entity interface.\n */\n export interface ValidationUserAction extends UserAction {\n Name?: string;\n Comment?: string;\n }\n \n /**\n * ArtifactSummary entity interface.\n */\n export interface ArtifactSummary {\n ArtifactType?: string;\n LanguageTags?: string[];\n }\n \n /**\n * MetadataPropertyValue entity interface.\n */\n export interface MetadataPropertyValue {\n PropertyId?: string;\n SingleValue?: string;\n MultiValue?: MetadataText[];\n Tags?: string[];\n ComboBox?: string;\n MultiSelect?: string[];\n Links?: MetadataHypertextLink[];\n }\n \n /**\n * FormContext entity interface.\n */\n export interface FormContext {\n FormID?: string;\n FormName?: string;\n RecordingName?: string;\n HasMetadata?: boolean;\n Sequence?: number;\n Annotations?: Annotation[];\n }\n \n /**\n * ExtensibleFiscalRegistrationType entity interface.\n */\n export interface ExtensibleFiscalRegistrationType extends ExtensibleEnumeration {\n }\n \n /**\n * FiscalTransactionTenderLineAdjustment entity interface.\n */\n export interface FiscalTransactionTenderLineAdjustment {\n TenderLineNumber?: number;\n AdjustmentAmount?: number;\n RecordGuid?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalTransactionSalesLineAdjustment entity interface.\n */\n export interface FiscalTransactionSalesLineAdjustment {\n SalesLineNumber?: number;\n Exclude?: boolean;\n RecordGuid?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DetailedOrderStatus entity interface.\n */\n export interface DetailedOrderStatus extends ExtensibleEnumeration {\n }\n \n /**\n * LineValidationResult entity interface.\n */\n export interface LineValidationResult {\n LineId?: string;\n ValidationFailures?: DataValidationFailure[];\n }\n \n /**\n * SalesAffiliationLoyaltyTier entity interface.\n */\n export interface SalesAffiliationLoyaltyTier extends AffiliationLoyaltyTier {\n TransactionId?: string;\n ChannelId?: number;\n TerminalId?: string;\n ReceiptId?: string;\n StaffId?: string;\n }\n \n /**\n * TaxViewLine entity interface.\n */\n export interface TaxViewLine {\n TaxId?: string;\n TaxAmount?: number;\n }\n \n /**\n * Coupon entity interface.\n */\n export interface Coupon {\n CodeId?: string;\n Code?: string;\n DiscountOfferId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAccountDepositLine entity interface.\n */\n export interface CustomerAccountDepositLine {\n Amount?: number;\n CustomerAccount?: string;\n Comment?: string;\n StoreNumber?: string;\n Terminal?: string;\n Shift?: string;\n TransactionStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAttribute entity interface.\n */\n export interface CustomerAttribute {\n AttributeValue?: CommercePropertyValue;\n Units?: string;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ContactInfo entity interface.\n */\n export interface ContactInfo {\n AddressTypeValue?: number;\n RecordId?: number;\n PartyLocationRecordId?: number;\n PartyRecordId?: number;\n PartyNumber?: string;\n Description?: string;\n Value?: string;\n ValueExtension?: string;\n LogisticsLocationId?: string;\n LogisticsLocationRecordId?: number;\n ParentLocation?: number;\n IsPrimary?: boolean;\n IsMobilePhone?: boolean;\n IsPrivate?: boolean;\n IsOptedInMarketing?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryQuantities entity interface.\n */\n export interface InventoryQuantities {\n UnitOfMeasure?: string;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityOrdered?: number;\n QuantityCanceled?: number;\n QuantityReturned?: number;\n }\n \n /**\n * DeliveryInformation entity interface.\n */\n export interface DeliveryInformation {\n DeliveryMode?: string;\n DeliveryAddress?: Address;\n DeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n }\n \n /**\n * ShiftTaxLine entity interface.\n */\n export interface ShiftTaxLine {\n TaxCode?: string;\n TaxAmount?: number;\n TaxRate?: number;\n NetAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxRegistration entity interface.\n */\n export interface TaxRegistration {\n RecordId?: number;\n Name?: string;\n CountryRegionId?: string;\n IsRegistrationNumberUnique?: boolean;\n IsPrimaryAddressRestricted?: boolean;\n TypeApplicabilityRuleRecordId?: number;\n TypeValue?: number;\n Description?: string;\n DirPartyLocationRecordId?: number;\n RegistrationNumber?: string;\n ValidFrom?: Date;\n ValidTo?: Date;\n Issuer?: string;\n IssueDate?: Date;\n Section?: string;\n DirectoryPartyRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelTaxRegistration entity interface.\n */\n export interface ChannelTaxRegistration extends TaxRegistration {\n ChannelId?: number;\n }\n \n /**\n * LinkedProduct entity interface.\n */\n export interface LinkedProduct {\n ProductRecordId?: number;\n LinkedProductRecordId?: number;\n Quantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DisplayOrderInCategory entity interface.\n */\n export interface DisplayOrderInCategory {\n CategoryRecordId?: number;\n DisplayOrder?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RelatedProduct entity interface.\n */\n export interface RelatedProduct {\n ProductRecordId?: number;\n RelatedProductRecordId?: number;\n CatalogId?: number;\n RelationName?: string;\n IsExcludedRelation?: boolean;\n IsDirectRelation?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitComponent entity interface.\n */\n export interface KitComponent {\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity interface.\n */\n export interface ChannelReferenceAdditionalLookupCriteria {\n OrderLookupAdditionalCriteriaTypeValue?: number;\n OrderLookupAdditionalCriteriaTypeParameterValue?: string;\n }\n \n /**\n * UserAlertFulfillmentLineParameter entity interface.\n */\n export interface UserAlertFulfillmentLineParameter extends FulfillmentLineParameter {\n ItemId?: string;\n ProductId?: number;\n UnitOfMeasure?: string;\n SerialNumberInLatestFulfillmentTransaction?: string;\n LatestFulfillmentTransactionOperationTypeValue?: number;\n }\n \n /**\n * ListingIdentity entity interface.\n */\n export interface ListingIdentity {\n ProductId?: number;\n LanguageId?: string;\n CatalogId?: number;\n Tag?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRatingCount entity interface.\n */\n export interface ProductRatingCount {\n Rating?: number;\n Count?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RegularStoreHours entity interface.\n */\n export interface RegularStoreHours {\n MondayOpenTime?: number;\n MondayCloseTime?: number;\n IsClosedOnMonday?: boolean;\n TuesdayOpenTime?: number;\n TuesdayCloseTime?: number;\n IsClosedOnTuesday?: boolean;\n WednesdayOpenTime?: number;\n WednesdayCloseTime?: number;\n IsClosedOnWednesday?: boolean;\n ThursdayOpenTime?: number;\n ThursdayCloseTime?: number;\n IsClosedOnThursday?: boolean;\n FridayOpenTime?: number;\n FridayCloseTime?: number;\n IsClosedOnFriday?: boolean;\n SaturdayOpenTime?: number;\n SaturdayCloseTime?: number;\n IsClosedOnSaturday?: boolean;\n SundayOpenTime?: number;\n SundayCloseTime?: number;\n IsClosedOnSunday?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ValidationPeriod entity interface.\n */\n export interface ValidationPeriod {\n RecordId?: number;\n PeriodId?: string;\n Description?: string;\n ValidFrom?: Date;\n ValidTo?: Date;\n StartingTime?: number;\n EndingTime?: number;\n IsTimeBounded?: number;\n MondayStartingTime?: number;\n MondayEndingTime?: number;\n IsMondayTimeBounded?: number;\n TuesdayStartingTime?: number;\n TuesdayEndingTime?: number;\n IsTuesdayTimeBounded?: number;\n WednesdayStartingTime?: number;\n WednesdayEndingTime?: number;\n IsWednesdayTimeBounded?: number;\n ThursdayStartingTime?: number;\n ThursdayEndingTime?: number;\n IsThursdayTimeBounded?: number;\n FridayStartingTime?: number;\n FridayEndingTime?: number;\n IsFridayTimeBounded?: number;\n SaturdayStartingTime?: number;\n SaturdayEndingTime?: number;\n IsSaturdayTimeBounded?: number;\n SundayStartingTime?: number;\n SundayEndingTime?: number;\n IsSundayTimeBounded?: number;\n IsEndTimeAfterMidnight?: number;\n IsMondayEndTimeAfterMidnight?: number;\n IsTuesdayEndTimeAfterMidnight?: number;\n IsWednesdayEndTimeAfterMidnight?: number;\n IsThursdayEndTimeAfterMidnight?: number;\n IsFridayEndTimeAfterMidnight?: number;\n IsSaturdayEndTimeAfterMidnight?: number;\n IsSundayEndTimeAfterMidnight?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookChange entity interface.\n */\n export interface ClientBookChange {\n FromStaffId?: string;\n ToStaffId?: string;\n CustomerId?: string;\n }\n \n /**\n * ChannelProfile entity interface.\n */\n export interface ChannelProfile {\n ProfileProperties?: ChannelProfileProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RetailSharedConfigurationParameter entity interface.\n */\n export interface RetailSharedConfigurationParameter {\n RecordId?: number;\n Name?: string;\n Value?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CDXDataStore entity interface.\n */\n export interface CDXDataStore {\n Name?: string;\n RecId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UploadJobPackageRequest entity interface.\n */\n export interface UploadJobPackageRequest {\n JobId?: string;\n RerunUploadSessionId?: number;\n TargetStorage?: string;\n UploadJobDefintion?: string;\n UploadUrl?: string;\n }\n \n /**\n * ExtensibleAuditEventType entity interface.\n */\n export interface ExtensibleAuditEventType extends ExtensibleEnumeration {\n }\n \n /**\n * AuditEventFiscalTransaction entity interface.\n */\n export interface AuditEventFiscalTransaction {\n EventId?: number;\n LineNumber?: number;\n RegisterResponse?: string;\n Store?: string;\n TransDateTime?: Date;\n Terminal?: string;\n UploadType?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AuditEventFiscalRegistrationLine entity interface.\n */\n export interface AuditEventFiscalRegistrationLine {\n EventId?: number;\n RegisterResponse?: string;\n StoreId?: string;\n TransactionDateTime?: Date;\n TerminalId?: string;\n UploadType?: string;\n UploadTypeValue?: number;\n StaffId?: string;\n RecordGuid?: string;\n RegistrationStatusValue?: number;\n RegistrationProcessId?: string;\n ConnectorGroup?: string;\n ConnectorName?: string;\n ConnectorFunctionalityProfileId?: string;\n RegisterInfo?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NotificationDetail entity interface.\n */\n export interface NotificationDetail {\n ActionProperty?: string;\n ItemCount?: number;\n DisplayText?: string;\n IsNew?: boolean;\n LastUpdatedDateTimeStr?: string;\n IsSuccess?: boolean;\n IsLiveContentOnly?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentContext entity interface.\n */\n export interface FiscalIntegrationDocumentContext {\n AuditEvent?: AuditEvent;\n SignatureData?: FiscalIntegrationSequentialSignatureData[];\n }\n \n /**\n * FiscalIntegrationDocumentAdjustment entity interface.\n */\n export interface FiscalIntegrationDocumentAdjustment {\n TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationSignatureDataContext entity interface.\n */\n export interface FiscalIntegrationSignatureDataContext {\n SequentialSignatureKey?: string;\n SequentialNumber?: number;\n }\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity interface.\n */\n export interface FiscalIntegrationRegistrationProcessLine {\n RegistrationProcessId?: string;\n SequenceNumber?: number;\n Priority?: number;\n ConnectorTypeValue?: number;\n FunctionalityProfileGroupId?: string;\n AllowSkip?: boolean;\n AllowMarkAsRegistered?: boolean;\n AllowPostpone?: boolean;\n Optional?: boolean;\n RegistrationSettings?: FiscalIntegrationRegistrationSettings;\n SupportedFiscalEventTypes?: number[];\n SupportedNonFiscalEventTypes?: number[];\n SequentialKeys?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationSettings entity interface.\n */\n export interface FiscalIntegrationRegistrationSettings {\n SkipReasonCode?: string;\n MarkAsRegisteredReasonCode?: string;\n PostponeReasonCode?: string;\n }\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummaryLine entity interface.\n */\n export interface FiscalIntegrationFiscalRegistrationProcessSummaryLine {\n RegistrationProcessLine?: FiscalIntegrationRegistrationProcessLine;\n ConnectorName?: string;\n ConnectorTypeValue?: number;\n ConnectorLocationValue?: number;\n ConnectionProperties?: FiscalIntegrationConfigurationProperty[];\n ErrorCode?: number;\n }\n \n /**\n * FiscalIntegrationConfigurationProperty entity interface.\n */\n export interface FiscalIntegrationConfigurationProperty {\n LabelName?: string;\n Value?: string;\n }\n \n /**\n * FiscalIntegrationServiceFailureDetails entity interface.\n */\n export interface FiscalIntegrationServiceFailureDetails {\n FailureTypeValue?: number;\n IsRetryAllowed?: boolean;\n ErrorCode?: string;\n ErrorMessage?: string;\n }\n \n /**\n * CategoryPath entity interface.\n */\n export interface CategoryPath {\n Segments?: CategoryPathSegment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathSegment entity interface.\n */\n export interface CategoryPathSegment {\n CategoryName?: string;\n CategoryId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttachedService entity interface.\n */\n export interface AttachedService {\n BaseUrl?: string;\n ServiceId?: string;\n StatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleInventoryJournalType entity interface.\n */\n export interface ExtensibleInventoryJournalType extends ExtensibleEnumeration {\n }\n \n /**\n * CustomerTimelineItemType entity interface.\n */\n export interface CustomerTimelineItemType {\n Description?: string;\n TypeId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouseInventoryAvailability entity interface.\n */\n export interface ProductWarehouseInventoryAvailability {\n ProductId?: number;\n InventLocationId?: string;\n DataAreaId?: string;\n PhysicalInventory?: number;\n PhysicalReserved?: number;\n TotalAvailable?: number;\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n OrderedInTotal?: number;\n PhysicalAvailable?: number;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n LastInventoryTransactionId?: number;\n UnpostedOnlineOrderedQuantity?: number;\n UnpostedFulfilledQuantity?: number;\n IsInventoryAvailabilityQuantityReturned?: boolean;\n UnprocessedQuantity?: number;\n QuantityUnitTypeValue?: number;\n UnitOfMeasure?: string;\n MaximumPurchasablePhysicalAvailableQuantity?: number;\n MaximumPurchasableTotalAvailableQuantity?: number;\n SumUncountedTransactions?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * QuantityUnitType entity interface.\n */\n export interface QuantityUnitType extends ExtensibleEnumeration {\n }\n \n /**\n * ProductInventoryAvailability entity interface.\n */\n export interface ProductInventoryAvailability {\n ProductId?: number;\n DataAreaId?: string;\n TotalAvailableQuantity?: number;\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n PhysicalAvailableQuantity?: number;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n QuantityUnitTypeValue?: number;\n UnitOfMeasure?: string;\n MaximumPurchasablePhysicalAvailableQuantity?: number;\n MaximumPurchasableTotalAvailableQuantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ParameterSet entity interface.\n */\n export interface ParameterSet {\n }\n \n /**\n * CartLineValidationResults entity interface.\n */\n export interface CartLineValidationResults {\n ValidationResultsByLineId?: CartLineValidationResultsByLineId;\n ValidationFailuresByCartLines?: LineDataValidationFailure[];\n }\n \n /**\n * CommerceException entity interface.\n */\n export interface CommerceException {\n LocalizedMessage?: string;\n ErrorResourceId?: string;\n }\n \n /**\n * DataValidationException entity interface.\n */\n export interface DataValidationException extends CommerceException {\n ValidationResults?: DataValidationFailure[];\n }\n \n /**\n * MissingRequiredReasonCodeException entity interface.\n */\n export interface MissingRequiredReasonCodeException extends DataValidationException {\n RequiredReasonCodes?: ReasonCode[];\n TransactionRequiredReasonCodeIds?: string[];\n ReasonCodeRequirements?: ReasonCodeRequirement[];\n }\n \n /**\n * SecurityException entity interface.\n */\n export interface SecurityException extends CommerceException {\n }\n \n /**\n * DeviceAuthenticationException entity interface.\n */\n export interface DeviceAuthenticationException extends SecurityException {\n }\n \n /**\n * HeadquarterTransactionServiceException entity interface.\n */\n export interface HeadquarterTransactionServiceException extends CommerceException {\n }\n \n /**\n * UserAuthenticationException entity interface.\n */\n export interface UserAuthenticationException extends SecurityException {\n }\n \n /**\n * UserAuthorizationException entity interface.\n */\n export interface UserAuthorizationException extends SecurityException {\n }\n \n /**\n * FeatureNotSupportedException entity interface.\n */\n export interface FeatureNotSupportedException extends CommerceException {\n }\n \n /**\n * CartValidationException entity interface.\n */\n export interface CartValidationException extends DataValidationException {\n }\n \n /**\n * TenderValidationException entity interface.\n */\n export interface TenderValidationException extends DataValidationException {\n TenderTypeId?: string;\n }\n \n /**\n * CommerceDataExchangeException entity interface.\n */\n export interface CommerceDataExchangeException extends CommerceException {\n }\n \n /**\n * ExtensibleEnumerationException entity interface.\n */\n export interface ExtensibleEnumerationException extends CommerceException {\n }\n \n /**\n * TaskManagementException entity interface.\n */\n export interface TaskManagementException extends CommerceException {\n TaskManagementErrors?: TaskManagementError[];\n }\n \n /**\n * TaskManagementServerException entity interface.\n */\n export interface TaskManagementServerException extends TaskManagementException {\n }\n \n /**\n * TaskManagementClientException entity interface.\n */\n export interface TaskManagementClientException extends TaskManagementException {\n }\n \n /**\n * PaymentException entity interface.\n */\n export interface PaymentException extends CommerceException {\n AdditionalContext?: string;\n PaymentSdkErrors?: PaymentError[];\n }\n \n /**\n * DataValidationFailure entity interface.\n */\n export interface DataValidationFailure {\n ErrorContext?: string;\n ErrorResourceId?: string;\n MemberNames?: string[];\n LocalizedMessage?: string;\n }\n \n /**\n * ItemDiscontinuedException entity interface.\n */\n export interface ItemDiscontinuedException extends CommerceException {\n RemovedUnavailableItemIds?: string;\n }\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity interface.\n */\n export interface InventoryDocumentLockedByOtherTerminalException extends DataValidationException {\n WorkingTerminalId?: string;\n CurrentTerminalId?: string;\n }\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity interface.\n */\n export interface InventoryDocumentExceedMaximumQuantityException extends DataValidationException {\n MaximumQuantity: number;\n AllowOverDelivery: boolean;\n }\n \n /**\n * CartLineValidationResultsByLineId entity interface.\n */\n export interface CartLineValidationResultsByLineId {\n LineIdToProductBehaviorMap?: KeyValuePair_2OfString_ProductBehavior[];\n ValidationResultsPairs?: LineValidationResult[];\n }\n \n /**\n * CommerceRuntimeCompositionException entity interface.\n */\n export interface CommerceRuntimeCompositionException extends CommerceException {\n }\n \n /**\n * ChecklistTaskValidationException entity interface.\n */\n export interface ChecklistTaskValidationException extends DataValidationException {\n }\n \n /**\n * InsufficientCredentialLengthException entity interface.\n */\n export interface InsufficientCredentialLengthException extends DataValidationException {\n ActualLength?: number;\n MinLength?: number;\n }\n \n /**\n * ExtensibleEnumerationCacheException entity interface.\n */\n export interface ExtensibleEnumerationCacheException extends CommerceException {\n }\n \n /**\n * ExtensionConfigurationException entity interface.\n */\n export interface ExtensionConfigurationException extends CommerceException {\n }\n \n /**\n * StaffPasswordExpiredException entity interface.\n */\n export interface StaffPasswordExpiredException extends UserAuthenticationException {\n StaffId?: string;\n }\n \n /**\n * ChannelConfigurationNotFoundException entity interface.\n */\n export interface ChannelConfigurationNotFoundException extends CommerceException {\n }\n \n /**\n * PaymentConfigurationException entity interface.\n */\n export interface PaymentConfigurationException extends CommerceException {\n PaymentConfigurationSdkErrors?: string[];\n }\n \n /**\n * SecretConfigurationNotFoundException entity interface.\n */\n export interface SecretConfigurationNotFoundException extends CommerceException {\n }\n \n /**\n * TenderTypePolicy entity interface.\n */\n export interface TenderTypePolicy {\n OriginalTenderType?: string;\n AllowedReturnTenderTypes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AccountStatementRequest entity interface.\n */\n export interface AccountStatementRequest {\n RequestedUserId?: string;\n IsForFullOrganization?: boolean;\n FromDate?: Date;\n ToDate?: Date;\n RequestingUserEmail?: string;\n DeliveryTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperationRequestDetails entity interface.\n */\n export interface BusinessPartnerOperationRequestDetails {\n InvoiceId?: string;\n AccountStatementStartDateTime?: Date;\n AccountStatementEndDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaskManagementError entity interface.\n */\n export interface TaskManagementError {\n ErrorResourceId?: string;\n LocalizedMessage?: string;\n TaskId?: string;\n }\n \n /**\n * LineDataValidationFailure entity interface.\n */\n export interface LineDataValidationFailure {\n DataValidationFailure?: DataValidationFailure;\n LineIndex?: number;\n }\n \n /**\n * WrongEndpointException entity interface.\n */\n export interface WrongEndpointException extends CommerceException {\n RedirectUri?: string;\n }\n \n /**\n * BadRequestException entity interface.\n */\n export interface BadRequestException extends CommerceException {\n }\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity interface.\n */\n export interface KeyValuePair_2OfString_ProductBehavior {\n }\n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport type CacheType = 'none' | 'instance' | 'application' | 'request';\n\n/**\n * BypassCache type.\n */\nexport type BypassCache = 'none' | 'get' | 'put' | 'getAndPut';\n\nexport enum ICacheSource {\n RequestCache,\n AppCache\n}\n\nexport interface ICacheKey {\n key: string;\n typeName: string;\n}\n\nexport interface ICacheItem {\n item: T;\n cacheType?: CacheType;\n shouldRefresh?: boolean;\n error?: boolean;\n s?: ICacheSource;\n}\n\n/**\n * Interface exposing methods for caching\n */\nexport interface ICache {\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n */\n put(cacheKey: ICacheKey, item: ICacheItem): boolean;\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {ICacheItem} - cached value against the given cache key\n */\n get(cacheKey: ICacheKey): ICacheItem | undefined;\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {T} - cached value against the given cache key\n */\n getValue(cacheKey: ICacheKey): T | undefined;\n\n /**\n * @function {getAllItems} - Method to get all cached items for a given type\n * @param typeName {typeName} - typeName for which all items need to be fetched\n * @return {ICacheItem} - dictionary of cache items of the given typeName\n */\n getAllItems(typeName: string): { [cacheKey: string]: ICacheItem } | undefined;\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n copyTo(cacheKey: ICacheKey, toCache: ICache): ICacheItem | undefined;\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey[]} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n del(cacheKey: ICacheKey): boolean;\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n flushAll(): void;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// NOTE: no-any is disabled intentionally, as promises require valid use of the any type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { observable } from 'mobx';\nimport { IODataMetadata } from './interfaces/IODataMetadata';\n\nexport type AsyncResultStatus = 'LOADING' | 'SUCCESS' | 'FAILED';\n\nexport const isAsyncResult = (item: { toString(): string }): item is AsyncResult => {\n return item && item.toString && typeof item.toString === 'function' && item.toString() === `[object AsyncResult]`;\n};\n\n/**\n * Utility Methods For AsyncResult\n */\nconst isThenable = (obj: any) => obj && typeof obj === 'object' && typeof obj.then === 'function';\n\n/**\n * TYPES & INTERFACES\n */\ninterface IHandler {\n onSuccess: HandlerOnSuccess;\n onFail: HandlerOnFail;\n}\n\ntype HandlerOnSuccess = (value: TIn) => TOut | PromiseLike;\ntype HandlerOnFail = (reason: any) => TOut | PromiseLike;\n\ntype Resolve = (value?: T | PromiseLike) => void;\ntype Reject = (value?: any) => void;\n\n/**\n * AsyncResult Class\n * Promise-style class which allows for observation of the status of the promise\n * and it's result during and after is execution.\n */\nexport class AsyncResult implements Promise {\n @observable public result?: T;\n\n @observable public status: AsyncResultStatus = 'LOADING';\n\n @observable public error?: Error;\n\n @observable public metadata: IODataMetadata = {};\n\n private _type: string = 'AsyncResult';\n\n public getType(): string {\n return this._type;\n }\n\n private _handlers: Array> = [];\n\n public static resolve(value?: U | PromiseLike): AsyncResult {\n return new AsyncResult(resolve => {\n return resolve(value);\n });\n }\n\n public static reject(reason?: any): AsyncResult {\n return new AsyncResult((resolve, reject) => {\n return reject(reason);\n });\n }\n\n /**\n * Class constructor, which starts running the passed executor\n * @param executor Passed function to be executed, resulting in resolution/rejection\n */\n constructor(executor: (resolve: Resolve, reject: Reject) => void) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /**\n * Method that allows for an executor to be passed to the promise after inital execution,\n * essentially \"rerunning\" the promise.\n * @param executor Passed function to be executed, resulting in resolution/rejection\n */\n public run(executor: (resolve: Resolve, reject: Reject) => void): void {\n this.status = 'LOADING';\n this.error = undefined;\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /**\n * Method which allows chaining of callbacks to the end of a fully executed AsyncResult\n * @param onSuccess Callback to be run on successful completion of executor\n * @param onFail Callback to be run when executor cannot be successfully completed\n */\n public then(\n onSuccess?: ((value: T) => TResult1 | PromiseLike) | undefined | null,\n onFail?: ((reason: any) => TResult2 | PromiseLike) | undefined | null\n ): AsyncResult {\n const asyncResult = new AsyncResult((resolve, reject) => {\n return this._attachHandler({\n onSuccess: result => {\n if (!onSuccess) {\n return resolve(result as any);\n }\n\n try {\n return resolve(onSuccess(result));\n } catch (e) {\n return reject(e);\n }\n },\n onFail: reason => {\n if (!onFail) {\n return reject(reason);\n }\n\n try {\n return resolve(onFail(reason));\n } catch (e) {\n return reject(e);\n }\n }\n });\n });\n\n // Always pass the metadata on a then\n asyncResult.metadata = this.metadata;\n\n return asyncResult;\n }\n\n /**\n * Hook to allow callback on the unsuccessful run of an executor\n * @param onFail Callback to run when executor fails\n */\n public catch(onFail?: ((reason: any) => TResult | PromiseLike) | undefined | null): AsyncResult {\n const defaultThen = (value: any) => value;\n return this.then(defaultThen, onFail);\n }\n\n /**\n * Hook to allow a callback to be executed on a successful or unsuccessful run of the executor\n * @param callback Callback to be run after original AsyncResult is completed\n */\n public finally(onfinally?: (() => void) | undefined | null): AsyncResult {\n return new AsyncResult((resolve, reject) => {\n let value: T | any;\n let failed: Boolean = false;\n\n return this.then(\n result => {\n value = result;\n return onfinally();\n },\n reason => {\n failed = true;\n value = reason;\n return onfinally();\n }\n ).then(() => {\n if (failed) {\n return reject(value);\n }\n\n return resolve(value);\n });\n });\n }\n\n public toString(): string {\n return `[object AsyncResult]`;\n }\n\n get [Symbol.toStringTag](): string {\n return '[object AsyncResult]';\n }\n\n private _attachHandler = (handler: IHandler) => {\n this._handlers.push(handler);\n\n this._executeHandlers();\n };\n\n private _executeHandlers = () => {\n if (this.status === 'LOADING') {\n return;\n }\n\n for (const handler of this._handlers) {\n if (this.status === 'FAILED') {\n handler.onFail(this.error);\n } else {\n handler.onSuccess(this.result as T);\n }\n }\n\n this._handlers = [];\n };\n\n private _resolve = (value?: T | PromiseLike) => {\n return this._updateStatus(value, 'SUCCESS');\n };\n\n private _reject = (reason: any) => {\n return this._updateStatus(reason, 'FAILED', true);\n };\n\n private _updateStatus(result: T | any, newStatus: AsyncResultStatus, isError: Boolean = false): void {\n // Wrap in setTimeout to ensure fully synchronous handlers\n // are still returned AFTER initial class construction\n setTimeout(() => {\n if (this.status !== 'LOADING') {\n return null;\n }\n\n if (isThenable(result)) {\n return (result as PromiseLike).then(this._resolve, this._reject);\n }\n\n if (isError) {\n this.error = result;\n } else {\n this.result = result;\n }\n\n this.status = newStatus;\n\n return this._executeHandlers();\n }, 0);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { ProxyError } from './ProxyError';\n\nexport class ErrorTypeEnum {\n public static SERVER_ERROR: string = 'string_29002';\n public static SERVICE_UNAVAILABLE: string = 'string_29278';\n public static SERVER_TIMEOUT: string = 'string_29279';\n public static RETAIL_SERVER_REDIRECT_ERROR = 'RETAIL_SERVER_REDIRECT_ERROR';\n public static GENERICERRORMESSAGE: string = 'string_29201';\n public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = ErrorTypeEnum.GENERICERRORMESSAGE;\n public static BAD_REQUEST: string = 'string_29274';\n public static NOT_AUTHORIZIED: string = 'string_29275';\n public static FORBIDDEN: string = 'string_29276';\n public static PRECONDITION_FAILED: string = 'string_29277';\n public static RETURN_NO_ORDERS_FOUND: string = 'string_1218';\n}\n\n/**\n * Forward links for device activation errors.\n */\nexport class DeviceActivationErrorsForwardLinks {\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANNELDATABASECONNECTIONFAILED: string =\n 'http://go.microsoft.com/fwlink/?LinkId=403590';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REALTIMESERVICECONNECTIONFAILED: string =\n 'http://go.microsoft.com/fwlink/?LinkId=403591';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TERMINALNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403592';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_USERNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403593';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCORRECTSTAFFIDORPASSWORD: string = 'http://go.microsoft.com/fwlink/?LinkId=403594';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEVICEALREADYACTIVATED: string = 'http://go.microsoft.com/fwlink/?LinkId=519136';\n public static SERVER_ERROR: string = 'http://go.microsoft.com/fwlink/?LinkId=519137';\n}\n\nexport class ErrorHelper {\n private static AGGREGATED_ERROR_RESOUCEIDS: string[] = [\n 'Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError',\n 'Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError',\n 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError'\n ];\n\n public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = 'Microsoft_Dynamics_Internal_Server_Error';\n\n public static isAggregatedErrorResourceId(errorResourceId: string): boolean {\n return ErrorHelper.AGGREGATED_ERROR_RESOUCEIDS.indexOf(errorResourceId) !== -1;\n }\n\n /**\n * Map response status code to error.\n *\n * @param {any} Error returned by retail server call.\n */\n public static MapResponseStatusCodeToError(errorMessage: string, statusCode: number, err?: any): ProxyError {\n let errorCode = '';\n let canRetry = false;\n\n switch (statusCode) {\n case 400:\n errorCode = ErrorTypeEnum.BAD_REQUEST;\n break;\n case 401:\n errorCode = ErrorTypeEnum.NOT_AUTHORIZIED;\n break;\n case 403:\n errorCode = ErrorTypeEnum.FORBIDDEN;\n break;\n case 412:\n errorCode = ErrorTypeEnum.PRECONDITION_FAILED;\n break;\n case 503:\n errorCode = ErrorTypeEnum.SERVICE_UNAVAILABLE;\n canRetry = true;\n break;\n case 500:\n default:\n errorCode = ErrorTypeEnum.SERVER_ERROR;\n errorMessage = 'The server error format is not supported or it does not have enough information.';\n\n // Temporary until the fix for Bug 681427 goes in\n // If no orders were found, than an error did not occur\n if (err && err.response && err.response.body && err.response.requestUri) {\n if (err.response.requestUri.indexOf('GetOrderByReceiptId') > -1) {\n if (err.response.body.indexOf('No orders were found') > -1) {\n errorMessage = ErrorTypeEnum.RETURN_NO_ORDERS_FOUND;\n }\n }\n }\n }\n\n if (errorMessage && errorMessage.toUpperCase() === 'TIMEOUT') {\n errorCode = ErrorTypeEnum.SERVER_TIMEOUT;\n }\n\n return new ProxyError(errorCode, errorMessage || EMPTY, EMPTY, canRetry, err);\n }\n\n /**\n * Checks whether all the provided errors are retryable. If no error code is provided or an error is undefined,\n * then the errors will be treated as not retryable.\n *\n * @return {boolean} True if the error codes are retryable, false if the error codes are not retryable or not defined\n */\n public static isRetryable(errors: ProxyError[]): boolean {\n const numErrors: number = !errors ? 0 : errors.length;\n let isRetryable: boolean = numErrors > 0;\n for (let i: number = 0; i < numErrors; i++) {\n if (errors[i]) {\n isRetryable = isRetryable && errors[i].CanRetry;\n } else {\n isRetryable = false;\n }\n }\n\n return isRetryable;\n }\n\n /**\n * Gets a string with all error codes.\n * @param {ProxyError[]} errors the error collection.\n * @return {string} a formated string containing all error codes.\n */\n public static getErrorResourceIds(errors: ProxyError[]): string {\n let result: string = '';\n\n if (hasElements(errors)) {\n const errorResourceIds: string[] = [];\n for (const error of errors) {\n errorResourceIds.push(error.ErrorCode);\n }\n\n result = errorResourceIds.join(', ');\n }\n\n return result;\n }\n\n /**\n * Gets a string with all error messages.\n * @param {ProxyError[]} errors the error collection.\n * @return {string} a formated string containing all error messages.\n */\n public static getErrorMessages(errors: ProxyError[]): string {\n let result: string = '';\n\n if (hasElements(errors)) {\n const errorResourceIds: string[] = [];\n for (const error of errors) {\n errorResourceIds.push(error.LocalizedErrorMessage);\n }\n\n result = errorResourceIds.join(', ');\n }\n\n return result;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CommerceException, DataValidationException, DataValidationFailure } from '../Entities/CommerceTypes.g';\nimport { EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { genericWarning, Tracer } from '../logging';\nimport { ErrorTypeEnum, ErrorHelper } from './ErrorHelper';\nimport { ProxyError } from './ProxyError';\n\n/**\n * Error parser class.\n */\nexport class ErrorParser {\n private static DataValidationExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.DataValidationException';\n private static CartValidationExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.CartValidationException';\n private static StorageExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.StorageException';\n\n /**\n * Parses an error message.\n *\n * @param {any} error The error message.\n * @return {ProxyError[]} The collection of error messages.\n */\n public static parseErrorMessage(error: any): ProxyError[] {\n const response = error.response;\n let errors: ProxyError[] = [];\n if (response) {\n let handled = true;\n Tracer.Information(`Server response status code is '${response.statusCode}'`);\n switch (response.statusCode) {\n case 306: // Custom - Redirection\n const redirectUrl = response.headers['Location'];\n error.redirectUrl = redirectUrl;\n errors = [new ProxyError(ErrorTypeEnum.RETAIL_SERVER_REDIRECT_ERROR, response.statusText, EMPTY, false, error)];\n break;\n\n case 401: // Unauthorized (Generally Expired Token)\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\n const redirectCountQueryString = 'rdc';\n const noRedirectQueryString = 'noredirect';\n try {\n const currentUrl = new URL(location.href);\n if (currentUrl.searchParams.get(noRedirectQueryString)) {\n break;\n }\n const rdc = parseInt(currentUrl.searchParams.get(redirectCountQueryString), 10) || 0;\n if (rdc && rdc >= 3) {\n break;\n }\n currentUrl.searchParams.set(redirectCountQueryString, `${rdc + 1}`);\n location.href = currentUrl.href;\n } catch (e) {\n break;\n }\n }\n\n break;\n\n case 408: // Request Timeout\n errors = [new ProxyError(ErrorTypeEnum.SERVER_TIMEOUT, response.statusText, EMPTY, false, error)];\n break;\n\n case 0: // WWAHost reports status code as 0, If server is unreachable.\n case 502: // Bad Gateway\n case 503: // Service Unavailable\n case 504: // Gateway timeout\n errors = [new ProxyError(ErrorTypeEnum.SERVICE_UNAVAILABLE, response.statusText, EMPTY, false, error)];\n break;\n\n default:\n handled = false;\n }\n\n if (!handled) {\n errors = ErrorParser.parseError(error);\n }\n }\n\n // If we couldn't create any error object from error message, add error parsing failure\n if (!errors || !errors.length) {\n errors = [new ProxyError(ErrorTypeEnum.SERVER_ERROR, 'Could not parse error message sent by the server.', EMPTY, false, error)];\n }\n\n return errors;\n }\n\n /**\n * Parses an error message sent from Hardware station.\n *\n * @param {any} error The error message.\n * @retunrs {ProxyError[]} The collection of error messages.\n */\n public static parseHardwareStationErrorMessage(error: any): ProxyError[] {\n let errors: ProxyError[] = [];\n\n if (error) {\n try {\n const response = error.responseText;\n\n if (response) {\n const jsonResponse = JSON.parse(response);\n\n // Parse errors in json format\n if (jsonResponse) {\n errors = [\n new ProxyError(\n jsonResponse.ErrorResourceId ? jsonResponse.ErrorResourceId : ErrorTypeEnum.SERVER_ERROR,\n jsonResponse.Message || '',\n EMPTY,\n false,\n error\n )\n ];\n } else {\n // If not in json, we cannot parse it\n errors = [\n new ProxyError(\n ErrorTypeEnum.SERVER_ERROR,\n 'The value of Content-Type on server response is not supported.',\n EMPTY,\n false,\n error\n )\n ];\n }\n } else {\n // In case we don't have a body, we don't know the error message but from http status\n errors = [ErrorHelper.MapResponseStatusCodeToError(error.statusText, error.status, error)];\n }\n } catch (ex) {\n const errorMessage: string = `parseHardwareStationErrorMessage: Failed parse error message '${ex.message}'.`;\n Tracer.Error(errorMessage, ex);\n }\n }\n\n // If we couldn't create any error object from error message, add error parsing failure\n if (!errors || !errors.length) {\n errors = [new ProxyError(ErrorTypeEnum.SERVER_ERROR, 'Could not parse error message sent by the server.', EMPTY, false, error)];\n }\n\n return errors;\n }\n\n public static parseJSONError(errorString: string, errorResponse?: any): ProxyError[] {\n let commerceErrors: ProxyError[] = [];\n\n try {\n const odataError: any = JSON.parse(errorString);\n odataError.CorrelationId = errorResponse.data.CorrelationId;\n\n // assign parsed data to errorResponse\n errorResponse.data = odataError;\n\n // due to odata json format limitation, a collection of errors is provided in the message field\n const localizedMessage: string = odataError.LocalizedMessage;\n const exceptionType: string = odataError.ErrorResourceId;\n\n if (exceptionType === ErrorTypeEnum.MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR) {\n commerceErrors = [\n new ProxyError(\n ErrorTypeEnum.MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR,\n localizedMessage || 'Server failed with uncaught exception. Please report this failure.',\n localizedMessage,\n false,\n errorResponse\n )\n ];\n } else if (localizedMessage != null && exceptionType != null) {\n commerceErrors = ErrorParser.convertExceptionToErrors(odataError, exceptionType, errorResponse);\n } else {\n throw new Error('Server exception is not in expected format.');\n }\n } catch (ex) {\n const errorMessage: string =\n 'DataServiceRequest::parseJSONError: Invalid json format from server. It was not possible to parse error message. {0}';\n Tracer.Error(errorMessage, ex);\n }\n\n if (!hasElements(commerceErrors)) {\n commerceErrors = [\n new ProxyError(\n ErrorTypeEnum.GENERICERRORMESSAGE,\n 'Could not parse error message from server. Possible invalid OData request, please check your request.',\n EMPTY,\n false,\n errorResponse\n )\n ];\n }\n\n return commerceErrors;\n }\n\n private static convertExceptionToErrors(serverException: CommerceException, exceptionType: string, errorResponse: any): ProxyError[] {\n let errors: ProxyError[] = [];\n\n switch (exceptionType) {\n // CartValidationExceptionType extends DataValidationExceptionType\n case ErrorParser.DataValidationExceptionType:\n case ErrorParser.CartValidationExceptionType:\n const dataValidation: DataValidationException = serverException as DataValidationException;\n // json is in odata format, array has elements inside result member\n errors = ErrorParser.getErrorsFromDataValidationFailures(dataValidation.ValidationResults as any);\n errors.push(\n new ProxyError(\n dataValidation.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n EMPTY,\n dataValidation.LocalizedMessage,\n false,\n errorResponse\n )\n );\n break;\n\n case ErrorParser.StorageExceptionType:\n errors.push(\n new ProxyError(ErrorTypeEnum.SERVICE_UNAVAILABLE, EMPTY, serverException.LocalizedMessage, false, errorResponse)\n );\n break;\n }\n\n if (errors.length === 0) {\n const error: ProxyError = new ProxyError(\n serverException.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n EMPTY,\n serverException.LocalizedMessage,\n false,\n errorResponse\n );\n error.commerceException = serverException;\n errors.push(error);\n }\n\n return errors;\n }\n\n private static getErrorsFromDataValidationFailures(failures: DataValidationFailure[]): ProxyError[] {\n const errors: ProxyError[] = [];\n failures = failures || [];\n\n for (const failure of failures) {\n errors.push(\n new ProxyError(\n failure.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n failure.ErrorContext || '',\n failure.LocalizedMessage,\n false,\n {}\n )\n );\n }\n\n return errors;\n }\n\n /**\n * Parses an error to get the error code and error message.\n *\n * @param {any} error The error message.\n * @retunrs {ProxyError[]} The collection of error messages.\n */\n private static parseError(error: any): ProxyError[] {\n const response = error.response;\n let errors: ProxyError[] = [];\n if (response.body && response.data) {\n // If we have a response body\n const contentType: string = (response.headers && (response.headers['Content-Type'] || response.headers['content-type'])) || '';\n const bodyString: string = response.data.Exception;\n // Parse errors in json format\n if (contentType.toLowerCase().indexOf('application/json') !== -1) {\n errors = ErrorParser.parseJSONError(bodyString, error.response);\n } else {\n const message: string = `Server error has been received with unsupported content type: '${contentType}'.`;\n genericWarning(message);\n }\n }\n // if we couldn't parse the errors from the body, we can only rely on status text and status code\n if (!hasElements(errors)) {\n // In case we don't have a body, we don't know the error message but from http status code\n errors = [ErrorHelper.MapResponseStatusCodeToError(response.statusText, response.statusCode, error)];\n }\n return errors;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\nexport class ProxyErrorSDK extends Error {\n public errorCode: string;\n public errorMessage: string;\n public localizedErrorMessage: string = '';\n public canRetry: boolean = false;\n public commerceException: any;\n public formatData: any[] = [];\n public requestUri: any;\n public data: any;\n public statusCode: any;\n\n constructor(\n errorCode: string,\n errorMessage: string,\n canRetry: boolean\n ) {\n super();\n this.name = errorCode;\n this.message = errorMessage;\n this.errorCode = errorCode;\n this.errorMessage = errorMessage;\n this.canRetry = canRetry;\n Object.setPrototypeOf(this, ProxyErrorSDK.prototype);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\n\nimport { ProxyErrorSDK } from './ProxyErrorSDK';\n\n'use strict';\n\n/**\n * Class for representing an error.\n */\nexport class ProxyError {\n private _errorCode: string;\n private _errorMessage: string;\n private _localizedErrorMessage: string;\n private _canRetry: boolean = false;\n private _commerceException: any;\n private _formatData: any[];\n private _extraData: any;\n\n constructor(errorCode: string, errorMessage: string, localizedErrorMessage, canRetry: boolean, extraData: any, ...formatData: any[]) {\n this._errorCode = errorCode;\n this._errorMessage = errorMessage;\n this._localizedErrorMessage = localizedErrorMessage;\n this._canRetry = canRetry;\n this._commerceException = null;\n this._formatData = formatData;\n if (extraData && typeof extraData == 'object' && extraData.request && extraData.request.headers) {\n extraData.request.headers = {};\n }\n this._extraData = extraData;\n }\n\n /**\n * Takes a proxy error and returns a proper JS error version of it\n * @param proxyError The proxyError\n */\n public static toError(proxyError: ProxyError): Error {\n const errorName = proxyError.ErrorCode || 'Proxy Error';\n const errorMessage = proxyError.ErrorMessage || proxyError.LocalizedErrorMessage;\n const e = new ProxyErrorSDK(errorName, errorMessage, proxyError.CanRetry);\n\n // Assign extra error details to error.\n // ts-ignoring as the standard error contract only supports name and message\n if (proxyError.extraData) {\n e.requestUri = proxyError.extraData.requestUri;\n\n e.data = proxyError.extraData.data;\n\n e.statusCode = proxyError.extraData.statusCode;\n }\n\n return e;\n }\n\n /**\n * Gets the commerce exception that caused this error.\n *\n * @return {any} The commerce exception.\n */\n public get commerceException(): any {\n return this._commerceException;\n }\n\n /**\n * Sets the commerce exception that caused this error.\n *\n * @param {any} exception The commerce exception.\n */\n public set commerceException(exception: any) {\n this._commerceException = exception;\n }\n\n /**\n * Gets the error code.\n *\n * @return {string} The error code.\n */\n public get ErrorCode(): string {\n return this._errorCode;\n }\n\n /**\n * Gets the error message.\n *\n * @return {string} The error message.\n */\n public get ErrorMessage(): string {\n return this._errorMessage;\n }\n\n /**\n * Gets the localized error message.\n *\n * @return {string} The localized error message.\n */\n public get LocalizedErrorMessage(): string {\n return this._localizedErrorMessage;\n }\n\n /**\n * Gets the format data used on formatted error messages.\n *\n * @return {any[]} The format data.\n */\n public get formatData(): any[] {\n return this._formatData;\n }\n\n /**\n * Gets the additional information the might be supplied by the error.\n *\n * @return {any} The extra data.\n */\n public get extraData(): any {\n return this._extraData;\n }\n\n /**\n * Gets the error title. Defaults to the resource string string_29004 for the error title if\n * no error title is mapped for the error.\n */\n public get ErrorTitleResourceId(): string {\n const errorTitleResourceId = 'string_29004'; // Error string: There is a problem with the server\n return errorTitleResourceId;\n }\n\n /**\n * Gets whether the action that generated the error can be retried.\n *\n * @return {string} Whether the action that generated the error can be retried.\n */\n public get CanRetry(): boolean {\n return this._canRetry;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// TODO - refactor to incorporate inbuilt JS extension method\n// TODO - integrate Trace.error\n\nexport const EMPTY = '';\n\nexport function convertToString(obj: any, accumulator: string[] = [], depth: number = 0): string {\n if (!obj) {\n return null;\n }\n\n if (typeof obj === 'string') {\n return obj;\n }\n\n if (typeof obj !== 'object') {\n return obj.toString();\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n const value = obj[prop];\n const stringifyValue = convertToString(value, accumulator, depth + 1);\n if (stringifyValue) {\n if (accumulator.length > 0 && depth === 0) {\n accumulator.push('&');\n }\n accumulator.push(prop);\n accumulator.push(typeof value === 'object' ? '.' : ':');\n accumulator.push(stringifyValue);\n }\n }\n }\n\n if (depth === 0) {\n return accumulator.join(EMPTY);\n }\n}\n\n/**\n * Verifies whether the object array has elements.\n *\n * @param {any[]} array The array.\n * @return {boolean} True if the object has elements, false otherwise.\n */\nexport function hasElements(array?: any[]): boolean {\n return !!array && array.length > 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isObjectNotEmptyOrNull(value: object): boolean {\n return value && typeof value === 'object' && Object.keys(value).length > 0;\n}\n\n/**\n * Verifies whether the string is empty, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty, false otherwise.\n */\nexport function isEmpty(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmpty() has received input parameter not of type string.\");\n }\n return object != null && object.length === 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isEmptyOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace() has received input parameter not of type string.\");\n }\n if (object) {\n // Make sure object is of type string\n object = object.toString();\n\n return typeof object.trim === 'function' && (object.trim() || '').length === 0;\n }\n return false;\n}\n\n/**\n * Verifies whether the string is null or whitespace.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is null or whitespace, false otherwise.\n */\nexport function isNullOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isNullOrWhitespace() has received input parameter not of type string.\");\n }\n let returnValue = true;\n try {\n returnValue = !object;\n if (!returnValue) {\n // Make sure object is of type string\n object = object.toString();\n returnValue = object.trim().length === 0;\n }\n } catch (err) {\n // Commerce.Proxy.Tracer.Error(\"StringExtensions.isNullOrWhitespace() caught exception = {0}\", err.message);\n }\n\n return returnValue;\n}\n\n/**\n * Pad left with padString until the required length is reached.\n */\nexport function padLeft(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padLeft() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object = padString + object;\n }\n return object;\n}\n\n/**\n * Pad right with padString until the required length is reached.\n */\nexport function padRight(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padRight() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object += padString;\n }\n return object;\n}\n\n/**\n * Basic C# like string format function.\n */\nexport function format(object: string, ...params: any[]): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace has received input parameter not of type string.\");\n }\n\n if (isNullOrWhitespace(object)) {\n return object;\n }\n\n if (params == null) {\n throw new Error('StringExtensions::format Invalid parameter (params) cannot be null.');\n }\n\n for (let index = 0; index < params.length; index++) {\n if (params[index] == null) {\n throw new Error('StringExtensions::format Invalid parameter (at index ' + index + ') cannot be null or undefined.');\n }\n\n // escape '$' to avoid '$0' issue, '$$$$' means '$$' escaped\n const param = params[index].toString().replace(/\\$/gi, '$$$$');\n const regexp = new RegExp('\\\\{' + index + '\\\\}', 'gi');\n object = object.replace(regexp, param);\n }\n\n return object;\n}\n\n/**\n * Returns an ordinal to indicate the ordering of the strings\n * -1: This object is less than comparison object\n * 0: This object is equal to the comparison object\n * 1: This object is greater than the comparison object\n */\nexport function compare(object: string, comparisonObject: string, ignoreCase?: boolean): number {\n if (!object && !comparisonObject) {\n return 0;\n } else if (!object) {\n return -1;\n } else if (!comparisonObject) {\n return 1;\n }\n\n const val1: string = ignoreCase ? object.toLowerCase() : object;\n const val2: string = ignoreCase ? comparisonObject.toLowerCase() : comparisonObject;\n\n return val1 < val2 ? -1 : val1 > val2 ? 1 : 0;\n}\n\n/**\n * Replaces new line character with
for display.\n */\nexport function replaceNewLineWithBr(text: string) {\n if (text) {\n return replaceAll(text, '\\n', '
');\n }\n\n return text;\n}\n\n/**\n * Replaces all instances of @txtToReplace\n */\nexport function replaceAll(txt, txtToReplace, valueToReplaceWith) {\n return txt.replace(new RegExp(txtToReplace, 'g'), valueToReplaceWith);\n}\n\n/**\n * Escapes single quote to be send as part of URLs.\n */\nexport function escapeSingleQuote(text: string) {\n return text.replace(/(')/g, '\\'$1');\n}\n\n/**\n * Removes the trailing slashes from the URI.\n *\n * @param {string} uri The URI to clean.\n * @return {string} The uri without trailing slashes.\n */\nexport function CleanUri(uri: string): string {\n if (isNullOrWhitespace(uri)) {\n return EMPTY;\n }\n\n // the cutoff index for the string\n let cutoffIndex = uri.length - 1;\n\n while (cutoffIndex >= 0 && (uri[cutoffIndex] === '/' || uri[cutoffIndex] === '\\\\')) {\n --cutoffIndex;\n }\n\n // if it ever becomes negative, cutoffIndex + 1 = 0\n return uri.substr(0, cutoffIndex + 1);\n}\n\n/**\n * Determines whether the end of string matches a specified string.\n *\n * @param {string} str: The string to search in.\n * @param {string} suffix: The string to compare to the substring at the end of str.\n * @param {boolean} caseSensitive: Determines if the comparison case sensitive (false, by default)\n * @return {boolean} true if suffix matches the end of str; otherwise, false.\n */\nexport function endsWith(str: string, suffix: string, caseSensitive: boolean = false): boolean {\n if (!str || !suffix) {\n return false;\n }\n if (suffix.length > str.length) {\n return false;\n }\n\n const originalString: string = caseSensitive ? str : str.toLowerCase();\n const subString: string = caseSensitive ? suffix : suffix.toLowerCase();\n return originalString.indexOf(subString, originalString.length - subString.length) !== -1;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport axios from 'axios';\nimport { jsonHandler } from './handler';\n\n/**\n * OData request interface.\n */\nexport interface IODataRequest {\n /**\n * OData endpoint URI\n */\n requestUri: string;\n\n /**\n * HTTP method (GET, POST, PUT, DELETE)\n */\n method: string;\n\n /**\n * Payload of the request (in intermediate format)\n */\n data: any;\n\n /**\n * Object that contains HTTP headers as name value pairs\n */\n headers?: Object;\n\n /**\n * (Optional) Username to send for BASIC authentication\n */\n user?: string;\n\n /**\n * (Optional) Password to send for BASIC authentication\n */\n password?: string;\n\n /**\n * (Optional) Whether or not to use cross domain cookies.\n */\n useCrossDomainCookies?: boolean;\n}\n\nconst normalHeaders = {\n accept: 'Accept',\n 'content-type': 'Content-Type',\n 'odata-version': 'OData-Version',\n 'odata-maxversion': 'OData-MaxVersion'\n};\n\nconst isAbsoluteUrl = url => {\n /// Checks whether the specified URL is an absolute URL.\n /// URL to check.\n /// true if the url is an absolute URL; false otherwise.\n\n return url.indexOf('http://') === 0 || url.indexOf('https://') === 0 || url.indexOf('file://') === 0;\n};\n\nconst normalizeHeaders = headers => {\n /// Normalizes headers so they can be found with consistent casing.\n /// Dictionary of name/value pairs.\n\n for (const name in headers) {\n if (headers.hasOwnProperty(name)) {\n const lowerName = name.toLowerCase();\n const normalName = normalHeaders[lowerName];\n if (normalName && name !== normalName) {\n const val = headers[name];\n delete headers[name];\n headers[normalName] = val;\n }\n }\n }\n};\n\nconst defaultHttpClient = {\n callbackParameterName: '$callback',\n formatQueryString: '$format=json',\n enableJsonpCallback: false,\n\n request(request, success, error) {\n /// Performs a network request.\n /// Request description.\n /// Success callback with the response object.\n /// Error callback with an error object.\n /// Object with an 'abort' method for the operation.\n const result = { abort: null, handleTimeout: null };\n\n const cancelToken = axios.CancelToken.source();\n\n let done = false;\n result.abort = () => {\n if (done) {\n return;\n }\n done = true;\n cancelToken.cancel('Request aborted');\n error({ message: 'Request aborted' });\n };\n\n request.handleTimeout = () => {\n if (!done) {\n done = true;\n cancelToken.cancel('Request aborted');\n error({ message: 'Request timed out' });\n }\n };\n\n const url = request.requestUri;\n const enableJsonpCallback = request.enableJsonpCallback || false;\n if (!enableJsonpCallback || !isAbsoluteUrl(url)) {\n let authenticationCreds;\n if (request.user) {\n authenticationCreds = {\n username: request.user,\n password: request.password || ''\n };\n }\n // console.log('\\r\\nDataServiceRequest - \\r\\n\\n', request);\n let axiosTimeout = request.timeoutMS || 10000;\n // check if on client side.\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\n // @ts-ignore -using client window object\n if (typeof window != undefined && window.___initialData___) {\n // @ts-ignore -using client window object\n if (window.___initialData___._clientPlatformSetting?.clientSideDataActionTimeoutInMs) {\n // @ts-ignore -using client window object\n axiosTimeout = window.___initialData___._clientPlatformSetting.clientSideDataActionTimeoutInMs;\n }\n }\n } else {\n const serverSideDataActionTimeoutInMs = process.env.serverSideDataActionTimeoutInMs;\n axiosTimeout =\n serverSideDataActionTimeoutInMs && serverSideDataActionTimeoutInMs !== ''\n ? Number(serverSideDataActionTimeoutInMs)\n : 4000;\n }\n axios\n .request({\n method: request.method || 'get',\n url,\n data: request.body,\n auth: authenticationCreds,\n headers: request.headers || {},\n timeout: axiosTimeout,\n cancelToken: cancelToken.token\n })\n .then(axiosResponse => {\n const response = {\n requestUri: url,\n statusCode: axiosResponse.status,\n statusText: axiosResponse.statusText,\n headers: axiosResponse.headers,\n body: axiosResponse.data\n };\n done = true;\n success(response);\n })\n .catch(axiosError => {\n const response = {\n requestUri: url,\n statusCode: axiosError.response ? parseInt(axiosError.response.status, 10) : 0,\n statusText: axiosError.name,\n body: axiosError.message,\n data: axiosError.response ? axiosError.response.data : {},\n headers: axiosError.response ? axiosError.response.headers : {}\n };\n error({ message: 'HTTP request failed', request, response });\n });\n } else {\n error({\n message: 'Only requests to non-absolute urls are supported at this time without JSONP callback'\n });\n }\n return result;\n }\n};\n\nconst prepareRequest = (request, handler, context) => {\n /// Prepares a request object so that it can be sent through the network.\n /// Object that represents the request to be sent.\n /// Handler for data serialization\n /// Context used for preparing the request\n\n // Default to GET if no method has been specified.\n if (!request.method) {\n request.method = 'GET';\n }\n\n if (!request.headers) {\n request.headers = {};\n } else {\n normalizeHeaders(request.headers);\n }\n\n if (request.headers.Accept === undefined) {\n request.headers.Accept = handler.accept;\n }\n\n if (request.data && request.body === undefined) {\n handler.write(request, context);\n }\n\n if (!request.headers['OData-MaxVersion']) {\n request.headers['OData-MaxVersion'] = handler.maxDataServiceVersion || '4.0';\n }\n};\n\nconst invokeRequest = (request, success, error, handler, httpClient, context) => {\n /// Sends a request containing OData payload to a server.\n /// Object that represents the request to be sent..\n /// Callback for a successful read operation.\n /// Callback for handling errors.\n /// Handler for data serialization.\n /// HTTP client layer.\n /// Context used for processing the request\n\n return httpClient.request(\n request,\n response => {\n try {\n if (response.headers) {\n normalizeHeaders(response.headers);\n }\n\n if (response.data === undefined && response.statusCode !== 204) {\n if (!handler.read(response, context)) {\n throw { message: 'Handler could not parse response.' };\n }\n }\n } catch (err) {\n if (err.request === undefined) {\n err.request = request;\n }\n if (err.response === undefined) {\n err.response = response;\n }\n error(err);\n return;\n }\n\n success(response.data, response);\n },\n error\n );\n};\n\nexport const ODataHttpRequest = (request, success, error) => {\n /// Sends a request containing OData payload to a server.\n /// Object that represents the request to be sent.\n /// Callback for a successful read operation.\n /// Callback for handling errors.\n /// Handler for data serialization.\n /// HTTP client layer.\n /// Conceptual metadata for this request.\n\n success = success || (data => process.env.NODE_ENV !== 'production' && console.log(JSON.stringify(data)));\n error =\n error ||\n (err => {\n throw err;\n });\n\n // Augment the request with additional defaults.\n request.recognizeDates = request.recognizeDates || false;\n request.useJsonLight = request.useJsonLight || false;\n request.inferJsonLightFeedAsObject = request.inferJsonLightFeedAsObject || false;\n request.callbackParameterName = request.callbackParameterName || defaultHttpClient.callbackParameterName;\n request.formatQueryString = request.formatQueryString || defaultHttpClient.formatQueryString;\n request.enableJsonpCallback = request.enableJsonpCallback || defaultHttpClient.enableJsonpCallback;\n\n // Create the base context for read/write operations, also specifying complete settings.\n const context = {\n recognizeDates: request.recognizeDates,\n callbackParameterName: request.callbackParameterName,\n formatQueryString: request.formatQueryString,\n enableJsonpCallback: request.enableJsonpCallback,\n useJsonLight: request.useJsonLight,\n inferJsonLightFeedAsObject: request.inferJsonLightFeedAsObject\n };\n\n try {\n prepareRequest(request, jsonHandler, context);\n return invokeRequest(request, success, error, jsonHandler, defaultHttpClient, context);\n } catch (err) {\n error(err);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport const MAX_DATA_SERVICE_VERSION = '4.0';\nexport const jsonMediaType = 'application/json';\n\nconst CONTENT_TYPE_HEADER_NAME = 'Content-Type';\nconst ODATA_VERSION = 'OData-Version';\nconst ODATA_MAX_VERSION = 'OData-MaxVersion';\n\nconst contentType = str => {\n /// Parses a string into an object with media type and properties.\n /// String with media type to parse.\n /// null if the string is empty; an object with 'mediaType' and a 'properties' dictionary otherwise.\n\n if (!str) {\n return null;\n }\n\n const contentTypeParts = str.split(';');\n const properties = {};\n\n let i;\n let len;\n for (i = 1, len = contentTypeParts.length; i < len; i++) {\n const contentTypeParams = contentTypeParts[i].split('=');\n properties[contentTypeParams[0].trim()] = contentTypeParams[1];\n }\n\n return { mediaType: contentTypeParts[0].trim(), properties };\n};\n\nexport const jsonContentType = contentType(jsonMediaType);\n\nconst contentTypeToString = contentTypeObj => {\n /// Serializes an object with media type and properties dictionary into a string.\n /// Object with media type and properties dictionary to serialize.\n /// String representation of the media type object; undefined if contentType is null or undefined.\n\n if (!contentTypeObj) {\n return undefined;\n }\n\n let result = contentTypeObj.mediaType;\n for (const property in contentTypeObj.properties) {\n if (contentTypeObj.properties.hasOwnProperty(property)) {\n result += ';' + property + '=' + contentTypeObj.properties[property];\n }\n }\n return result;\n};\n\nconst createReadWriteContext = (contentTypeStr, dataServiceVersion, context, handler) => {\n /// Creates an object that is going to be used as the context for the handler's parser and serializer.\n /// Object with media type and properties dictionary.\n /// String indicating the version of the protocol to use.\n /// Operation context.\n /// Handler object that is processing a resquest or response.\n /// Context object.\n\n // First create a clone\n const rwContext = { ...context };\n\n // And then override with provided parameters\n rwContext['contentType'] = contentTypeStr || jsonContentType;\n rwContext['dataServiceVersion'] = dataServiceVersion;\n rwContext['handler'] = handler;\n\n return rwContext;\n};\n\nconst versionRE = /^\\s?(\\d+\\.\\d+);?.*$/;\nconst getDataServiceVersion = headerVersion => {\n /// Gets the value of the OData-Version header from a request or response.\n /// Object representing a request or a response.\n /// Data service version; undefined if the header cannot be found.\n\n if (headerVersion) {\n const matches = versionRE.exec(headerVersion);\n if (matches && matches.length) {\n return matches[1];\n }\n }\n};\n\nconst handlerRead = (handler, response, context) => {\n /// Invokes the parser associated with a handler for reading the payload of a HTTP response.\n /// Handler object that is processing the response.\n /// Parser function that will process the response payload.\n /// HTTP response whose payload is going to be processed.\n /// Object used as the context for processing the response.\n /// True if the handler processed the response payload and the response.data property was set; false otherwise.\n\n if (!response || !response.headers) {\n return false;\n }\n\n const cType = contentType(response.headers[CONTENT_TYPE_HEADER_NAME]);\n const version = getDataServiceVersion(response) || '';\n const body = response.body;\n\n if (!body) {\n return false;\n }\n\n if (jsonMediaType.indexOf(cType.mediaType) >= 0) {\n const readContext = createReadWriteContext(cType, version, context, handler);\n readContext.response = response;\n response.data = typeof body === 'string' ? JSON.parse(body) : body;\n return response.data !== undefined;\n }\n\n return false;\n};\n\nconst maxVersion = (left, right) => {\n /// Compares to version strings and returns the higher one.\n /// Version string in the form \"major.minor.rev\"\n /// Version string in the form \"major.minor.rev\"\n /// The higher version string.\n\n if (left === right) {\n return left;\n }\n\n const leftParts = left.split('.');\n const rightParts = right.split('.');\n\n const len = leftParts.length >= rightParts.length ? leftParts.length : rightParts.length;\n\n for (let i = 0; i < len; i++) {\n const leftVersion = leftParts[i] && parseInt(leftParts[i], 10);\n const rightVersion = rightParts[i] && parseInt(rightParts[i], 10);\n if (leftVersion > rightVersion) {\n return left;\n }\n if (leftVersion < rightVersion) {\n return right;\n }\n }\n};\n\nconst handlerWrite = (handler, request, context) => {\n /// Invokes the serializer associated with a handler for generating the payload of a HTTP request.\n /// Handler object that is processing the request.\n /// Serializer function that will generate the request payload.\n /// HTTP request whose payload is going to be generated.\n /// Object used as the context for serializing the request.\n /// True if the handler serialized the request payload and the request.body property was set; false otherwise.\n if (!request || !request.headers) {\n return false;\n }\n\n const cType = contentType(request.headers[CONTENT_TYPE_HEADER_NAME]);\n const version = getDataServiceVersion(request.headers[ODATA_VERSION]);\n\n if (!cType || jsonMediaType.indexOf(cType.mediaType)) {\n const writeContext = createReadWriteContext(cType, version, context, handler);\n writeContext.request = request;\n request.body = request.data;\n\n if (request.body !== undefined) {\n request.headers[ODATA_VERSION] = version ? maxVersion(version, '4.0') : '4.0';\n request.headers.ContentType = request.headers[CONTENT_TYPE_HEADER_NAME] || contentTypeToString(writeContext.contentType);\n request.headers[ODATA_MAX_VERSION] = request.headers[ODATA_MAX_VERSION] || handler.maxDataServiceVersion;\n return true;\n }\n }\n\n return false;\n};\n\nexport const jsonHandler = {\n accept: jsonMediaType,\n maxDataServiceVersion: MAX_DATA_SERVICE_VERSION,\n read(response, context) {\n return handlerRead(this, response, context);\n },\n\n write(request, context) {\n return handlerWrite(this, request, context);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nconst EDM = 'Edm.';\nconst EDM_BOOLEAN = EDM + 'Boolean';\nconst EDM_BYTE = EDM + 'Byte';\nconst EDM_DATETIME = EDM + 'DateTime';\nconst EDM_DATETIMEOFFSET = EDM + 'DateTimeOffset';\nconst EDM_DECIMAL = EDM + 'Decimal';\nconst EDM_DOUBLE = EDM + 'Double';\nconst EDM_INT16 = EDM + 'Int16';\nconst EDM_INT32 = EDM + 'Int32';\nconst EDM_INT64 = EDM + 'Int64';\nconst EDM_SBYTE = EDM + 'SByte';\nconst EDM_SINGLE = EDM + 'Single';\nconst EDM_TIME = EDM + 'Time';\n\nconst parseBool = propertyValue => {\n /// Parses a string into a boolean value.\n /// Value to parse.\n /// true if the property value is 'true'; false otherwise.\n\n if (typeof propertyValue === 'boolean') {\n return propertyValue;\n }\n\n return typeof propertyValue === 'string' && propertyValue.toLowerCase() === 'true';\n};\n\nconst formatNumberWidth = (value, width, append) => {\n /// Formats the specified value to the given width.\n /// Number to format (non-negative).\n /// Minimum width for number.\n /// Flag indicating if the value is padded at the beginning (false) or at the end (true).\n /// Text representation.\n let result = value.toString(10);\n while (result.length < width) {\n if (append) {\n result += '0';\n } else {\n result = '0' + result;\n }\n }\n\n return result;\n};\n\nconst parseTimezone = timezone => {\n /// Parses a timezone description in (+|-)nn:nn format.\n /// Timezone offset.\n /// \n /// An object with a (d)irection property of 1 for + and -1 for -,\n /// offset (h)ours and offset (m)inutes.\n /// \n\n let direction = timezone.substring(0, 1);\n direction = direction === '+' ? 1 : -1;\n\n const offsetHours = parseInt(timezone.substring(1), 10);\n const offsetMinutes = parseInt(timezone.substring(timezone.indexOf(':') + 1), 10);\n return { d: direction, h: offsetHours, m: offsetMinutes };\n};\n\n// The captured indices for this expression are:\n// 0 - complete input\n// 1 - direction\n// 2,3,4 - years, months, days\n// 5,6,7,8 - hours, minutes, seconds, miliseconds\nconst parseTimeRE = /^([+-])?P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)(?:\\.(\\d+))?S)?)?/;\n\n// The captured indices for this expression are:\n// 0 - complete input\n// 1,2,3 - year with optional minus sign, month, day\n// 4,5,6 - hours, minutes, seconds\n// 7 - optional milliseconds\n// 8 - everything else (presumably offset information)\nconst parseDateTimeRE = /^(-?\\d{4,})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(.*)$/;\n\nconst getCanonicalTimezone = timezone => {\n /// Gets the canonical timezone representation.\n /// Timezone representation.\n /// An 'Z' string if the timezone is absent or 0; the timezone otherwise.\n\n return !timezone || timezone === 'Z' || timezone === '+00:00' || timezone === '-00:00' ? 'Z' : timezone;\n};\n\nconst parseDuration = duration => {\n /// Parses a string in xsd:duration format.\n /// Duration value.\n /// \n /// This method will throw an exception if the input string has a year or a month component.\n /// \n /// Object representing the time\n\n const parts = parseTimeRE.exec(duration);\n\n if (parts === null) {\n throw { message: 'Invalid duration value.' };\n }\n\n const years = parts[2] || '0';\n const months = parts[3] || '0';\n const days = parseInt(parts[4], 10) || 0;\n const hours = parseInt(parts[5], 10) || 0;\n const minutes = parseInt(parts[6], 10) || 0;\n const seconds = parseFloat(parts[7]) || 0;\n\n if (years !== '0' || months !== '0') {\n throw { message: 'Unsupported duration value.' };\n }\n\n let ms: any = parts[8];\n let ns: any = 0;\n if (!ms) {\n ms = 0;\n } else {\n if (ms.length > 7) {\n throw { message: 'Cannot parse duration value to given precision.' };\n }\n\n ns = formatNumberWidth(ms.substring(3), 4, true);\n ms = formatNumberWidth(ms.substring(0, 3), 3, true);\n\n ms = parseInt(ms, 10);\n ns = parseInt(ns, 10);\n }\n\n ms += seconds * 1000 + minutes * 60000 + hours * 3600000 + days * 86400000;\n\n if (parts[1] === '-') {\n ms = -ms;\n }\n\n const result: any = { ms, __edmType: 'Edm.Time' };\n\n if (ns) {\n result.ns = ns;\n }\n return result;\n};\n\nconst parseDateTimeOffset = (value, withOffset, nullOnError) => {\n /// Parses a string into a DateTime value.\n /// Value to parse.\n /// Whether offset is expected.\n /// The parsed value.\n\n // We cannot parse this in cases of failure to match or if offset information is specified.\n const parts = parseDateTimeRE.exec(value);\n const offset = parts ? getCanonicalTimezone(parts[8]) : null;\n\n if (!parts || (!withOffset && offset !== 'Z')) {\n if (nullOnError) {\n return null;\n }\n throw { message: 'Invalid date/time value' };\n }\n\n // Pre-parse years, account for year '0' being invalid in dateTime.\n let year = parseInt(parts[1], 10);\n if (year <= 0) {\n year++;\n }\n\n // Pre-parse optional milliseconds, fill in default. Fail if value is too precise.\n let ms: any = parts[7];\n let ns: any = 0;\n if (!ms) {\n ms = 0;\n } else {\n if (ms.length > 7) {\n if (nullOnError) {\n return null;\n }\n throw { message: 'Cannot parse date/time value to given precision.' };\n }\n\n ns = formatNumberWidth(ms.substring(3), 4, true);\n ms = formatNumberWidth(ms.substring(0, 3), 3, true);\n\n ms = parseInt(ms, 10);\n ns = parseInt(ns, 10);\n }\n\n // Pre-parse other time components and offset them if necessary.\n let hours = parseInt(parts[4], 10);\n let minutes = parseInt(parts[5], 10);\n const seconds = parseInt(parts[6], 10);\n if (offset !== 'Z') {\n // The offset is reversed to get back the UTC date, which is\n // what the API will eventually have.\n const timezone = parseTimezone(offset);\n const direction = -timezone.d;\n hours += timezone.h * direction;\n minutes += timezone.m * direction;\n }\n\n // Set the date and time separately with setFullYear, so years 0-99 aren't biased like in Date.UTC.\n const result: any = new Date();\n result.setUTCFullYear(\n year, // Year.\n parseInt(parts[2], 10) - 1, // Month (zero-based for Date.UTC and setFullYear).\n parseInt(parts[3], 10) // Date.\n );\n result.setUTCHours(hours, minutes, seconds, ms);\n\n if (isNaN(result.valueOf())) {\n if (nullOnError) {\n return null;\n }\n throw { message: 'Invalid date/time value' };\n }\n\n if (withOffset) {\n result.__edmType = 'Edm.DateTimeOffset';\n result.__offset = offset;\n }\n\n if (ns) {\n result.__ns = ns;\n }\n\n return result;\n};\n\nexport const jsonLightReadStringPropertyValue = (value, propertyType, recognizeDates) => {\n /// Convertes the value of a string property in a JSON light object to its library representation.\n /// String value to convert.\n /// Type name of the property.\n /// Flag indicating whether datetime literal strings should be converted to JavaScript Date objects.\n /// String property value in its library representation.\n\n switch (propertyType) {\n case EDM_BOOLEAN:\n return parseBool(value);\n case EDM_BYTE:\n case EDM_INT16:\n case EDM_INT32:\n case EDM_INT64:\n case EDM_SBYTE:\n return parseInt(value, 10);\n case EDM_DOUBLE:\n case EDM_SINGLE:\n case EDM_DECIMAL:\n return parseFloat(value);\n case EDM_TIME:\n return parseDuration(value);\n case EDM_DATETIME:\n const dateStr = value || '';\n const time = dateStr.substring(dateStr.indexOf('T') + 1);\n const timezoneOffsetIndex = time.indexOf('-');\n timezoneOffsetIndex === -1 ? time.indexOf('+') : timezoneOffsetIndex;\n\n if (timezoneOffsetIndex !== -1) {\n return parseDateTimeOffset(value, true, /* nullOnError */ false);\n } else {\n return parseDateTimeOffset(value, false, /* nullOnError */ false);\n }\n case EDM_DATETIMEOFFSET:\n return parseDateTimeOffset(value, true, /* nullOnError */ false);\n }\n\n if (recognizeDates) {\n return (\n parseDateTimeOffset(value, false, /* nullOnError */ true) || parseDateTimeOffset(value, true, /* nullOnError */ true) || value\n );\n }\n return value;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum EventLevel {\n LogAlways = 0,\n Critical = 1,\n Error = 2,\n Warning = 3,\n Informational = 4,\n Verbose = 5\n}\n\nexport enum EventChannel {\n Admin = 16,\n Operational = 17,\n Analytic = 18,\n Debug = 19\n}\n\nexport interface ILoggingSink {\n writeEvent(event: Event): void;\n setSessionInfo(\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string,\n screenResolution: string\n ): void;\n setInstrumentationKey(instrumentationKey: string): void;\n}\n\nexport class Utils {\n public static getParameterNames(func: Function): string[] {\n return [];\n }\n\n public static generateGuid(): string {\n return '';\n }\n\n public static emptyGuid(): string {\n return '';\n }\n}\n\nexport enum EventType {\n None = 0,\n Custom = 1,\n PageView = 2\n}\n\nexport class PageViewMetadata {\n public PageName: string;\n}\n\nexport class EventStaticMetadata {\n public Name: string;\n public Id: number;\n public Version: number;\n public Level: EventLevel;\n public LevelName: string;\n public Channel: EventChannel;\n public ChannelName: string;\n public Keywords: string[];\n public Task: string;\n public OpCode: string;\n public Message: string;\n}\n\nexport class EventCoreFields {\n public ClientTimestamp: number;\n public AppSessionId: string;\n public UserSessionId: string;\n public DeviceId: string;\n public DeviceNumber: string;\n public TerminalId: string;\n public UserId: string;\n public TenantId: string;\n public OfflineAvailability: string;\n public OfflineCurrentMode: string;\n public ScreenResolution: string;\n}\n\nexport class Event {\n public Type: EventType;\n public PageViewMetadata: PageViewMetadata;\n public StaticMetadata: EventStaticMetadata;\n public CoreFields: EventCoreFields;\n public Payload: {\n [name: string]: any;\n };\n constructor(\n type: EventType,\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string,\n screenResolution: string\n ) {}\n}\n\nexport class DebuggingConsoleSink implements ILoggingSink {\n public setSessionInfo(\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string\n ): void {}\n\n public setInstrumentationKey(instrumentationKey: string): void {}\n\n public writeEvent(event: Event): void {}\n}\n\nexport class LoggerBase {\n public static writeEvent(\n name: string,\n eventId: number,\n version: number,\n channel: EventChannel,\n level: EventLevel,\n keywords: string[],\n task: string,\n opCode: string,\n message: string\n ) {\n // console.log(`name: ${name}, eventId: ${eventId}, version: ${version}, channel: ${this.getEnumKeyForValue(EventChannel, channel)}`);\n // console.log(\n // `level: ${this.getEnumKeyForValue(\n // EventLevel,\n // level\n // )}, keywords: ${keywords.toString()}, task: ${task}, opCode: ${opCode}, message: ${message}`\n // );\n }\n\n public static addLoggingSink(loggingSink: ILoggingSink): void {}\n\n public static getEnumKeyForValue(enumType: any, value: number): string {\n for (const key in Object.keys(enumType)) {\n if (enumType[key] === value) {\n return key;\n }\n }\n return '';\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EventChannel, EventLevel, ILoggingSink, LoggerBase } from './ConsoleEventWriter';\n\n/**\n * Attaches the logging sink to the LoggerBase.\n *\n * @method attachLoggingSink\n * @param sink {ILoggingSink} Sink to attach to Retail Logger.\n */\nexport function attachLoggingSink(sink: ILoggingSink) {\n LoggerBase.addLoggingSink(sink);\n}\n\nexport const modelManagersRetailServerRequestStarted = (requestId: string, requestUrl: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestStarted',\n 44004,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n );\n};\n\nexport const modelManagersRetailServerRequestError = (requestId: string, requestUrl: string, error: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestError',\n 44005,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' failed. Error: {2}.\"\n );\n};\n\nexport const modelManagersRetailServerRequestFinished = (requestId: string, requestUrl: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestFinished',\n 44006,\n EventChannel.Debug,\n 1,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n );\n};\n\nexport const genericWarning = (message: string): void => {\n LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n};\n\nexport const genericError = (message: string): void => {\n LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n};\n\nexport const genericInfo = (message: string): void => {\n LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n};\n\n/**\n * Class represents proxy events.\n * Event Code Range: 44000 - 44999.\n */\nexport class RetailLogger {\n public static LogEvent(eventName: Function, error?: string): void {\n error ? eventName(error) : eventName();\n }\n\n // Core - Event Range: 44000 - 44099.\n public static genericError(message: string): void {\n LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n }\n\n public static genericWarning(message: string): void {\n LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n }\n\n public static genericInfo(message: string): void {\n LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n }\n\n public static modelManagersRetailServerRequestStarted(requestId: string, requestUrl: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestStarted',\n 44004,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n );\n }\n\n public static modelManagersRetailServerRequestError(requestId: string, requestUrl: string, error: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestError',\n 44005,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' failed. Error: {2}.\"\n );\n }\n\n public static modelManagersRetailServerRequestFinished(requestId: string, requestUrl: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestFinished',\n 44006,\n EventChannel.Debug,\n 1,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n );\n }\n\n public static initEntitySetInvalidError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitEntitySetInvalidError',\n 44007,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with invalid InitEntitySet id '{0}' was reported.\"\n );\n }\n\n public static initEntitySetMultipleTimesError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitEntitySetMultipleTimesError',\n 44008,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with InitEntitySet ID '{0}' was reported multiple times.\"\n );\n }\n\n public static initEntitySetNoMethodNumberError(): void {\n LoggerBase.writeEvent(\n 'InitEntitySetNoMethodNumberError',\n 44009,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'The value InitEntitySet.All does not represent the number of methods that can be run'\n );\n }\n\n public static initPaymentEntitySetInvalidError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetInvalidError',\n 44010,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with invalid InitPaymentEntitySet id '{0}' was reported.\"\n );\n }\n\n public static initPaymentEntitySetMultipleTimesError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetMultipleTimesError',\n 44011,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with InitPaymentEntitySet ID '{0}' was reported multiple times.\"\n );\n }\n\n public static initPaymentEntitySetNoMethodNumberError(): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetNoMethodNumberError',\n 44012,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'The value InitPaymentEntitySet.All does not represent the number of methods that can be run'\n );\n }\n\n // Shopping Cart Service - Event Range: 44100 - 44199.\n public static shoppingCartServiceGetShoppingCartStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartStarted',\n 44100,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get shopping cart started.'\n );\n }\n\n public static shoppingCartServiceGetShoppingCartError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartError',\n 44101,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get shopping cart failed with error {0}.'\n );\n }\n\n public static shoppingCartServiceGetShoppingCartFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartFinished',\n 44102,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get shopping cart finished.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartStarted',\n 44104,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing item from cart started.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartError',\n 44105,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Removing item from cart failed with error {0}.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartFinished',\n 44106,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing item from cart finished.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeStarted',\n 44108,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Applying promotion code started.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeError',\n 44109,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Applying promotion code failed with error {0}.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeFinished',\n 44110,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Applying promotion code finished.'\n );\n }\n\n public static shoppingCartUpdateQuantityStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityStarted',\n 44112,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating quantity started.'\n );\n }\n\n public static shoppingCartUpdateQuantityError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityError',\n 44113,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Updating quantity failed with error {0}.'\n );\n }\n\n public static shoppingCartUpdateQuantityFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityFinished',\n 44114,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating quantity finished.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeStarted',\n 44116,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing promotion code started.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeError',\n 44117,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Removing promotion code failed with error {0}.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeFinished',\n 44118,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing promotion code finished.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdStarted',\n 44120,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating loyalty card id started.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdError',\n 44121,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Updating loyalty card id failed with error {0}.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdFinished',\n 44122,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating loyalty card id finished.'\n );\n }\n\n public static shoppingCartCommenceCheckoutStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutStarted',\n 44124,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Commence checkout started.'\n );\n }\n\n public static shoppingCartCommenceCheckoutError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutError',\n 44125,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Commence checkout failed with error {0}.'\n );\n }\n\n public static shoppingCartCommenceCheckoutFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutFinished',\n 44126,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Commence checkout finished.'\n );\n }\n\n public static shoppingCartGetPromotionsStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsStarted',\n 44128,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting promotions started.'\n );\n }\n\n public static shoppingCartGetPromotionsError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsError',\n 44129,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting promotions failed with error {0}.'\n );\n }\n\n public static shoppingCartGetPromotionsFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsFinished',\n 44130,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting promotions finished.'\n );\n }\n\n public static getSimpleProductsByIdStarted(): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdStarted',\n 44132,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting simple products by ids started.'\n );\n }\n\n public static getSimpleProductsByIdError(error: string): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdError',\n 44133,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting simple products by ids failed with error {0}.'\n );\n }\n\n public static getSimpleProductsByIdFinished(): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdFinished',\n 44134,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting simple products by ids finished.'\n );\n }\n\n public static getKitComponentsError(): void {\n LoggerBase.writeEvent(\n 'GetKitComponentsError',\n 44136,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'One of the kit components could not be retrieved.'\n );\n }\n\n public static searchProductsByProductIdsStarted(): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsStarted',\n 44140,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Searching products by product ids started.'\n );\n }\n\n public static searchProductsByProductIdsError(error: string): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsError',\n 44141,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Searching products by product ids failed with error {0}.'\n );\n }\n\n public static searchProductsByProductIdsFinished(): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsFinished',\n 44142,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Searching products by product ids finished.'\n );\n }\n\n // Checkout Service - Event Range: 44200 - 44299.\n public static checkoutServiceGetAllDeliveryOptionDescriptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsStarted',\n 44200,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get all delivery option descriptions started.'\n );\n }\n\n public static checkoutServiceGetAllDeliveryOptionDescriptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsError',\n 44201,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get all delivery option descriptions failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetAllDeliveryOptionDescriptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsFinished',\n 44202,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get all delivery option descriptions finished.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesStarted',\n 44204,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting delivery preferences started.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesError',\n 44205,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting delivery preferences failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesFinished',\n 44206,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting delivery preferences finished.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsStarted',\n 44208,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting order delivery options started.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsError',\n 44209,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting order delivery options failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsFinished',\n 44210,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting order delivery options finished.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsStarted',\n 44212,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting item delivery options started.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsError',\n 44213,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting item delivery options failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsFinished',\n 44214,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting item delivery options finished.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsStarted',\n 44216,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of order delivery specifications started.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsError',\n 44217,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update of order delivery specifications failed with error {0}.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsFinished',\n 44218,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of order delivery specifications finished.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsStarted',\n 44220,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of line delivery specifications started.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsError',\n 44221,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update of line delivery specifications failed with error {0}.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsFinished',\n 44222,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of line delivery specifications finished.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesStarted',\n 44224,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting payment card types started.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesError',\n 44225,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting payment card types failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesFinished',\n 44226,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting payment card types finished.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceStarted',\n 44228,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting gift card balance started.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceError',\n 44229,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting gift card balance failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceFinished',\n 44230,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting gift card balance finished.'\n );\n }\n\n public static checkoutServiceSubmitOrderStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderStarted',\n 44232,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Submit order started.'\n );\n }\n\n public static checkoutServiceSubmitOrderError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderError',\n 44233,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Submit order failed with error {0}.'\n );\n }\n\n public static checkoutServiceSubmitOrderFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderFinished',\n 44234,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Submit order finished.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlStarted',\n 44235,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card payment accept url started.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlFinished',\n 44236,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card payment accept url finished.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlError',\n 44237,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get card payment accept url failed with error {0}.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultStarted',\n 44238,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Retrieve card payment accept result started.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultFinished',\n 44239,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Retrieve card payment accept result finished.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultError',\n 44240,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Retrieve card payment accept result failed with error {0}.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderStarted',\n 44241,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order started.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderError',\n 44242,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order with error {0}.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderFinished',\n 44243,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order finished.'\n );\n }\n\n // Channel Service - Event Range: 44300 - 44349.\n public static channelServiceGetChannelConfigurationStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationStarted',\n 44300,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get channel Configuration started.'\n );\n }\n\n public static channelServiceGetChannelConfigurationError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationError',\n 44301,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get channel Configuration failed with error {0}.'\n );\n }\n\n public static channelServiceGetChannelConfigurationFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationFinished',\n 44302,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get channel Configuration finished.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoStarted',\n 44304,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get country region info started.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoError',\n 44305,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get country region info failed with error {0}.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoFinished',\n 44306,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get country region info finished.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoStarted',\n 44308,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get state province info started.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoError',\n 44309,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get state province info error {0}.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoFinished',\n 44310,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get state province info finished.'\n );\n }\n\n public static channelServiceGetTenderTypesStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesStarted',\n 44312,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get tender types started.'\n );\n }\n\n public static channelServiceGetTenderTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesError',\n 44313,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get tender types failed with error {0}.'\n );\n }\n\n public static channelServiceGetTenderTypesFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesFinished',\n 44314,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get tender types finished.'\n );\n }\n\n public static channelServiceGetCardTypesStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesStarted',\n 44315,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card types started.'\n );\n }\n\n public static channelServiceGetCardTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesError',\n 44316,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get card types failed with error {0}.'\n );\n }\n\n public static channelServiceGetCardTypesFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesFinished',\n 44317,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card types finished.'\n );\n }\n\n // Item Availability Service - Event Range: 44350 - 44369.\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted',\n 44350,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores with availability started.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityError(error: string): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityError',\n 44351,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get nearby stores with availability failed with error {0}.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished',\n 44352,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores with availability finished.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresStarted(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresStarted',\n 44354,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores started.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresError(error: string): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresError',\n 44355,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get nearby stores failed with error {0}.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresFinished(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresFinished',\n 44356,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores finished.'\n );\n }\n\n // Loyalty Service - Event Range: 44370 - 44399.\n public static loyaltyServiceGetLoyaltyCardsStarted(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsStarted',\n 44370,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get loyalty cards started.'\n );\n }\n\n public static loyaltyServiceGetLoyaltyCardsError(error: string): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsError',\n 44371,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get loyalty cards failed with error {0}.'\n );\n }\n\n public static loyaltyServiceGetLoyaltyCardsFinished(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsFinished',\n 44372,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get loyalty cards finished.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdStarted(): void {\n LoggerBase.writeEvent(\n 'loyaltyServiceUpdateLoyaltyCardIdStarted',\n 44374,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update loyalty card id started.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdError(error: string): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceUpdateLoyaltyCardIdError',\n 44375,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update loyalty card id failed with error {0}.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdFinished(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceUpdateLoyaltyCardIdFinished',\n 44376,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update loyalty card id finished.'\n );\n }\n\n // Customer Service - Event Range: 44400 - 44499.\n public static customerServiceGetCustomerStarted(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerStarted',\n 44400,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get customer started.'\n );\n }\n\n public static customerServiceGetCustomerError(error: string): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerError',\n 44401,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get customer failed with error {0}.'\n );\n }\n\n public static customerServiceGetCustomerFinished(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerFinished',\n 44402,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get customer finished.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionStarted(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionStarted',\n 44403,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Is authentication session started.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionError(error: string): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionError',\n 44404,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Is authentication session failed with error {0}.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionFinished(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionFinished',\n 44405,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Is authentication session finished.'\n );\n }\n\n // Order Service - Event Range: 44500 - 44599.\n public static getOrderHistoryStarted(): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryStarted',\n 44500,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order history started.'\n );\n }\n\n public static getOrderHistoryError(error: string): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryError',\n 44501,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get order history failed with error {0}.'\n );\n }\n\n public static getOrderHistoryFinished(): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryFinished',\n 44502,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order history finished.'\n );\n }\n\n public static getOrderDetailsStarted(): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsStarted',\n 44504,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order details started.'\n );\n }\n\n public static getOrderDetailsError(error: string): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsError',\n 44505,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get order details failed with error {0}.'\n );\n }\n\n public static getOrderDetailsFinished(): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsFinished',\n 44506,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order details finished.'\n );\n }\n\n // Commerce list realtime service - Event Range: 44600 - 44699.\n public static createWishListStarted(): void {\n LoggerBase.writeEvent(\n 'CreateWishListStarted',\n 44600,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Create wish list started.'\n );\n }\n\n public static createWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'CreateWishListError',\n 44601,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Create wish list failed with error {0}.'\n );\n }\n\n public static createWishListFinished(): void {\n LoggerBase.writeEvent(\n 'CreateWishListFinished',\n 44602,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Create wish list finished.'\n );\n }\n\n public static deleteWishListStarted(): void {\n LoggerBase.writeEvent(\n 'DeleteWishListStarted',\n 44604,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Delete wish list started.'\n );\n }\n\n public static deleteWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'DeleteWishListError',\n 44605,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Delete wish list failed with error {0}.'\n );\n }\n\n public static deleteWishListFinished(): void {\n LoggerBase.writeEvent(\n 'DeleteWishListFinished',\n 44606,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Delete wish list finished.'\n );\n }\n\n public static updateWishListStarted(): void {\n LoggerBase.writeEvent(\n 'UpdateWishListStarted',\n 44608,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update wish list started.'\n );\n }\n\n public static updateWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'UpdateWishListError',\n 44609,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update wish list failed with error {0}.'\n );\n }\n\n public static updateWishListFinished(): void {\n LoggerBase.writeEvent(\n 'UpdateWishListFinished',\n 44610,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update wish list finished.'\n );\n }\n\n public static getWishListsStarted(): void {\n LoggerBase.writeEvent(\n 'GetWishListsStarted',\n 44612,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish lists started.'\n );\n }\n\n public static getWishListsError(error: string): void {\n LoggerBase.writeEvent(\n 'GetWishListsError',\n 44613,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get wish lists failed with error {0}.'\n );\n }\n\n public static getWishListsFinished(): void {\n LoggerBase.writeEvent(\n 'GetWishListsFinished',\n 44614,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish lists finished.'\n );\n }\n\n public static getWishListStarted(): void {\n LoggerBase.writeEvent(\n 'GetWishListStarted',\n 44616,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish list started.'\n );\n }\n\n public static getWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'GetWishListError',\n 44617,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get wish list failed with error {0}.'\n );\n }\n\n public static getWishListFinished(): void {\n LoggerBase.writeEvent(\n 'GetWishListFinished',\n 44618,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish list finished.'\n );\n }\n\n public static addLinesToWishListStarted(): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListStarted',\n 44620,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add lines to wish list started.'\n );\n }\n\n public static addLinesToWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListError',\n 44621,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Add lines to wish list failed with error {0}.'\n );\n }\n\n public static addLinesToWishListFinished(): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListFinished',\n 44622,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add lines to wish list finished.'\n );\n }\n\n public static removeItemsFromWishListStarted(): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListStarted',\n 44624,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Remove items from wish list started.'\n );\n }\n\n public static removeItemsFromWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListError',\n 44625,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Remove items from wish list failed with error {0}.'\n );\n }\n\n public static removeItemsFromWishListFinished(): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListFinished',\n 44626,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Remove items from wish list finished.'\n );\n }\n\n public static updateLinesOnWishListStarted(): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListStarted',\n 44628,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update lines on wish list started.'\n );\n }\n\n public static updateLinesOnWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListError',\n 44629,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update lines on wish list failed with error {0}.'\n );\n }\n\n public static updateLinesOnWishListFinished(): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListFinished',\n 44630,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update lines on wish list finished.'\n );\n }\n\n public static addItemsToCartStarted(): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartStarted',\n 44632,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add items to cart started.'\n );\n }\n\n public static addItemsToCartError(error: string): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartError',\n 44633,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Add items to cart failed with error {0}.'\n );\n }\n\n public static addItemsToCartFinished(): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartFinished',\n 44634,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add items to cart finished.'\n );\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProxyError } from '../exceptions';\nimport { EMPTY, format } from '../extensions/StringExtensions';\nimport { DebuggingConsoleSink } from './ConsoleEventWriter';\nimport { attachLoggingSink, genericError, genericInfo, genericWarning } from './RetailLogger';\n\n/**\n * The tracer class allows information to be logged on the device for Information, Warning or Error\n * The same method call can be used for each type\n * Example:\n * Commerce.Proxy.Tracer.Information(\"Message {0} {1}\", [\"Arg1\", \"Arg2\"]); // With parameters to be formatted\n * Commerce.Proxy.Tracer.Information(\"Message\"); // Without parameters\n *\n * Example of different tracer logs\n * Dynamics-Information: <> <>\n * Dynamics-Warning: <> <>\n * Dynamics-Error: <> <>\n */\n\nexport class Tracer {\n private static TracerDynamics: string = 'Dynamics-';\n private static TracerDynamicsError: string = 'Error: ';\n\n private static TracingOn: boolean = true;\n\n private static Counters: any[] = new Array();\n private static Timers: any[] = new Array();\n\n public static init(): boolean {\n attachLoggingSink(new DebuggingConsoleSink());\n return true;\n }\n\n public static _initialized: boolean = Tracer.init();\n\n /**\n * Traces an informational message in the specified format.\n */\n public static Information(informationformat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericInfo(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, informationformat, ...args]));\n }\n }\n\n /**\n * Traces a warning message in the specified format.\n */\n public static Warning(warningFormat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericWarning(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, warningFormat, ...args]));\n }\n }\n\n /**\n * Traces an error message in the specified format.\n */\n public static Error(errorFormat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericError(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, errorFormat, ...args]));\n }\n }\n\n /**\n * Traces an error message in the specified format.\n */\n public static Errors(errors: ProxyError[], formatString: string, ...args: any[]): void {\n if (Tracer.TracingOn && errors !== null && errors.length > 0) {\n let errorMessage: string = '';\n let errorCode: string = '';\n let errorString: string = '';\n\n errors.forEach(error => {\n errorMessage = error.ErrorMessage || EMPTY;\n errorCode = error.ErrorCode || EMPTY;\n errorString = JSON.stringify(error);\n Tracer.Error(\n formatString +\n ' ' +\n format(\" \\n ErrorMessage: {0}; \\n ErrorCode: {1}; \\n ErrorObject: '{2}'\", errorMessage, errorCode, errorString),\n args\n );\n });\n }\n }\n\n public static StartCounter(uniqueFunctionName: string): void {\n let counter;\n if (Tracer.Counters[uniqueFunctionName] === undefined) {\n counter = new PerformanceCounters();\n counter.Name = uniqueFunctionName;\n } else {\n counter = Tracer.Counters[uniqueFunctionName];\n }\n counter.Count += 1;\n Tracer.Counters[uniqueFunctionName] = counter;\n const now = new Date().getTime();\n Tracer.Timers.push(now);\n }\n\n public static EndCounter(uniqueFunctionName: string): void {\n const now = new Date().getTime();\n const startTime = Tracer.Timers.pop();\n const counter = Tracer.Counters[uniqueFunctionName];\n counter.TotalTime += now - startTime;\n }\n\n public static DumpCounters() {\n for (const item in Tracer.Counters) {\n if (Tracer.Counters.hasOwnProperty(item)) {\n Tracer.Information(\n 'Method = {0} Number of calls = {1} TotalTime = {2}mS Avg = {3}mS',\n Tracer.Counters[item].Name,\n Tracer.Counters[item].Count,\n Tracer.Counters[item].TotalTime,\n Tracer.Counters[item].TotalTime / Tracer.Counters[item].Count\n );\n }\n }\n }\n\n private static GetMessage(type: string, formatString: string, ...args: any[]) {\n const now = '' + new Date().getTime() + 'mS';\n if (Tracer.TracingOn) {\n if (!args) {\n return Tracer.TracerDynamics + type + '\\t' + formatString + '\\t' + now;\n } else {\n return (\n Tracer.TracerDynamics + type + '\\t' + format.apply(null, [formatString, Array.prototype.slice.call(args)]) + '\\t' + now\n );\n }\n }\n }\n}\n\nclass PerformanceCounters {\n public Name: string;\n public Count: number = 0;\n public TotalTime: number = 0;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from './async-result';\nimport { IDataServiceRequest } from './Interfaces';\n\n/**\n * Calls the Retail action\n */\nexport function retailAction(input: IDataServiceRequest, callerContext: unknown): Promise {\n return input.execute(callerContext);\n}\n\nretailAction.prototype = {\n isAction: true,\n isObservable: true\n};\n\nexport function callActionOrExecute(request: IDataServiceRequest, callerContext: any): AsyncResult {\n return callerContext.chainAction ? callerContext.chainAction(retailAction, request) : request.execute(callerContext);\n}\n\nexport function executeAction(request: IDataServiceRequest, context: any): AsyncResult {\n if (!context) {\n throw new Error('context is undefined while executing action');\n }\n\n if (context.callerContext && context.callerContext.chainAction) {\n context.bypassCache && request.overrideCacheType(context.bypassCache);\n return context.callerContext.chainAction(retailAction, request);\n } else if (context.chainAction) {\n return context.chainAction(retailAction, request);\n }\n\n return new AsyncResult((resolve, reject) => {\n request\n .execute(context)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n reject(error);\n });\n });\n}\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != $parseFloat }, {\n parseFloat: $parseFloat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n"],"names":["DEPRECATED_HOOK_TYPES","ActionRegistrar","dataActionRegister","id","msdyn365Commerce","partnerDataAction","default","action","prototype","Action","isAction","registeredAction","dataAction","actionRegister","registration","registerHook","hookType","hook","indexOf","StaticTelemetry","LogLevel","hooks","Array","isArray","hookRegistration","Set","forEach","h","add","newRegistration","actionRegistration","pre","post","preRead","postRead","preReader","postReader","preHooks","postHooks","preReadHooks","postReadHooks","preReaderHooks","postReaderHooks","createObservableDataAction","options","wrappedAction","actionWrap","Error","input","name","inputFunc","isBatched","_action","RegistrationId","registrationId","func","_isBatched","newAction","setProperty","propertyName","value","registerAction","wrapDataAction","arg1","arg2","AsyncResult","resolve","reject","chainAction","then","result","catch","error","createDataActionHook","preHook","registerPreHook","actionId","postHook","registerPostHook","preReadonlyHook","registerPreReadOnlyHook","postReadonlyHook","registerPostReadOnlyHook","preReaderHook","registerPreReaderHook","postReaderHook","registerPostReaderHook","ActionError","constructor","super","this","Name","message","status","Object","setPrototypeOf","static","shouldReadFromAppCache","appCache","undefined","dataCacheType","shouldWriteToAppCache","isAppCacheData","hasCacheSetting","getCacheObjectType","GET_FROM_RETURNIDENTIFIER","addLocaleInformation","inputs","locale","DataServiceRequest","getCacheKey","endsWith","tmp","_cacheKeyFromInput","_resolveCacheEntryReference","dataServiceRequest","item","requestCache","isWrappingPromise","isObservable","cacheValueAsArray","key","map","cacheObjectType","_cacheObjectType","get","typeName","copyTo","valueItem","isAsyncResult","filter","data","length","isReturnTypeACollection","_query","logTelemetrySource","cacheValue","cacheKey","context","telemetry","s","ICacheSource","verboseLogger","values","readCacheEntriesBasedOnCacheKeyFromReturnType","cacheKeyFromReturnType","_cacheKeyFromReturnType","cacheKeyIdentifierFromReturnType","_cacheKeyIdentifierFromReturnType","entry","shouldRefresh","shouldRefreshAll","cacheEntries","Boolean","cacheEntriesReturn","readCacheEntries","cacheKeyFromInput","entries","cachedValueBasedOnInput","$ref","cachedValueBasedOnInputItem","resolvedRef","_saveEntityToCache","isCacheTypeApplication","isInstance","dataServiceRequestQuery","results","toString","call","identifierValue","existingCacheItem","existingCacheObjectType","existingCacheKeyIdentifierFromReturnType","existingCacheIsReturnTypeACollection","existingCacheTotalCount","_totalCount","type","identifier","isCollection","count","keys","entryKey","put","instance","saveCacheEntries","metadata","_otherOdata","others","listeners","Map","eventEmitter","window","EventEmitter","on","event","callback","set","push","emit","args","listener","removeAllListeners","delete","defaultHookTimeoutInMS","CLIENT_HYDRATE_KEY","CLIENT_HYDRATE_TYPE","Timer","timeoutInMS","Promise","setTimeout","bind","ActionTimer","_resolve","ActionExecutor","dataActionOption","_shouldUseInstanceCache","checkVersionForFeature","shouldUseInstanceCache","eventId","uuidv1","masterInput","cacheType","shouldCacheOutput","trace","addInputs","async","bypassAppCache","refreshingInputs","unique","_removeDuplicates","_getActionIdFromInputs","performanceUtils","getPerformanceUtils","executionId","performanceUtilsPackage","Random","Guid","generateGuid","runPreReadonlyDataActionPerformanceHook","internalCache","cache","_executeDataAction","runPostReadonlyDataActionPerformanceHook","isRefreshingAction","_runPreReadHooks","err","_runPreReaderHooks","uncached","needsRefresh","_checkForCachedData","_fetchOutputsAndRunPostReadHook","cachedActions","includes","outputs","_executeBatchedObservableActions","_executeObservableAction","_actionWrapper","log","_saveResponseToCache","_checkShouldInteractWithCache","i","cacheItem","getValue","_runPostReadHooks","_runPostReaderHooks","inputA","inputB","inputsActionId","getActionId","_getActionFromId","resolveRegistration","unwrapAction","getPreReadHooks","hookTimeout","Number","timer","from","reduce","previousTask","currentTask","race","requestContext","asSystemMetadata","exception","actionResult","getPostReaderHooks","getPreReaderHooks","getPreHooks","prevInput","tmpNextInput","finalNextInput","getPostReadHooks","getPostHooks","prevOutput","tmpNextOutput","finalNextOutput","isRefreshing","_inputs","_runPreHooks","e","convertedError","_convertToJSError","CorrelationId","clientSideCustomerTimeout","promises","_errorCode","ErrorTypeEnum","ProxyError","_runPostHooks","idx","appCacheData","usingInstanceCache","features","disable_instance_cache","actionName","entityId","entityType","isActionError","isTimeoutError","cacheEntry","assign","unresolvedSet","uncachedInputs","asyncOutputs","index","executor","innerResolve","innerReject","EventHelper","cachedPromise","run","actionResults","finally","unresolvedIndex","isServiceUnavailable","cachedItem","asyncOutput","bypassCache","refreshing","_interceptCacheForMocks","clientHydrateCacheKey","isClientHydrate","runOn","refresh","disable_bypass_request_cache","existingItem","mockItem","_getMockItem","mockItemJSObject","toJS","cacheNamespace","proxyError","ErrorCode","REFRESH_ACTIONS_CACHE_KEY","ActionContext","executionParams","cacheKeyMap","refreshConfigs","hasRun","currentActionsInQueue","nextTierCounter","next","spawnChildOnExecute","currentExecutionTier","threadId","debug","isMaxDepthExceeded","maxDepth","app","platform","getItemFromCache","_endCurrentTier","expectedActionCount","expectedActionsInCurrentTier","moduleTelemetry","Telemetry","isDebug","params","registerTraceLogger","traceLogger","GenericConsoleLogger","disable_app_cache","getRefreshActions","actionOption","runAllActionsInQueue","inputsArray","current","find","a","inputIdentifier","asyncResult","tierNum","refreshStartTimeInMS","splice","all","_type","update","dataArray","inputArray","preparedCacheKey","getAll","cachedEntries","getAllItems","expectedNumberOfChildThreads","nextTierStartingDepth","nextTier","refreshconfigslocal","param","execute","query","cachebypass","refreshActions","paramExecutor","actionInputs","size","disable_appcache_refresh_await","rf","refreshRequestCache","RequestCache","refreshContext","buildHydratedMockActionContext","CatalogsInput","customerAccountNumber","buildCacheKey","base","channelId","apiSettings","catalogId","user","getCatalogsAsync","callerContext","inputData","isAuthenticated","normalizeCacheKey","toUpperCase","transaction","observable","deep","_value","toCache","del","flushAll","businessPartnerUsersQuery","b2BUserId","B2BUserId","DataServiceQuery","BusinessPartnerUserClass","createCreateInput","entity","create","createBusinessPartnerUserAsync","request","executeAction","createUpdateInput","updateAsync","createDeleteAsync","deleteAsync","createReadAsync","read","readAsync","createReadAllAsync","queryResultSettings","resultSettings","readAllAsync","createRequestAccountStatementInput","accountStatementParameters","createDataServiceRequestForOperation","returnEntity","requestAccountStatementAsync","createRequestInvoiceCopyInput","invoiceId","deliveryType","requestInvoiceCopyAsync","createGetOperationRequestsInput","startDateTime","endDateTime","BusinessPartnerOperationRequestClass","getOperationRequestsAsync","createGetCurrentInput","getCurrentAsync","businessPartnersQuery","businessPartnerId","BusinessPartnerId","BusinessPartnerClass","getOrderHistoryAsync","OrderShipmentsClass","createGetOrderHistoryInput","createProspectAsync","businessPartnerProspect","BusinessPartnerProspectClass","createCreateProspectInput","getUsersAsync","createGetUsersInput","cartsQuery","Id","CartClass","createCartAsync","createSearchInput","cartSearchCriteria","searchAsync","createCheckoutInput","receiptEmail","tokenizedPaymentCard","receiptNumberSequence","cartTenderLines","cartVersion","SalesOrderClass","checkoutAsync","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","loyaltyCardId","currencyCode","LoyaltyPointRedemptionEstimateClass","getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync","createGetPaymentsHistoryInput","TenderLineClass","getPaymentsHistoryAsync","createGetLineDeliveryOptionsByChannelIdInput","lineShippingAddresses","filterOption","SalesLineDeliveryOptionClass","getLineDeliveryOptionsByChannelIdAsync","createGetLineDeliveryOptionsInput","getLineDeliveryOptionsAsync","createGetDeliveryPreferencesInput","CartDeliveryPreferencesClass","getDeliveryPreferencesAsync","createGetDeliveryOptionsInput","shippingAddress","cartLineIds","ignoreLinesWithDeliveryMode","DeliveryOptionClass","getDeliveryOptionsAsync","createUpdateLineDeliverySpecificationsInput","lineDeliverySpecifications","updateLineDeliverySpecificationsAsync","createUpdateDeliverySpecificationInput","deliverySpecification","updateDeliverySpecificationAsync","createAddChargeInput","moduleTypeValue","chargeCode","amount","addChargeAsync","createOverrideChargeInput","chargeLineId","reasonCodeLines","overrideChargeAsync","createAddCartLineChargeInput","cartLineId","addCartLineChargeAsync","createOverrideCartLineChargeInput","overrideCartLineChargeAsync","createVoidInput","voidAsync","createAddCartLinesInput","cartLines","addCartLinesAsync","createAddReturnCartLinesInput","returnCartLines","returnTransactionSearchLocation","addReturnCartLinesAsync","createUpdateCartLinesInput","updateCartLinesAsync","createVoidCartLinesInput","voidCartLinesAsync","createRemoveCartLinesInput","removeCartLinesAsync","createAddTenderLineInput","cartTenderLine","addTenderLineAsync","createCalculateTenderDiscountInput","tenderLine","TenderDiscountLineClass","calculateTenderDiscountAsync","createAddPreprocessedTenderLineInput","preprocessedTenderLine","addPreprocessedTenderLineAsync","createValidateTenderLineForAddInput","validateTenderLineForAddAsync","createUpdateTenderLineSignatureInput","tenderLineId","signatureData","updateTenderLineSignatureAsync","createGetDeclinedOrVoidedCardReceiptsInput","receiptRetrievalCriteria","ReceiptClass","getDeclinedOrVoidedCardReceiptsAsync","createCopyInput","targetCartType","copyAsync","createAddInvoicedSalesLinesToCartInput","transactionId","invoicedSalesLinesIds","addInvoicedSalesLinesToCartAsync","createRecallInvoicedSalesLinesInput","recallInvoicedSalesLineLookups","recallInvoicedSalesLinesAsync","createVoidTenderLineInput","isPreprocessed","forceVoid","voidTenderLineAsync","createIssueGiftCardInput","giftCardId","lineDescription","tenderTypeId","issueGiftCardAsync","createRefillGiftCardInput","refillGiftCardAsync","createCashOutGiftCardInput","cashOutGiftCardAsync","createSuspendInput","suspendAsync","createSuspendWithJournalInput","journalCartId","suspendWithJournalAsync","createResumeInput","resumeAsync","createResumeFromReceiptIdInput","receiptId","resumeFromReceiptIdAsync","createRemoveDiscountCodesInput","discountCodes","removeDiscountCodesAsync","createGetSuspendedInput","getSuspendedAsync","createOverrideCartLinePriceInput","price","overrideCartLinePriceAsync","createGetCardPaymentAcceptPointInput","cardPaymentAcceptSettings","extensionProperties","CardPaymentAcceptPointClass","getCardPaymentAcceptPointAsync","createRetrieveCardPaymentAcceptResultInput","resultAccessCode","cartId","settings","CardPaymentAcceptResultClass","retrieveCardPaymentAcceptResultAsync","createRecallOrderInput","salesId","recallOrderAsync","createRecallQuoteInput","quoteId","recallQuoteAsync","createRecalculateOrderInput","recalculateOrderAsync","createResetAllChargesInput","resetAllChargesAsync","createGetPromotionsInput","CartPromotionsClass","getPromotionsAsync","createGetAvailablePromotionsInput","CartPromotionLineClass","getAvailablePromotionsAsync","createRecallSalesInvoiceInput","recallSalesInvoiceAsync","createAddOrderInvoiceInput","addOrderInvoiceAsync","createAddInvoicesInput","invoiceIds","addInvoicesAsync","createUpdateCommissionSalesGroupInput","commissionSalesGroup","isUserInitiated","updateCommissionSalesGroupAsync","createAddCouponsInput","couponCodes","isLegacyDiscountCode","addCouponsAsync","createRemoveCouponsInput","removeCouponsAsync","createGetCartLineUserAlertsForAddInput","CartLineUserAlertsClass","getCartLineUserAlertsForAddAsync","createGetCartLineUserAlertsInput","getCartLineUserAlertsAsync","createGetChargeCodesInput","ChargeCodeClass","getChargeCodesAsync","createGetReceiptTypesInput","getReceiptTypesAsync","createSetInvoiceLinePriceInput","setInvoiceLinePriceAsync","createAddDiscountCodeInput","discountCode","addDiscountCodeAsync","createGetReturnOptionsInput","TenderTypeAmountClass","getReturnOptionsAsync","createValidateForCheckoutInput","CartLineValidationResultsClass","validateForCheckoutAsync","createGetTenderSuggestionsInput","getTenderSuggestionsAsync","catalogsQuery","recordId","RecordId","ProductCatalogClass","createProductCatalogAsync","createGetCatalogsInput","activeOnly","categoriesQuery","CategoryClass","createCategoryAsync","createGetCategoriesInput","getCategoriesAsync","createGetAttributesInput","categoryId","AttributeCategoryClass","getAttributesAsync","createGetCatalogAttributesInput","categoryIds","getCatalogAttributesAsync","createGetChildrenInput","getChildrenAsync","commerceListsQuery","CommerceListClass","createCommerceListAsync","createGetByCustomerInput","customerId","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","customersQuery","accountNumber","AccountNumber","CustomerClass","createCustomerAsync","customerSearchCriteria","GlobalCustomerClass","createSearchByFieldsInput","customerSearchByFieldCriteria","CustomerSearchByFieldCriteria","searchByFieldsAsync","createGetByAccountNumbersInput","accountNumbers","searchLocationValue","getByAccountNumbersAsync","createCreateCustomerTimelineItemInput","customerTimelineItem","CustomerTimelineItemClass","createCustomerTimelineItemAsync","createUpdateCustomerTimelineItemInput","updateCustomerTimelineItemAsync","createGetRefinersInput","searchCriteria","refinerSourceTypes","CustomerRefinerClass","getRefinersAsync","createGetOrderShipmentsHistoryInput","nextPageToken","getOrderShipmentsHistoryAsync","createPostNonTransactionalActivityLoyaltyPointsInput","affiliationId","activityTypeId","postNonTransactionalActivityLoyaltyPointsAsync","createGetPurchaseHistoryInput","PurchaseHistoryClass","getPurchaseHistoryAsync","createGetCustomerSearchFieldsInput","CustomerSearchFieldClass","getCustomerSearchFieldsAsync","createGetCustomerTimelineItemTypesInput","CustomerTimelineItemTypeMapClass","getCustomerTimelineItemTypesAsync","createGetCustomerTimelineItemsInput","getCustomerTimelineItemsAsync","createGetCustomerTimelineRefinersInput","CustomerTimelineRefinerClass","getCustomerTimelineRefinersAsync","createGetTitlesInput","CustomerTitleClass","getTitlesAsync","orgUnitsQuery","orgUnitNumber","OrgUnitNumber","OrgUnitClass","getOrgUnitLocationsByAreaAsync","searchArea","deliveryModeTypeFilter","OrgUnitLocationClass","createGetOrgUnitLocationsByAreaInput","createSearchOrgUnitLocationsInput","orgUnitLocationSearchCriteria","createGetOrgUnitConfigurationInput","ChannelConfigurationClass","getOrgUnitConfigurationAsync","getStoreHoursAsync","storeNumber","StoreHoursClass","createGetStoreHoursInput","getChannelDeliveryOptionsAsync","channelIds","ChannelDeliveryOptionClass","createGetChannelDeliveryOptionsInput","productListsQuery","ProductListClass","createProductListAsync","createGetProductListLinesInput","searchText","ProductListLineClass","getProductListLinesAsync","createAddProductListLinesInput","productListLines","addProductListLinesAsync","createUpdateProductListLinesInput","updateProductListLinesAsync","createRemoveProductListLinesInput","removeProductListLinesAsync","createCopyCartToProductListInput","isRewrite","isQuantityAggregate","copyCartToProductListAsync","productsQuery","ProductClass","createProductAsync","productSearchCriteria","ProductRefinerClass","createGetDimensionValuesInput","dimension","matchingDimensionValues","kitVariantResolutionContext","ProductDimensionValueClass","getDimensionValuesAsync","createGetDimensionValuesWithEstimatedAvailabilitiesInput","ProductDimensionValueInventoryAvailabilityClass","getDimensionValuesWithEstimatedAvailabilitiesAsync","createGetVariantsByDimensionValuesInput","SimpleProductClass","getVariantsByDimensionValuesAsync","createGetVariantsByComponentsInSlotsInput","matchingSlotToComponentRelationship","getVariantsByComponentsInSlotsAsync","createGetByIdsInput","productIds","inventLocationId","getByIdsAsync","createCompareInput","ProductComparisonLineClass","compareAsync","createGetRecommendedProductsInput","ProductSearchResultClass","getRecommendedProductsAsync","createRefineSearchByCategoryInput","refinementCriteria","refineSearchByCategoryAsync","createRefineSearchByTextInput","refineSearchByTextAsync","createGetProductSearchRefinersInput","getProductSearchRefinersAsync","address","ProductDeliveryOptionsClass","createChangesInput","changesAsync","createBeginReadChangedProductsInput","changedProductSearchCriteria","ReadChangedProductsSessionClass","beginReadChangedProductsAsync","createReadChangedProductsInput","readChangedProductsAsync","createGetDeletedListingsInput","skip","top","DeletedListingsResultClass","getDeletedListingsAsync","createGetAssortedProductIdsInput","includeFutureAssortedProducts","AssortedProductIdentityClass","getAssortedProductIdsAsync","createCheckProductsExistenceInput","productExistenceCriteria","ProductExistenceIdClass","checkProductsExistenceAsync","createGetDeletedCatalogsInput","getDeletedCatalogsAsync","createGetDeletedLanguagesInput","getDeletedLanguagesAsync","createGetProductRatingsInput","ProductRatingClass","getProductRatingsAsync","createGetProductAssortmentIntervalsInput","ProductAssortmentIntervalClass","getProductAssortmentIntervalsAsync","createDeleteListingsByCatalogsInput","catalogIds","deleteListingsByCatalogsAsync","createDeleteListingsByLanguagesInput","languages","deleteListingsByLanguagesAsync","createEndReadChangedProductsInput","session","endReadChangedProductsAsync","createUpdateListingPublishingStatusInput","publishingStatuses","updateListingPublishingStatusAsync","createGetCatalogProductAttributesInput","AttributeProductClass","getCatalogProductAttributesAsync","createGetPricesInput","itemId","inventoryDimensionId","barcode","unitOfMeasureSymbol","quantity","ProductPriceClass","getPricesAsync","createGetProductAvailabilitiesInput","itemIds","ProductAvailableQuantityClass","getProductAvailabilitiesAsync","createGetActivePricesInput","projectDomain","activeDate","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","includeAttainablePricesAndDiscounts","getActivePricesAsync","createGetFilteredSlotComponentsInput","slotId","selectedComponents","ProductComponentClass","getFilteredSlotComponentsAsync","createGetComponentByProductSlotRelationInput","componentRelation","getComponentByProductSlotRelationAsync","createGetSearchSuggestionsInput","hitPrefix","hitSuffix","SearchSuggestionClass","getSearchSuggestionsAsync","createGetCategoryPathsInput","categoryPathLookups","CategoryPathResultClass","CategoryPathLookups","getCategoryPathsAsync","createGetUnitsOfMeasureInput","UnitOfMeasureClass","getUnitsOfMeasureAsync","createSearchByCategoryInput","searchByCategoryAsync","createSearchByTextInput","searchByTextAsync","createSearchByCriteriaInput","searchByCriteriaAsync","createGetByLookupClausesInput","productLookupClauses","getByLookupClausesAsync","createGetRefinersByCategoryInput","getRefinersByCategoryAsync","createGetRefinersByTextInput","getRefinersByTextAsync","createGetRefinerValuesByCategoryInput","refinerId","refinerSourceValue","ProductRefinerValueClass","getRefinerValuesByCategoryAsync","createGetRefinerValuesByTextInput","getRefinerValuesByTextAsync","createGetChannelProductAttributesInput","getChannelProductAttributesAsync","createGetByIdInput","getByIdAsync","createGetAttributeValuesInput","AttributeValueClass","getAttributeValuesAsync","createGetMediaLocationsInput","MediaLocationClass","getMediaLocationsAsync","createGetMediaBlobsInput","MediaBlobClass","getMediaBlobsAsync","createGetDefaultComponentsInput","getDefaultComponentsAsync","createGetSlotComponentsInput","getSlotComponentsAsync","createGetAllRelationTypesInput","ProductRelationTypeClass","getAllRelationTypesAsync","createGetRelationTypesInput","getRelationTypesAsync","createGetRelatedProductsInput","relationTypeId","getRelatedProductsAsync","createGetApplicableWarrantiesInput","warrantableProductIds","ProductWarrantiesMappingClass","getApplicableWarrantiesAsync","createGetPriceInput","getPriceAsync","createCalculateProductPriceInput","calculateProductPriceAsync","createGetEstimatedProductWarehouseAvailabilityInput","productWarehouses","quantityUnitType","ProductWarehouseInventoryInformationClass","getEstimatedProductWarehouseAvailabilityAsync","createGetEstimatedAvailabilityInput","getEstimatedAvailabilityAsync","recommendationsQuery","RecommendationClass","getElementsAsync","recommendationCriteria","RecommendedElementClass","createGetElementsInput","salesOrdersQuery","createSalesOrderAsync","salesOrderSearchCriteria","createSearchSalesTransactionsByReceiptIdInput","searchSalesTransactionsByReceiptIdAsync","createSearchOrdersInput","orderSearchCriteria","searchOrdersAsync","createGetFulfillmentLinesInput","fulfillmentLineSearchCriteria","FulfillmentLineClass","getFulfillmentLinesAsync","createGetReceiptsInput","getReceiptsAsync","createSendReceiptInput","recipientAddresses","sendReceiptAsync","createGetGiftReceiptsInput","salesLineNumbers","SalesLineNumbers","getGiftReceiptsAsync","createGetByReceiptIdInput","orderStoreNumber","orderTerminalId","getByReceiptIdAsync","createGetSalesOrderDetailsByTransactionIdInput","getSalesOrderDetailsByTransactionIdAsync","createGetSalesOrderDetailsBySalesIdInput","getSalesOrderDetailsBySalesIdAsync","createGetOrderByChannelReferenceLookupCriteriaInput","channelReferenceLookupCriteria","getOrderByChannelReferenceLookupCriteriaAsync","createGetSalesOrderDetailsByQuotationIdInput","quotationId","getSalesOrderDetailsByQuotationIdAsync","createShipFulfillmentLinesInput","shipFulfillmentLines","ShipFulfillmentLines","shipFulfillmentLinesAsync","createAcceptFulfillmentLinesInput","fulfillmentLineParameter","FulfillmentLineParameter","acceptFulfillmentLinesAsync","createPickFulfillmentLinesInput","pickFulfillmentLinesAsync","createPackFulfillmentLinesInput","packFulfillmentLinesAsync","createMarkFulfillmentLinesAsPackedInput","markFulfillmentLinesAsPackedAsync","createMarkAsPickedInput","markAsPickedAsync","createGetFulfillmentPickingListsInput","pickingListFulfillmentLine","hardwareProfileId","getFulfillmentPickingListsAsync","createGetFulfillmentPackingSlipsInput","packFulfillmentLines","getFulfillmentPackingSlipsAsync","createGetFulfillmentPackingSlipsByIdInput","packingSlipId","PackingSlipId","getFulfillmentPackingSlipsByIdAsync","createRejectFulfillmentLinesInput","rejectFulfillmentLines","RejectFulfillmentLines","rejectFulfillmentLinesAsync","createGetInvoicesBySalesIdInput","SalesInvoiceClass","getInvoicesBySalesIdAsync","createGetOrderInvoicesInput","OrderInvoiceClass","getOrderInvoicesAsync","createGetInvoicesInput","invoiceSearchCriteria","getInvoicesAsync","createGetInvoiceDetailsInput","invoiceDetailsSearchCriteria","getInvoiceDetailsAsync","createGetInvoicedSalesLinesBySalesIdsInput","salesIds","SalesLineClass","getInvoicedSalesLinesBySalesIdsAsync","createCreatePickingListInput","createPickingListAsync","createCreatePickingListForItemsInput","pickAndPackSalesLineParameters","createPickingListForItemsAsync","createGetPickingListsInput","PickingListClass","getPickingListsAsync","createCreatePackingSlipInput","createPackingSlipAsync","createGetFulfillmentLineUserAlertsInput","fulfillmentOperation","FulfillmentLineUserAlertsClass","FulfillmentOperation","getFulfillmentLineUserAlertsAsync","createCheckInForOrderPickupInput","channelReferenceId","CheckInForOrderPickupConfirmationClass","checkInForOrderPickupAsync","createGetPackingSlipsDataInput","PackingSlipDataClass","getPackingSlipsDataAsync","scanResultsQuery","scannedText","ScannedText","ScanResultClass","storeQuery","createRoundAmountByTenderTypeInput","roundAmountByTenderTypeAsync","createGetAffiliationsByNameInput","affiliationNames","AffiliationClass","getAffiliationsByNameAsync","createVoidSuspendedTransactionsInput","suspendedCartIds","shiftId","shiftTerminalId","voidSuspendedTransactionsAsync","PromotionClass","createGetMerchantPropertiesByServiceAccountIdInput","serviceAccountIds","PaymentMerchantInformationClass","getMerchantPropertiesByServiceAccountIdAsync","createGetStoreSafesInput","StoreSafeClass","getStoreSafesAsync","createGetShiftReconciliationLinesInput","shiftReconciliationLineRetrievalCriteria","ShiftReconciliationLineClass","getShiftReconciliationLinesAsync","createReconcileLinesInput","shiftReconciliationLines","description","Description","reconcileLinesAsync","createUndoReconciliationInput","undoReconciliationAsync","createGetReceiptMasksInput","receiptTransactionType","ReceiptMaskClass","getReceiptMasksAsync","searchSuggestionCriteria","createStartSessionInput","overrideSession","startSessionAsync","createEndSessionInput","endSessionAsync","createActivateDeviceInput","deviceNumber","terminalId","deviceId","forceActivate","deviceType","DeviceActivationResultClass","activateDeviceAsync","createMassActivateDeviceInput","massActivateDeviceAsync","createDeactivateDeviceInput","deactivateDeviceAsync","createCreateHardwareStationTokenInput","CreateHardwareStationTokenResultClass","createHardwareStationTokenAsync","createValidateHardwareStationTokenInput","hardwareStationToken","ValidateHardwareStationTokenResultClass","validateHardwareStationTokenAsync","createGetBarcodeByIdInput","barcodeId","BarcodeClass","getBarcodeByIdAsync","createGetButtonGridByIdInput","buttonGridId","ButtonGridClass","getButtonGridByIdAsync","createGetButtonGridsWithoutImageInput","height","width","getButtonGridsWithoutImageAsync","createGetButtonGridsByIdsInput","getButtonGridsByIdsCriteria","getButtonGridsByIdsAsync","createGetImageBlobsByPictureIdsInput","pictureIds","getImageBlobsByPictureIdsAsync","createGetCardTypesInput","CardTypeInfoClass","getCardTypesAsync","createResolveCardTypesInput","cardNumberPrefix","cardType","paymentToken","resolveCardTypesAsync","createGetSupportedPaymentCardTypesInput","getSupportedPaymentCardTypesAsync","createGetCitiesInput","countryRegionId","stateProvinceId","countyId","CityInfoClass","getCitiesAsync","createGetCountryRegionsForShippingInput","CountryRegionInfoClass","getCountryRegionsForShippingAsync","createGetCountryRegionsByLanguageIdInput","languageId","getCountryRegionsByLanguageIdAsync","createGetOnlineChannelInput","OnlineChannelClass","getOnlineChannelAsync","createGetCountiesInput","CountyInfoClass","getCountiesAsync","createGetCreditMemoByIdInput","creditMemoId","CreditMemoClass","getCreditMemoByIdAsync","createGetDownloadIntervalInput","dataStoreName","getDownloadIntervalAsync","createGetTerminalDataStoreNameInput","getTerminalDataStoreNameAsync","createGetDownloadLinkInput","downloadSessionId","getDownloadLinkAsync","createGetDataDownloadParametersByTerminalInput","terminalDataDownloadRequestInfo","DataDownloadParametersClass","TerminalDataDownloadRequestInfo","getDataDownloadParametersByTerminalAsync","createGetDataUploadParametersByTerminalInput","terminalDataUploadRequestInfo","DataUploadParametersClass","TerminalDataUploadRequestInfo","getDataUploadParametersByTerminalAsync","createGetDownloadSessionsInput","DownloadSessionClass","getDownloadSessionsAsync","createGetInitialDownloadSessionsInput","getInitialDownloadSessionsAsync","createGetUploadJobDefinitionsInput","getUploadJobDefinitionsAsync","createGetUploadIntervalInput","getUploadIntervalAsync","createPostOfflineTransactionsInput","offlineTransactionForMPOS","postOfflineTransactionsAsync","createSetOfflineTerminalStateInput","offlineTerminalState","setOfflineTerminalStateAsync","createGetRetailTrialPlanOfferInput","getRetailTrialPlanOfferAsync","createGetLatestNumberSequenceInput","NumberSequenceSeedDataClass","getLatestNumberSequenceAsync","createGetReceiptNumberResetInfoInput","ReceiptNumberResetInfoClass","getReceiptNumberResetInfoAsync","createGetLoyaltyRewardPointActivityTimelineInput","cardNumber","rewardPointId","LoyaltyRewardPointActivityClass","getLoyaltyRewardPointActivityTimelineAsync","createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput","getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync","createCalculateTotalCurrencyAmountInput","currenciesAmount","CurrencyAmountClass","calculateTotalCurrencyAmountAsync","createGetDiscountCodeInput","DiscountCodeClass","getDiscountCodeAsync","createGetDiscountCodesByOfferIdInput","offerId","getDiscountCodesByOfferIdAsync","createGetDiscountCodesByKeywordInput","keyword","getDiscountCodesByKeywordAsync","createGetDistrictsInput","cityName","DistrictInfoClass","getDistrictsAsync","createGetHardwareStationProfilesInput","HardwareStationProfileClass","getHardwareStationProfilesAsync","createGetHardwareProfileByIdInput","HardwareProfileClass","getHardwareProfileByIdAsync","createGetLocalizedStringsInput","textId","LocalizedStringClass","getLocalizedStringsAsync","createGetOperationPermissionByIdInput","operationId","OperationPermissionClass","getOperationPermissionByIdAsync","createGetReasonCodesByIdInput","reasonCodeGroupId","ReasonCodeClass","getReasonCodesByIdAsync","createSearchReportDataSetInput","reportId","parameters","ReportDataSetClass","searchReportDataSetAsync","createGetReportDataSetByIdInput","getReportDataSetByIdAsync","createGetSrsReportDataSetInput","getSrsReportDataSetAsync","createGetIncomeExpenseAccountsInput","incomeExpenseAccountType","IncomeExpenseAccountClass","getIncomeExpenseAccountsAsync","createGetStateProvincesInput","StateProvinceInfoClass","getStateProvincesAsync","createGetZipCodesInput","district","ZipCodeInfoClass","getZipCodesAsync","createGetAddressFromZipCodeInput","zipPostalCode","getAddressFromZipCodeAsync","createDisassembleKitTransactionsInput","kitTransaction","KitTransactionClass","disassembleKitTransactionsAsync","createIssueLoyaltyCardInput","loyaltyCard","LoyaltyCardClass","issueLoyaltyCardAsync","createGetLoyaltyCardInput","getLoyaltyCardAsync","createGetCustomerLoyaltyCardsInput","getCustomerLoyaltyCardsAsync","createGetLoyaltyCardTransactionsInput","LoyaltyCardTransactionClass","getLoyaltyCardTransactionsAsync","createGetLoyaltyRewardPointsExpiringSoonInput","daysToExpiry","getLoyaltyRewardPointsExpiringSoonAsync","createSearchJournalTransactionsInput","TransactionClass","searchJournalTransactionsAsync","createGetGiftCardInput","pin","expirationMonth","expirationYear","GiftCardClass","getGiftCardAsync","createGetGiftCardInquiryInput","getGiftCardInquiryAsync","createGetNonSalesTransactionsInput","nonSalesTenderTypeValue","NonSalesTransactionClass","getNonSalesTransactionsAsync","createCreateNonSalesTransactionInput","nonSalesTransaction","createNonSalesTransactionAsync","createCreateDropAndDeclareTransactionInput","dropAndDeclareTransaction","DropAndDeclareTransactionClass","createDropAndDeclareTransactionAsync","createGetTaxOverridesInput","overrideBy","TaxOverrideClass","getTaxOverridesAsync","createGetCustomerBalanceInput","invoiceAccountNumber","CustomerBalancesClass","getCustomerBalanceAsync","createInitiateLinkToExistingCustomerInput","email","activationToken","emailTemplateId","emailProperties","LinkToExistingCustomerResultClass","ActivationToken","initiateLinkToExistingCustomerAsync","createFinalizeLinkToExistingCustomerInput","finalizeLinkToExistingCustomerAsync","createUnlinkFromExistingCustomerInput","unlinkFromExistingCustomerAsync","createGetOfflineSyncStatusInput","OfflineSyncStatsLineClass","getOfflineSyncStatusAsync","createGetOfflinePendingTransactionCountInput","getOfflinePendingTransactionCountAsync","createGetOfflinePendingTransactionCountByShiftInput","getOfflinePendingTransactionCountByShiftAsync","createUpdateDownloadSessionInput","downloadSession","updateDownloadSessionAsync","createUpdateApplicationVersionInput","appVersion","updateApplicationVersionAsync","createGetStorageAccessTokenForUploadInput","StorageAccessTokenClass","getStorageAccessTokenForUploadAsync","createGetBusinessProcessModelLibrariesInput","FrameworkClass","getBusinessProcessModelLibrariesAsync","createGetBusinessProcessModelLibraryInput","businessProcessModelFrameworkLineId","hierarchyDepth","getBusinessProcessModelLibraryAsync","createSearchTaskGuidesByTitleInput","taskGuideSearchText","queryTypeValue","TaskGuidesSearchResultClass","searchTaskGuidesByTitleAsync","createGenerateBusinessProcessModelPackageInput","taskRecording","generateBusinessProcessModelPackageAsync","createDownloadRecordingInput","businessProcessModelLineId","RecordingClass","downloadRecordingAsync","createLoadRecordingFromFileInput","recordingUrl","loadRecordingFromFileAsync","createGenerateRecordingFileInput","generateRecordingFileAsync","createGenerateTrainingDocumentInput","generateTrainingDocumentAsync","createGenerateRecordingBundleInput","generateRecordingBundleAsync","createUploadRecordingInput","uploadRecordingAsync","createGetAttributeDefinitionsInput","attributeDefinitionCriteria","AttributeDefinitionClass","getAttributeDefinitionsAsync","createGetAttributeGroupDefinitionsInput","attributeGroupDefinitionCriteria","AttributeGroupDefinitionClass","getAttributeGroupDefinitionsAsync","createSaveFiscalTransactionInput","fiscalTransaction","saveFiscalTransactionAsync","createValidatePrintReceiptCopyAllowedInput","salesOrderToPrint","validatePrintReceiptCopyAllowedAsync","createRegisterAuditEventInput","auditEvent","registerAuditEventAsync","createRegisterAndGetAuditEventInput","AuditEventClass","registerAndGetAuditEventAsync","createGetInventoryAvailableToPromiseInput","productId","InventoryAvailableToPromiseClass","getInventoryAvailableToPromiseAsync","createGetSalesOrdersWithNoFiscalTransactionsInput","getSalesOrdersWithNoFiscalTransactionsAsync","createGetNotificationsInput","subscribedOperations","NotificationItemClass","getNotificationsAsync","createAcknowledgeNotificationsInput","lastPullDateTime","acknowledgeNotificationsAsync","createGetFiscalIntegrationFiscalDocumentInput","functionalityProfileGroupId","fiscalIntegrationDocumentRetrievalCriteria","connectorType","FiscalIntegrationDocumentClass","getFiscalIntegrationFiscalDocumentAsync","createGetFiscalIntegrationNonFiscalDocumentInput","getFiscalIntegrationNonFiscalDocumentAsync","createGetFiscalIntegrationFiscalServiceSetupDocumentInput","getFiscalIntegrationFiscalServiceSetupDocumentAsync","createGetFiscalIntegrationFiscalServiceReadDataDocumentInput","getFiscalIntegrationFiscalServiceReadDataDocumentAsync","createProcessFiscalIntegrationFiscalServiceReadDataResultInput","documentToProcess","processFiscalIntegrationFiscalServiceReadDataResultAsync","createSaveFiscalIntegrationRegistrationResultInput","registrationResult","saveFiscalIntegrationRegistrationResultAsync","createGetFiscalIntegrationRegistrationProcessInput","FiscalIntegrationRegistrationProcessClass","getFiscalIntegrationRegistrationProcessAsync","createGetChannelSupportedFiscalIntegrationEventsByGroupInput","FiscalIntegrationSupportedEventsClass","getChannelSupportedFiscalIntegrationEventsByGroupAsync","createGetFiscalIntegrationTechnicalProfilesInput","FiscalIntegrationTechnicalProfileClass","getFiscalIntegrationTechnicalProfilesAsync","createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput","getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync","createGetFiscalRegistrationProcessSummaryInput","FiscalIntegrationFiscalRegistrationProcessSummaryClass","getFiscalRegistrationProcessSummaryAsync","createBackupFiscalRegistrationProcessContextInput","fiscalProcessCompleted","fiscalIntegrationSerializedContext","backupFiscalRegistrationProcessContextAsync","createGetActiveFiscalRegistrationProcessContextBackupInput","getActiveFiscalRegistrationProcessContextBackupAsync","createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput","fiscalIntegrationTechnicalProfileSearchCriteria","getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync","createGetFiscalIntegrationServiceStatusInput","fiscalIntegrationServiceInfo","FiscalIntegrationServiceStatusClass","getFiscalIntegrationServiceStatusAsync","createSubmitFiscalIntegrationDocumentInput","documentToSubmit","FiscalIntegrationServiceCommunicationResultClass","submitFiscalIntegrationDocumentAsync","createGetFeatureStatesInput","featureNames","FeatureStateClass","getFeatureStatesAsync","createGetLastFiscalIntegrationSequentialSignaturesInput","sequentialKeys","FiscalIntegrationSequentialSignatureDataClass","getLastFiscalIntegrationSequentialSignaturesAsync","createCreateFiscalTransactionInput","FiscalTransactionClass","createFiscalTransactionAsync","createGetEstimatedPickupTimeslotAvailabilitiesInput","PickupTimeslotAvailabilityClass","getEstimatedPickupTimeslotAvailabilitiesAsync","createCalculateSalesDocumentInput","salesDocument","calculateSalesDocumentAsync","createGetButtonGridsInput","getButtonGridsAsync","createGetButtonGridsByScreenSizeInput","getButtonGridsByScreenSizeAsync","createGetOperationalInsightsConfigurationInput","OperationalInsightsConfigurationClass","getOperationalInsightsConfigurationAsync","createGetCashDeclarationsInput","CashDeclarationClass","getCashDeclarationsAsync","createGetCountryRegionsInput","getCountryRegionsAsync","createGetCustomerGroupsInput","CustomerGroupClass","getCustomerGroupsAsync","createGetChannelDeliveryOptionConfigurationInput","ChannelDeliveryOptionConfigurationClass","getChannelDeliveryOptionConfigurationAsync","createGetChannelsByTypeInput","channelType","ChannelIdentityClass","getChannelsByTypeAsync","createGetChannelsInput","getChannelsAsync","createSearchChannelsInput","searchChannelsAsync","createGetEnvironmentConfigurationInput","EnvironmentConfigurationClass","getEnvironmentConfigurationAsync","createGetSearchConfigurationInput","SearchConfigurationClass","getSearchConfigurationAsync","createGetExtensionPackageDefinitionsInput","ExtensionPackageDefinitionClass","getExtensionPackageDefinitionsAsync","createGetExtensionProfileInput","ExtensionProfileClass","getExtensionProfileAsync","createGetDeviceConfigurationInput","DeviceConfigurationClass","getDeviceConfigurationAsync","createGetVisualProfileInput","VisualProfileClass","getVisualProfileAsync","createGetLanguagesInput","SupportedLanguageClass","getLanguagesAsync","createGetAffiliationsInput","getAffiliationsAsync","createGetOperationPermissionsInput","getOperationPermissionsAsync","createGetReasonCodesInput","getReasonCodesAsync","createGetReturnOrderReasonCodesInput","getReturnOrderReasonCodesAsync","createGetSalesTaxGroupsInput","SalesTaxGroupClass","getSalesTaxGroupsAsync","createGetTenderTypesInput","TenderTypeClass","getTenderTypesAsync","createGetDiscountCodesInput","getDiscountCodesAsync","createGetCurrenciesInput","CurrencyClass","getCurrenciesAsync","createGetCurrenciesAmountInput","getCurrenciesAmountAsync","createGetCommissionSalesGroupsInput","CommissionSalesGroupClass","getCommissionSalesGroupsAsync","createSearchCommissionSalesGroupsInput","searchCommissionSalesGroupsAsync","createGetPaymentMerchantInformationInput","getPaymentMerchantInformationAsync","createGetPaymentPropertiesIfModifiedInput","merchantInformationHash","getPaymentPropertiesIfModifiedAsync","createGetOnlineChannelPublishStatusInput","getOnlineChannelPublishStatusAsync","createSetOnlineChannelPublishStatusInput","publishingStatus","statusMessage","setOnlineChannelPublishStatusAsync","createGetInventoryConfigurationInput","ChannelInventoryConfigurationClass","getInventoryConfigurationAsync","createGetPurchaseConfigurationInput","ChannelPurchaseConfigurationClass","getPurchaseConfigurationAsync","createSearchJournalNamesInput","InventoryJournalNameClass","searchJournalNamesAsync","createGetAvailableDevicesInput","DeviceClass","getAvailableDevicesAsync","createGetUserDefinedSecretStringInput","secretName","getUserDefinedSecretStringAsync","createGetUserDefinedSecretCertificateInput","UserDefinedSecretCertificateResultClass","getUserDefinedSecretCertificateAsync","createGetImageBlobInput","imageId","getImageBlobAsync","createGetExtensibleEnumerationsInput","ExtensibleEnumerationContainerClass","getExtensibleEnumerationsAsync","createGetAddressPurposesInput","AddressPurposeClass","getAddressPurposesAsync","createGetReturnPolicyInput","ReturnPolicyClass","getReturnPolicyAsync","createGetEmailReceiptSettingsInput","EmailReceiptSettingsClass","getEmailReceiptSettingsAsync","entitySet","returnType","tokens","Paging","Sorting","filterSettings","Top","Skip","expand","expands","inlineCount","orderBy","Columns","ColumnName","object","_createODataParameters","_createRequest","setGetAllRecords","isGetAllRecords","operationName","GET","POST","ODATA_TOTAL_COUNT_PROPERTY","DEFAULT_HEADER","Prefer","OBO_REQUEST","GET_ACCOUNT_SELECTION_COOKIE","parseOdataResult","resultType","resultSet","hasNextPage","_actionId","getDataCacheType","overrideCacheType","Tracer","recurseEverything","_hasOperationName","_method","getActionIdFromInput","getCacheObjectValueFromReturnType","entityIdentifier","EntityIdentifier","Key","buildCacheFromInput","batchRequestUri","_callerContext","baseUrl","totalCount","queryParams","otherOdataProperties","requests","requestId","odataBatchRequest","requestUri","method","__batchRequests","batchRequests","changeRequests","_id","odataRequest","_requestUri","toJson","headers","__changeRequests","batchResponses","responses","errors","response","__changeResponses","concat","parseBatchResponses","ErrorParser","parseInt","parent","modifyDataInPlace","clone","prop","hasOwnProperty","property","arrayToJson","Date","toDateTimeOffset","array","dateTime","__edmType","__offset","pad","val","sign","getTimezoneOffset","offset","Math","abs","hours","floor","minutes","EMPTY","formattedKey","join","parameter","paramValue","isEmpty","encodeURIComponent","parameterSeparator","replace","isObjectNotEmptyOrNull","cacheKeyValue","convertToString","oun","JSON","stringify","getRequestUri","buildQueryHeader","loadPage","getAllPages","executeBatch","ODataHttpRequest","buildBatchRequest","__batchResponses","formatKey","formatFunctionParameter","addParameter","orderByColumns","column","isNullOrWhitespace","format","IsDescending","hasElements","ApiVersion","loadPageResults","headerName","cookies","isOBORequest","accountSelectionCustomerId","accountSelectionCookie","accountSelectionCustomerIdParts","split","tokenName","tokenValue","token","accessToken","cookieData","appSessionCookie","userSessionCookie","appSessionId","userSessionId","Utils","modelManagersRetailServerRequestStarted","modelManagersRetailServerRequestFinished","otherOdata","setMetadata","modelManagersRetailServerRequestError","odataList","newData","entityDictionary","odataObject","OfflineImage","ParentCategory","DisplayOrder","parseFloat","LocalizedDescription","Images","className","substr","lastIndexOf","NameTranslations","TextValueTranslationClass","ExtensionProperties","CommercePropertyClass","AffiliationLines","AffiliationLoyaltyTierClass","IsRequiredAmountPaid","IsDiscountFullyCalculated","IgnoreDiscountCalculation","AmountDue","AmountPaid","AttributeValues","AttributeValueBaseClass","IsTaxIncludedInPrice","BeginDateTime","jsonLightReadStringPropertyValue","BusinessDate","CancellationChargeAmount","EstimatedShippingAmount","CartLines","CartLineClass","CartTypeValue","ChannelId","ChargeAmount","CustomerOrderRemainingBalance","ChargeLines","ChargeLineClass","TaxViewLines","TaxViewLineClass","Comment","InvoiceComment","Coupons","CouponClass","CustomerId","CustomerOrderModeValue","DeliveryMode","DeliveryModeChargeAmount","DiscountAmount","DiscountAmountWithoutTax","DiscountCodes","SuspendedCartId","TransactionTypeValue","CustomerAccountDepositLines","CustomerAccountDepositLineClass","IncomeExpenseLines","IncomeExpenseLineClass","IncomeExpenseTotalAmount","IsReturnByReceipt","ReturnTransactionHasLoyaltyPayment","IsFavorite","IsRecurring","IsSuspended","LoyaltyCardId","ModifiedDateTime","OrderNumber","AvailableDepositAmount","OverriddenDepositAmount","OverriddenDepositWithoutCarryoutAmount","PrepaymentAmountPaid","PrepaymentRoundingDifference","PrepaymentAppliedOnPickup","PrepaymentAmountInvoiced","PromotionLines","QuotationExpiryDate","ReasonCodeLines","ReasonCodeLineClass","ReceiptEmail","RequestedDeliveryDate","RequiredDepositAmount","RequiredDepositWithoutCarryoutAmount","SalesId","ShippingAddress","AddressClass","StaffId","SubtotalAmount","SubtotalAmountWithoutTax","NetPrice","SubtotalSalesAmount","TaxAmount","TaxOnCancellationCharge","TaxOnShippingCharge","TaxOnNonShippingCharges","TaxOverrideCode","TenderLines","RefundableTenderLines","TerminalId","TotalAmount","TotalSalesAmount","TotalReturnAmount","TotalCarryoutSalesAmount","TotalCustomerOrderSalesAmount","TotalManualDiscountAmount","TotalManualDiscountPercentage","WarehouseId","IsCreatedOffline","CartStatusValue","ReceiptTransactionTypeValue","CommissionSalesGroup","Version","TotalItems","HasTaxCalculationTriggered","MerchantProperties","HasChargeCalculationTriggered","FiscalTransactions","ShippingChargeAmount","OtherChargeAmount","PeriodicDiscountsCalculateScopeValue","CreatedDateTime","ChargeGroup","PriceGroup","IsCustomerTaxInclusive","Phone","PhoneRecordId","PhoneExt","Cellphone","Email","EmailRecordId","Url","UrlRecordId","PersonNameId","FirstName","MiddleName","LastName","DirectoryPartyRecordId","PartyNumber","CustomerTypeValue","Language","CustomerGroup","CurrencyCode","CNPJCPFNumber","IdentificationNumber","InvoiceAccount","MandatoryCreditLimit","CreditRating","CreditLimit","Balance","Blocked","BlockedType","UseOrderNumberReference","OrganizationId","UsePurchaseRequest","MultilineDiscountGroup","TotalDiscountGroup","LineDiscountGroup","TaxGroup","SalesTaxGroup","CommissionSalesGroupId","TaxExemptNumber","VatNumber","TaxOffice","NonChargeableAccount","Tag","ReceiptSettings","OptOutPersonalization","OptOutWebActivityTracking","RetailCustomerTableRecordId","IsAsyncCustomer","NewCustomerPartyNumber","CustomerAffiliations","CustomerAffiliationClass","Addresses","Attributes","CustomerAttributeClass","TitleRecordId","IsFloorLimitBlocked","IsB2b","IsB2bAdmin","Contacts","ContactInfoClass","AllowOnAccountPayment","DefaultPaymentMethod","NameOnReceipt","CultureName","NumberOfDaysToPasswordExpiry","Permissions","EmployeePermissionsClass","DefaultImage","DefaultCommissionSalesGroup","IdentifierTypeValue","Tasks","ChecklistTaskClass","ProcessId","AssignedToChannelId","AssignedToWorkerPersonnelNumber","StatusValue","StartDateTime","EndDateTime","TargetDateTime","DocumentStatusValue","McrOrderStopped","Shipments","ShipmentClass","AggregateInventoryQuantities","InventoryQuantitiesClass","UnifiedDeliveryInformation","DeliveryInformationClass","PaymentStatusValue","DetailedOrderStatusValue","AffiliationLoyaltyTierLines","SalesAffiliationLoyaltyTierClass","CalculatedDepositAmount","CancellationCharge","ChannelReferenceId","ContactInformationCollection","ContactInformationClass","CustomerOrderTypeValue","EntryStatusValue","GrossAmount","HasLoyaltyPayment","InternalTransactionId","SuspendedTransactionId","InventoryLocationId","IsTaxExemptedForPriceInclusive","LineDiscount","LineDiscountCalculationTypeValue","LoyaltyDiscountAmount","LoyaltyManualDiscountAmount","LoyaltyRewardPointLines","LoyaltyRewardPointLineClass","NetAmount","NetAmountWithoutTax","NetAmountWithNoTax","NetAmountWithTax","NumberOfItems","PeriodicDiscountAmount","TenderDiscountAmount","PrepaymentAmountAppliedOnPickup","ReceiptId","SalesPaymentDifference","SalesLines","ShiftId","ShiftTerminalId","StatementCode","StoreId","TaxAmountExclusive","TaxAmountInclusive","TaxLines","TaxLineClass","TotalDiscount","TaxCalculationTypeValue","SalesInvoiceAmount","GiftCardActiveFrom","GiftCardBalance","GiftCardExpireDate","GiftCardHistoryDetails","GiftCardIssueAmount","GiftCardIdMasked","IsCommissionSalesGroupOverriddenByCustomer","CommissionSalesGroupSetByCashier","CustomerName","LanguageId","SalesAgreementRecordId","StartingAmountTotal","FloatingEntryAmountTotal","AddToTenderAmountTotal","SafeDropTotal","BankDropTotal","RemoveTenderAmountTotal","DeclareTenderAmountTotal","OverShortTotal","TenderedTotal","ChangeTotal","IncomeAccountTotal","ExpenseAccountTotal","CashDrawer","StoreRecordId","CurrentStaffId","CloseDateTime","ClosedAtTerminalId","ClosedAtShiftId","CurrentTerminalId","SalesTotal","StatusDateTime","ReturnsTotal","PaidToAccountTotal","TaxTotal","ChargeTotal","DiscountTotal","RoundedAmountTotal","CustomerCount","SaleTransactionCount","NoSaleTransactionCount","VoidTransactionCount","LogOnTransactionCount","SuspendedTransactionCount","TransactionCount","ReceiptsCount","ReturnsCount","GoodsSoldQty","ServicesSoldQty","ReceiptCopiesCount","ReceiptCopiesTotal","PriceOverrideTotal","SuspendedTotal","SalesTotalIncludingTax","SalesTotalExcludingTax","SalesGrandTotal","ReturnsGrandTotal","ShiftTaxLineClass","ShiftTenderLineClass","AccountLines","ShiftAccountLineClass","IsShared","StartingAmountRunningTotal","GiftCardsTotal","GiftCardCashOutTotal","VoidedSalesTotal","ShiftSalesTotal","ShiftReturnsTotal","HasPendingOfflineTransactions","NumberOfUnreconciledLines","JournalId","InventLocationId","DataAreaId","StockCountTransactionLines","StockCountJournalTransactionClass","Worker","OMOperatingUnitNumber","FunctionalityProfileId","UseCustomerBasedTax","UseCustomerBasedTaxExemption","UseDestinationBasedTax","Currency","TimeZoneCode","OrgUnitAddress","OrgUnitFullAddress","OrgUnitName","Latitude","Longitude","EmailReceiptProfileId","ShippingWarehouseAddress","TaxRegistrations","TaxRegistrationClass","EventNotificationProfileId","DefaultCustomerAccount","CategoryHierarchyId","ProductName","ProductNumber","IsMasterProduct","IsKit","ItemId","HasLinkedProducts","Rules","ProductRulesClass","DefaultUnitOfMeasure","Locale","IsRemote","ChangeTrackingInformation","ProductChangeTrackingInformationClass","Image","RichMediaLocationsClass","UnitsOfMeasureSymbol","LinkedProducts","LinkedProductClass","BasePrice","Price","AdjustedPrice","RetailContext","ProjectionDomainClass","PrimaryCategoryId","CategoryIds","DisplayOrderInCategories","DisplayOrderInCategoryClass","RelatedProducts","RelatedProductClass","ProductsRelatedToThis","ProductSchema","ProductProperties","ProductPropertyTranslationClass","CompositionInformation","ProductCompositionInformationClass","ParentKits","KitComponentClass","SearchName","IsSnapshotEnabled","ValidFrom","ValidTo","CreatedOn","ModifiedOn","PublishedOn","IsPrivate","IsCollaborative","DueDateTime","CommerceListTypeValue","CommerceListLines","CommerceListLineClass","CommerceListContributors","CommerceListContributorClass","CommerceListInvitations","CommerceListInvitationClass","LastUpdated","DeletedDateTime","ProductListTypeValue","ProductListLines","RecommendationTypeValue","Title","OrderId","Status","Lines","OrderTypeValue","InventLocationIdFrom","InventLocationIdTo","QuantityShipped","QuantityReceived","QuantityShipNow","QuantityReceiveNow","QuantityShipRemaining","QuantityReceiveRemaining","ShipDate","ReceiveDate","DeliveryModeId","OrderLines","TransferOrderLineClass","TotalReceived","PurchaseOrderLineClass","DeliveryDate","PickingListLineClass","InventLocation","IsWMSEnabled","DefaultInventoryStatus","DefaultReceiptLocation","DefaultLocationId","DefaultIssueLocation","Address","MaskTypeValue","Barcode","Product","LoyaltyCard","GiftCard","Customer","SalesOrderContextualOperationsMapClass","ApplicableOperationsValues","SalesOrder","WorkDocumentId","CommitRequestId","Sender","Receiver","SenderDetails","ReceiverDetails","OperationTypeValue","Note","OperationResultMessage","DocumentId","LongVersion","SourceDocument","InventoryInboundOutboundSourceDocumentClass","SourceDocumentTypeValue","NoteModifiedByStaffId","NoteModifiedDateTime","DocumentTypeId","TransactionDate","SpendingLimit","LastOperationId","IsAdmin","SuspendedCartClass","Cart","CountryRegionClass","CountryRegionId","IsoCode","ShortName","ExtensibleEnumerationClass","Value","FulfillmentLineStatusClass","FulfillmentLineDeliveryTypeClass","ExtensibleAttributeDataTypeClass","ExtensibleElectronicAddressTypeClass","ReceiptOutputFormatTypeClass","FullAddress","Street","StreetNumber","County","CountyName","City","DistrictName","State","StateName","ZipCode","ThreeLetterISORegionName","EmailContent","TwoLetterISORegionName","Deactivate","AttentionTo","BuildingCompliment","Postbox","AddressTypeValue","IsPrimary","IsAsyncAddress","DirectoryPartyTableRecordId","DirectoryPartyLocationRecordId","DirectoryPartyLocationRoleRecordId","LogisticsLocationId","LogisticsLocationRecordId","LogisticsLocationExtRecordId","LogisticsLocationRoleRecordId","PhoneLogisticsLocationRecordId","PhoneLogisticsLocationId","EmailLogisticsLocationRecordId","EmailLogisticsLocationId","UrlLogisticsLocationRecordId","UrlLogisticsLocationId","ExpireRecordId","SortOrder","RoleCount","RetailAffiliationId","HideInChannels","PendingBalance","InvoiceAccountBalance","InvoiceAccountPendingBalance","InvoiceAccountCreditLimit","OpenInvoiceBalance","OpenInvoiceCount","FullName","KeyName","UnitOfMeasureSymbol","DataTypeValue","BooleanValue","DateTimeOffsetValue","FloatValue","IntegerValue","TextValue","CurrencyValue","AttributeValueId","Swatches","AttributeSwatchClass","BarcodeId","BarcodePrice","Quantity","EmployeeId","SalespersonId","EANLicenseId","DataEntry","DiscountCode","GiftCardNumber","LoyaltyCardNumber","ItemBarcode","ItemBarcodeClass","EntryMethodTypeValue","ItemType","EnterDimensions","ItemGroupId","ItemDepartmentId","ScaleItem","ZeroPriceValid","NegativeQuantity","DiscountNotAllowed","DateToBeBlocked","DateToBeActivated","CheckDigitValidated","CouponId","Message","IncludedInTotalDiscount","CostPrice","BatchId","BarcodeSetupId","ItemBarcodeValue","InventoryDimensionId","IsBlocked","Display","VariantId","UnitId","UseForInput","UseForPrinting","DefaultColor","SpaceBetweenButtonsInPixels","Buttons","ButtonGridButtonClass","ButtonGridIds","LineId","ProductId","ExtendedPrice","ItemTaxGroupId","LinePercentageDiscount","LineManualDiscountPercentage","LineManualDiscountAmount","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","IsWarrantyLine","WarrantableTransactionId","WarrantableSalesId","WarrantableLineNumber","WarrantableSerialNumber","WarrantiedId","ReturnTransactionId","ReturnLineNumber","ReturnInventTransId","IsVoided","IsTaxOverideCodeTaxExempt","IsGiftCardLine","IsPriceKeyedIn","GiftCardId","GiftCardCurrencyCode","GiftCardOperationValue","GiftCardTypeValue","SalesStatusValue","QuantityOrdered","QuantityNotProcessed","QuantityReserved","QuantityPicked","QuantityPacked","QuantityInvoiced","QuantityCanceled","FulfillmentStoreId","SerialNumber","ElectronicDeliveryEmail","ElectronicDeliveryEmailContent","IsPriceOverridden","OriginalPrice","IsInvoiceLine","InvoiceId","InvoiceAmount","LineVersion","PriceLines","PriceLineClass","DiscountLines","DiscountLineClass","RelatedDiscountedLineIds","TaxRatePercent","IsCustomerAccountDeposit","LinkedParentLineId","QuantityReturnable","LineNumber","TrackingId","QuantityRemained","CatalogId","ThirdPartyGiftCardInfo","ThirdPartyGiftCardInfoClass","BarcodeEmbeddedPrice","PriceInBarcode","InvoiceTypeValue","InvoicedSalesId","WarehouseLocation","DetailedLineStatusValue","SalesAgreementLineRecordId","Amount","Authorization","TypeId","PaymentMethodId","CardTypeValue","Issuer","NumberFrom","NumberTo","CashBackLimit","AllowManualInput","CheckModulus","HasTenderDiscount","IsPinRequired","IsExpirationDateRequired","ConnectorName","PaymentProcessorMethod","CashTypeValue","IncludeInQuickPayShortcuts","AccountName","AccountNameAlias","AccountTypeValue","Message1Line","Message2Line","SlipText1Line","SlipText2Line","IncomeExpenseAccount","StoreNumber","Terminal","Shift","TransactionStatusValue","PaymentCard","PaymentCardClass","TokenizedPaymentCard","TokenizedPaymentCardClass","CardPaymentAcceptResult","IsLinkedRefund","LinkedPaymentStore","LinkedPaymentTerminalId","LinkedPaymentTransactionId","LinkedPaymentLineNumber","LinkedPaymentCurrency","TenderLineId","CashBackAmount","AmountInTenderedCurrency","AmountInCompanyCurrency","ExchangeRate","CompanyCurrencyExchangeRate","TenderTypeId","SignatureData","GiftCardPin","GiftCardExpirationYear","GiftCardExpirationMonth","CreditMemoId","CardTypeId","IsChangeLine","IsHistorical","IsVoidable","VoidStatusValue","AuthorizedAmount","PaymentRefRecId","CardPaymentAccountId","ProcessingTypeValue","CardProcessorStatusValue","LinkedPaymentRefRecId","IsPolicyBypassed","ChargeLineId","ChargeCode","ModuleTypeValue","IsHeaderChargeProrated","ChargeTypeValue","ChargeMethodValue","CalculatedAmount","TransactionId","MarkupAutoLineRecordId","MarkupAutoTableRecId","SaleLineNumber","FromAmount","ToAmount","Keep","AmountRefunded","ChargeLineOverrides","ChargeLineOverrideClass","IsRefundable","IsShipping","IsOverridden","IsInvoiced","CalculatedProratedAmount","SalesTaxGroupId","OriginalSalesTaxGroupId","OriginalItemTaxGroupId","SalesOrderUnitOfMeasure","NetAmountPerUnit","TaxMeasures","TaxMeasureClass","TaxAmountExemptInclusive","NetAmountWithAllInclusiveTax","ReturnLineTaxAmount","ReturnTaxLines","TaxExemptPriceInclusiveReductionAmount","TaxExemptPriceInclusiveOriginalPrice","StateId","CountyId","GroupId","ContactInformationTypeValue","CommercePropertyValueClass","Attribute","MetadataFlags","ProductAttributeMetadataFlagsClass","IsDimension","ProductComparisonEntryClass","AttributeValue","AttributeRecordId","AttributeName","ProductAttributeComparisonEntries","IsShortcut","DisplayName","CanBeRefined","SearchField","CustomerSearchFieldTypeClass","Criteria","CustomerSearchByFieldCriterionClass","DataLevelValue","SearchTerm","ShipmentId","DeliveryAddress","TermsOfDelivery","WeightUnit","TrackingNumber","TrackingUrl","LatestCarrierTrackingInfo","TrackingInfoClass","CarrierId","CarrierName","ShippingWeight","ShipmentLines","ShipmentLineClass","ShipmentLineId","InventDimId","OrderedQuantity","DeliveredQuantity","RemainingQuantity","InventoryTransactionId","FromSafe","ToSafe","FromShiftTerminalId","ToShiftTerminalId","FromShiftId","TransactionSourceContextTypeValue","TransactionDestinationContextTypeValue","ToShiftId","GroupDescription","ShiftGroupLinesCount","ShiftGroupLinesClosedCount","TransactionTypeValues","ShiftReconciliationLineStatusValue","Shifts","ShiftKeyClass","DestinationShift","SourceShift","SourceSafe","DestinationSafe","ProductSortColumns","SortColumnClass","ProductSearchServiceTypeValue","ProductSortColumnsLabels","LocalizedTextClass","EntityType","AttributeTypeName","ExtDataType","IsHidden","IsMandatory","IsMultiValue","IsEnumeration","TranslationDetails","AttributeTranslationDetailsClass","EnumerationDetails","AttributeEnumerationClass","DefaultValue","UpperBound","LowerBound","FriendlyName","HelpText","OrdinalNumber","EnumerationValue","AttributeEnumerationTranslations","AttributeEnumerationTranslationClass","EnumerationTranslationValue","AttributeGroupIdentifier","Languages","AttributeGroupTranslationDetailsClass","AttributeGroupRecordId","AttributeGroupIdentifiers","CustomerGroupNumber","CustomerGroupName","OfferId","OfferName","OfferDescription","DiscountCost","EffectiveAmount","EffectivePercentage","SavedEffectiveAmount","Percentage","DealPrice","DiscountLineTypeValue","ManualDiscountTypeValue","CustomerDiscountTypeValue","PeriodicDiscountTypeValue","DiscountApplicationGroup","ConcurrencyModeValue","IsCompoundable","PricingPriorityNumber","PricingAttributeCombinationPriority","IsDiscountCodeRequired","ThresholdAmountRequired","BundleId","PriceOverrideRestrictionValue","AllowPriceOverride","MaximumDiscountPercentage","MaximumLineDiscountAmount","MaximumLineReturnAmount","MaximumTotalDiscountAmount","MaximumTotalDiscountPercentage","MaxTotalReturnAmount","Roles","AllowUseSharedShift","AllowManageSharedShift","AllowTaskGuides","AllowSaleOutsideAssortment","AllowPrintingReceiptCopy","AllowSkipFiscalRegistration","AllowSkipRegistrationOrMarkAsRegistered","AllowPostponeRegistration","AllowCreateTransferOrder","AllowAcceptOrder","AllowTaskManagement","AllowRejectOrder","AllowMassActivation","AllowPostInventoryAdjustment","AllowPostStockCounting","ByteValue","DecimalValue","LongValue","StringValue","LongName","ISOCode","TimeZone","AddressFormatLines","AddressFormattingInfoClass","AddressFormatId","AddressFormatName","CurrencySymbol","RoundOffPrice","RoundOffSales","RoundOffTypePrice","RoundOffTypeSales","NumberOfDecimals","ConvertedAmount","RoundedConvertedAmount","ScaleUnitConfigurationClass","Region","EnvironmentId","EnvironmentName","TenantId","ClientAppInsightsInstrumentationKey","HardwareStationAppInsightsInstrumentationKey","WindowsPhonePosAppInsightsInstrumentationKey","BaseVersion","ScaleUnit","AADAuthority","FrameworkName","UseInMemoryDeviceDataStorage","AllowItemsAggregation","AggregateItemsForPrinting","AggregatePayments","AlwaysExpandTransactionScreenLineDetails","AuditEnabled","DiscountAtTotal","ProductDiscount","ManuallyCalculateComplexDiscounts","DisplaySecondaryTotalCurrency","EndOfTransaction","ItemNotOnFile","LimitStaffListToStore","LineItemTaxChange","MarkUp","MaximumPrice","MaximumQuantity","MinimumPasswordLength","MustKeyInPriceIfZero","NfcEContingencyModeEnabled","NfcEVoided","FunctionalityProfileDescription","OverridePrice","PrintVoidTransactionReceipts","PrintReceiptsOnCardDecline","PrintXZReportsOnTerminal","PrintTenderDetailsOnXReport","ProfileId","RefundSale","ReturnProduct","SalesPerson","SecondaryTotalCurrency","SelectHardwareStationOnTendering","ShowStaffListAtLogOn","StaffBarcodeLogOn","StaffBarcodeLogOnRequiresPassword","StaffCardLogOn","StaffCardLogOnRequiresPassword","StartOfTransaction","EnableTimeRegistration","TenderDeclaration","TransactionTaxChange","VoidItem","VoidPayment","SalesModeDefaultsAsCustomerOrder","CreateOfflineCustomerOrders","CreateAsyncCustomers","EnableAxCustomerSearch","VoidTransaction","SystemLegalTermsUrl","SystemPrivacyStatementUrl","HideTrainingMode","StorePhone","StatementMethod","StoreTaxGroup","TaxIdNumber","TaxOverrideGroup","TenderDeclarationCalculation","AutoLogOffTimeoutInMinutes","AutoExitMethodValue","CustomerDisplayText1","CustomerDisplayText2","EFTStoreId","EFTTerminalId","ExitAfterEachTransaction","HardwareProfile","Placement","TerminalDescription","OpenDrawer","OpenDrawerAtLogOnLogOff","PrintTaxRefundChecks","StandAlone","TerminalStatement","VisualProfile","IncludeKitComponents","AccentColor","HeaderColor","Theme","FontScheme","ShowAppBarLabel","LogOnBackgroundPictureAsBase64","LogOnBackgroundPicturePortraitAsBase64","BackgroundPictureAsBase64","LogonBackgroundPictureId","LogonBackgroundPictureIdCompact","LogonBackgroundPictureIdPortrait","LogonBackgroundPictureIdCompactPortrait","BackgroundPictureId","RequireAmountDeclaration","DecimalNotRequiredForMinorCurrencyUnit","MaxTransactionSearchResults","OfflineProfileId","NewOfflineDatabaseCheckInterval","OfflineTransactionUploadInterval","ReconnectToOnlineInterval","SwitchToOfflineTimeout","OfflineSwitchApiPerformanceThresholdInSeconds","ReconnectFromPerformanceInducedOfflineIntervalInSeconds","RetentionDays","HardwareConfigurations","HardwareConfigurationsClass","CreateRecording","PlaybackRecording","ShouldUseDefaultCommisionSalesGroup","AskForSalesRepresentative","IsSalesRepRequired","ProhibitMixingSalesAndReturns","ApplyDiscountsToPriceKeyedIn","ApplyDiscountsToPriceOverrides","IsProductSuggestionsEnabled","ProductSearchType","TerminalRecId","DeviceRecId","DenominationsToDisplayValue","PromptOnSeamlessOffline","RetryCountToOffline","EnableAdvancedOfflineSwitching","SystemHealthCheckInterval","RejectOrderFulfillment","ManuallyCalculateTaxes","EmployeeLogonTypeValue","StartAmountCalculation","BankDropCalculation","GenerateLoyaltyCardNumber","FiscalRegistrationProcessId","IncludeSalesOrderInvoices","IncludeFreeTextInvoices","IncludeProjectInvoices","IncludeCreditNoteInvoices","DisplayTaxExemptInLineDetails","TaxExemptReceiptIndicator","ManuallyCalculateCharges","ChargeOverrideReasonCode","ShiftReconcilation","CustomerAccountFloorLimit","VoidSuspendedTransactionsOnCloseShift","ShowDateTime","UseAdvancedCashManagement","DefaultCustomerSearchModeValue","AllowManualOfflineBeforeSignIn","UseFinancialReconciliationInStore","RequirePaymentForFulfillmentValue","CardNotPresentProcessingConfigurationValue","EnableQuickPayShortcuts","ChangeDueBehaviorValue","FontSchemeTypeValue","IsAppBarLabelVisible","IsDateTimeVisible","LogOnLayoutTypeValue","LogOnKeyboardTypeValue","CompactLogonBackgroundPictureId","PortraitLogonBackgroundPictureId","CompactPortraitLogonBackgroundPictureId","LogOnLogoPictureId","IsProductIdVisibleOnCartLine","InstrumentationKey","IsEnabled","DeviceNumber","DeviceId","DeviceType","TerminalRecordId","ChannelName","TokenIssueTime","ActivationStatusValue","Token","CountryRegionIsoCode","Code","ConcurrencyMode","Disclaimer","CityName","LineDisplayDelayForLinkedItems","LineDisplayBalanceText","LineDisplayBinaryConversion","LineDisplayCharacterSet","LineDisplayClosedLine1","LineDisplayClosedLine2","LineDisplayDeviceDescription","LineDisplayDeviceTypeValue","LineDisplayDeviceName","LineDisplayDisplayLinkedItem","LineDisplayDisplayTerminalClosed","LineDisplayTotalText","DualDisplayActive","DualDisplayWebBrowserUrl","DualDisplayImageRotatorInterval","DualDisplayImageRotatorPath","DualDisplayReceiptWidthPercentage","DualDisplayDisplayType","EftTypeId","EftCompanyId","EftConfiguration","EftPaymentConnectorName","EftData","EftDescription","EftMerchantId","EftPassword","EftServerName","EftServerPort","EftUserId","EftTestMode","MsrEndTrack1","MsrEndTrack2","FiscalPrinterManagementReportPAFIdentification","FiscalPrinterManagementReportConfigParameter","FiscalPrinterManagementReportTenderType","FiscalPrinterManagementReportGiftCard","FiscalRegisterDeviceTypeValue","FiscalRegisterConfiguration","FiscalRegisterDeviceDescription","FiscalRegisterDeviceName","KeyboardMappingId","KeyLockDeviceTypeValue","KeyLockDeviceDescription","KeyLockDeviceName","MsrDeviceTypeValue","MsrDeviceDescription","MsrDeviceName","MsrMake","MsrModel","MsrSeparator","MsrStartTrack","PinPadDeviceTypeValue","PinPadDeviceName","PinPadMake","PinPadModel","PinPadDeviceDescription","ProfileDescription","RFIDDeviceTypeValue","RFIDDeviceName","RFIDDeviceDescription","ScaleDeviceTypeValue","ScaleDeviceName","ScaleDeviceDescription","ScaleManualInputAllowed","ScaleTimeoutInSeconds","SignatureCaptureDeviceTypeValue","SignatureCaptureDeviceName","SignatureCaptureMake","SignatureCaptureModel","SignatureCaptureDeviceDescription","SignatureCaptureFormName","Printers","HardwareProfilePrinterClass","Scanners","HardwareProfileScannerClass","FiscalIntegrationTechnicalProfiles","CashDrawers","HardwareProfileCashDrawerClass","UseShippingAddress","CardNumber","CCID","Track1","Track2","Track3","VoiceAuthorizationCode","EncryptedPin","AdditionalSecurityData","IsSwipe","Country","House","Address1","Address2","Zip","NameOnCard","ExpirationMonth","ExpirationYear","HostPageOrigin","AdaptorPath","CardTokenizationEnabled","CardPaymentEnabled","PaymentAmount","HideBillingAddress","RequireShippingAddress","AcceptPageUrl","AcceptPageSubmitUrl","MessageOrigin","AcceptPageContent","PaymentConnectorId","TenderLine","PaymentSdkErrors","PaymentErrorClass","AdditionalContext","AccessCode","Settings","RetrievePaymentResultSettingsClass","Information","InformationAmount","InputTypeValue","ItemTender","LineTypeValue","ParentLineId","ReasonCodeId","SubReasonCodeId","SourceCode","SourceCode2","SourceCode3","FiscalTransactionParentGuid","IsChanged","ReasonSubCodeClass","TriggerCode","AmountPercent","SubCodeId","TriggerFunctionTypeValue","PriceTypeValue","Header","Body","Footer","Width","LayoutId","ReceiptTitle","ReceiptTypeValue","ReceiptTypeStrValue","PrinterClass","IsIndependent","Mask","OriginLineId","MasterProductId","ListingId","TotalPercentageDiscount","PeriodicDiscount","InventorySiteId","InventoryStatusId","LicensePlate","ReservationId","ReturnQuantity","ProductSourceValue","IsInvoiceSettled","IsPriceLocked","AgreementPrice","ReturnStore","ReturnTerminalId","ReturnChannelId","SalesDate","SavedQuantity","IsSavedDiscount","ElectronicDeliveryEmailAddress","LoyaltyPercentageDiscount","TenderDiscountPercentage","Found","DateToActivateItem","PeriodicPercentageDiscount","QuantityDiscounted","UnitQuantity","UnitOfMeasureConversion","UnitOfMeasureConversionClass","AttainablePriceLines","PeriodicDiscountPossibilities","ReturnLabelProperties","ReturnLabelContentClass","LineMultilineDiscOnItem","LineMultilineDiscOnItemValue","WasChanged","OriginalSalesOrderUnitOfMeasure","InventOrderUnitOfMeasure","IsLoyaltyDiscountApplied","ReturnLoyaltyRewardPointLines","FulfillmentStatus","FulfillmentStatusValue","DetailedLineStatus","DetailedLineStatusClass","LastReturnProcessedTime","SalesAgreementPrice","IsSalesAgreementSkipped","SearchAreaClass","Radius","DistanceUnitValue","TenderTypeName","TenderCurrency","CountingRequired","StartingAmountOfStoreCurrency","StartingAmountOfTenderCurrency","FloatingEntryAmountOfStoreCurrency","FloatingEntryAmountOfTenderCurrency","SafeDropAmountOfStoreCurrency","SafeDropAmountOfTenderCurrency","BankDropAmountOfStoreCurrency","BankDropAmountOfTenderCurrency","RemoveTenderAmountOfStoreCurrency","RemoveTenderAmountOfTenderCurrency","DeclareTenderAmountOfStoreCurrency","DeclareTenderAmountOfTenderCurrency","TenderedAmountOfStoreCurrency","TenderedAmountOfTenderCurrency","ChangeAmountOfStoreCurrency","ChangeAmountOfTenderCurrency","Count","Notes","Overridden","OverriddenFloatEntryAmountInStoreCurrency","OverriddenFloatEntryAmountInTenderedCurrency","OverriddenBankDropAmountInStoreCurrency","OverriddenBankDropAmountInTenderedCurrency","OverriddenChangeAmountInStoreCurrency","OverriddenChangeAmountInTenderedCurrency","OverriddenDeclaredTenderAmountInStoreCurrency","OverriddenDeclaredTenderAmountInTenderedCurrency","OverriddenRemovedTenderAmountInStoreCurrency","OverriddenRemovedTenderAmountInTenderedCurrency","OverriddenSafeDropAmountInStoreCurrency","OverriddenSafeDropAmountInTenderedCurrency","OverriddenStartingAmountInStoreCurrency","OverriddenStartingAmountInTenderedCurrency","OverriddenTenderedAmountInStoreCurrency","OverriddenTenderedAmountInTenderedCurrency","OverShortAmountOfTenderCurrency","OperationType","ProductRecordId","ItemName","Counted","EstimatedOnHandQuantity","OnHandCalculationDateTime","Unit","UserId","CountedDate","InventBatchId","WarehouseLocationId","InventoryStatus","WarehousePalletId","InventSiteId","ConfigId","InventSizeId","InventColorId","InventStyleId","InventSerialId","TrackingGuid","UpdatedInAx","IsExempt","TaxBasis","IsIncludedInPrice","TaxCode","RefundableAmount","CaptureToken","CardToken","IncomeExpenseAccountTypeValue","MaskedCardNumber","TenderDate","IsPreProcessed","IsDeposit","IsCustomerAccountFloorLimitUsed","AuthorizationReferenceId","IsIncrementalCaptureEnabled","IsReauthorizationEnabled","IncrementalOffsetAmount","RoundingDifference","Text","DecimalPrecision","Symbol","ElementId","ElementTypeValue","CustomerAccountNumber","ProductIds","ProductListId","UnitOfMeasure","CommerceListId","InvitationId","Invitee","IsSent","LastRequestDateTime","LastSentDateTime","InvitationTypeValue","SearchFilterClass","FilterTypeValue","SearchValues","SearchFilterValueClass","TransactionIds","CustomerFirstName","CustomerLastName","ReceiptEmailAddress","SearchIdentifiers","SearchLocationTypeValue","CustomFilters","SearchTypeValue","IncludeDetails","SalesTransactionTypeValues","TransactionStatusTypeValues","CustomerSearchCriteriaClass","Keyword","SearchOnlyCurrentCompany","SearchLocationValue","Refinements","CustomerRefinerValueClass","TradeAgreementPrice","MaxVariantPrice","MinVariantPrice","CustomerContextualPrice","ProductLookupId","PriceSourceTypeValue","OrgUnitLocation","ItemAvailabilities","ItemAvailabilityClass","ProductVariantPropertiesAsList","PurchaseQuantity","PurchaseUnit","PurchaseReceived","PurchaseReceivedNow","WMSLocationId","WMSPalletId","IsCommitted","UniqueIdentifier","DeliveryMethod","QuantityTransferred","QuantityRemainShip","QuantityRemainReceive","VoucherId","UpdatedByWorker","PostingDate","Comments","JournalLines","TransferOrderJournalLineClass","AffiliationTypeValue","InProgressQuantity","TotalLineNumber","RegisteringQuantity","RegisteredQuantity","InventoryInboundOutboundDocumentLineClass","SourceDocumentRecordId","SourceDocumentLineRecordId","QuantityCancelled","QuantityToUpdate","LocationId","ItemPrimaryImageUrl","IsLocationActive","IsLocationAllowBlankReceiptEnabled","IsLocationBlankIssueAllowed","ProductDimensions","ProductDimensionClass","IsCloseLine","OriginTypeValue","SourceDocumentLine","InventoryInboundOutboundSourceDocumentLineClass","SerialNumberLines","InventoryDocumentSerialNumberLineClass","ToLocationId","AdjustmentTypeValue","DocumentTypeValue","TotalQuantityOrdered","TotalQuantityShipped","TotalQuantityReceived","TotalQuantityCancelled","TotalLines","IsChangeAllowed","DocumentRecordId","OverDeliveryPercentage","UnderDeliveryPercentage","HasSerialNumber","IsSerialNumberBlankReceiptAllowed","IsSerialNumberDuplicateCheckEnabled","InventoryDocumentSourceSerialNumberLineClass","ToProductId","ToInventoryDimensionId","ActionTypeValue","ModeValue","SourceDocumentId","ItemIds","AvailableSerializedLineOnly","DocumentLineIds","DocumentOperationTypeValue","TransferFromWarehouse","ShipFromWarehouse","TransferToWarehouse","DocumentTypeIds","DocumentStateValue","DocumentTypeValues","DocumentLineId","UpdatedLines","TotalLinesUpdated","WarehouseIds","IsLocationProfileRequired","SearchText","WorkDocumentLineId","SourceLineId","SourceLine","InventoryDocumentValidationCategoryResultsSummaryClass","CategoryName","SeverityValue","TotalValidationResultCount","DocumentVersion","CategorySummaries","DocumentValidationResultLineId","ErrorMessage","DocumentLongVersion","Categories","DimensionTypeValue","DimensionValue","TotalAvailableInventoryLevelLabel","TotalAvailableInventoryLevelCode","PhysicalAvailableInventoryLevelLabel","PhysicalAvailableInventoryLevelCode","DimensionId","ColorHexCode","ImageUrl","RefinerGroup","SearchRefinerClass","RefinerTypeValue","DisplayTemplateValue","SearchRefinerValueClass","RefinerRecordId","LeftValueBoundString","RightValueBoundString","UnitText","RowNumber","LeftValueBoundLocalizedString","RightValueBoundLocalizedString","SourceValue","Values","RefinerSourceValue","SwatchImageUrl","SwatchColorHexCode","ClientBookRefinerValueClass","ComponentInSlotRelationClass","ComponentId","SlotId","IsSerialized","IsActiveInSalesProcess","DateOfBlocking","DateToActivate","DateToBlock","PriceKeyingRequirementValue","QuantityKeyingRequirementValue","MustKeyInComment","CanQuantityBecomeNegative","MustScaleItem","CanPriceBeZero","TextId","CardTenderTypeValue","CustomerAccount","LoyaltyGroups","LoyaltyGroupClass","RewardPoints","LoyaltyRewardPointClass","LoyaltyEnrollmentDate","LoyaltyEnrollmentDateLocal","LoyaltyEnrollmentTime","LoyaltyEnrollmentTimeLocal","OmOperatingUnitId","AdditionalChargeForComponent","Behavior","ProductBehaviorClass","Dimensions","ProductTypeValue","Components","IsGiftCard","SimpleLinkedProductClass","PrimaryImageUrl","ItemTypeValue","ItemServiceTypeValue","IsDiscountAllowed","IsManualDiscountAllowed","IsKitDisassemblyAllowed","IsNegativeQuantityAllowed","IsReturnAllowed","IsSaleAtPhysicalStoresAllowed","IsZeroSalePriceAllowed","KeyInPriceValue","KeyInQuantityValue","MustPrintIndividualShelfLabelsForVariants","MustPromptForSerialNumberOnlyAtSale","MustWeighProductAtSale","ValidFromDateForSaleAtPhysicalStores","ValidToDateForSaleAtPhysicalStores","IsStorageDimensionGroupLocationActive","IsStorageDimensionGroupLocationAllowBlankReceiptEnabled","AllowNegativePhysicalInventory","IsStockedProduct","IsBlankSerialNumberAllowed","IsBlankSerialNumberReceiptAllowed","IsSerialNumberControlEnabled","IsStorageDimensionGroupLocationBlankIssueAllowed","IsSerialNumberRequired","DefaultQuantity","MinimumQuantity","MultipleOfQuantity","AverageRating","TotalRatings","Value2","Value3","Value4","SuggestionType","MaxCurrencyValueOfLoyaltyPoints","RewardPointToRedeemList","LoyaltyTiers","LoyaltyTierClass","LoyaltyCardTiers","LoyaltyCardTierClass","HighestActiveLoyaltyCardTier","TierId","TierLevel","LoyaltyTierRecordId","IsRedeemable","RewardPointCurrency","RewardPointTypeValue","RewardPointId","IssuedPoints","UsedPoints","ExpiredPoints","ActivePoints","PointsExpiringSoon","UnvestedPoints","EntryDateTime","EntryTypeValue","ExpirationDate","RewardPointAmountQuantity","BalanceCurrencyCode","BalanceInCardCurrency","CardCurrencyCode","OperationName","OperationId","CheckUserAccess","AllowAnonymousAccess","AllowCustomerAccess","AllowApplicationAccess","IsEnabledForTaskManagement","TransactionLogClass","KitTransactionLines","KitTransactionLineClass","TaxGroupName","ProductPropertyClass","ValueString","PropertyTypeValue","IsDimensionProperty","GroupTypeValue","GroupName","VariantInformation","ProductVariantInformationClass","KitDefinition","KitDefinitionClass","ActiveVariantProductId","Variants","ProductVariantClass","ProductDimensionSetClass","ChangeActionValue","RequestedActionValue","DimensionKey","DimensionValues","ProductDimensionValueSetClass","VariantSet","SwatchRefinerGroupValue","SwatchRefinerGroupTranslation","SwatchRefinerGroupImageUrl","SwatchRefinerGroupColorHexCode","Items","RichMediaLocationsRichMediaLocationClass","AltText","IsSelfHosted","IsDefault","DisassembleAtRegister","KitLineDefinitions","KitLineDefinitionClass","KitLineProductToVariantMap","ComponentKitVariantSetClass","KitVariantToComponentMap","KitVariantContentClass","KitLineProductId","KitVariantIdList","ComponentProductId","KitLineIdentifier","SubstituteProductIds","ComponentProperties","KitLineProductPropertyClass","Charge","KitComponentKeyClass","DistinctProductId","KitVariantId","KitComponentKeyList","ProductLookupClauseClass","InventDimensionId","OrgUnitContactClass","Distance","PostalAddressId","OpenFrom","OpenTo","Locator","LocatorExtension","ContactTypeValue","SalesLineId","DeliveryOptions","DeliveryChargeLines","DeliveryChargeLineClass","TotalChargeAmount","ChannelType","ExtensibleRetailChannelTypeClass","OperatingUnitNumber","ChannelProfilePropertyClass","ChannelNaturalId","MinimumDepositPercentage","QuoteExpirationDays","PickupDeliveryModeCode","CarryoutDeliveryModeCode","CancellationChargePercentage","InventLocationDataAreaId","BingMapsApiKey","BingMapsEnabled","CatalogDefaultImageTemplate","CompanyCurrency","PriceIncludesSalesTax","ChannelCountryRegionISOCode","DefaultLanguageId","TimeZoneInfoId","EmailDeliveryModeCode","GiftCardItemId","EnableProductRecommendations","RefundableShippingAmountWithoutApproval","RefundShippingCharges","ReceiptSettingsValue","CustomerAttributeGroupId","ClientBookAttributeGroupId","NotificationRefreshInterval","AllowExchangeOnReturnOrders","IsInventoryAutomaticValidationEnabled","ProfileProperties","Properties","ChannelPropertyClass","ChannelLanguageClass","UseAdvancedAutoCharges","UseRTSForOnlineOrderCreation","IsWarrantyAutoPromptEnabled","EnableProductRatingsForRetailStores","EnableFetchingPickingListsForPickingAndReceiving","EnableReturnsForMultipleOrderInvoices","EnableAnonymousOrderLookupByChannelReferenceId","EnableOmniChannelPayments","EnableFiscalRegistrationStorageBackup","UseSalesReceiptAsDefaultReceiptTypeInJournal","SalesOrderHeaderAttributeGroups","SalesOrderLinesAttributeGroups","CustomerAddressBooks","StoreAddressBookClass","EnableReturnPolicies","InventAvailabilityCalculationMode","IsPriceInclusiveTaxExemptCalculationEnabled","EnableValidationOfSerialNumbersForInStoreReturns","Channel","PickupDeliveryModeCodes","ForeignCurrency","DenominationDetails","DenominationDetailClass","TenderDetails","TenderDetailClass","ProductSearchCriteriaClass","Ids","IncludeProductsFromDescendantCategories","SearchCondition","SkipVariantExpansion","IncludeAttributes","Barcodes","Refinement","RecommendationListId","DownloadProductData","Context","IsOnline","SynchronizationToken","AsListings","Session","FromDateTimeOffset","ToDateTimeOffset","EmployeeActivityTypeValues","ProductSearchCriteria","CustomerSearchCriteria","HitPrefix","HitSuffix","CartLineDeliveryPreferenceClass","DeliveryPreferenceTypeValues","CartLinePromotionClass","Promotions","Color","Style","Size","Configuration","ColorId","StyleId","SizeId","DistinctProductVariantId","PropertiesAsList","DeviceTypeValue","DeviceName","DeviceMake","DeviceModel","DeviceDescription","CharacterSet","ReceiptProfileId","BinaryConversion","DocInsertRemovalTimeout","Logo","LogoAlignment","DecodeData","IsSharedShiftDrawer","CashChangerLayoutXml","CustomerLayoutId","CustomerLayoutXml","Height","LayoutTypeValue","LayoutXml","LayoutXmlPortrait","ReceiptItemsLayoutXml","ReceiptPaymentLayoutXml","TotalId","TotalsLayoutXml","StartScreen","ButtonGridZones","ButtonGridZoneClass","ImageZones","ImageZoneClass","ReportZones","ReportZoneClass","SalesType","InvoiceDate","DueDate","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalLineDiscount","AmountBalance","Account","SalesInvoiceLine","SalesInvoiceLineClass","OrderAccount","InvoiceDueDate","InvoicePaidStatusValue","SourceTaxGroup","DestinationTaxGroup","SourceItemTaxGroup","DestinationItemTaxGroup","AdditionalDescription","Function","ChangeTenderTypeId","AboveMinimumChangeAmount","AboveMinimumChangeTenderTypeId","UseSignatureCaptureDevice","MinimumSignatureCaptureAmount","IsOvertenderAllowed","IsUndertenderAllowed","MaximumOvertenderAmount","MaximumUndertenderAmount","MaximumAmountPerTransaction","MaximumAmountPerLine","MinimumAmountPerTransaction","MinimumAmountPerLine","RoundOff","TakenToBank","TakenToSafe","ConnectorId","GiftCardItem","GiftCardCashoutOutThreshold","ChangeLineOnReceipt","HideCardInputDetails","CashDrawerLimitEnabled","CashDrawerLimit","RestrictReturnsWithoutReceipt","DefaultCardTypeId","UseForDeclareStartAmount","InputRequired","LinkedReasonCodeId","MaximumLength","MaximumValue","MinimumLength","MinimumValue","OncePerTransaction","PrintInputNameOnReceipt","PrintInputToReceipt","PrintPromptToReceipt","Prompt","RandomFactor","RetailUseReasonCode","ActivityValue","IsMultiLineText","ReasonSubCodes","ReportId","Parameters","Output","ReportRowClass","HasTotalRow","HasDisclaimer","ZipPostalCode","StreetName","CityAlias","District","ReasonCodeRequirementClass","SourceId","TableRefTypeValue","PagingInfoClass","SortingInfoClass","NextPageToken","TranslationLanguage","TranslatedProperties","DataValue","LastTransactionDataValue","LastTransactionCreatedDateTime","LastTransactionId","ResetDate","TypeValue","Enabled","Device","DatePurchased","NodeClass","ParentScopeId","ParentSequence","Sequence","ScreenshotUri","LineClass","ChildrenIds","IsLinked","LineMetadataId","Artifacts","ArtifactSummaryClass","MetadataPropertyValues","MetadataPropertyValueClass","MetadataTextClass","MetadataHypertextLinkClass","ScopeClass","ScopeTypeValue","Children","ActiveCount","IsForm","Access","Hierarchy","Publisher","UserActionClass","SystemGenerated","GlobalId","Annotations","AnnotationClass","UserActionTypeValue","TaskId","FormUserActionClass","FormId","ControlLabel","ReturnTypeValue","CommandName","ControlName","ControlType","Arguments","CommandArgumentClass","LabelId","ReturnValue","Scopes","FormContextEntries","FormContextDictionaryEntryClass","RootScope","FormContext","FormContextClass","ProductVariantResolutionContextClass","SelectedComponents","IsLicensePlateControlled","TransDateTime","RegisterResponse","ReceiptCopy","RecordGUID","RegisterStoreId","RegisterTerminalId","RegistrationStatusValue","RegistrationProcessId","ConnectorGroup","ConnectorFunctionalityProfileId","RegisterInfo","DocumentNumber","RegistrationTypeValue","ServiceName","TenderLineAdjustments","FiscalTransactionTenderLineAdjustmentClass","SalesLineAdjustments","FiscalTransactionSalesLineAdjustmentClass","SalesPersonStoreId","SalesPersonId","SalesPersonFirstName","SalesPersonLastName","SalesLineNumber","EmailAddress","DeliveryModeCode","FulfillmentDeliveryType","DeliveryTypeValue","StoreInventoryTotalQuantity","StoreInventoryReservedQuantity","StoreInventoryOrderedQuantity","ProductVariant","RequestedShipDate","RequestedReceiptDate","CreatedDate","ChannelTypeValue","OrderCreatedStartDate","OrderCreatedEndDate","RequestedReceiptStartDate","RequestedReceiptEndDate","RequestedDeliveryStartDate","RequestedDeliveryEndDate","FulfillmentStatusValues","CustomerPhoneNumber","AuthorStaffId","AuthorName","AddressType","TenderTypePolicies","TenderTypePolicyClass","IsManagerOverrideEnabled","WarrantyClass","DurationUnitValue","Duration","ApplicablePriceRangeBaseTypeValue","ApplicablePriceRangeMin","ApplicablePriceRangeMax","InvoicedLineId","IgnoreSerialNumberMismatch","WarrantyGroupClass","Warranties","WarrantyGroups","WarrantableProductId","FulfillmentLine","UserAlertClass","AlertSourceIdValue","LocalizedMessage","IsBlocking","LineIndex","UserAlerts","CompanyName","JobTitle","Department","CompanySize","Details","BusinessPartnerOperationRequestDetailsClass","UserFirstName","UserLastName","ReceiptTypesByFormatTypeClass","ReceiptOutputFormatType","ReceiptTypesValues","JournalNameIds","IsRemoteProduct","InstructionsVersion","AssignedToPersonnelNumbers","AssignedToExternalSubId","DeepLinkTypeValue","DeepLink","DeepLinkPosOperationName","ContactPersonPersonnelNumber","Instructions","CompletionDateTime","ResolvedByPersonnelNumber","ChecklistId","Uri","Priority","StaffName","Activity","ActivityDateTimeOffset","EmployeeActivityTypeValue","BreakCategory","TenderType","CardTokenInfo","CardTokenInfoClass","RequestedDimensionTypeValue","MatchingDimensionValues","DefaultWarehouseOnly","FilterByChannelFulfillmentGroup","DeliveryModeTypeFilterValue","HeaderDeliveryPreferenceTypeValues","CartLineDeliveryPreferences","DeliverySpecification","DeliverySpecificationClass","DeliveryPreferenceTypeValue","PickUpStoreId","ShipFromStoreId","OrderStatusValues","OrderType","FulfillmentTypeValues","PickupStartDate","PickupEndDate","PickupTimeslotStartTime","PickupTimeslotEndTime","PersonnelNumber","ChecklistIds","StatusValues","TaskIds","FilterMyTasks","FilterOverdueTasks","MicrosoftGraphResource","IsCopy","IsRemoteTransaction","IsPreview","QueryBySalesId","HardwareProfileId","CartId","ExpectedCartVersion","IncludeAnonymous","SuspendedOnly","LastModifiedDateTimeFrom","LastModifiedDateTimeTo","ReturnUrl","ReceiptTypesByFormatTypeCollection","GiftReceiptLineNumbers","ExtensibleEAddressType","ChannelReferenceAdditionalLookupCriteria","ChannelReferenceAdditionalLookupCriteriaClass","FulfillmentLineParameterClass","RejectedQuantity","InfoCodeId","SubInfoCodeId","TotalNumberOfProducts","NumberOfProductsRead","NumberOfProductsReadInCurrentPage","NextSynchronizationToken","IsInitialSync","HasMorePublishedListings","DeletedListings","ListingIdentityClass","RatingDistribution","ProductRatingCountClass","PublishStatusValue","ListingModifiedDateTime","ChannelListingId","AppliedActionValue","StatusMessage","InventoryLocationIds","RegularStoreHours","RegularStoreHoursClass","HeaderPromotions","CartLinePromotions","Promotion","VariantInventoryDimensionId","DistinctProductVariant","AvailableQuantity","InvoiceIds","InvoiceTypeValues","InvoicePaidStatusValues","ProductListType","AffiliationId","LoyaltyTierId","FilterByCurrentEmployee","ImageUris","Changes","ClientBookChangeClass","PaymentConnectorPropertiesXml","MerchantPropertiesHashValue","ServiceAccountId","SafeNumber","SafeBalance","LastUpdatedTime","UpdateNowQuantity","HardwareStationToken","PairingKey","MediaType","Content","PictureId","OnlineChannelName","OrgUnitTypeValue","ChannelProfile","ChannelProfileClass","ChannelProperties","ChannelLanguages","CountryRegions","RequiresDataInitialization","HasBeenInitializedBefore","DownloadInterval","DownloadSessions","FeatureControlList","RetailSharedConfigurationParameterClass","DataStore","CDXDataStoreClass","UploadInterval","UploadJobPackageRequests","UploadJobPackageRequestClass","JobId","JobDescription","FileSize","RowsAffected","Checksum","DateDownloaded","DateRequested","DataStoreName","DownloadLink","ActivityDate","LoyaltyRewardPointTimelineEntryType","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","LoyaltyPoints","AmountToConvert","HardwareStationId","HardwareStationTypeValue","HardwareStationName","HardwareStationDescription","HardwareStationUrl","HardwareStationHostName","HardwareStationEftTerminalId","ExternalIdentityProvider","ExternalIdentityLinkRecordId","IsUploadJob","LastSyncDateTime","SasKey","FrameworkPublisherName","EventId","EventIdString","Store","UploadType","EventType","EventDateTime","DurationInMilliseconds","Source","EventMessage","Staff","ClosedShiftId","ReferenceId","RefChannel","RefStore","RefTerminal","RefTransactionId","AuditEventTypeValue","AuditEventFiscalTransactionClass","FiscalRegistrationLines","AuditEventFiscalRegistrationLineClass","OrderedSum","PhysicalReserved","InventoryUnitOfMeasure","InventoryUnitOfMeasureDescription","ActionName","NotificationDetails","NotificationDetailClass","FiscalRegistrationEventTypeValue","DocumentContext","FiscalIntegrationDocumentContextClass","Document","DocumentGenerationResultTypeValue","FiscalConnectorTechnicalProfile","DocumentAdjustment","FiscalIntegrationDocumentAdjustmentClass","SequentialSignatureDataContext","FiscalIntegrationSignatureDataContextClass","TransactionID","AuditEventId","Response","SubmittedDocument","SequentialSignatureData","RegistrationProcessLines","FiscalIntegrationRegistrationProcessLineClass","FunctionalityProfileGroupId","SupportedFiscalEventTypes","SupportedNonFiscalEventTypes","ConnectorTypeValue","ConnectorLocationValue","TechnicalProfile","FiscalRegistrationProcessSummaryLines","FiscalIntegrationFiscalRegistrationProcessSummaryLineClass","ExcludeOptionalProcessLines","FunctionalityProfileGroupIds","ServiceProperties","IsReady","CommunicationResultTypeValue","FailureDetails","FiscalIntegrationServiceFailureDetailsClass","FiscalIntegrationServiceInfo","UserNotificationMessage","LastRegisterResponse","SequenceKey","IsOffline","SequentialNumber","StartDate","EndDate","ValidationPeriodId","AdditionalRestrictions","ValidFromDate","ValidToDate","ValidationPeriod","ValidationPeriodClass","CouponCodes","CategoryPath","CategoryPathClass","SearchOptionValue","AvailableCapacity","ExtensionServiceUrl","AttachedServices","AttachedServiceClass","AllowTransferOrderOverDelivery","AllowTransferOrderUnderDelivery","UserLocationProfileId","InventoryProductAttributeRecordId","InventoryOutOfStockAttributeValueText","ProductAvailabilitySortableAttributeRecordId","AllowOverDelivery","AllowSubDelivery","JournalNameId","InventoryJournalTypeValue","DefaultAdjustmentTypeValue","ShiftStatusValue","FilterByUserRole","IncludeAllShiftsForStore","CertificateData","Types","CustomerTimelineItemTypeClass","RefinedResultsCount","ProductWarehouseInventoryAvailabilities","ProductWarehouseInventoryAvailabilityClass","AggregatedProductInventoryAvailabilities","ProductInventoryAvailabilityClass","SearchArea","QuantityUnitTypeValue","TypeName","ExtensibleEnumerations","EmailBehaviorValue","SwatchValue","ProductImageUrls","UnitSymbol","TextValueTranslations","ActionProperty","BackColorAsARGB","ARGBColorClass","BorderColorAsARGB","Column","ColumnSpan","DisplayText","FontColorAsARGB","ButtonId","Row","RowSpan","UseCustomLookAndFeel","PictureAsBase64","FontStyle","FontSize","EnableCustomFontForPOS","HideButtonText","Tooltip","EnableLiveContent","NotificationContentAlignment","ImageAlignment","A","R","G","B","PriceMethod","OriginId","PriceChangedByExtensions","TradeAgreementPriceLineClass","CanApplyPriceAdjustments","SalesAgreementName","UnitPrice","DiscountPercent","SalesAgreementLineTypeValue","PriceUnit","EffectiveDate","CommittedQuantity","CommittedAmount","RemainingAmount","PriceAdjustmentPriceLineClass","Concurrency","CanCompoundOnAdjustedPrice","AdjustedAmount","OriginalAmount","OverrideAmount","OverrideReasonDescription","OverrideDateTime","TaxComponent","Path","UniqueCardId","IsLocalized","IsSearchable","IsRetrievable","IsQueryable","IsRefinable","IsSortable","IsTokenNormalization","IsCompleteMatch","FromUnitOfMeasureId","ToUnitOfMeasureId","FromUnitOfMeasureSymbol","ToUnitOfMeasureSymbol","IsBackward","Factor","Numerator","Denominator","InnerOffset","OuterOffset","ReturnLocationText","ReturnWarehouseText","ReturnReasonText","ReturnPalleteText","LoyaltyGroupRecordId","EntryDate","EntryTime","RewardPointRecordId","RewardPointIsRedeemable","RewardPointType","ServiceType","PackageWeight","WeightClass","ShippedOnDate","DeliveredOnDate","EstimatedDeliveryDate","PackagingType","DestinationAddress","OriginAddress","ShipmentProgress","ShipmentProgressClass","ShippingCharge","Location","DateTime","AddressComponentNameValue","IsDataEntryOnly","NewLine","Expand","Inactive","Special","NumberOfSpaces","Separator","CashDrawerConfigurations","HardwareConfigurationClass","PrinterConfigurations","PinPadConfiguration","HardwareStationRecordId","IPAddress","Port","PrinterType","PrintBehaviorValue","ReceiptLayoutId","ReceiptType","TransferQuantity","DocumentLineRecordId","InventTransRecordId","AddressBookId","AddressBookTypeValue","AmountInForeignCurrency","ForeignCurrencyExchangeRate","BankBagNumber","TenderRecount","Type","DenominationAmount","QuantityDeclared","AmountDeclared","ButtonGridId","ZoneId","ZoneName","ReportRecordId","InventTransactionId","Site","Warehouse","SerialId","ColorName","SizeName","StyleName","ConfigName","ItemTaxGroup","SalesMarkup","RowData","MenuItemLabel","MenuItemName","MenuItemType","RecordingValueType","ExampleText","Hidden","IsReference","ValueLabel","PropertyName","UserActionType","ControlLabelId","NavigationPath","ArtifactType","LanguageTags","PropertyId","SingleValue","MultiValue","Tags","ComboBox","MultiSelect","Links","FormID","FormName","RecordingName","HasMetadata","TenderLineNumber","AdjustmentAmount","RecordGuid","Exclude","LineValidationResultClass","ValidationFailures","DataValidationFailureClass","TaxId","CodeId","DiscountOfferId","Units","PartyLocationRecordId","PartyRecordId","ValueExtension","ParentLocation","IsMobilePhone","IsOptedInMarketing","QuantityReturned","TaxRate","IsRegistrationNumberUnique","IsPrimaryAddressRestricted","TypeApplicabilityRuleRecordId","DirPartyLocationRecordId","RegistrationNumber","IssueDate","Section","LinkedProductRecordId","CategoryRecordId","RelatedProductRecordId","RelationName","IsExcludedRelation","IsDirectRelation","OrderLookupAdditionalCriteriaTypeValue","OrderLookupAdditionalCriteriaTypeParameterValue","SerialNumberInLatestFulfillmentTransaction","LatestFulfillmentTransactionOperationTypeValue","Rating","MondayOpenTime","MondayCloseTime","IsClosedOnMonday","TuesdayOpenTime","TuesdayCloseTime","IsClosedOnTuesday","WednesdayOpenTime","WednesdayCloseTime","IsClosedOnWednesday","ThursdayOpenTime","ThursdayCloseTime","IsClosedOnThursday","FridayOpenTime","FridayCloseTime","IsClosedOnFriday","SaturdayOpenTime","SaturdayCloseTime","IsClosedOnSaturday","SundayOpenTime","SundayCloseTime","IsClosedOnSunday","PeriodId","StartingTime","EndingTime","IsTimeBounded","MondayStartingTime","MondayEndingTime","IsMondayTimeBounded","TuesdayStartingTime","TuesdayEndingTime","IsTuesdayTimeBounded","WednesdayStartingTime","WednesdayEndingTime","IsWednesdayTimeBounded","ThursdayStartingTime","ThursdayEndingTime","IsThursdayTimeBounded","FridayStartingTime","FridayEndingTime","IsFridayTimeBounded","SaturdayStartingTime","SaturdayEndingTime","IsSaturdayTimeBounded","SundayStartingTime","SundayEndingTime","IsSundayTimeBounded","IsEndTimeAfterMidnight","IsMondayEndTimeAfterMidnight","IsTuesdayEndTimeAfterMidnight","IsWednesdayEndTimeAfterMidnight","IsThursdayEndTimeAfterMidnight","IsFridayEndTimeAfterMidnight","IsSaturdayEndTimeAfterMidnight","IsSundayEndTimeAfterMidnight","FromStaffId","ToStaffId","RecId","RerunUploadSessionId","TargetStorage","UploadJobDefintion","UploadUrl","TransactionDateTime","UploadTypeValue","ItemCount","IsNew","LastUpdatedDateTimeStr","IsSuccess","IsLiveContentOnly","AuditEvent","SequentialSignatureKey","SequenceNumber","AllowSkip","AllowMarkAsRegistered","AllowPostpone","Optional","RegistrationSettings","FiscalIntegrationRegistrationSettingsClass","SequentialKeys","SkipReasonCode","MarkAsRegisteredReasonCode","PostponeReasonCode","RegistrationProcessLine","ConnectionProperties","FiscalIntegrationConfigurationPropertyClass","LabelName","FailureTypeValue","IsRetryAllowed","Segments","CategoryPathSegmentClass","CategoryId","BaseUrl","ServiceId","PhysicalInventory","TotalAvailable","OrderedInTotal","PhysicalAvailable","LastInventoryTransactionId","UnpostedOnlineOrderedQuantity","UnpostedFulfilledQuantity","IsInventoryAvailabilityQuantityReturned","UnprocessedQuantity","MaximumPurchasablePhysicalAvailableQuantity","MaximumPurchasableTotalAvailableQuantity","SumUncountedTransactions","TotalAvailableQuantity","PhysicalAvailableQuantity","ValidationResultsByLineId","CartLineValidationResultsByLineIdClass","ValidationFailuresByCartLines","LineDataValidationFailureClass","CommerceExceptionClass","ErrorResourceId","DataValidationExceptionClass","ValidationResults","RequiredReasonCodes","TransactionRequiredReasonCodeIds","ReasonCodeRequirements","SecurityExceptionClass","UserAuthenticationExceptionClass","TaskManagementExceptionClass","TaskManagementErrors","TaskManagementErrorClass","ErrorContext","MemberNames","RemovedUnavailableItemIds","WorkingTerminalId","LineIdToProductBehaviorMap","KeyValuePair_2OfString_ProductBehaviorClass","ValidationResultsPairs","ActualLength","MinLength","PaymentConfigurationSdkErrors","OriginalTenderType","AllowedReturnTenderTypes","RequestedUserId","IsForFullOrganization","FromDate","ToDate","RequestingUserEmail","AccountStatementStartDateTime","AccountStatementEndDateTime","DataValidationFailure","RedirectUri","AutoExitMethodType","CardType","PublishingAction","ListingPublishingActionStatus","OnlineChannelPublishStatusType","ReceiptTransactionType","EmployeePriceOverrideType","KeyInPriceRestriction","KeyInQuantityRestriction","ProductDimensionType","ProductType","NumberSequenceSeedType","ReasonCodeSourceType","TriggerFunctionType","QueryType","ChangeAction","PeriodicDiscountOfferType","SearchFilterType","InfoCodeActivity","SrsReportFileFormat","ShiftReconciliationLineStatus","ProductSearchServiceType","SearchSuggestionType","SalesStatus","EFTType","FilterDeliveryModeOption","InventoryDocumentLineOperationResultMode","InventoryDocumentStatus","InventoryDocumentUpdateLinesActionType","InventoryInboundOutboundDocumentOperationType","InventoryInboundOutboundSourceDocumentStatus","InventorySourceDocumentType","InventoryInboundOutboundDocumentState","ReceiptNumberResetType","PeriodUnit","WarrantyPriceRangeBaseType","LogOnKeyboardType","LogOnLayoutType","DeliveryModeTypeFilter","InventoryDocumentValidationResultSeverity","InventoryDocumentOverreceivingErrors","InventoryDocumentSerialNumberErrors","EmployeeIdentityType","FulfillmentOperationType","PaymentStatus","UserAlertSourceType","CustomerOrderMode","InventoryValidationErrors","InventoryJournalPosAdjustmentType","ProductDataValidationErrors","AddressOperationType","AttributeDataType","BarcodeEntryMethodType","BarcodeMaskType","TransactionStatus","GiftCardOperationType","RetailGiftCardType","SalesAgreementLineType","DiscountLineType","ManualDiscountType","CustomerDiscountType","ReasonCodeInputType","ReasonCodeLineType","ChargeModule","ChargeType","ChargeMethod","CashType","IncomeExpenseAccountType","TenderLineStatus","TenderLineVoidStatus","PaymentProcessingType","CreditCardProcessorStatus","ContactInformationType","CommerceEntityDataLevel","ProductPropertyType","AttributeGroupType","ProductSource","RoundingMethod","LineMultilineDiscountOnItem","LoyaltyRewardPointEntryType","LoyaltyRewardPointType","TransactionType","CashManagementTransactionContext","CustomerTimelineItemEntityType","EmployeePermissionsAllowPrintingReceiptCopy","AddressFormatLineType","SalesRepPromptType","RetailProductSearchType","RetailDenominationsToDisplay","EmployeeLogonType","RetailCustomerSearchMode","RequirePaymentForFulfillment","CardNotPresentProcessingConfiguration","ChangeDueBehavior","FontSchemeType","DeviceActivationStatus","DualDisplayType","FiscalRegisterType","PrinterLogotype","PrinterLogoAlignmentType","FiscalIntegrationConnectorType","FiscalIntegrationConnectorLocation","PrintBehavior","DistanceUnit","StockCountStatus","RecommendedElementType","CommerceListInvitationStatus","CommerceListInvitationType","SearchLocation","OrderSearchType","SalesTransactionType","CustomerRefinerSource","PriceSourceType","RetailAffiliationType","InventoryDocumentLineOriginType","InventorySerialNumberLineStatus","InventorySourceDocumentLineStatus","RetailOperation","RefinerType","DisplayTemplate","ClientBookRefinerSource","ProductRefinerSource","LoyaltyCardTenderType","ReleasedProductType","RetailChannelType","LogOnConfiguration","TransactionServiceAuthenticationType","IncludePersonalDataInGuestOrderLookupPolicy","RetailAddressBookType","InventoryAvailabilityClientDisplayMode","EmployeeActivityType","DeliveryPreferenceType","LayoutType","SalesInvoiceType","InvoiceType","InvoicePaidStatus","TaxOverrideType","TaxOverrideBy","ReasonCodeInputRequiredType","FrameworkAccess","MetadataControl","FiscalIntegrationRegistrationStatus","CustomerOrderOperation","BusinessPartnerOperationType","BusinessPartnerOperationStatus","CartType","CartStatus","PeriodicDiscountsCalculateScope","CustomerType","ContactInfoType","ChecklistStatus","ChecklistTaskDeepLinkType","ChecklistTaskStatus","DocumentStatus","CustomerOrderType","LineDiscountCalculationType","TaxCalculationType","ShiftStatus","TaxRegistrationType","CommerceListType","RecommendationType","PurchaseTransferOrderType","BusinessPartnerUserStatus","ElectronicAddressType","DownloadSessionStatus","HardwareStationType","AuditEventUploadType","AuditEventType","AuditLogTraceLevel","FiscalIntegrationEventType","FiscalIntegrationDocumentGenerationResultType","FiscalIntegrationRegistrationProcessMode","FiscalIntegrationServiceCommunicationResultType","FiscalIntegrationServiceFailureType","PickupTimeslotAvailabilitySearchOption","AttachedServiceStatus","ReceiptEmailBehavior","CartLineQuantityLimitsErrors","CommunicationErrors","ConfigurationErrors","DataValidationErrors","FeatureNotSupportedErrors","SecurityErrors","StorageErrors","VersionNotSupportedErrors","PaymentErrors","FiscalIntegrationServiceErrors","CommerceDataExchangeErrors","TaskManagementErrorCode","PricingDataValidationErrors","PaymentConfigurationErrors","BusinessPartnerOperationDeliveryType","OnlineStoreCustomerType","WrongEndpointErrors","RetailServerApiErrors","ExceptionSeverity","_handlers","_attachHandler","handler","_executeHandlers","onFail","onSuccess","_updateStatus","_reject","reason","getType","onfinally","failed","toStringTag","newStatus","isError","obj","__decorate","GENERICERRORMESSAGE","DeviceActivationErrorsForwardLinks","ErrorHelper","errorResourceId","AGGREGATED_ERROR_RESOUCEIDS","errorMessage","statusCode","errorCode","canRetry","BAD_REQUEST","NOT_AUTHORIZIED","FORBIDDEN","PRECONDITION_FAILED","SERVICE_UNAVAILABLE","SERVER_ERROR","body","RETURN_NO_ORDERS_FOUND","SERVER_TIMEOUT","numErrors","isRetryable","CanRetry","errorResourceIds","LocalizedErrorMessage","handled","redirectUrl","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","URL","location","href","searchParams","rdc","parseError","responseText","jsonResponse","parse","ex","errorString","errorResponse","commerceErrors","odataError","localizedMessage","exceptionType","convertExceptionToErrors","serverException","DataValidationExceptionType","CartValidationExceptionType","dataValidation","getErrorsFromDataValidationFailures","StorageExceptionType","commerceException","failures","failure","contentType","bodyString","Exception","toLowerCase","parseJSONError","genericWarning","ProxyErrorSDK","localizedErrorMessage","formatData","extraData","_canRetry","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","_extraData","errorName","ErrorTitleResourceId","accumulator","depth","stringifyValue","returnValue","trim","regexp","RegExp","normalHeaders","accept","normalizeHeaders","lowerName","normalName","defaultHttpClient","callbackParameterName","formatQueryString","enableJsonpCallback","success","abort","handleTimeout","cancelToken","axios","done","cancel","url","isAbsoluteUrl","authenticationCreds","username","password","axiosTimeout","timeoutMS","___initialData___","_clientPlatformSetting","clientSideDataActionTimeoutInMs","auth","timeout","axiosResponse","axiosError","process","recognizeDates","useJsonLight","inferJsonLightFeedAsObject","Accept","write","maxDataServiceVersion","prepareRequest","jsonHandler","httpClient","invokeRequest","jsonMediaType","ODATA_VERSION","ODATA_MAX_VERSION","str","contentTypeParts","properties","len","contentTypeParams","mediaType","jsonContentType","createReadWriteContext","contentTypeStr","dataServiceVersion","rwContext","versionRE","getDataServiceVersion","headerVersion","matches","exec","handlerWrite","cType","CONTENT_TYPE_HEADER_NAME","version","writeContext","left","right","leftParts","rightParts","leftVersion","rightVersion","maxVersion","ContentType","contentTypeObj","contentTypeToString","handlerRead","formatNumberWidth","append","parseTimeRE","parseDateTimeRE","parseDateTimeOffset","withOffset","nullOnError","parts","timezone","year","ms","ns","substring","seconds","direction","d","m","parseTimezone","setUTCFullYear","setUTCHours","isNaN","valueOf","__ns","propertyType","EDM","propertyValue","duration","years","months","days","parseDuration","dateStr","time","timezoneOffsetIndex","EventLevel","EventChannel","DebuggingConsoleSink","setSessionInfo","userId","tenantId","offlineAvailability","offlineCurrentMode","setInstrumentationKey","instrumentationKey","writeEvent","LoggerBase","channel","level","keywords","task","opCode","loggingSink","enumType","requestUrl","sink","informationformat","TracingOn","GetMessage","apply","TracerDynamicsError","warningFormat","errorFormat","formatString","uniqueFunctionName","counter","Counters","PerformanceCounters","now","getTime","Timers","startTime","pop","TotalTime","TracerDynamics","slice","init","retailAction","callActionOrExecute","global","fails","uncurryThis","whitespaces","charAt","$parseFloat","ITERATOR","iterator","FORCED","Infinity","module","exports","string","trimmedString","$","forced","IS_PURE","NativePromiseConstructor","getBuiltIn","isCallable","speciesConstructor","promiseResolve","defineBuiltIn","NativePromisePrototype","target","proto","real","onFinally","C","isFunction","x","unsafe"],"sourceRoot":""}