{"version":3,"file":"static/js/245941b383bd80ee38a7.bundle.js","mappings":"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","sources":["webpack://mattressfirm/../../src/DataActions/BusinessPartnerUsersDataActions.g.ts?c8e5","webpack://mattressfirm/../../src/DataActions/BusinessPartnersDataActions.g.ts?502e","webpack://mattressfirm/../../src/DataActions/CartsDataActions.g.ts?f2f8","webpack://mattressfirm/../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack://mattressfirm/../../src/DataActions/CommerceListsDataActions.g.ts?d44a","webpack://mattressfirm/../../src/DataActions/CustomersDataActions.g.ts?081a","webpack://mattressfirm/../../src/DataActions/OrgUnitsDataActions.g.ts?c88f","webpack://mattressfirm/../../src/DataActions/ProductListsDataActions.g.ts?81df","webpack://mattressfirm/../../src/DataActions/ProductsDataActions.g.ts?8ea2","webpack://mattressfirm/../../src/DataActions/RecommendationsDataActions.g.ts?31c0","webpack://mattressfirm/../../src/DataActions/SalesOrdersDataActions.g.ts?4e0c","webpack://mattressfirm/../../src/DataActions/ScanResultsDataActions.g.ts?42cd","webpack://mattressfirm/../../src/DataActions/StoreOperationsDataActions.g.ts?85ae","webpack://mattressfirm/../src/DataServiceQuery.ts?8aab","webpack://mattressfirm/../src/DataServiceRequest.ts?423e","webpack://mattressfirm/../../src/Entities/CommerceModels.g.ts?1e76","webpack://mattressfirm/../../src/Entities/CommerceTypes.g.ts?34ee","webpack://mattressfirm/../../src/Interfaces/ICache.ts?0279","webpack://mattressfirm/../src/async-result.ts?1ea5","webpack://mattressfirm/../../src/exceptions/ErrorHelper.ts?deca","webpack://mattressfirm/../../src/exceptions/ErrorParser.ts?d883","webpack://mattressfirm/../../src/exceptions/ProxyErrorSDK.ts?c06e","webpack://mattressfirm/../../src/exceptions/ProxyError.ts?f6d3","webpack://mattressfirm/../../src/extensions/StringExtensions.ts?6e3d","webpack://mattressfirm/../../src/externals/DataJS.New.ts?f131","webpack://mattressfirm/../../src/externals/handler.ts?a98d","webpack://mattressfirm/../../src/externals/helper.ts?18b4","webpack://mattressfirm/../../src/logging/ConsoleEventWriter.ts?1638","webpack://mattressfirm/../../src/logging/RetailLogger.ts?9e7e","webpack://mattressfirm/../../src/logging/Tracer.ts?faf4","webpack://mattressfirm/../src/retail-action.ts?fc97"],"sourcesContent":["\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 { 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): 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 });\n } \n \n export function getByIdsAsync(context: IContext, channelId: number, productIds: number[], inventLocationId?: string | null):AsyncResult {\n const request = createGetByIdsInput(context.queryResultSettings, channelId, productIds, inventLocationId);\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): 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 });\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):AsyncResult {\n const request = createGetActivePricesInput(context.queryResultSettings, projectDomain, productIds, activeDate, customerId, affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice, includeVariantPriceRange);\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): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByLookupClauses', true, SimpleProductClass, 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productLookupClauses: productLookupClauses });\n } \n \n export function getByLookupClausesAsync(context: IContext, channelId: number, productLookupClauses?: ProductLookupClause[] | null):AsyncResult {\n const request = createGetByLookupClausesInput(context.queryResultSettings, channelId, productLookupClauses);\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, FiscalIntegrationTechnicalProfileSearchCriteria, FiscalIntegrationServiceInfo, FiscalIntegrationServiceStatus, FiscalIntegrationServiceCommunicationResult, FeatureState, FiscalIntegrationSequentialSignatureData, PickupTimeslotAvailabilitySearchCriteria, PickupTimeslotAvailability, 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, FiscalIntegrationServiceStatusClass, FiscalIntegrationServiceCommunicationResultClass, FeatureStateClass, FiscalIntegrationSequentialSignatureDataClass, FiscalTransactionClass, PickupTimeslotAvailabilityClass, 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): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('StartSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function startSessionAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createStartSessionInput(transactionId);\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 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 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};\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 this._query.resultSettings.Sorting.Columns.forEach((column: SortColumn) => {\n if (!isNullOrWhitespace(column.ColumnName || EMPTY)) {\n const orderByColumn: string = format('{0}%20{1}', column.ColumnName, column.IsDescending ? 'desc' : 'asc');\n\n requestUri = DataServiceRequest.addParameter(requestUri, '$orderby', orderByColumn);\n }\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 // 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 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.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 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 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 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.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.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.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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 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 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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.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.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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 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.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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 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 \n // Navigation properties names\n \n /**\n * Construct 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.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 }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 Amount: number;\n public DiscountCost: number;\n public EffectiveAmount: number;\n public EffectivePercentage: 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 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.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.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.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 \n // Navigation properties names\n \n /**\n * Construct 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 }\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 \n // Navigation properties names\n \n /**\n * 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 }\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 WarehouseLocation: string;\n public InventoryStatusId: string;\n public LicensePlate: string;\n public InventoryDimensionId: 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 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 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.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.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.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.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 OverriddenFloatEntryAmountInTenderedCurrency: number;\n public OverriddenBankDropAmountInTenderedCurrency: number;\n public OverriddenChangeAmountInTenderedCurrency: number;\n public OverriddenDeclaredTenderAmountInTenderedCurrency: number;\n public OverriddenRemovedTenderAmountInTenderedCurrency: number;\n public OverriddenSafeDropAmountInTenderedCurrency: number;\n public OverriddenStartingAmountInTenderedCurrency: 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.OverriddenFloatEntryAmountInTenderedCurrency = \n (odataObject.OverriddenFloatEntryAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInTenderedCurrency) : undefined;\n \n this.OverriddenBankDropAmountInTenderedCurrency = \n (odataObject.OverriddenBankDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenChangeAmountInTenderedCurrency = \n (odataObject.OverriddenChangeAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInTenderedCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInTenderedCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInTenderedCurrency = \n (odataObject.OverriddenRemovedTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInTenderedCurrency = \n (odataObject.OverriddenSafeDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenStartingAmountInTenderedCurrency = \n (odataObject.OverriddenStartingAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInTenderedCurrency) : 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 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.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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 AvailableSerializedLineOnly: boolean;\n public DocumentLineIds: string[];\n public DocumentOperationTypeValue: 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.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.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.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['InventoryDocumentLineSearchCriteriaClass'] = InventoryDocumentLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSearchCriteria entity class.\n */\n export class InventoryDocumentSearchCriteriaClass implements Entities.InventoryDocumentSearchCriteria {\n public DocumentId: 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.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 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.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 \n // Navigation properties names\n \n /**\n * Construct 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 }\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 \n // Navigation properties names\n \n /**\n * Construct 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 }\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 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.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 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.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 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.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 * 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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 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.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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 /**\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 /**\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 * 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 * 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 /**\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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 /**\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 /**\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 * 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 /**\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 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 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 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 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 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 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 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 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 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 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 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 }\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 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 Amount?: number;\n DiscountCost?: number;\n EffectiveAmount?: number;\n EffectivePercentage?: 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 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 }\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 }\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 WarehouseLocation?: string;\n InventoryStatusId?: string;\n LicensePlate?: string;\n InventoryDimensionId?: 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 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 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 OverriddenFloatEntryAmountInTenderedCurrency?: number;\n OverriddenBankDropAmountInTenderedCurrency?: number;\n OverriddenChangeAmountInTenderedCurrency?: number;\n OverriddenDeclaredTenderAmountInTenderedCurrency?: number;\n OverriddenRemovedTenderAmountInTenderedCurrency?: number;\n OverriddenSafeDropAmountInTenderedCurrency?: number;\n OverriddenStartingAmountInTenderedCurrency?: 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 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 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 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 AvailableSerializedLineOnly?: boolean;\n DocumentLineIds?: string[];\n DocumentOperationTypeValue?: number;\n LocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSearchCriteria entity interface.\n */\n export interface InventoryDocumentSearchCriteria {\n DocumentId?: 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 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 }\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 }\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 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 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 TechnicalProfile?: string;\n ExtensionProperties?: CommerceProperty[];\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 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 * 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 * 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 * 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 * PriceAdjustmentPriceLine entity interface.\n */\n export interface PriceAdjustmentPriceLine extends PriceLine {\n IsCompoundable?: boolean;\n Concurrency?: string;\n }\n \n /**\n * BasePriceLine entity interface.\n */\n export interface BasePriceLine extends PriceLine {\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 * 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 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 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 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 }\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"],"names":["businessPartnerUsersQuery","b2BUserId","key","B2BUserId","DataServiceQuery","BusinessPartnerUserClass","createCreateInput","entity","create","createBusinessPartnerUserAsync","context","request","executeAction","createUpdateInput","update","updateAsync","createDeleteAsync","delete","deleteAsync","createReadAsync","read","readAsync","createReadAllAsync","queryResultSettings","resultSettings","readAllAsync","createRequestAccountStatementInput","accountStatementParameters","createDataServiceRequestForOperation","bypassCache","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","Id","CartClass","createCartAsync","createSearchInput","cartSearchCriteria","searchAsync","createCheckoutInput","receiptEmail","tokenizedPaymentCard","receiptNumberSequence","cartTenderLines","cartVersion","SalesOrderClass","checkoutAsync","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","loyaltyCardId","currencyCode","LoyaltyPointRedemptionEstimateClass","getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync","createGetPaymentsHistoryInput","TenderLineClass","getPaymentsHistoryAsync","createGetLineDeliveryOptionsByChannelIdInput","lineShippingAddresses","channelId","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","categoriesQuery","recordId","RecordId","CategoryClass","getCategoriesAsync","catalogId","createGetCategoriesInput","commerceListsQuery","CommerceListClass","createCommerceListAsync","createGetByCustomerInput","customerId","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","customersQuery","accountNumber","AccountNumber","CustomerClass","createGetOrderShipmentsHistoryInput","nextPageToken","getOrderShipmentsHistoryAsync","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","searchCriteria","createGetProductListLinesInput","searchText","ProductListLineClass","getProductListLinesAsync","createAddProductListLinesInput","productListLines","addProductListLinesAsync","createUpdateProductListLinesInput","updateProductListLinesAsync","createRemoveProductListLinesInput","removeProductListLinesAsync","createCopyCartToProductListInput","isRewrite","isQuantityAggregate","copyCartToProductListAsync","productsQuery","ProductClass","createProductAsync","productSearchCriteria","createGetRefinersInput","ProductRefinerClass","getRefinersAsync","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","categoryId","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","customerAccountNumber","unitOfMeasureSymbol","quantity","ProductPriceClass","getPricesAsync","createGetProductAvailabilitiesInput","itemIds","ProductAvailableQuantityClass","getProductAvailabilitiesAsync","createGetActivePricesInput","projectDomain","activeDate","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","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","searchLocationValue","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","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","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","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","constructor","entitySet","entityType","returnType","this","_query","tokens","options","Paging","Sorting","value","count","filter","filterSettings","Top","Skip","expand","propertyName","expands","push","inlineCount","orderBy","Columns","ColumnName","object","action","data","_createODataParameters","_createRequest","undefined","isReturnTypeACollection","setGetAllRecords","isGetAllRecords","operationName","isAction","DataServiceRequest","GET","POST","ODATA_TOTAL_COUNT_PROPERTY","DEFAULT_HEADER","Prefer","parseOdataResult","resultType","resultSet","Object","prototype","toString","call","i","length","hasNextPage","query","_cacheKeyFromReturnType","getActionId","_actionId","getCacheObjectType","_cacheObjectType","getCacheKey","_cacheKeyFromInput","dataCacheType","getDataCacheType","shouldCacheOutput","overrideCacheType","Tracer","toJS","recurseEverything","_hasOperationName","_method","getActionIdFromInput","getCacheObjectValueFromReturnType","entityIdentifier","_cacheKeyIdentifierFromReturnType","EntityIdentifier","Key","buildCacheFromInput","_callerContext","requestContext","apiSettings","baseUrl","locale","_totalCount","queryParams","_otherOdata","batchRequestUri","requests","requestId","odataBatchRequest","requestUri","method","__batchRequests","batchRequests","changeRequests","forEach","_id","odataRequest","_requestUri","toJson","headers","__changeRequests","batchResponses","responses","errors","Array","response","__changeResponses","concat","parseBatchResponses","message","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","result","EMPTY","formattedKey","join","parameter","paramValue","isEmpty","encodeURIComponent","parameterSeparator","indexOf","name","replace","cacheKeyIdentifierFromReturnType","cacheKey","isObjectNotEmptyOrNull","cacheKeyValue","convertToString","execute","callerContext","oun","Error","JSON","stringify","getRequestUri","buildQueryHeader","loadPage","getAllPages","executeBatch","Promise","resolve","reject","ODataHttpRequest","buildBatchRequest","__batchResponses","error","formatKey","formatFunctionParameter","addParameter","column","isNullOrWhitespace","orderByColumn","format","IsDescending","hasElements","ApiVersion","results","then","loadPageResults","catch","headerName","tokenName","tokenValue","user","token","accessToken","cookieData","appSessionCookie","get","userSessionCookie","status","appSessionId","split","userSessionId","Utils","modelManagersRetailServerRequestStarted","modelManagersRetailServerRequestFinished","otherOdata","setMetadata","map","Boolean","modelManagersRetailServerRequestError","odataList","keys","reduce","newData","entityDictionary","odataObject","OfflineImage","Name","ParentCategory","DisplayOrder","parseFloat","Images","className","substr","lastIndexOf","NameTranslations","TextValueTranslationClass","ExtensionProperties","CommercePropertyClass","AffiliationLines","AffiliationLoyaltyTierClass","IsRequiredAmountPaid","IsDiscountFullyCalculated","IgnoreDiscountCalculation","AmountDue","AmountPaid","AttributeValues","AttributeValueBaseClass","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","PrepaymentAppliedOnPickup","PrepaymentAmountInvoiced","PromotionLines","QuotationExpiryDate","ReasonCodeLines","ReasonCodeLineClass","ReceiptEmail","RequestedDeliveryDate","RequiredDepositAmount","RequiredDepositWithoutCarryoutAmount","SalesId","ShippingAddress","AddressClass","StaffId","SubtotalAmount","SubtotalAmountWithoutTax","NetPrice","SubtotalSalesAmount","TaxAmount","TaxOnCancellationCharge","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","EmployeeClass","NameOnReceipt","CultureName","NumberOfDaysToPasswordExpiry","Permissions","EmployeePermissionsClass","DefaultImage","DefaultCommissionSalesGroup","IdentifierTypeValue","ChecklistClass","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","IsTaxIncludedInPrice","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","ShiftClass","StartingAmountTotal","FloatingEntryAmountTotal","AddToTenderAmountTotal","SafeDropTotal","BankDropTotal","RemoveTenderAmountTotal","DeclareTenderAmountTotal","OverShortTotal","TenderedTotal","ChangeTotal","IncomeAccountTotal","ExpenseAccountTotal","CashDrawer","StoreRecordId","CurrentStaffId","CloseDateTime","ClosedAtTerminalId","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","StockCountJournalClass","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","ProductCatalogClass","IsSnapshotEnabled","ValidFrom","ValidTo","CreatedOn","ModifiedOn","PublishedOn","IsPrivate","IsCollaborative","DueDateTime","CommerceListTypeValue","CommerceListLines","CommerceListLineClass","CommerceListContributors","CommerceListContributorClass","CommerceListInvitations","CommerceListInvitationClass","LastUpdated","DeletedDateTime","ProductListTypeValue","ProductListLines","RecommendationTypeValue","Title","TransferOrderClass","OrderId","Status","Lines","OrderTypeValue","InventLocationIdFrom","InventLocationIdTo","QuantityShipped","QuantityReceived","QuantityShipNow","QuantityReceiveNow","QuantityShipRemaining","QuantityReceiveRemaining","ShipDate","ReceiveDate","DeliveryModeId","OrderLines","TransferOrderLineClass","PurchaseOrderClass","TotalReceived","PurchaseOrderLineClass","DeliveryDate","PickingListLineClass","WarehouseClass","InventLocation","IsWMSEnabled","DefaultInventoryStatus","DefaultReceiptLocation","DefaultLocationId","DefaultIssueLocation","Address","MaskTypeValue","Barcode","Product","LoyaltyCard","GiftCard","Customer","SalesOrderContextualOperationsMapClass","ApplicableOperationsValues","SalesOrder","InventoryInboundOutboundDocumentClass","WorkDocumentId","CommitRequestId","Sender","Receiver","SenderDetails","ReceiverDetails","OperationTypeValue","Note","OperationResultMessage","DocumentId","LongVersion","SourceDocument","InventoryInboundOutboundSourceDocumentClass","SourceDocumentTypeValue","NoteModifiedByStaffId","NoteModifiedDateTime","DocumentTypeId","SpendingLimit","LastOperationId","IsAdmin","SuspendedCartClass","Cart","CountryRegionClass","CountryRegionId","IsoCode","ShortName","ExtensibleEnumerationClass","Value","ExtensibleEnumeration_1OfTClass","super","ExtensibleTransactionTypeClass","ExtensibleSalesTransactionTypeClass","FulfillmentLineStatusClass","FulfillmentLineDeliveryTypeClass","ExtensibleAddressTypeClass","ExtensibleLoyaltyRewardPointActivityEntryTypeClass","ExtensibleAttributeDataTypeClass","ReleasedProductServiceTypeClass","ExtensibleElectronicAddressTypeClass","ReceiptOutputFormatTypeClass","OrderLookupAdditionalCriteriaTypeClass","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","GlobalCustomerClass","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","GetButtonGridsByIdsCriteriaClass","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","DiscountLines","DiscountLineClass","RelatedDiscountedLineIds","TaxRatePercent","IsCustomerAccountDeposit","LinkedParentLineId","QuantityReturnable","LineNumber","TrackingId","QuantityRemained","CatalogId","ThirdPartyGiftCardInfo","ThirdPartyGiftCardInfoClass","BarcodeEmbeddedPrice","PriceInBarcode","InvoiceTypeValue","InvoicedSalesId","WarehouseLocation","DetailedLineStatusValue","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","CartTenderLineClass","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","AttributeCategoryClass","CommercePropertyValueClass","Attribute","MetadataFlags","ProductAttributeMetadataFlagsClass","IsDimension","ProductComparisonEntryClass","AttributeValue","AttributeRecordId","AttributeName","ProductAttributeComparisonEntries","CustomerSearchFieldClass","IsShortcut","DisplayName","CanBeRefined","SearchField","CustomerSearchFieldTypeClass","CustomerSearchByFieldCriteriaClass","Criteria","CustomerSearchByFieldCriterionClass","DataLevelValue","SearchTerm","ShipmentId","DeliveryAddress","TermsOfDelivery","WeightUnit","TrackingNumber","TrackingUrl","LatestCarrierTrackingInfo","TrackingInfoClass","CarrierId","CarrierName","ShippingWeight","ShipmentLines","ShipmentLineClass","ShipmentLineId","InventDimId","OrderedQuantity","DeliveredQuantity","RemainingQuantity","FromSafe","ToSafe","FromShiftTerminalId","ToShiftTerminalId","FromShiftId","TransactionSourceContextTypeValue","TransactionDestinationContextTypeValue","ToShiftId","GroupDescription","ShiftGroupLinesCount","ShiftGroupLinesClosedCount","ShiftReconciliationLineRetrievalCriteriaClass","TransactionTypeValues","ShiftReconciliationLineStatusValue","Shifts","ShiftKeyClass","DestinationShift","SourceShift","SourceSafe","DestinationSafe","ProductSortColumns","SortColumnClass","ProductSearchServiceTypeValue","ProductSortColumnsLabels","LocalizedTextClass","CustomerTimelineItemClass","EntityType","AttributeTypeName","ExtDataType","IsHidden","IsMandatory","IsMultiValue","IsEnumeration","TranslationDetails","AttributeTranslationDetailsClass","EnumerationDetails","AttributeEnumerationClass","DefaultValue","UpperBound","LowerBound","FriendlyName","HelpText","OrdinalNumber","EnumerationValue","AttributeEnumerationTranslations","AttributeEnumerationTranslationClass","EnumerationTranslationValue","AttributeDefinitionCriteriaClass","AttributeGroupIdentifier","Languages","AttributeGroupTranslationDetailsClass","AttributeGroupRecordId","AttributeGroupDefinitionCriteriaClass","AttributeGroupIdentifiers","CustomerGroupNumber","CustomerGroupName","OfferId","OfferName","DiscountCost","EffectiveAmount","EffectivePercentage","SavedEffectiveAmount","Percentage","DealPrice","DiscountLineTypeValue","ManualDiscountTypeValue","CustomerDiscountTypeValue","PeriodicDiscountTypeValue","DiscountApplicationGroup","ConcurrencyModeValue","IsCompoundable","PricingPriorityNumber","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","CardPaymentAcceptSettingsClass","HostPageOrigin","AdaptorPath","CardTokenizationEnabled","CardPaymentEnabled","PaymentAmount","HideBillingAddress","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","InventoryStatusId","LicensePlate","ReservationId","ReturnQuantity","ProductSourceValue","IsInvoiceSettled","IsPriceLocked","AgreementPrice","ReturnStore","ReturnTerminalId","ReturnChannelId","SalesDate","SavedQuantity","IsSavedDiscount","ElectronicDeliveryEmailAddress","LoyaltyPercentageDiscount","TenderDiscountPercentage","Found","DateToActivateItem","PeriodicPercentageDiscount","QuantityDiscounted","UnitQuantity","UnitOfMeasureConversion","UnitOfMeasureConversionClass","PriceLines","PriceLineClass","PeriodicDiscountPossibilities","ReturnLabelProperties","ReturnLabelContentClass","LineMultilineDiscOnItem","LineMultilineDiscOnItemValue","WasChanged","OriginalSalesOrderUnitOfMeasure","InventOrderUnitOfMeasure","IsLoyaltyDiscountApplied","ReturnLoyaltyRewardPointLines","FulfillmentStatus","FulfillmentStatusValue","DetailedLineStatus","DetailedLineStatusClass","LastReturnProcessedTime","SearchAreaClass","Radius","DistanceUnitValue","TenderTypeName","TenderCurrency","CountingRequired","StartingAmountOfStoreCurrency","StartingAmountOfTenderCurrency","FloatingEntryAmountOfStoreCurrency","FloatingEntryAmountOfTenderCurrency","SafeDropAmountOfStoreCurrency","SafeDropAmountOfTenderCurrency","BankDropAmountOfStoreCurrency","BankDropAmountOfTenderCurrency","RemoveTenderAmountOfStoreCurrency","RemoveTenderAmountOfTenderCurrency","DeclareTenderAmountOfStoreCurrency","DeclareTenderAmountOfTenderCurrency","TenderedAmountOfStoreCurrency","TenderedAmountOfTenderCurrency","ChangeAmountOfStoreCurrency","ChangeAmountOfTenderCurrency","Count","Notes","OverriddenFloatEntryAmountInTenderedCurrency","OverriddenBankDropAmountInTenderedCurrency","OverriddenChangeAmountInTenderedCurrency","OverriddenDeclaredTenderAmountInTenderedCurrency","OverriddenRemovedTenderAmountInTenderedCurrency","OverriddenSafeDropAmountInTenderedCurrency","OverriddenStartingAmountInTenderedCurrency","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","Text","DecimalPrecision","Symbol","ElementId","ElementTypeValue","RecommendationCriteriaClass","CustomerAccountNumber","ProductIds","ProductListId","UnitOfMeasure","CommerceListId","InvitationId","Invitee","IsSent","LastRequestDateTime","LastSentDateTime","InvitationTypeValue","SearchFilterClass","FilterTypeValue","SearchValues","SearchFilterValueClass","TransactionSearchCriteriaClass","TransactionIds","CustomerFirstName","CustomerLastName","ReceiptEmailAddress","SearchIdentifiers","SearchLocationTypeValue","CustomFilters","SalesOrderSearchCriteriaClass","SearchTypeValue","IncludeDetails","SalesTransactionTypeValues","TransactionStatusTypeValues","SearchStoreCriteriaClass","CustomerSearchCriteriaClass","Keyword","SearchOnlyCurrentCompany","SearchLocationValue","Refinements","CustomerRefinerValueClass","TradeAgreementPrice","MaxVariantPrice","MinVariantPrice","CustomerContextualPrice","ProductLookupId","OrgUnitAvailabilityClass","OrgUnitLocation","ItemAvailabilities","ItemAvailabilityClass","ProductVariantPropertySetClass","ProductVariantPropertiesAsList","PurchaseQuantity","PurchaseUnit","PurchaseReceived","PurchaseReceivedNow","WMSLocationId","WMSPalletId","IsCommitted","UniqueIdentifier","DeliveryMethod","QuantityTransferred","QuantityRemainShip","QuantityRemainReceive","Guid","TransferOrderJournalClass","VoucherId","UpdatedByWorker","PostingDate","Comments","JournalLines","TransferOrderJournalLineClass","AffiliationTypeValue","InventoryInboundOutboundDocumentLinesSummaryClass","InProgressQuantity","TotalLineNumber","InventoryDocumentSerialNumberLinesSummaryClass","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","InventoryDocumentLineFilterCriteriaClass","InventoryDocumentUpdateLinesActionClass","ActionTypeValue","InventoryDocumentLineOperationResultSettingsClass","ModeValue","InventoryDocumentLineSearchCriteriaClass","SourceDocumentId","AvailableSerializedLineOnly","DocumentLineIds","DocumentOperationTypeValue","InventoryDocumentSearchCriteriaClass","DocumentStateValue","DocumentTypeValues","InventoryDocumentSerialNumberLineSearchCriteriaClass","DocumentLineId","InventoryDocumentSerialNumberLineUpdateActionClass","InventoryDocumentSerialNumberLineResetActionClass","InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass","UpdatedLines","TotalLinesUpdated","WarehouseLocationSearchCriteriaClass","WarehouseIds","IsLocationProfileRequired","SearchText","WorkDocumentLineId","SourceLineId","SourceLine","InventoryDocumentValidationCategoryResultsSummaryClass","CategoryName","SeverityValue","TotalValidationResultCount","InventoryDocumentValidationResultSummaryClass","DocumentVersion","CategorySummaries","InventoryDocumentValidationResultLineClass","DocumentValidationResultLineId","ErrorCode","ErrorMessage","DocumentLongVersion","InventoryDocumentValidationResultSearchCriteriaClass","Categories","DimensionTypeValue","DimensionValue","TotalAvailableInventoryLevelLabel","TotalAvailableInventoryLevelCode","PhysicalAvailableInventoryLevelLabel","PhysicalAvailableInventoryLevelCode","DimensionId","ColorHexCode","ImageUrl","RefinerGroup","ProductDimensionCombinationClass","SearchRefinerClass","RefinerTypeValue","DisplayTemplateValue","SearchRefinerValueClass","RefinerRecordId","LeftValueBoundString","RightValueBoundString","UnitText","RowNumber","LeftValueBoundLocalizedString","RightValueBoundLocalizedString","SourceValue","Values","RefinerSourceValue","SwatchImageUrl","SwatchColorHexCode","ClientBookRefinerClass","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","InventorySiteId","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","ItemIds","Refinement","RecommendationListId","DownloadProductData","Context","IsOnline","ChangedProductsSearchCriteriaClass","SynchronizationToken","AsListings","Session","EmployeeActivitySearchCriteriaClass","FromDateTimeOffset","ToDateTimeOffset","EmployeeActivityTypeValues","SearchSuggestionCriteriaClass","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","TillLayoutClass","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","QueryResultSettingsClass","PagingInfoClass","SortingInfoClass","NextPageToken","TranslationLanguage","TranslatedProperties","DataValue","LastTransactionDataValue","LastTransactionCreatedDateTime","LastTransactionId","ResetDate","TypeValue","Enabled","Device","PurchaseHistoryClass","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","TaskUserActionClass","UserActionTypeValue","TaskId","FormUserActionClass","FormId","ControlLabel","CommandUserActionClass","ReturnTypeValue","CommandName","ControlName","ControlType","Arguments","CommandArgumentClass","LabelId","ReturnValue","Scopes","FormContextEntries","FormContextDictionaryEntryClass","RootScope","FormContext","FormContextClass","ProductVariantResolutionContextClass","ProductVariantResolutionOnKitSelectionContextClass","SelectedComponents","WarehouseLocationClass","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","FulfillmentLineSearchCriteriaClass","OrderCreatedStartDate","OrderCreatedEndDate","RequestedReceiptStartDate","RequestedReceiptEndDate","RequestedDeliveryStartDate","RequestedDeliveryEndDate","FulfillmentStatusValues","CustomerPhoneNumber","CommentClass","AuthorStaffId","AuthorName","AddressType","TenderTypePolicies","TenderTypePolicyClass","IsManagerOverrideEnabled","WarrantyClass","DurationUnitValue","Duration","ApplicablePriceRangeBaseTypeValue","ApplicablePriceRangeMin","ApplicablePriceRangeMax","RecallInvoicedSalesLineLookupClass","InvoicedLineId","IgnoreSerialNumberMismatch","WarrantyGroupClass","Warranties","WarrantyGroups","WarrantableProductId","FulfillmentLineContextualOperationsMapClass","FulfillmentLine","UserAlertClass","AlertSourceIdValue","LocalizedMessage","IsBlocking","LineIndex","UserAlerts","CompanyName","JobTitle","Department","CompanySize","ChannelSearchCriteriaClass","BusinessPartnerOperationClass","Details","BusinessPartnerOperationRequestDetailsClass","UserFirstName","UserLastName","ReceiptTypesByFormatTypeClass","ReceiptOutputFormatType","ReceiptTypesValues","InventoryJournalNameSearchCriteriaClass","JournalNameIds","IsRemoteProduct","ProductExistenceCriteriaClass","InstructionsVersion","AssignedToPersonnelNumbers","AssignedToExternalSubId","DeepLinkTypeValue","DeepLink","DeepLinkPosOperationName","ContactPersonPersonnelNumber","Instructions","CompletionDateTime","ResolvedByPersonnelNumber","ChecklistId","Uri","Priority","EmployeeActivityClass","StaffName","Activity","ActivityDateTimeOffset","EmployeeActivityTypeValue","BreakCategory","CustomerRefinerClass","TenderType","CardTokenInfo","CardTokenInfoClass","ProductDimensionAvailabilitySearchCriteriaClass","RequestedDimensionTypeValue","MatchingDimensionValues","DefaultWarehouseOnly","FilterByChannelFulfillmentGroup","DeliveryModeTypeFilterValue","LineShippingAddressClass","HeaderDeliveryPreferenceTypeValues","CartLineDeliveryPreferences","LineDeliverySpecificationClass","DeliverySpecification","DeliverySpecificationClass","DeliveryPreferenceTypeValue","PickUpStoreId","ShipFromStoreId","OrderSearchCriteriaClass","OrderStatusValues","OrderType","FulfillmentTypeValues","PickupStartDate","PickupEndDate","PickupTimeslotStartTime","PickupTimeslotEndTime","ChecklistSearchCriteriaClass","PersonnelNumber","ChecklistIds","StatusValues","TaskSearchCriteriaClass","TaskIds","FilterMyTasks","FilterOverdueTasks","ChecklistTaskTeamsIntegrationConfigurationClass","MicrosoftGraphResource","ReturnCartLineClass","ReceiptRetrievalCriteriaClass","IsCopy","IsRemoteTransaction","IsPreview","QueryBySalesId","HardwareProfileId","CartSearchCriteriaClass","CartId","ExpectedCartVersion","IncludeAnonymous","SuspendedOnly","LastModifiedDateTimeFrom","LastModifiedDateTimeTo","ReturnUrl","SearchReceiptCriteriaClass","ReceiptTypesByFormatTypeCollection","GiftReceiptLineNumbers","ElectronicAddressClass","ExtensibleEAddressType","ChannelReferenceLookupCriteriaClass","ChannelReferenceAdditionalLookupCriteria","ChannelReferenceAdditionalLookupCriteriaClass","FulfillmentLineParameterClass","ShipFulfillmentLineClass","RejectFulfillmentLineClass","RejectedQuantity","InfoCodeId","SubInfoCodeId","TotalNumberOfProducts","NumberOfProductsRead","NumberOfProductsReadInCurrentPage","NextSynchronizationToken","IsInitialSync","HasMorePublishedListings","DeletedListings","ListingIdentityClass","RatingDistribution","ProductRatingCountClass","ListingPublishStatusClass","PublishStatusValue","ListingModifiedDateTime","ChannelListingId","AppliedActionValue","StatusMessage","OrgUnitLocationSearchCriteriaClass","InventoryLocationIds","RegularStoreHours","RegularStoreHoursClass","HeaderPromotions","CartLinePromotions","Promotion","ItemUnitClass","VariantInventoryDimensionId","DistinctProductVariant","AvailableQuantity","OrgUnitAvailabilitySearchCriteriaClass","InvoiceSearchCriteriaClass","InvoiceIds","InvoiceTypeValues","InvoicePaidStatusValues","InvoiceDetailsSearchCriteriaClass","PickAndPackSalesLineParameterClass","ProductListSearchCriteriaClass","ProductListType","AffiliationId","LoyaltyTierId","ClientBookCustomerSearchCriteriaClass","FilterByCurrentEmployee","ClientBookCustomerClass","ImageUris","ClientBookChangesClass","Changes","ClientBookChangeClass","PaymentConnectorPropertiesXml","MerchantPropertiesHashValue","ServiceAccountId","SafeNumber","SafeBalance","LastUpdatedTime","InventoryDocumentReceiptSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordClass","UpdateNowQuantity","HardwareStationToken","PairingKey","MediaType","Content","PictureId","OnlineChannelName","OrgUnitTypeValue","ChannelProfile","ChannelProfileClass","ChannelProperties","ChannelLanguages","CountryRegions","TerminalDataDownloadRequestInfoClass","RequiresDataInitialization","HasBeenInitializedBefore","DownloadInterval","DownloadSessions","FeatureControlList","RetailSharedConfigurationParameterClass","DataStore","CDXDataStoreClass","TerminalDataUploadRequestInfoClass","UploadInterval","UploadJobPackageRequests","UploadJobPackageRequestClass","JobId","JobDescription","FileSize","RowsAffected","Checksum","DateDownloaded","DateRequested","DataStoreName","DownloadLink","OfflineTerminalStateClass","ActivityDate","LoyaltyRewardPointTimelineEntryType","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","LoyaltyPoints","CurrencyRequestClass","AmountToConvert","HardwareStationId","HardwareStationTypeValue","HardwareStationName","HardwareStationDescription","HardwareStationUrl","HardwareStationHostName","HardwareStationEftTerminalId","NameValuePairClass","ExternalIdentityProvider","ExternalIdentityLinkRecordId","IsUploadJob","LastSyncDateTime","SasKey","FrameworkPublisherName","EventId","EventIdString","Store","UploadType","EventType","EventDateTime","DurationInMilliseconds","Source","EventMessage","LogLevel","Staff","ReferenceId","RefChannel","RefStore","RefTerminal","RefTransactionId","AuditEventTypeValue","AuditEventFiscalTransactionClass","FiscalRegistrationLines","AuditEventFiscalRegistrationLineClass","OrderedSum","PhysicalReserved","InventoryUnitOfMeasure","InventoryUnitOfMeasureDescription","Action","ActionName","NotificationDetails","NotificationDetailClass","FiscalIntegrationDocumentRetrievalCriteriaClass","FiscalRegistrationEventTypeValue","DocumentContext","FiscalIntegrationDocumentContextClass","Document","DocumentGenerationResultTypeValue","FiscalConnectorTechnicalProfile","DocumentAdjustment","FiscalIntegrationDocumentAdjustmentClass","SequentialSignatureDataContext","FiscalIntegrationSignatureDataContextClass","FiscalIntegrationRegistrationResultClass","TransactionID","AuditEventId","Response","SubmittedDocument","SequentialSignatureData","RegistrationProcessLines","FiscalIntegrationRegistrationProcessLineClass","FunctionalityProfileGroupId","SupportedFiscalEventTypes","SupportedNonFiscalEventTypes","ConnectorTypeValue","TechnicalProfile","FiscalIntegrationTechnicalProfileSearchCriteriaClass","ExcludeOptionalProcessLines","FunctionalityProfileGroupIds","FiscalIntegrationServiceInfoClass","ServiceProperties","IsReady","CommunicationResultTypeValue","FailureDetails","FiscalIntegrationServiceFailureDetailsClass","FiscalIntegrationServiceInfo","UserNotificationMessage","LastRegisterResponse","SequenceKey","IsOffline","SequentialNumber","DiscountsSearchCriteriaClass","StartDate","EndDate","ValidationPeriodId","AdditionalRestrictions","ValidFromDate","ValidToDate","ValidationPeriod","ValidationPeriodClass","CouponCodes","CategoryPathLookupClass","CategoryPath","CategoryPathClass","PickupTimeslotAvailabilitySearchCriteriaClass","SearchOptionValue","AvailableCapacity","ExtensionServiceUrl","AttachedServices","AttachedServiceClass","AllowTransferOrderOverDelivery","AllowTransferOrderUnderDelivery","UserLocationProfileId","InventoryProductAttributeRecordId","InventoryOutOfStockAttributeValueText","AllowOverDelivery","AllowSubDelivery","JournalNameId","InventoryJournalTypeValue","DefaultAdjustmentTypeValue","ShiftRetrievalCriteriaClass","ShiftStatusValue","FilterByUserRole","IncludeAllShiftsForStore","CertificateData","TerminalInfoClass","CustomerTimelineItemTypeMapClass","Types","CustomerTimelineItemTypeClass","CustomerTimelineRefinerClass","RefinedResultsCount","CustomerTitleClass","ProductWarehouseClass","ProductWarehouseInventoryAvailabilities","ProductWarehouseInventoryAvailabilityClass","AggregatedProductInventoryAvailabilities","ProductInventoryAvailabilityClass","InventoryAvailabilitySearchCriteriaClass","SearchArea","QuantityUnitTypeValue","TypeName","ExtensibleEnumerations","EmailBehaviorValue","OrgUnitAddressClass","WarehouseDetailsClass","SwatchValue","ProductImageUrls","AttributeBooleanValueClass","AttributeCurrencyValueClass","AttributeDateTimeOffsetValueClass","AttributeFloatValueClass","UnitSymbol","AttributeIntValueClass","AttributeMediaLocationValueClass","AttributeTextValueClass","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","ExtensiblePeriodicDiscountOfferTypeClass","OriginalAmount","OverrideAmount","OverrideReasonDescription","OverrideDateTime","TaxLineGTEClass","TaxComponent","Path","UniqueCardId","IsLocalized","IsSearchable","IsRetrievable","IsQueryable","IsRefinable","IsSortable","IsTokenNormalization","IsCompleteMatch","FromUnitOfMeasureId","ToUnitOfMeasureId","FromUnitOfMeasureSymbol","ToUnitOfMeasureSymbol","IsBackward","Factor","Numerator","Denominator","InnerOffset","OuterOffset","PriceMethod","OriginId","PriceChangedByExtensions","TradeAgreementPriceLineClass","PriceAdjustmentPriceLineClass","Concurrency","BasePriceLineClass","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","DiscountPercent","Site","Warehouse","SerialId","ColorName","SizeName","StyleName","ConfigName","ItemTaxGroup","SalesMarkup","RowData","FormAnnotationClass","MenuItemLabel","MenuItemName","MenuItemType","TaskGuideAnnotationClass","RecordingValueType","ExampleText","Hidden","IsReference","PropertyUserActionClass","ValueLabel","PropertyName","UserActionType","InfoUserActionClass","ControlLabelId","MenuItemUserActionClass","NavigationPath","ValidationUserActionClass","ArtifactType","LanguageTags","PropertyId","SingleValue","MultiValue","Tags","ComboBox","MultiSelect","Links","FormID","FormName","RecordingName","HasMetadata","ExtensibleFiscalRegistrationTypeClass","TenderLineNumber","AdjustmentAmount","RecordGuid","Exclude","DetailedOrderStatusClass","LineValidationResultClass","ValidationFailures","DataValidationFailureClass","TaxId","CodeId","DiscountOfferId","Units","PartyLocationRecordId","PartyRecordId","ValueExtension","ParentLocation","IsMobilePhone","IsOptedInMarketing","QuantityReturned","TaxRate","IsRegistrationNumberUnique","IsPrimaryAddressRestricted","TypeApplicabilityRuleRecordId","DirPartyLocationRecordId","RegistrationNumber","IssueDate","Section","ChannelTaxRegistrationClass","LinkedProductRecordId","CategoryRecordId","RelatedProductRecordId","RelationName","IsExcludedRelation","IsDirectRelation","OrderLookupAdditionalCriteriaTypeValue","OrderLookupAdditionalCriteriaTypeParameterValue","UserAlertFulfillmentLineParameterClass","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","ExtensibleAuditEventTypeClass","TransactionDateTime","UploadTypeValue","ItemCount","IsNew","LastUpdatedDateTimeStr","IsSuccess","IsLiveContentOnly","AuditEvent","SequentialSignatureKey","SequenceNumber","AllowSkip","AllowMarkAsRegistered","AllowPostpone","Optional","RegistrationSettings","FiscalIntegrationRegistrationSettingsClass","SequentialKeys","SkipReasonCode","MarkAsRegisteredReasonCode","PostponeReasonCode","FailureTypeValue","IsRetryAllowed","Segments","CategoryPathSegmentClass","CategoryId","BaseUrl","ServiceId","ExtensibleInventoryJournalTypeClass","PhysicalInventory","TotalAvailable","OrderedInTotal","PhysicalAvailable","LastInventoryTransactionId","UnpostedOnlineOrderedQuantity","UnpostedFulfilledQuantity","IsInventoryAvailabilityQuantityReturned","UnprocessedQuantity","SumUncountedTransactions","QuantityUnitTypeClass","TotalAvailableQuantity","PhysicalAvailableQuantity","ParameterSetClass","ValidationResultsByLineId","CartLineValidationResultsByLineIdClass","ValidationFailuresByCartLines","LineDataValidationFailureClass","CommerceExceptionClass","ErrorResourceId","DataValidationExceptionClass","ValidationResults","MissingRequiredReasonCodeExceptionClass","RequiredReasonCodes","TransactionRequiredReasonCodeIds","ReasonCodeRequirements","SecurityExceptionClass","DeviceAuthenticationExceptionClass","HeadquarterTransactionServiceExceptionClass","UserAuthenticationExceptionClass","UserAuthorizationExceptionClass","FeatureNotSupportedExceptionClass","CartValidationExceptionClass","TenderValidationExceptionClass","CommerceDataExchangeExceptionClass","ExtensibleEnumerationExceptionClass","TaskManagementExceptionClass","TaskManagementErrors","TaskManagementErrorClass","TaskManagementServerExceptionClass","TaskManagementClientExceptionClass","PaymentExceptionClass","ErrorContext","MemberNames","ItemDiscontinuedExceptionClass","RemovedUnavailableItemIds","InventoryDocumentLockedByOtherTerminalExceptionClass","WorkingTerminalId","InventoryDocumentExceedMaximumQuantityExceptionClass","LineIdToProductBehaviorMap","KeyValuePair_2OfString_ProductBehaviorClass","ValidationResultsPairs","CommerceRuntimeCompositionExceptionClass","ChecklistTaskValidationExceptionClass","InsufficientCredentialLengthExceptionClass","ActualLength","MinLength","ExtensibleEnumerationCacheExceptionClass","ExtensionConfigurationExceptionClass","StaffPasswordExpiredExceptionClass","ChannelConfigurationNotFoundExceptionClass","PaymentConfigurationExceptionClass","PaymentConfigurationSdkErrors","SecretConfigurationNotFoundExceptionClass","OriginalTenderType","AllowedReturnTenderTypes","AccountStatementRequestClass","RequestedUserId","IsForFullOrganization","FromDate","ToDate","RequestingUserEmail","AccountStatementStartDateTime","AccountStatementEndDateTime","DataValidationFailure","WrongEndpointExceptionClass","RedirectUri","BadRequestExceptionClass","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","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","PrintBehavior","DistanceUnit","StockCountStatus","RecommendedElementType","CommerceListInvitationStatus","CommerceListInvitationType","SearchLocation","OrderSearchType","SalesTransactionType","CustomerRefinerSource","RetailAffiliationType","InventoryDocumentLineOriginType","InventorySerialNumberLineStatus","InventorySourceDocumentLineStatus","RefinerType","DisplayTemplate","ClientBookRefinerSource","ProductRefinerSource","LoyaltyCardTenderType","ReleasedProductType","RetailChannelType","LogOnConfiguration","TransactionServiceAuthenticationType","IncludePersonalDataInGuestOrderLookupPolicy","RetailAddressBookType","InventoryAvailabilityClientDisplayMode","EmployeeActivityType","DeliveryPreferenceType","LayoutType","SalesInvoiceType","InvoiceType","InvoicePaidStatus","TaxOverrideType","TaxOverrideBy","RetailOperation","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","FiscalIntegrationServiceCommunicationResultType","FiscalIntegrationServiceFailureType","PickupTimeslotAvailabilitySearchOption","AttachedServiceStatus","ReceiptEmailBehavior","CartLineQuantityLimitsErrors","CommunicationErrors","ConfigurationErrors","DataValidationErrors","FeatureNotSupportedErrors","SecurityErrors","StorageErrors","VersionNotSupportedErrors","PaymentErrors","FiscalIntegrationServiceErrors","CommerceDataExchangeErrors","TaskManagementErrorCode","PaymentConfigurationErrors","BusinessPartnerOperationDeliveryType","OnlineStoreCustomerType","WrongEndpointErrors","RetailServerApiErrors","ExceptionSeverity","ICacheSource","isAsyncResult","item","AsyncResult","executor","metadata","_type","_handlers","_attachHandler","handler","_executeHandlers","onFail","onSuccess","_resolve","_updateStatus","_reject","reason","e","getType","run","asyncResult","finally","onfinally","failed","toStringTag","newStatus","isError","setTimeout","obj","__decorate","observable","ErrorTypeEnum","GENERICERRORMESSAGE","DeviceActivationErrorsForwardLinks","ErrorHelper","errorResourceId","AGGREGATED_ERROR_RESOUCEIDS","errorMessage","statusCode","err","errorCode","canRetry","BAD_REQUEST","NOT_AUTHORIZIED","FORBIDDEN","PRECONDITION_FAILED","SERVICE_UNAVAILABLE","SERVER_ERROR","body","RETURN_NO_ORDERS_FOUND","toUpperCase","SERVER_TIMEOUT","ProxyError","numErrors","isRetryable","CanRetry","errorResourceIds","LocalizedErrorMessage","handled","redirectUrl","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","URL","location","href","searchParams","rdc","set","parseError","responseText","jsonResponse","parse","ex","errorString","errorResponse","commerceErrors","odataError","CorrelationId","localizedMessage","exceptionType","convertExceptionToErrors","serverException","DataValidationExceptionType","CartValidationExceptionType","dataValidation","getErrorsFromDataValidationFailures","StorageExceptionType","commerceException","failures","failure","contentType","bodyString","Exception","toLowerCase","parseJSONError","genericWarning","ProxyErrorSDK","localizedErrorMessage","formatData","setPrototypeOf","extraData","_canRetry","_errorCode","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","_extraData","proxyError","errorName","exception","accumulator","depth","stringifyValue","returnValue","trim","params","index","param","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","window","___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","h","m","parseTimezone","setUTCFullYear","setUTCHours","isNaN","valueOf","__ns","propertyType","EDM","propertyValue","duration","years","months","days","parseDuration","dateStr","time","timezoneOffsetIndex","EventLevel","EventChannel","func","DebuggingConsoleSink","setSessionInfo","userId","tenantId","offlineAvailability","offlineCurrentMode","setInstrumentationKey","instrumentationKey","writeEvent","event","LoggerBase","eventId","channel","level","keywords","task","opCode","loggingSink","enumType","requestUrl","sink","informationformat","TracingOn","args","GetMessage","apply","TracerDynamicsError","warningFormat","errorFormat","formatString","uniqueFunctionName","counter","Counters","PerformanceCounters","now","getTime","Timers","startTime","pop","TotalTime","type","TracerDynamics","slice","init","retailAction","input","callActionOrExecute","chainAction","isObservable"],"sourceRoot":""}