{"version":3,"sources":["webpack:///../../src/DataActions/StockCountJournalsDataActions.g.ts?dcda","webpack:///../../src/DataActions/InventoryInboundOutboundDocumentsDataActions.g.ts?6c38","webpack:///../../src/Interfaces/ICache.ts?0279","webpack:///../../src/DataActions/CommerceListsDataActions.g.ts?d44a","webpack:///../../src/DataActions/PurchaseOrdersDataActions.g.ts?5ed3","webpack:///../../src/DataActions/CartsDataActions.g.ts?f2f8","webpack:///../../src/DataActions/SuspendedCartsDataActions.g.ts?8576","webpack:///../../src/DataActions/WarehousesDataActions.g.ts?8063","webpack:///../../src/logging/ConsoleEventWriter.ts?1638","webpack:///../../src/logging/RetailLogger.ts?9e7e","webpack:///../../src/logging/Tracer.ts?faf4","webpack:///../../src/DataActions/RecommendationsDataActions.g.ts?31c0","webpack:///src/utils/script-utils.ts?9534","webpack:///../../src/Entities/CommerceModels.g.ts?1e76","webpack:///src/modules/default-metatags/default-metatags.tsx?1bb4","webpack:///../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack:///src/modules/default-external-script/default-external-script.tsx?203d","webpack:///../src/async-result.ts?1ea5","webpack:///../../src/data-types/index.ts?4f60","webpack:///src/modules/default-page-summary/default-page-summary.tsx?b254","webpack:///../../src/DataActions/StoreOperationsDataActions.g.ts?85ae","webpack:///../../src/DataActions/ScanResultsDataActions.g.ts?42cd","webpack:///../src/index.ts?6f37","webpack:///../../src/DataActions/ChecklistsDataActions.g.ts?abe2","webpack:///../../src/exceptions/ErrorHelper.ts?deca","webpack:///../../src/exceptions/ProxyErrorSDK.ts?c06e","webpack:///../../src/exceptions/ProxyError.ts?f6d3","webpack:///src/modules/fabrikam/fabrikam.tsx?a751","webpack:///../../src/extensions/StringExtensions.ts?6e3d","webpack:///../../src/DataActions/EmployeesDataActions.g.ts?e814","webpack:///../../src/Interfaces/index.ts?6f35","webpack:///../../src/DataActions/ProductsDataActions.g.ts?8ea2","webpack:///../../src/DataActions/CatalogsDataActions.g.ts?8b5c","webpack:///../../src/externals/helper.ts?18b4","webpack:///../../src/exceptions/index.ts?d291","webpack:///../../src/DataActions/BusinessPartnersDataActions.g.ts?502e","webpack:///../../src/exceptions/ErrorParser.ts?d883","webpack:///../src/DataServiceQuery.ts?8aab","webpack:///../../src/DataActions/ApplicableOperationsDataActions.g.ts?b88b","webpack:///../../src/DataActions/BusinessPartnerUsersDataActions.g.ts?c8e5","webpack:///../../src/DataActions/TransferOrdersDataActions.g.ts?97d4","webpack:///../../src/DataActions/SalesOrdersDataActions.g.ts?4e0c","webpack:///../../src/externals/DataJS.New.ts?f131","webpack:///../../src/Entities/CommerceTypes.g.ts?34ee","webpack:///../../src/DataActions/ProductListsDataActions.g.ts?81df","webpack:///../src/DataServiceRequest.ts?423e","webpack:///../../src/DataActions/ShiftsDataActions.g.ts?57b8","webpack:///../../src/DataActions/CustomersDataActions.g.ts?081a","webpack:///../../src/externals/handler.ts?a98d","webpack:///../../src/DataActions/OrgUnitsDataActions.g.ts?c88f","webpack:///../src/retail-action.ts?fc97","webpack:///../../src/DataActions/PickingListsDataActions.g.ts?9bf8"],"names":["ICacheSource","commerceListsQuery","id","key","Id","DataServiceQuery","CommerceListClass","createCommerceListAsync","context","entity","request","create","createCreateInput","executeAction","createGetByCustomerInput","queryResultSettings","customerId","resultSettings","createDataServiceRequestForOperation","bypassCache","returnEntity","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","cartsQuery","CartClass","createCartAsync","createUpdateInput","update","updateAsync","createDeleteAsync","delete","deleteAsync","createReadAsync","read","readAsync","createReadAllAsync","readAllAsync","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","invoiceId","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","EventLevel","EventChannel","EventType","Utils","func","DebuggingConsoleSink","setSessionInfo","appSessionId","userSessionId","deviceId","deviceNumber","terminalId","userId","tenantId","offlineAvailability","offlineCurrentMode","setInstrumentationKey","instrumentationKey","writeEvent","event","LoggerBase","name","eventId","version","channel","level","keywords","task","opCode","message","loggingSink","enumType","value","Object","keys","modelManagersRetailServerRequestStarted","requestId","requestUrl","Debug","Informational","modelManagersRetailServerRequestError","error","Operational","Error","modelManagersRetailServerRequestFinished","genericWarning","Warning","Tracer","sink","addLoggingSink","informationformat","TracingOn","args","GetMessage","apply","TracerDynamicsError","warningFormat","errorFormat","errors","formatString","length","errorMessage","errorCode","errorString","forEach","ErrorMessage","EMPTY","ErrorCode","JSON","stringify","format","uniqueFunctionName","counter","undefined","Counters","PerformanceCounters","Name","Count","now","Date","getTime","Timers","push","startTime","pop","TotalTime","item","hasOwnProperty","Information","type","TracerDynamics","Array","prototype","slice","call","init","constructor","recommendationsQuery","RecommendationClass","getElementsAsync","recommendationCriteria","RecommendedElementClass","createGetElementsInput","logDebug","debugMessage","telemetry","log","LogLevel","logError","isAbsoluteUrl","source","test","isRelativeUrl","entityDictionary","CategoryClass","odataObject","this","RecordId","parseInt","OfflineImage","ParentCategory","DisplayOrder","parseFloat","Images","i","className","substr","lastIndexOf","concat","MediaLocationClass","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","TaxOnShippingCharge","TaxOnNonShippingCharges","TaxOverrideCode","TenderLines","RefundableTenderLines","TerminalId","TotalAmount","TotalSalesAmount","TotalReturnAmount","TotalCarryoutSalesAmount","TotalCustomerOrderSalesAmount","TotalManualDiscountAmount","TotalManualDiscountPercentage","WarehouseId","IsCreatedOffline","CartStatusValue","ReceiptTransactionTypeValue","CommissionSalesGroup","Version","TotalItems","HasTaxCalculationTriggered","MerchantProperties","PaymentMerchantInformationClass","HasChargeCalculationTriggered","FiscalTransactions","FiscalTransactionClass","ShippingChargeAmount","OtherChargeAmount","PeriodicDiscountsCalculateScopeValue","CustomerClass","AccountNumber","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","BusinessPartnerId","Contacts","ContactInfoClass","AllowOnAccountPayment","EmployeeClass","NameOnReceipt","CultureName","NumberOfDaysToPasswordExpiry","Permissions","EmployeePermissionsClass","DefaultImage","DefaultCommissionSalesGroup","IdentifierTypeValue","ChecklistClass","Tasks","ChecklistTaskClass","ProcessId","Description","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","SalesLineClass","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","ClosedAtShiftId","CurrentTerminalId","SalesTotal","StatusDateTime","ReturnsTotal","PaidToAccountTotal","TaxTotal","ChargeTotal","DiscountTotal","RoundedAmountTotal","CustomerCount","SaleTransactionCount","NoSaleTransactionCount","VoidTransactionCount","LogOnTransactionCount","SuspendedTransactionCount","TransactionCount","ReceiptsCount","ReturnsCount","GoodsSoldQty","ServicesSoldQty","ReceiptCopiesCount","ReceiptCopiesTotal","PriceOverrideTotal","SuspendedTotal","SalesTotalIncludingTax","SalesTotalExcludingTax","SalesGrandTotal","ReturnsGrandTotal","ShiftTaxLineClass","ShiftTenderLineClass","AccountLines","ShiftAccountLineClass","IsShared","StartingAmountRunningTotal","GiftCardsTotal","GiftCardCashOutTotal","VoidedSalesTotal","ShiftSalesTotal","ShiftReturnsTotal","HasPendingOfflineTransactions","NumberOfUnreconciledLines","StockCountJournalClass","JournalId","InventLocationId","DataAreaId","StockCountTransactionLines","StockCountJournalTransactionClass","Worker","OrgUnitClass","OrgUnitNumber","OMOperatingUnitNumber","FunctionalityProfileId","UseCustomerBasedTax","UseCustomerBasedTaxExemption","UseDestinationBasedTax","Currency","TimeZoneCode","OrgUnitAddress","OrgUnitFullAddress","OrgUnitName","Latitude","Longitude","EmailReceiptProfileId","ShippingWarehouseAddress","TaxRegistrations","TaxRegistrationClass","EventNotificationProfileId","DefaultCustomerAccount","CategoryHierarchyId","ProductClass","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","ProductListClass","LastUpdated","DeletedDateTime","ProductListTypeValue","ProductListLines","ProductListLineClass","RecommendationTypeValue","Title","TransferOrderClass","OrderId","Status","Lines","OrderTypeValue","InventLocationIdFrom","InventLocationIdTo","QuantityShipped","QuantityReceived","QuantityShipNow","QuantityReceiveNow","QuantityShipRemaining","QuantityReceiveRemaining","ShipDate","ReceiveDate","DeliveryModeId","OrderLines","TransferOrderLineClass","PurchaseOrderClass","TotalReceived","PurchaseOrderLineClass","PickingListClass","DeliveryDate","PickingListLineClass","WarehouseClass","InventLocation","IsWMSEnabled","DefaultInventoryStatus","DefaultReceiptLocation","DefaultLocationId","DefaultIssueLocation","Address","ScanResultClass","ScannedText","MaskTypeValue","Barcode","BarcodeClass","Product","SimpleProductClass","LoyaltyCard","LoyaltyCardClass","GiftCard","GiftCardClass","Customer","SalesOrderContextualOperationsMapClass","ApplicableOperationsValues","SalesOrder","InventoryInboundOutboundDocumentClass","WorkDocumentId","CommitRequestId","Sender","Receiver","SenderDetails","ReceiverDetails","OperationTypeValue","Note","OperationResultMessage","DocumentId","LongVersion","SourceDocument","InventoryInboundOutboundSourceDocumentClass","SourceDocumentTypeValue","NoteModifiedByStaffId","NoteModifiedDateTime","DocumentTypeId","BusinessPartnerClass","BusinessPartnerUserClass","B2BUserId","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","CustomerBalancesClass","PendingBalance","InvoiceAccountBalance","InvoiceAccountPendingBalance","InvoiceAccountCreditLimit","OpenInvoiceBalance","OpenInvoiceCount","GlobalCustomerClass","FullName","AttributeValueClass","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","ButtonGridClass","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","CardTypeInfoClass","TypeId","PaymentMethodId","CardTypeValue","Issuer","NumberFrom","NumberTo","CashBackLimit","AllowManualInput","CheckModulus","HasTenderDiscount","IsPinRequired","IsExpirationDateRequired","ConnectorName","PaymentProcessorMethod","CashDeclarationClass","CashTypeValue","IncludeInQuickPayShortcuts","IncomeExpenseAccountClass","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","CityInfoClass","StateId","CountyId","CommissionSalesGroupClass","GroupId","ContactInformationTypeValue","AttributeCategoryClass","CommercePropertyValueClass","Attribute","AttributeProductClass","MetadataFlags","ProductAttributeMetadataFlagsClass","IsDimension","ProductComparisonEntryClass","AttributeValue","ProductComparisonLineClass","AttributeRecordId","AttributeName","ProductAttributeComparisonEntries","CustomerSearchFieldClass","IsShortcut","DisplayName","CanBeRefined","SearchField","CustomerSearchFieldTypeClass","CustomerSearchByFieldCriteriaClass","Criteria","CustomerSearchByFieldCriterionClass","DataLevelValue","SearchTerm","OrderShipmentsClass","ShipmentId","DeliveryAddress","TermsOfDelivery","WeightUnit","TrackingNumber","TrackingUrl","LatestCarrierTrackingInfo","TrackingInfoClass","CarrierId","CarrierName","ShippingWeight","ShipmentLines","ShipmentLineClass","ShipmentLineId","InventDimId","OrderedQuantity","DeliveredQuantity","RemainingQuantity","TransactionClass","FromSafe","ToSafe","FromShiftTerminalId","ToShiftTerminalId","FromShiftId","TransactionSourceContextTypeValue","TransactionDestinationContextTypeValue","ToShiftId","ShiftReconciliationLineClass","GroupDescription","ShiftGroupLinesCount","ShiftGroupLinesClosedCount","ShiftReconciliationLineRetrievalCriteriaClass","TransactionTypeValues","ShiftReconciliationLineStatusValue","Shifts","ShiftKeyClass","DestinationShift","SourceShift","SourceSafe","DestinationSafe","SearchConfigurationClass","ProductSortColumns","SortColumnClass","ProductSearchServiceTypeValue","ProductSortColumnsLabels","LocalizedTextClass","CustomerTimelineItemClass","EntityType","AttributeDefinitionClass","AttributeTypeName","ExtDataType","IsHidden","IsMandatory","IsMultiValue","IsEnumeration","TranslationDetails","AttributeTranslationDetailsClass","EnumerationDetails","AttributeEnumerationClass","DefaultValue","UpperBound","LowerBound","FriendlyName","HelpText","OrdinalNumber","EnumerationValue","AttributeEnumerationTranslations","AttributeEnumerationTranslationClass","EnumerationTranslationValue","AttributeDefinitionCriteriaClass","AttributeGroupIdentifier","Languages","AttributeGroupDefinitionClass","AttributeGroupTranslationDetailsClass","AttributeGroupRecordId","AttributeGroupDefinitionCriteriaClass","AttributeGroupIdentifiers","CountyInfoClass","CustomerGroupClass","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","Key","ByteValue","DecimalValue","LongValue","StringValue","CountryRegionInfoClass","LongName","ISOCode","TimeZone","AddressFormatLines","AddressFormattingInfoClass","AddressFormatId","AddressFormatName","CreditMemoClass","CurrencyClass","CurrencySymbol","RoundOffPrice","RoundOffSales","RoundOffTypePrice","RoundOffTypeSales","NumberOfDecimals","CurrencyAmountClass","ConvertedAmount","RoundedConvertedAmount","ScaleUnitConfigurationClass","Region","EnvironmentConfigurationClass","EnvironmentId","EnvironmentName","TenantId","ClientAppInsightsInstrumentationKey","HardwareStationAppInsightsInstrumentationKey","WindowsPhonePosAppInsightsInstrumentationKey","BaseVersion","ScaleUnit","AADAuthority","FrameworkName","DeviceConfigurationClass","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","VisualProfileClass","FontSchemeTypeValue","IsAppBarLabelVisible","IsDateTimeVisible","LogOnLayoutTypeValue","LogOnKeyboardTypeValue","CompactLogonBackgroundPictureId","PortraitLogonBackgroundPictureId","CompactPortraitLogonBackgroundPictureId","LogOnLogoPictureId","IsProductIdVisibleOnCartLine","OperationalInsightsConfigurationClass","InstrumentationKey","IsEnabled","DeviceClass","DeviceNumber","DeviceId","DeviceType","TerminalRecordId","ChannelName","TokenIssueTime","ActivationStatusValue","Token","CountryRegionIsoCode","DiscountCodeClass","Code","ConcurrencyMode","Disclaimer","DistrictInfoClass","CityName","HardwareProfileClass","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","FiscalIntegrationTechnicalProfileClass","CashDrawers","HardwareProfileCashDrawerClass","SupportedLanguageClass","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","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","ReceiptMaskClass","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","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","UnitOfMeasureClass","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","ProductPriceClass","TradeAgreementPrice","MaxVariantPrice","MinVariantPrice","CustomerContextualPrice","ProductLookupId","OrgUnitAvailabilityClass","OrgUnitLocation","OrgUnitLocationClass","ItemAvailabilities","ItemAvailabilityClass","ProductVariantPropertySetClass","ProductVariantPropertiesAsList","PurchaseQuantity","PurchaseUnit","PurchaseReceived","PurchaseReceivedNow","WMSLocationId","WMSPalletId","IsCommitted","UniqueIdentifier","DeliveryMethod","QuantityTransferred","QuantityRemainShip","QuantityRemainReceive","Guid","TransferOrderJournalClass","VoucherId","UpdatedByWorker","PostingDate","Comments","JournalLines","TransferOrderJournalLineClass","AffiliationClass","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","DocumentLongVersion","InventoryDocumentValidationResultSearchCriteriaClass","Categories","ProductDimensionValueInventoryAvailabilityClass","DimensionTypeValue","DimensionValue","ProductDimensionValueClass","TotalAvailableInventoryLevelLabel","TotalAvailableInventoryLevelCode","PhysicalAvailableInventoryLevelLabel","PhysicalAvailableInventoryLevelCode","DimensionId","ColorHexCode","ImageUrl","RefinerGroup","ProductDimensionCombinationClass","SearchRefinerClass","RefinerTypeValue","DisplayTemplateValue","SearchRefinerValueClass","RefinerRecordId","LeftValueBoundString","RightValueBoundString","UnitText","RowNumber","LeftValueBoundLocalizedString","RightValueBoundLocalizedString","ProductRefinerClass","SourceValue","Values","ProductRefinerValueClass","RefinerSourceValue","SwatchImageUrl","SwatchColorHexCode","ClientBookRefinerClass","ClientBookRefinerValueClass","ProductRelationTypeClass","ComponentInSlotRelationClass","ComponentId","SlotId","IsSerialized","IsActiveInSalesProcess","DateOfBlocking","DateToActivate","DateToBlock","PriceKeyingRequirementValue","QuantityKeyingRequirementValue","MustKeyInComment","CanQuantityBecomeNegative","MustScaleItem","CanPriceBeZero","LocalizedStringClass","TextId","CardTenderTypeValue","CustomerAccount","LoyaltyGroups","LoyaltyGroupClass","RewardPoints","LoyaltyRewardPointClass","LoyaltyEnrollmentDate","LoyaltyEnrollmentDateLocal","LoyaltyEnrollmentTime","LoyaltyEnrollmentTimeLocal","OmOperatingUnitId","ProductComponentClass","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","ProductSearchResultClass","AverageRating","TotalRatings","SearchSuggestionClass","Value2","Value3","Value4","SuggestionType","MaxCurrencyValueOfLoyaltyPoints","RewardPointToRedeemList","LoyaltyTiers","LoyaltyTierClass","LoyaltyCardTiers","LoyaltyCardTierClass","HighestActiveLoyaltyCardTier","TierId","TierLevel","LoyaltyTierRecordId","IsRedeemable","RewardPointCurrency","RewardPointTypeValue","RewardPointId","IssuedPoints","UsedPoints","ExpiredPoints","ActivePoints","PointsExpiringSoon","UnvestedPoints","LoyaltyCardTransactionClass","EntryDateTime","EntryTypeValue","ExpirationDate","RewardPointAmountQuantity","BalanceCurrencyCode","BalanceInCardCurrency","CardCurrencyCode","OperationPermissionClass","OperationName","OperationId","CheckUserAccess","AllowAnonymousAccess","AllowCustomerAccess","AllowApplicationAccess","IsEnabledForTaskManagement","StateProvinceInfoClass","TransactionLogClass","KitTransactionClass","KitTransactionLines","KitTransactionLineClass","SalesTaxGroupClass","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","ProductAssortmentIntervalClass","OrgUnitContactClass","Distance","InventorySiteId","PostalAddressId","OpenFrom","OpenTo","Locator","LocatorExtension","ContactTypeValue","SalesLineId","DeliveryOptions","DeliveryChargeLines","DeliveryChargeLineClass","TotalChargeAmount","ChannelDeliveryOptionClass","ChannelIdentityClass","ChannelType","ExtensibleRetailChannelTypeClass","OperatingUnitNumber","ChannelProfilePropertyClass","ChannelConfigurationClass","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","ChannelDeliveryOptionConfigurationClass","PickupDeliveryModeCodes","NonSalesTransactionClass","ForeignCurrency","DenominationDetails","DenominationDetailClass","DropAndDeclareTransactionClass","TenderDetails","TenderDetailClass","ProductSearchCriteriaClass","Ids","IncludeProductsFromDescendantCategories","SearchCondition","SkipVariantExpansion","IncludeAttributes","Barcodes","ItemIds","Refinement","RecommendationListId","DownloadProductData","Context","IsOnline","ChangedProductsSearchCriteriaClass","SynchronizationToken","AsListings","Session","ReadChangedProductsSessionClass","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","SalesInvoiceClass","SalesType","InvoiceDate","DueDate","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalLineDiscount","AmountBalance","Account","SalesInvoiceLine","SalesInvoiceLineClass","OrderAccount","OrderInvoiceClass","InvoiceDueDate","InvoicePaidStatusValue","TaxOverrideClass","SourceTaxGroup","DestinationTaxGroup","SourceItemTaxGroup","DestinationItemTaxGroup","AdditionalDescription","TenderTypeClass","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","ReasonCodeClass","InputRequired","LinkedReasonCodeId","MaximumLength","MaximumValue","MinimumLength","MinimumValue","OncePerTransaction","PrintInputNameOnReceipt","PrintInputToReceipt","PrintPromptToReceipt","Prompt","RandomFactor","RetailUseReasonCode","ActivityValue","IsMultiLineText","ReasonSubCodes","ReportDataSetClass","ReportId","Parameters","Output","ReportRowClass","HasTotalRow","HasDisclaimer","ZipCodeInfoClass","ZipPostalCode","StreetName","CityAlias","District","ReasonCodeRequirementClass","SourceId","TableRefTypeValue","QueryResultSettingsClass","Paging","PagingInfoClass","Sorting","SortingInfoClass","Columns","ColumnName","IsDescending","NextPageToken","Top","Skip","TranslationLanguage","TranslatedProperties","NumberSequenceSeedDataClass","DataValue","LastTransactionDataValue","LastTransactionCreatedDateTime","LastTransactionId","ReceiptNumberResetInfoClass","ResetDate","TypeValue","Enabled","DeviceActivationResultClass","Device","PurchaseHistoryClass","DatePurchased","NodeClass","ParentScopeId","ParentSequence","Sequence","ScreenshotUri","LineClass","ChildrenIds","IsLinked","LineMetadataId","Artifacts","ArtifactSummaryClass","MetadataPropertyValues","MetadataPropertyValueClass","MetadataTextClass","MetadataHypertextLinkClass","ScopeClass","ScopeTypeValue","Children","ActiveCount","IsForm","FrameworkClass","Access","Hierarchy","Publisher","UserActionClass","SystemGenerated","GlobalId","Annotations","AnnotationClass","TaskUserActionClass","UserActionTypeValue","TaskId","FormUserActionClass","FormId","ControlLabel","CommandUserActionClass","ReturnTypeValue","CommandName","ControlName","ControlType","Arguments","CommandArgumentClass","LabelId","ReturnValue","RecordingClass","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","FulfillmentLineClass","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","AddressPurposeClass","AddressType","ExtensionPackageDefinitionClass","ReturnPolicyClass","TenderTypePolicies","TenderTypePolicyClass","IsManagerOverrideEnabled","FeatureStateClass","WarrantyClass","DurationUnitValue","Duration","ApplicablePriceRangeBaseTypeValue","ApplicablePriceRangeMin","ApplicablePriceRangeMax","RecallInvoicedSalesLineLookupClass","InvoicedLineId","IgnoreSerialNumberMismatch","WarrantyGroupClass","Warranties","ProductWarrantiesMappingClass","WarrantyGroups","WarrantableProductId","FulfillmentLineContextualOperationsMapClass","FulfillmentLine","UserAlertClass","AlertSourceIdValue","LocalizedMessage","IsBlocking","LineIndex","UserAlerts","FulfillmentLineUserAlertsClass","BusinessPartnerProspectClass","CompanyName","JobTitle","Department","CompanySize","ChannelSearchCriteriaClass","BusinessPartnerOperationClass","BusinessPartnerOperationRequestClass","Details","BusinessPartnerOperationRequestDetailsClass","UserFirstName","UserLastName","ReceiptTypesByFormatTypeClass","ReceiptOutputFormatType","ReceiptTypesValues","InventoryJournalNameSearchCriteriaClass","JournalNameIds","AssortedProductIdentityClass","IsRemoteProduct","ProductExistenceIdClass","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","DeletedListingsResultClass","HasMorePublishedListings","DeletedListings","ListingIdentityClass","ProductRatingClass","RatingDistribution","ProductRatingCountClass","ProductDeliveryOptionsClass","ListingPublishStatusClass","PublishStatusValue","ListingModifiedDateTime","ChannelListingId","AppliedActionValue","StatusMessage","OrgUnitLocationSearchCriteriaClass","InventoryLocationIds","StoreHoursClass","RegularStoreHours","RegularStoreHoursClass","HeaderPromotions","CartLinePromotions","Promotion","PromotionClass","ItemUnitClass","VariantInventoryDimensionId","DistinctProductVariant","ProductAvailableQuantityClass","AvailableQuantity","OrgUnitAvailabilitySearchCriteriaClass","InvoiceSearchCriteriaClass","InvoiceIds","InvoiceTypeValues","InvoicePaidStatusValues","InvoiceDetailsSearchCriteriaClass","PickAndPackSalesLineParameterClass","ProductListSearchCriteriaClass","ProductListType","AffiliationId","LoyaltyTierId","ClientBookCustomerSearchCriteriaClass","FilterByCurrentEmployee","ClientBookCustomerClass","ImageUris","ClientBookChangesClass","Changes","ClientBookChangeClass","PaymentConnectorPropertiesXml","MerchantPropertiesHashValue","ServiceAccountId","StoreSafeClass","SafeNumber","SafeBalance","LastUpdatedTime","InventoryDocumentReceiptSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordClass","UpdateNowQuantity","CreateHardwareStationTokenResultClass","HardwareStationToken","PairingKey","ValidateHardwareStationTokenResultClass","MediaBlobClass","MediaType","Content","PictureId","OnlineChannelClass","OnlineChannelName","OrgUnitTypeValue","ChannelProfile","ChannelProfileClass","ChannelProperties","ChannelLanguages","CountryRegions","TerminalDataDownloadRequestInfoClass","RequiresDataInitialization","HasBeenInitializedBefore","DataDownloadParametersClass","DownloadInterval","DownloadSessions","DownloadSessionClass","FeatureControlList","RetailSharedConfigurationParameterClass","DataStore","CDXDataStoreClass","TerminalDataUploadRequestInfoClass","DataUploadParametersClass","UploadInterval","UploadJobPackageRequests","UploadJobPackageRequestClass","JobId","JobDescription","FileSize","RowsAffected","Checksum","DateDownloaded","DateRequested","DataStoreName","DownloadLink","OfflineTerminalStateClass","LoyaltyRewardPointActivityClass","ActivityDate","LoyaltyRewardPointTimelineEntryType","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","LoyaltyPoints","CurrencyRequestClass","AmountToConvert","HardwareStationProfileClass","HardwareStationId","HardwareStationTypeValue","HardwareStationName","HardwareStationDescription","HardwareStationUrl","HardwareStationHostName","HardwareStationEftTerminalId","NameValuePairClass","LinkToExistingCustomerResultClass","ExternalIdentityProvider","ExternalIdentityLinkRecordId","OfflineSyncStatsLineClass","IsUploadJob","LastSyncDateTime","StorageAccessTokenClass","SasKey","TaskGuidesSearchResultClass","FrameworkPublisherName","AuditEventClass","EventId","EventIdString","Store","UploadType","EventDateTime","DurationInMilliseconds","Source","EventMessage","Staff","ClosedShiftId","ReferenceId","RefChannel","RefStore","RefTerminal","RefTransactionId","AuditEventTypeValue","AuditEventFiscalTransactionClass","FiscalRegistrationLines","AuditEventFiscalRegistrationLineClass","OrderedSum","PhysicalReserved","InventoryUnitOfMeasure","InventoryUnitOfMeasureDescription","InventoryAvailableToPromiseClass","NotificationItemClass","Action","ActionName","NotificationDetails","NotificationDetailClass","FiscalIntegrationDocumentRetrievalCriteriaClass","FiscalRegistrationEventTypeValue","DocumentContext","FiscalIntegrationDocumentContextClass","FiscalIntegrationDocumentClass","Document","DocumentGenerationResultTypeValue","FiscalConnectorTechnicalProfile","DocumentAdjustment","FiscalIntegrationDocumentAdjustmentClass","SequentialSignatureDataContext","FiscalIntegrationSignatureDataContextClass","FiscalIntegrationRegistrationResultClass","TransactionID","AuditEventId","Response","SubmittedDocument","SequentialSignatureData","FiscalIntegrationSequentialSignatureDataClass","FiscalIntegrationRegistrationProcessClass","RegistrationProcessLines","FiscalIntegrationRegistrationProcessLineClass","FiscalIntegrationSupportedEventsClass","FunctionalityProfileGroupId","SupportedFiscalEventTypes","SupportedNonFiscalEventTypes","ConnectorTypeValue","TechnicalProfile","FiscalIntegrationTechnicalProfileSearchCriteriaClass","ExcludeOptionalProcessLines","FunctionalityProfileGroupIds","FiscalIntegrationServiceInfoClass","ServiceProperties","FiscalIntegrationServiceStatusClass","IsReady","FiscalIntegrationServiceCommunicationResultClass","CommunicationResultTypeValue","FailureDetails","FiscalIntegrationServiceFailureDetailsClass","FiscalIntegrationServiceInfo","UserNotificationMessage","LastRegisterResponse","SequenceKey","IsOffline","SequentialNumber","DiscountsSearchCriteriaClass","StartDate","EndDate","ValidationPeriodId","AdditionalRestrictions","ValidFromDate","ValidToDate","ValidationPeriod","ValidationPeriodClass","CouponCodes","CategoryPathLookupClass","CategoryPathResultClass","CategoryPath","CategoryPathClass","PickupTimeslotAvailabilitySearchCriteriaClass","SearchOptionValue","PickupTimeslotAvailabilityClass","AvailableCapacity","CheckInForOrderPickupConfirmationClass","ExtensionProfileClass","ExtensionServiceUrl","AttachedServices","AttachedServiceClass","ChannelInventoryConfigurationClass","AllowTransferOrderOverDelivery","AllowTransferOrderUnderDelivery","UserLocationProfileId","InventoryProductAttributeRecordId","InventoryOutOfStockAttributeValueText","ChannelPurchaseConfigurationClass","AllowOverDelivery","AllowSubDelivery","InventoryJournalNameClass","JournalNameId","InventoryJournalTypeValue","DefaultAdjustmentTypeValue","ShiftRetrievalCriteriaClass","ShiftStatusValue","FilterByUserRole","IncludeAllShiftsForStore","UserDefinedSecretCertificateResultClass","CertificateData","TerminalInfoClass","CustomerTimelineItemTypeMapClass","Types","CustomerTimelineItemTypeClass","CustomerTimelineRefinerClass","RefinedResultsCount","CustomerTitleClass","ProductWarehouseClass","ProductWarehouseInventoryInformationClass","ProductWarehouseInventoryAvailabilities","ProductWarehouseInventoryAvailabilityClass","AggregatedProductInventoryAvailabilities","ProductInventoryAvailabilityClass","InventoryAvailabilitySearchCriteriaClass","SearchArea","QuantityUnitTypeValue","ExtensibleEnumerationContainerClass","TypeName","ExtensibleEnumerations","PackingSlipDataClass","PackingSlipId","EmailReceiptSettingsClass","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","DataverseTenderLineClass","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","DefaultMetaTags","React","render","data","config","props","nonceToken","isNonceEnabled","metaTags","metaTagsHtml","_addNonceToInlineScript","join","metaTagsText","map","simpleText","text","SDK_FRAGMENT_NAME","dangerouslySetInnerHTML","__html","inlineScripRegex","metaTag","replace","filter","Boolean","categoriesQuery","recordId","getCategoriesAsync","catalogId","createGetCategoriesInput","DefaultExternalScript","typeName","scriptSource","relativeBaseUrl","url","staticCdnUrl","msdyn365Commerce","getEnvironmentVariable","path","scriptHtml","async","defer","isAsyncResult","toString","AsyncResult","executor","status","metadata","_type","_handlers","_attachHandler","handler","_executeHandlers","onFail","onSuccess","result","_resolve","_updateStatus","_reject","reason","e","getType","resolve","reject","run","then","asyncResult","catch","finally","onfinally","failed","toStringTag","newStatus","isError","setTimeout","obj","__decorate","observable","DefaultPageSummary","pageSummary","title","description","sharingImageUrl","faviconUrl","canonicalUrl","sharingImage","src","pageTitle","_constructPageTitle","app","HtmlHeadInclude","content","rel","href","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","moduleConfig","ignoreTitleSuffixPrefix","appConfig","platform","pageTitlePrefix","pageTitleSuffix","storeQuery","createRoundAmountByTenderTypeInput","roundAmountByTenderTypeAsync","createGetAffiliationsByNameInput","affiliationNames","getAffiliationsByNameAsync","createVoidSuspendedTransactionsInput","suspendedCartIds","shiftId","shiftTerminalId","voidSuspendedTransactionsAsync","searchCriteria","createGetMerchantPropertiesByServiceAccountIdInput","serviceAccountIds","getMerchantPropertiesByServiceAccountIdAsync","createGetStoreSafesInput","getStoreSafesAsync","createGetShiftReconciliationLinesInput","shiftReconciliationLineRetrievalCriteria","getShiftReconciliationLinesAsync","createReconcileLinesInput","shiftReconciliationLines","reconcileLinesAsync","createUndoReconciliationInput","undoReconciliationAsync","createGetReceiptMasksInput","receiptTransactionType","getReceiptMasksAsync","createGetSearchSuggestionsInput","searchSuggestionCriteria","getSearchSuggestionsAsync","createStartSessionInput","overrideSession","startSessionAsync","createEndSessionInput","endSessionAsync","createActivateDeviceInput","forceActivate","deviceType","activateDeviceAsync","createMassActivateDeviceInput","massActivateDeviceAsync","createDeactivateDeviceInput","deactivateDeviceAsync","createCreateHardwareStationTokenInput","createHardwareStationTokenAsync","createValidateHardwareStationTokenInput","hardwareStationToken","validateHardwareStationTokenAsync","createGetBarcodeByIdInput","barcodeId","getBarcodeByIdAsync","createGetButtonGridByIdInput","buttonGridId","getButtonGridByIdAsync","createGetButtonGridsWithoutImageInput","height","width","getButtonGridsWithoutImageAsync","createGetButtonGridsByIdsInput","getButtonGridsByIdsCriteria","getButtonGridsByIdsAsync","createGetImageBlobsByPictureIdsInput","pictureIds","getImageBlobsByPictureIdsAsync","createGetCardTypesInput","getCardTypesAsync","createResolveCardTypesInput","cardNumberPrefix","cardType","paymentToken","resolveCardTypesAsync","createGetSupportedPaymentCardTypesInput","getSupportedPaymentCardTypesAsync","createGetCitiesInput","countryRegionId","stateProvinceId","countyId","getCitiesAsync","createGetCountryRegionsForShippingInput","getCountryRegionsForShippingAsync","createGetCountryRegionsByLanguageIdInput","languageId","getCountryRegionsByLanguageIdAsync","createGetOnlineChannelInput","getOnlineChannelAsync","createGetCountiesInput","getCountiesAsync","createGetCreditMemoByIdInput","creditMemoId","getCreditMemoByIdAsync","createGetDownloadIntervalInput","dataStoreName","getDownloadIntervalAsync","createGetTerminalDataStoreNameInput","getTerminalDataStoreNameAsync","createGetDownloadLinkInput","downloadSessionId","getDownloadLinkAsync","createGetDataDownloadParametersByTerminalInput","terminalDataDownloadRequestInfo","TerminalDataDownloadRequestInfo","getDataDownloadParametersByTerminalAsync","createGetDataUploadParametersByTerminalInput","terminalDataUploadRequestInfo","TerminalDataUploadRequestInfo","getDataUploadParametersByTerminalAsync","createGetDownloadSessionsInput","getDownloadSessionsAsync","createGetInitialDownloadSessionsInput","getInitialDownloadSessionsAsync","createGetUploadJobDefinitionsInput","getUploadJobDefinitionsAsync","createGetUploadIntervalInput","getUploadIntervalAsync","createPostOfflineTransactionsInput","offlineTransactionForMPOS","postOfflineTransactionsAsync","createSetOfflineTerminalStateInput","offlineTerminalState","setOfflineTerminalStateAsync","createGetRetailTrialPlanOfferInput","getRetailTrialPlanOfferAsync","createGetLatestNumberSequenceInput","getLatestNumberSequenceAsync","createGetReceiptNumberResetInfoInput","getReceiptNumberResetInfoAsync","createGetLoyaltyRewardPointActivityTimelineInput","cardNumber","rewardPointId","getLoyaltyRewardPointActivityTimelineAsync","createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput","getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync","createCalculateTotalCurrencyAmountInput","currenciesAmount","calculateTotalCurrencyAmountAsync","createGetDiscountCodeInput","getDiscountCodeAsync","createGetDiscountCodesByOfferIdInput","offerId","getDiscountCodesByOfferIdAsync","createGetDiscountCodesByKeywordInput","keyword","activeDate","getDiscountCodesByKeywordAsync","createGetDistrictsInput","cityName","getDistrictsAsync","createGetHardwareStationProfilesInput","getHardwareStationProfilesAsync","createGetHardwareProfileByIdInput","hardwareProfileId","getHardwareProfileByIdAsync","createGetLocalizedStringsInput","textId","getLocalizedStringsAsync","createGetOperationPermissionByIdInput","operationId","getOperationPermissionByIdAsync","createGetReasonCodesByIdInput","reasonCodeGroupId","getReasonCodesByIdAsync","createSearchReportDataSetInput","reportId","parameters","searchReportDataSetAsync","createGetReportDataSetByIdInput","getReportDataSetByIdAsync","createGetSrsReportDataSetInput","getSrsReportDataSetAsync","createGetIncomeExpenseAccountsInput","incomeExpenseAccountType","getIncomeExpenseAccountsAsync","createGetStateProvincesInput","getStateProvincesAsync","createGetZipCodesInput","district","getZipCodesAsync","createGetAddressFromZipCodeInput","zipPostalCode","getAddressFromZipCodeAsync","createDisassembleKitTransactionsInput","kitTransaction","disassembleKitTransactionsAsync","createIssueLoyaltyCardInput","loyaltyCard","issueLoyaltyCardAsync","createGetLoyaltyCardInput","getLoyaltyCardAsync","createGetCustomerLoyaltyCardsInput","accountNumber","getCustomerLoyaltyCardsAsync","createGetLoyaltyCardTransactionsInput","getLoyaltyCardTransactionsAsync","createGetLoyaltyRewardPointsExpiringSoonInput","daysToExpiry","getLoyaltyRewardPointsExpiringSoonAsync","createSearchJournalTransactionsInput","searchJournalTransactionsAsync","createGetGiftCardInput","pin","expirationMonth","expirationYear","getGiftCardAsync","createGetGiftCardInquiryInput","getGiftCardInquiryAsync","createGetNonSalesTransactionsInput","nonSalesTenderTypeValue","getNonSalesTransactionsAsync","createCreateNonSalesTransactionInput","nonSalesTransaction","createNonSalesTransactionAsync","createCreateDropAndDeclareTransactionInput","dropAndDeclareTransaction","createDropAndDeclareTransactionAsync","createGetTaxOverridesInput","overrideBy","getTaxOverridesAsync","createGetCustomerBalanceInput","invoiceAccountNumber","getCustomerBalanceAsync","createInitiateLinkToExistingCustomerInput","email","activationToken","emailTemplateId","emailProperties","ActivationToken","initiateLinkToExistingCustomerAsync","createFinalizeLinkToExistingCustomerInput","finalizeLinkToExistingCustomerAsync","createUnlinkFromExistingCustomerInput","unlinkFromExistingCustomerAsync","createGetOfflineSyncStatusInput","getOfflineSyncStatusAsync","createGetOfflinePendingTransactionCountInput","getOfflinePendingTransactionCountAsync","createGetOfflinePendingTransactionCountByShiftInput","getOfflinePendingTransactionCountByShiftAsync","createUpdateDownloadSessionInput","downloadSession","updateDownloadSessionAsync","createUpdateApplicationVersionInput","appVersion","updateApplicationVersionAsync","createGetStorageAccessTokenForUploadInput","getStorageAccessTokenForUploadAsync","createGetBusinessProcessModelLibrariesInput","getBusinessProcessModelLibrariesAsync","createGetBusinessProcessModelLibraryInput","businessProcessModelFrameworkLineId","hierarchyDepth","getBusinessProcessModelLibraryAsync","createSearchTaskGuidesByTitleInput","taskGuideSearchText","queryTypeValue","searchTaskGuidesByTitleAsync","createGenerateBusinessProcessModelPackageInput","taskRecording","generateBusinessProcessModelPackageAsync","createDownloadRecordingInput","businessProcessModelLineId","downloadRecordingAsync","createLoadRecordingFromFileInput","recordingUrl","loadRecordingFromFileAsync","createGenerateRecordingFileInput","generateRecordingFileAsync","createGenerateTrainingDocumentInput","generateTrainingDocumentAsync","createGenerateRecordingBundleInput","generateRecordingBundleAsync","createUploadRecordingInput","uploadRecordingAsync","createGetAttributeDefinitionsInput","attributeDefinitionCriteria","getAttributeDefinitionsAsync","createGetAttributeGroupDefinitionsInput","attributeGroupDefinitionCriteria","getAttributeGroupDefinitionsAsync","createSaveFiscalTransactionInput","fiscalTransaction","saveFiscalTransactionAsync","createValidatePrintReceiptCopyAllowedInput","salesOrderToPrint","validatePrintReceiptCopyAllowedAsync","createRegisterAuditEventInput","auditEvent","registerAuditEventAsync","createRegisterAndGetAuditEventInput","registerAndGetAuditEventAsync","createGetInventoryAvailableToPromiseInput","productId","itemId","inventLocationId","getInventoryAvailableToPromiseAsync","createGetSalesOrdersWithNoFiscalTransactionsInput","storeNumber","getSalesOrdersWithNoFiscalTransactionsAsync","createGetNotificationsInput","subscribedOperations","getNotificationsAsync","createAcknowledgeNotificationsInput","lastPullDateTime","acknowledgeNotificationsAsync","createGetFiscalIntegrationFiscalDocumentInput","functionalityProfileGroupId","fiscalIntegrationDocumentRetrievalCriteria","connectorType","getFiscalIntegrationFiscalDocumentAsync","createGetFiscalIntegrationNonFiscalDocumentInput","getFiscalIntegrationNonFiscalDocumentAsync","createGetFiscalIntegrationFiscalServiceSetupDocumentInput","getFiscalIntegrationFiscalServiceSetupDocumentAsync","createGetFiscalIntegrationFiscalServiceReadDataDocumentInput","getFiscalIntegrationFiscalServiceReadDataDocumentAsync","createProcessFiscalIntegrationFiscalServiceReadDataResultInput","documentToProcess","processFiscalIntegrationFiscalServiceReadDataResultAsync","createSaveFiscalIntegrationRegistrationResultInput","registrationResult","saveFiscalIntegrationRegistrationResultAsync","createGetFiscalIntegrationRegistrationProcessInput","getFiscalIntegrationRegistrationProcessAsync","createGetChannelSupportedFiscalIntegrationEventsByGroupInput","getChannelSupportedFiscalIntegrationEventsByGroupAsync","createGetFiscalIntegrationTechnicalProfilesInput","getFiscalIntegrationTechnicalProfilesAsync","createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput","getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync","createBackupFiscalRegistrationProcessContextInput","fiscalProcessCompleted","fiscalIntegrationSerializedContext","backupFiscalRegistrationProcessContextAsync","createGetActiveFiscalRegistrationProcessContextBackupInput","getActiveFiscalRegistrationProcessContextBackupAsync","createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput","fiscalIntegrationTechnicalProfileSearchCriteria","getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync","createGetFiscalIntegrationServiceStatusInput","fiscalIntegrationServiceInfo","getFiscalIntegrationServiceStatusAsync","createSubmitFiscalIntegrationDocumentInput","documentToSubmit","submitFiscalIntegrationDocumentAsync","createGetFeatureStatesInput","featureNames","getFeatureStatesAsync","createGetLastFiscalIntegrationSequentialSignaturesInput","sequentialKeys","getLastFiscalIntegrationSequentialSignaturesAsync","createCreateFiscalTransactionInput","createFiscalTransactionAsync","createGetEstimatedPickupTimeslotAvailabilitiesInput","getEstimatedPickupTimeslotAvailabilitiesAsync","createGetButtonGridsInput","getButtonGridsAsync","createGetButtonGridsByScreenSizeInput","getButtonGridsByScreenSizeAsync","createGetOperationalInsightsConfigurationInput","getOperationalInsightsConfigurationAsync","createGetCashDeclarationsInput","getCashDeclarationsAsync","createGetCountryRegionsInput","getCountryRegionsAsync","createGetCustomerGroupsInput","getCustomerGroupsAsync","createGetChannelDeliveryOptionConfigurationInput","getChannelDeliveryOptionConfigurationAsync","createGetChannelsByTypeInput","channelType","getChannelsByTypeAsync","createGetChannelsInput","getChannelsAsync","createSearchChannelsInput","searchChannelsAsync","createGetEnvironmentConfigurationInput","getEnvironmentConfigurationAsync","createGetSearchConfigurationInput","getSearchConfigurationAsync","createGetExtensionPackageDefinitionsInput","getExtensionPackageDefinitionsAsync","createGetExtensionProfileInput","getExtensionProfileAsync","createGetDeviceConfigurationInput","getDeviceConfigurationAsync","createGetVisualProfileInput","getVisualProfileAsync","createGetLanguagesInput","getLanguagesAsync","createGetAffiliationsInput","getAffiliationsAsync","createGetOperationPermissionsInput","getOperationPermissionsAsync","createGetReasonCodesInput","getReasonCodesAsync","createGetReturnOrderReasonCodesInput","getReturnOrderReasonCodesAsync","createGetSalesTaxGroupsInput","getSalesTaxGroupsAsync","createGetTenderTypesInput","getTenderTypesAsync","createGetUnitsOfMeasureInput","getUnitsOfMeasureAsync","createGetDiscountCodesInput","getDiscountCodesAsync","createGetCurrenciesInput","getCurrenciesAsync","createGetCurrenciesAmountInput","getCurrenciesAmountAsync","createGetCommissionSalesGroupsInput","getCommissionSalesGroupsAsync","createSearchCommissionSalesGroupsInput","searchText","searchCommissionSalesGroupsAsync","createGetPaymentMerchantInformationInput","getPaymentMerchantInformationAsync","createGetPaymentPropertiesIfModifiedInput","merchantInformationHash","getPaymentPropertiesIfModifiedAsync","createGetOnlineChannelPublishStatusInput","getOnlineChannelPublishStatusAsync","createSetOnlineChannelPublishStatusInput","publishingStatus","statusMessage","setOnlineChannelPublishStatusAsync","createGetInventoryConfigurationInput","getInventoryConfigurationAsync","createGetPurchaseConfigurationInput","getPurchaseConfigurationAsync","createSearchJournalNamesInput","searchJournalNamesAsync","createGetAvailableDevicesInput","getAvailableDevicesAsync","createGetUserDefinedSecretStringInput","secretName","getUserDefinedSecretStringAsync","createGetUserDefinedSecretCertificateInput","getUserDefinedSecretCertificateAsync","createGetImageBlobInput","imageId","getImageBlobAsync","createGetExtensibleEnumerationsInput","getExtensibleEnumerationsAsync","createGetAddressPurposesInput","getAddressPurposesAsync","createGetReturnPolicyInput","getReturnPolicyAsync","createGetEmailReceiptSettingsInput","getEmailReceiptSettingsAsync","scanResultsQuery","scannedText","ErrorTypeEnum","GENERICERRORMESSAGE","DeviceActivationErrorsForwardLinks","ErrorHelper","errorResourceId","AGGREGATED_ERROR_RESOUCEIDS","indexOf","statusCode","err","canRetry","BAD_REQUEST","NOT_AUTHORIZIED","FORBIDDEN","PRECONDITION_FAILED","SERVICE_UNAVAILABLE","SERVER_ERROR","response","body","requestUri","RETURN_NO_ORDERS_FOUND","toUpperCase","SERVER_TIMEOUT","ProxyError","numErrors","isRetryable","CanRetry","hasElements","errorResourceIds","LocalizedErrorMessage","ProxyErrorSDK","localizedErrorMessage","formatData","setPrototypeOf","extraData","_canRetry","_errorCode","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","_extraData","proxyError","errorName","exception","convertToString","accumulator","depth","prop","stringifyValue","array","isObjectNotEmptyOrNull","isEmpty","object","isNullOrWhitespace","returnValue","trim","params","index","param","regexp","RegExp","productsQuery","createProductAsync","productSearchCriteria","createGetRefinersInput","getRefinersAsync","createGetDimensionValuesInput","dimension","matchingDimensionValues","kitVariantResolutionContext","getDimensionValuesAsync","createGetDimensionValuesWithEstimatedAvailabilitiesInput","getDimensionValuesWithEstimatedAvailabilitiesAsync","createGetVariantsByDimensionValuesInput","getVariantsByDimensionValuesAsync","createGetVariantsByComponentsInSlotsInput","matchingSlotToComponentRelationship","getVariantsByComponentsInSlotsAsync","createGetByIdsInput","productIds","getByIdsAsync","createCompareInput","compareAsync","createGetRecommendedProductsInput","getRecommendedProductsAsync","createRefineSearchByCategoryInput","categoryId","refinementCriteria","refineSearchByCategoryAsync","createRefineSearchByTextInput","refineSearchByTextAsync","createGetProductSearchRefinersInput","getProductSearchRefinersAsync","address","createChangesInput","changesAsync","createBeginReadChangedProductsInput","changedProductSearchCriteria","beginReadChangedProductsAsync","createReadChangedProductsInput","readChangedProductsAsync","createGetDeletedListingsInput","skip","top","getDeletedListingsAsync","createGetAssortedProductIdsInput","includeFutureAssortedProducts","getAssortedProductIdsAsync","createCheckProductsExistenceInput","productExistenceCriteria","checkProductsExistenceAsync","createGetDeletedCatalogsInput","getDeletedCatalogsAsync","createGetDeletedLanguagesInput","getDeletedLanguagesAsync","createGetProductRatingsInput","getProductRatingsAsync","createGetProductAssortmentIntervalsInput","getProductAssortmentIntervalsAsync","createDeleteListingsByCatalogsInput","catalogIds","deleteListingsByCatalogsAsync","createDeleteListingsByLanguagesInput","languages","deleteListingsByLanguagesAsync","createEndReadChangedProductsInput","session","endReadChangedProductsAsync","createUpdateListingPublishingStatusInput","publishingStatuses","updateListingPublishingStatusAsync","createGetCatalogProductAttributesInput","getCatalogProductAttributesAsync","createGetPricesInput","inventoryDimensionId","barcode","customerAccountNumber","unitOfMeasureSymbol","quantity","getPricesAsync","createGetProductAvailabilitiesInput","itemIds","getProductAvailabilitiesAsync","createGetActivePricesInput","projectDomain","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","getActivePricesAsync","createGetFilteredSlotComponentsInput","slotId","selectedComponents","getFilteredSlotComponentsAsync","createGetComponentByProductSlotRelationInput","componentRelation","getComponentByProductSlotRelationAsync","hitPrefix","hitSuffix","createGetCategoryPathsInput","categoryPathLookups","CategoryPathLookups","getCategoryPathsAsync","createSearchByCategoryInput","searchByCategoryAsync","createSearchByTextInput","searchByTextAsync","createSearchByCriteriaInput","searchByCriteriaAsync","createGetByLookupClausesInput","productLookupClauses","getByLookupClausesAsync","createGetRefinersByCategoryInput","getRefinersByCategoryAsync","createGetRefinersByTextInput","getRefinersByTextAsync","createGetRefinerValuesByCategoryInput","refinerId","refinerSourceValue","getRefinerValuesByCategoryAsync","createGetRefinerValuesByTextInput","getRefinerValuesByTextAsync","createGetChannelProductAttributesInput","getChannelProductAttributesAsync","createGetByIdInput","getByIdAsync","createGetAttributeValuesInput","getAttributeValuesAsync","createGetMediaLocationsInput","getMediaLocationsAsync","createGetMediaBlobsInput","getMediaBlobsAsync","createGetDefaultComponentsInput","getDefaultComponentsAsync","createGetSlotComponentsInput","getSlotComponentsAsync","createGetAllRelationTypesInput","getAllRelationTypesAsync","createGetRelationTypesInput","getRelationTypesAsync","createGetRelatedProductsInput","relationTypeId","getRelatedProductsAsync","createGetApplicableWarrantiesInput","warrantableProductIds","getApplicableWarrantiesAsync","createGetPriceInput","getPriceAsync","createCalculateProductPriceInput","calculateProductPriceAsync","createGetEstimatedProductWarehouseAvailabilityInput","productWarehouses","quantityUnitType","getEstimatedProductWarehouseAvailabilityAsync","createGetEstimatedAvailabilityInput","getEstimatedAvailabilityAsync","catalogsQuery","createProductCatalogAsync","createGetCatalogsInput","activeOnly","getCatalogsAsync","formatNumberWidth","append","parseTimeRE","parseDateTimeRE","parseDateTimeOffset","withOffset","nullOnError","parts","exec","offset","timezone","year","ms","ns","substring","hours","minutes","seconds","direction","d","h","m","parseTimezone","setUTCFullYear","setUTCHours","isNaN","valueOf","__edmType","__offset","__ns","propertyType","recognizeDates","EDM","propertyValue","toLowerCase","duration","years","months","days","parseDuration","dateStr","time","timezoneOffsetIndex","businessPartnersQuery","businessPartnerId","getOrderHistoryAsync","createGetOrderHistoryInput","createProspectAsync","businessPartnerProspect","createCreateProspectInput","getCurrentAsync","getUsersAsync","createGetUsersInput","ErrorParser","handled","redirectUrl","headers","RETAIL_SERVER_REDIRECT_ERROR","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","URL","location","searchParams","get","rdc","set","parseError","responseText","jsonResponse","parse","MapResponseStatusCodeToError","ex","errorResponse","commerceErrors","odataError","CorrelationId","localizedMessage","exceptionType","MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR","convertExceptionToErrors","serverException","DataValidationExceptionType","CartValidationExceptionType","dataValidation","getErrorsFromDataValidationFailures","StorageExceptionType","commerceException","failures","failure","contentType","bodyString","Exception","parseJSONError","entitySet","entityType","returnType","_query","tokens","options","count","filterSettings","expand","propertyName","expands","inlineCount","orderBy","action","_createODataParameters","_createRequest","isReturnTypeACollection","setGetAllRecords","isGetAllRecords","operationName","isAction","DataServiceRequest","businessPartnerUsersQuery","b2BUserId","createBusinessPartnerUserAsync","createRequestAccountStatementInput","accountStatementParameters","requestAccountStatementAsync","createRequestInvoiceCopyInput","deliveryType","requestInvoiceCopyAsync","createGetOperationRequestsInput","startDateTime","endDateTime","getOperationRequestsAsync","createGetCurrentInput","salesOrdersQuery","createSalesOrderAsync","salesOrderSearchCriteria","createSearchSalesTransactionsByReceiptIdInput","searchSalesTransactionsByReceiptIdAsync","createSearchOrdersInput","orderSearchCriteria","searchOrdersAsync","createGetFulfillmentLinesInput","fulfillmentLineSearchCriteria","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","getFulfillmentPickingListsAsync","createGetFulfillmentPackingSlipsInput","packFulfillmentLines","getFulfillmentPackingSlipsAsync","createGetFulfillmentPackingSlipsByIdInput","packingSlipId","getFulfillmentPackingSlipsByIdAsync","createRejectFulfillmentLinesInput","rejectFulfillmentLines","RejectFulfillmentLines","rejectFulfillmentLinesAsync","createGetInvoicesBySalesIdInput","getInvoicesBySalesIdAsync","createGetOrderInvoicesInput","getOrderInvoicesAsync","createGetInvoicesInput","invoiceSearchCriteria","getInvoicesAsync","createGetInvoiceDetailsInput","invoiceDetailsSearchCriteria","getInvoiceDetailsAsync","createGetInvoicedSalesLinesBySalesIdsInput","salesIds","getInvoicedSalesLinesBySalesIdsAsync","createCreatePickingListInput","createPickingListAsync","createCreatePickingListForItemsInput","pickAndPackSalesLineParameters","createPickingListForItemsAsync","createGetPickingListsInput","getPickingListsAsync","createCreatePackingSlipInput","createPackingSlipAsync","createGetFulfillmentLineUserAlertsInput","fulfillmentOperation","FulfillmentOperation","getFulfillmentLineUserAlertsAsync","createCheckInForOrderPickupInput","channelReferenceId","checkInForOrderPickupAsync","createGetPackingSlipsDataInput","getPackingSlipsDataAsync","normalHeaders","accept","normalizeHeaders","lowerName","normalName","val","defaultHttpClient","callbackParameterName","formatQueryString","enableJsonpCallback","success","abort","handleTimeout","cancelToken","axios","CancelToken","done","cancel","authenticationCreds","user","username","password","axiosTimeout","timeoutMS","window","___initialData___","_clientPlatformSetting","clientSideDataActionTimeoutInMs","method","auth","timeout","token","axiosResponse","axiosError","ODataHttpRequest","process","useJsonLight","inferJsonLightFeedAsObject","Accept","write","maxDataServiceVersion","prepareRequest","jsonHandler","httpClient","invokeRequest","ApiVersion","EntityIdentifier","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","productListsQuery","createProductListAsync","createGetProductListLinesInput","getProductListLinesAsync","createAddProductListLinesInput","productListLines","addProductListLinesAsync","createUpdateProductListLinesInput","updateProductListLinesAsync","createRemoveProductListLinesInput","removeProductListLinesAsync","createCopyCartToProductListInput","isRewrite","isQuantityAggregate","copyCartToProductListAsync","DEFAULT_HEADER","Prefer","parseOdataResult","resultType","resultSet","hasNextPage","query","_cacheKeyFromReturnType","getActionId","_actionId","getCacheObjectType","_cacheObjectType","getCacheKey","_cacheKeyFromInput","dataCacheType","getDataCacheType","shouldCacheOutput","overrideCacheType","toJS","recurseEverything","_hasOperationName","_method","getActionIdFromInput","getCacheObjectValueFromReturnType","entityIdentifier","_cacheKeyIdentifierFromReturnType","buildCacheFromInput","_callerContext","requestContext","apiSettings","baseUrl","locale","_totalCount","queryParams","_otherOdata","batchRequestUri","requests","odataBatchRequest","__batchRequests","batchRequests","changeRequests","_id","odataRequest","_requestUri","toJson","__changeRequests","batchResponses","responses","__changeResponses","parseBatchResponses","parseErrorMessage","parent","modifyDataInPlace","clone","arrayToJson","toDateTimeOffset","dateTime","pad","sign","getTimezoneOffset","Math","abs","floor","formattedKey","parameter","paramValue","encodeURIComponent","parameterSeparator","cacheKeyIdentifierFromReturnType","cacheKey","cacheKeyValue","execute","callerContext","oun","getRequestUri","buildQueryHeader","loadPage","getAllPages","executeBatch","Promise","buildBatchRequest","__batchResponses","Errors","formatKey","formatFunctionParameter","addParameter","column","orderByColumn","results","loadPageResults","headerName","tokenName","tokenValue","accessToken","cookieData","appSessionCookie","userSessionCookie","split","generateGuid","otherOdata","setMetadata","odataList","reduce","newData","customersQuery","createCustomerAsync","customerSearchCriteria","createSearchByFieldsInput","customerSearchByFieldCriteria","CustomerSearchByFieldCriteria","searchByFieldsAsync","createGetByAccountNumbersInput","accountNumbers","getByAccountNumbersAsync","createCreateCustomerTimelineItemInput","customerTimelineItem","createCustomerTimelineItemAsync","createUpdateCustomerTimelineItemInput","updateCustomerTimelineItemAsync","refinerSourceTypes","createGetOrderShipmentsHistoryInput","nextPageToken","getOrderShipmentsHistoryAsync","createPostNonTransactionalActivityLoyaltyPointsInput","affiliationId","activityTypeId","postNonTransactionalActivityLoyaltyPointsAsync","createGetPurchaseHistoryInput","getPurchaseHistoryAsync","createGetCustomerSearchFieldsInput","getCustomerSearchFieldsAsync","createGetCustomerTimelineItemTypesInput","getCustomerTimelineItemTypesAsync","createGetCustomerTimelineItemsInput","getCustomerTimelineItemsAsync","createGetCustomerTimelineRefinersInput","getCustomerTimelineRefinersAsync","createGetTitlesInput","getTitlesAsync","str","contentTypeParts","properties","len","contentTypeParams","mediaType","jsonContentType","createReadWriteContext","contentTypeStr","dataServiceVersion","rwContext","versionRE","getDataServiceVersion","headerVersion","matches","handlerWrite","cType","writeContext","left","right","leftParts","rightParts","leftVersion","rightVersion","maxVersion","ContentType","contentTypeObj","contentTypeToString","handlerRead","orgUnitsQuery","orgUnitNumber","getOrgUnitLocationsByAreaAsync","searchArea","deliveryModeTypeFilter","createGetOrgUnitLocationsByAreaInput","createSearchOrgUnitLocationsInput","orgUnitLocationSearchCriteria","createGetOrgUnitConfigurationInput","getOrgUnitConfigurationAsync","getStoreHoursAsync","createGetStoreHoursInput","getChannelDeliveryOptionsAsync","channelIds","createGetChannelDeliveryOptionsInput","retailAction","input","callActionOrExecute","chainAction","isObservable"],"mappings":"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","file":"static/js/17.2177839dfc6f4745c46d.chunk.js","sourcesContent":["\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { StockCountJournal, StockCountJournalTransaction } from '../Entities/CommerceTypes.g';\n import { StockCountJournalClass, StockCountJournalTransactionClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function stockCountJournalsQuery(journalId?: string): DataServiceQuery {\n var key = (journalId) ? { JournalId: journalId } : null;\n return new DataServiceQuery(\"StockCountJournals\", \"StockCountJournal\", StockCountJournalClass, key);\n }\n \n export function createCreateInput(entity: StockCountJournal): IDataServiceRequest {\n return stockCountJournalsQuery().create(entity);\n }\n\n export function createStockCountJournalAsync(context: IContext, entity: StockCountJournal): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: StockCountJournal): IDataServiceRequest {\n return stockCountJournalsQuery(entity.JournalId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: StockCountJournal): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: StockCountJournal): IDataServiceRequest {\n return stockCountJournalsQuery(entity.JournalId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: StockCountJournal): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(journalId: string): IDataServiceRequest {\n return stockCountJournalsQuery(journalId).read();\n }\n\n export function readAsync(context: IContext, journalId: string): AsyncResult {\n const request = createReadAsync(journalId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return stockCountJournalsQuery().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 createSyncInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = stockCountJournalsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Sync', true, StockCountJournalClass, 'true', {bypassCache: 'get', returnEntity: 'StockCountJournal'}, { });\n } \n \n export function syncAsync(context: IContext, ):AsyncResult {\n const request = createSyncInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createSyncTransactionsInput(queryResultSettings: IQueryResultSettings, journalId: string, ): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SyncTransactions', true, StockCountJournalTransactionClass, 'true', {bypassCache: 'get', returnEntity: 'StockCountJournalTransaction'}, { });\n } \n \n export function syncTransactionsAsync(context: IContext, journalId: string):AsyncResult {\n const request = createSyncTransactionsInput(context.queryResultSettings, journalId);\n return executeAction(request, context);\n } \n \n export function createCalculateEstimatedOnHandInventoryInput(queryResultSettings: IQueryResultSettings, journalId: string, ): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('CalculateEstimatedOnHandInventory', true, StockCountJournalTransactionClass, 'true', {bypassCache: 'get', returnEntity: 'StockCountJournalTransaction'}, { });\n } \n \n export function calculateEstimatedOnHandInventoryAsync(context: IContext, journalId: string):AsyncResult {\n const request = createCalculateEstimatedOnHandInventoryInput(context.queryResultSettings, journalId);\n return executeAction(request, context);\n } \n \n export function createRemoveJournalInput(journalId: string, ): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('RemoveJournal', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function removeJournalAsync(context: IContext, journalId: string):AsyncResult {\n const request = createRemoveJournalInput(journalId);\n return executeAction(request, context);\n } \n \n export function createRemoveTransactionInput(journalId: string, itemId?: string | null, inventSizeId?: string | null, inventColorId?: string | null, inventStyleId?: string | null, configurationId?: string | null): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('RemoveTransaction', true, '', '', {bypassCache: 'get', returnEntity: ''}, {itemId: itemId, inventSizeId: inventSizeId, inventColorId: inventColorId, inventStyleId: inventStyleId, configurationId: configurationId });\n } \n \n export function removeTransactionAsync(context: IContext, journalId: string, itemId?: string | null, inventSizeId?: string | null, inventColorId?: string | null, inventStyleId?: string | null, configurationId?: string | null):AsyncResult {\n const request = createRemoveTransactionInput(journalId, itemId, inventSizeId, inventColorId, inventStyleId, configurationId);\n return executeAction(request, context);\n } \n \n export function createRemoveStockCountLineByLineIdInput(journalId: string, stockCountLineId: number): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('RemoveStockCountLineByLineId', true, '', '', {bypassCache: 'get', returnEntity: ''}, {stockCountLineId: stockCountLineId });\n } \n \n export function removeStockCountLineByLineIdAsync(context: IContext, journalId: string, stockCountLineId: number):AsyncResult {\n const request = createRemoveStockCountLineByLineIdInput(journalId, stockCountLineId);\n return executeAction(request, context);\n } \n \n export function createRemoveStockCountLineByProductRecIdInput(journalId: string, productId: number): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('RemoveStockCountLineByProductRecId', true, '', '', {bypassCache: 'get', returnEntity: ''}, {productId: productId });\n } \n \n export function removeStockCountLineByProductRecIdAsync(context: IContext, journalId: string, productId: number):AsyncResult {\n const request = createRemoveStockCountLineByProductRecIdInput(journalId, productId);\n return executeAction(request, context);\n } \n \n export function createCommitInput(journalId: string, ): IDataServiceRequest { \n const query = stockCountJournalsQuery(journalId);\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function commitAsync(context: IContext, journalId: string):AsyncResult {\n const request = createCommitInput(journalId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { InventoryInboundOutboundDocument, InventoryDocumentLineFilterCriteria, InventoryDocumentUpdateLinesAction, InventoryDocumentLineOperationResultSettings, InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult, InventoryInboundOutboundDocumentLine, InventoryDocumentSerialNumberLineSearchCriteria, InventoryDocumentSerialNumberLine, InventoryDocumentValidationResultSummary, InventoryDocumentValidationResultSearchCriteria, InventoryDocumentValidationResultLine, InventoryDocumentReceiptSearchCriteria, ReceiptRetrievalCriteria, Receipt, InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria, InventoryDocumentSourceDocumentLineCommitRecord, InventoryDocumentSearchCriteria, InventoryDocumentLineSearchCriteria, InventoryDocumentSerialNumberLineResetAction, InventoryDocumentSerialNumberLineUpdateAction, InventoryInboundOutboundDocumentLinesSummary, InventoryDocumentSerialNumberLinesSummary } from '../Entities/CommerceTypes.g';\n import { InventoryInboundOutboundDocumentClass, InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass, InventoryInboundOutboundDocumentLineClass, InventoryDocumentSerialNumberLineClass, InventoryDocumentValidationResultSummaryClass, InventoryDocumentValidationResultLineClass, ReceiptClass, InventoryDocumentSourceDocumentLineCommitRecordClass, InventoryInboundOutboundDocumentLinesSummaryClass, InventoryDocumentSerialNumberLinesSummaryClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function inventoryInboundOutboundDocumentsQuery(workDocumentId?: string): DataServiceQuery {\n var key = (workDocumentId) ? { WorkDocumentId: workDocumentId } : null;\n return new DataServiceQuery(\"InventoryInboundOutboundDocuments\", \"InventoryInboundOutboundDocument\", InventoryInboundOutboundDocumentClass, key);\n }\n \n export function createCreateInput(entity: InventoryInboundOutboundDocument): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery().create(entity);\n }\n\n export function createInventoryInboundOutboundDocumentAsync(context: IContext, entity: InventoryInboundOutboundDocument): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: InventoryInboundOutboundDocument): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery(entity.WorkDocumentId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: InventoryInboundOutboundDocument): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: InventoryInboundOutboundDocument): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery(entity.WorkDocumentId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: InventoryInboundOutboundDocument): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(workDocumentId: string): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery(workDocumentId).read();\n }\n\n export function readAsync(context: IContext, workDocumentId: string): AsyncResult {\n const request = createReadAsync(workDocumentId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return inventoryInboundOutboundDocumentsQuery().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 createCommitInput(workDocumentId: string, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('Commit', true, InventoryInboundOutboundDocumentClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentVersion: documentVersion });\n } \n \n export function commitAsync(context: IContext, workDocumentId: string, documentVersion?: number | null):AsyncResult {\n const request = createCommitInput(workDocumentId, documentVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateStatusInput(workDocumentId: string, documentStatus: number, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateStatus', true, InventoryInboundOutboundDocumentClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentStatus: documentStatus, documentVersion: documentVersion });\n } \n \n export function updateStatusAsync(context: IContext, workDocumentId: string, documentStatus: number, documentVersion?: number | null):AsyncResult {\n const request = createUpdateStatusInput(workDocumentId, documentStatus, documentVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateLinesByCriteriaInput(workDocumentId: string, filterCriteria?: InventoryDocumentLineFilterCriteria | null, updateLinesAction?: InventoryDocumentUpdateLinesAction | null, returnUpdatedLinesPolicy?: InventoryDocumentLineOperationResultSettings | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateLinesByCriteria', true, InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult'}, {filterCriteria: filterCriteria, updateLinesAction: updateLinesAction, returnUpdatedLinesPolicy: returnUpdatedLinesPolicy });\n } \n \n export function updateLinesByCriteriaAsync(context: IContext, workDocumentId: string, filterCriteria?: InventoryDocumentLineFilterCriteria | null, updateLinesAction?: InventoryDocumentUpdateLinesAction | null, returnUpdatedLinesPolicy?: InventoryDocumentLineOperationResultSettings | null):AsyncResult {\n const request = createUpdateLinesByCriteriaInput(workDocumentId, filterCriteria, updateLinesAction, returnUpdatedLinesPolicy);\n return executeAction(request, context);\n } \n \n export function createUpdateLineInput(workDocumentId: string, documentLine?: InventoryInboundOutboundDocumentLine | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateLine', true, InventoryInboundOutboundDocumentLineClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocumentLine'}, {documentLine: documentLine });\n } \n \n export function updateLineAsync(context: IContext, workDocumentId: string, documentLine?: InventoryInboundOutboundDocumentLine | null):AsyncResult {\n const request = createUpdateLineInput(workDocumentId, documentLine);\n return executeAction(request, context);\n } \n \n export function createUpdateWorkingTerminalInput(workDocumentId: string, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateWorkingTerminal', true, InventoryInboundOutboundDocumentClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentVersion: documentVersion });\n } \n \n export function updateWorkingTerminalAsync(context: IContext, workDocumentId: string, documentVersion?: number | null):AsyncResult {\n const request = createUpdateWorkingTerminalInput(workDocumentId, documentVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateNoteInput(workDocumentId: string, documentNote?: string | null, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateNote', true, InventoryInboundOutboundDocumentClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentNote: documentNote, documentVersion: documentVersion });\n } \n \n export function updateNoteAsync(context: IContext, workDocumentId: string, documentNote?: string | null, documentVersion?: number | null):AsyncResult {\n const request = createUpdateNoteInput(workDocumentId, documentNote, documentVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateReceiptIdInput(workDocumentId: string, documentReceiptId?: string | null, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateReceiptId', true, InventoryInboundOutboundDocumentClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {documentReceiptId: documentReceiptId, documentVersion: documentVersion });\n } \n \n export function updateReceiptIdAsync(context: IContext, workDocumentId: string, documentReceiptId?: string | null, documentVersion?: number | null):AsyncResult {\n const request = createUpdateReceiptIdInput(workDocumentId, documentReceiptId, documentVersion);\n return executeAction(request, context);\n } \n \n export function createRefreshOperationStatusInput(workDocumentId: string, ): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('RefreshOperationStatus', true, InventoryInboundOutboundDocumentClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, { });\n } \n \n export function refreshOperationStatusAsync(context: IContext, workDocumentId: string):AsyncResult {\n const request = createRefreshOperationStatusInput(workDocumentId);\n return executeAction(request, context);\n } \n \n export function createStartInput(sourceDocumentId: string | null, sourceDocumentType: number): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery();\n return query.createDataServiceRequestForOperation('Start', true, InventoryInboundOutboundDocumentClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocument'}, {sourceDocumentId: sourceDocumentId, sourceDocumentType: sourceDocumentType });\n } \n \n export function startAsync(context: IContext, sourceDocumentId: string | null, sourceDocumentType: number):AsyncResult {\n const request = createStartInput(sourceDocumentId, sourceDocumentType);\n return executeAction(request, context);\n } \n \n export function createAddLineInput(workDocumentId: string, documentLine?: InventoryInboundOutboundDocumentLine | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('AddLine', true, InventoryInboundOutboundDocumentLineClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryInboundOutboundDocumentLine'}, {documentLine: documentLine });\n } \n \n export function addLineAsync(context: IContext, workDocumentId: string, documentLine?: InventoryInboundOutboundDocumentLine | null):AsyncResult {\n const request = createAddLineInput(workDocumentId, documentLine);\n return executeAction(request, context);\n } \n \n export function createDeleteLineInput(workDocumentId: string, documentLineId?: string | null, documentLineVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('DeleteLine', true, '', '', {bypassCache: 'get', returnEntity: ''}, {documentLineId: documentLineId, documentLineVersion: documentLineVersion });\n } \n \n export function deleteLineAsync(context: IContext, workDocumentId: string, documentLineId?: string | null, documentLineVersion?: number | null):AsyncResult {\n const request = createDeleteLineInput(workDocumentId, documentLineId, documentLineVersion);\n return executeAction(request, context);\n } \n \n export function createSearchSerialNumberLinesInput(queryResultSettings: IQueryResultSettings, workDocumentId: string, searchCriteria?: InventoryDocumentSerialNumberLineSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchSerialNumberLines', true, InventoryDocumentSerialNumberLineClass, 'true', {bypassCache: 'none', returnEntity: 'InventoryDocumentSerialNumberLine'}, {searchCriteria: searchCriteria });\n } \n \n export function searchSerialNumberLinesAsync(context: IContext, workDocumentId: string, searchCriteria?: InventoryDocumentSerialNumberLineSearchCriteria | null):AsyncResult {\n const request = createSearchSerialNumberLinesInput(context.queryResultSettings, workDocumentId, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createValidateInput(workDocumentId: string, documentVersion?: number | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('Validate', true, InventoryDocumentValidationResultSummaryClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryDocumentValidationResultSummary'}, {documentVersion: documentVersion });\n } \n \n export function validateAsync(context: IContext, workDocumentId: string, documentVersion?: number | null):AsyncResult {\n const request = createValidateInput(workDocumentId, documentVersion);\n return executeAction(request, context);\n } \n \n export function createSearchValidationResultLinesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentValidationResultSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchValidationResultLines', true, InventoryDocumentValidationResultLineClass, 'true', {bypassCache: 'none', returnEntity: 'InventoryDocumentValidationResultLine'}, {searchCriteria: searchCriteria });\n } \n \n export function searchValidationResultLinesAsync(context: IContext, searchCriteria?: InventoryDocumentValidationResultSearchCriteria | null):AsyncResult {\n const request = createSearchValidationResultLinesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createSyncSourceDocumentInput(sourceDocumentId: string | null, sourceDocumentType: number): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery();\n return query.createDataServiceRequestForOperation('SyncSourceDocument', true, '', '', {bypassCache: 'get', returnEntity: ''}, {sourceDocumentId: sourceDocumentId, sourceDocumentType: sourceDocumentType });\n } \n \n export function syncSourceDocumentAsync(context: IContext, sourceDocumentId: string | null, sourceDocumentType: number):AsyncResult {\n const request = createSyncSourceDocumentInput(sourceDocumentId, sourceDocumentType);\n return executeAction(request, context);\n } \n \n export function createSearchInventoryDocumentReceiptInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentReceiptSearchCriteria | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchInventoryDocumentReceipt', true, ReceiptClass, 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {searchCriteria: searchCriteria, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function searchInventoryDocumentReceiptAsync(context: IContext, searchCriteria?: InventoryDocumentReceiptSearchCriteria | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createSearchInventoryDocumentReceiptInput(context.queryResultSettings, searchCriteria, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchSourceDocumentLineCommitRecordsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchSourceDocumentLineCommitRecords', true, InventoryDocumentSourceDocumentLineCommitRecordClass, 'true', {bypassCache: 'none', returnEntity: 'InventoryDocumentSourceDocumentLineCommitRecord'}, {searchCriteria: searchCriteria });\n } \n \n export function searchSourceDocumentLineCommitRecordsAsync(context: IContext, searchCriteria?: InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria | null):AsyncResult {\n const request = createSearchSourceDocumentLineCommitRecordsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchInboundDocumentsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchInboundDocuments', true, InventoryInboundOutboundDocumentClass, 'true', {bypassCache: 'none', returnEntity: 'InventoryInboundOutboundDocument'}, {searchCriteria: searchCriteria });\n } \n \n export function searchInboundDocumentsAsync(context: IContext, searchCriteria?: InventoryDocumentSearchCriteria | null):AsyncResult {\n const request = createSearchInboundDocumentsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchOutboundDocumentsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchOutboundDocuments', true, InventoryInboundOutboundDocumentClass, 'true', {bypassCache: 'none', returnEntity: 'InventoryInboundOutboundDocument'}, {searchCriteria: searchCriteria });\n } \n \n export function searchOutboundDocumentsAsync(context: IContext, searchCriteria?: InventoryDocumentSearchCriteria | null):AsyncResult {\n const request = createSearchOutboundDocumentsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchLinesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryDocumentLineSearchCriteria | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchLines', true, InventoryInboundOutboundDocumentLineClass, 'true', {bypassCache: 'none', returnEntity: 'InventoryInboundOutboundDocumentLine'}, {searchCriteria: searchCriteria });\n } \n \n export function searchLinesAsync(context: IContext, searchCriteria?: InventoryDocumentLineSearchCriteria | null):AsyncResult {\n const request = createSearchLinesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createResetSerialNumberLineInput(workDocumentId: string, resetSerialNumberLineAction?: InventoryDocumentSerialNumberLineResetAction | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('ResetSerialNumberLine', true, InventoryDocumentSerialNumberLineClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryDocumentSerialNumberLine'}, {resetSerialNumberLineAction: resetSerialNumberLineAction });\n } \n \n export function resetSerialNumberLineAsync(context: IContext, workDocumentId: string, resetSerialNumberLineAction?: InventoryDocumentSerialNumberLineResetAction | null):AsyncResult {\n const request = createResetSerialNumberLineInput(workDocumentId, resetSerialNumberLineAction);\n return executeAction(request, context);\n } \n \n export function createUpdateSerialNumberLineInput(workDocumentId: string, updateSerialNumberLineAction?: InventoryDocumentSerialNumberLineUpdateAction | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('UpdateSerialNumberLine', true, InventoryDocumentSerialNumberLineClass, 'false', {bypassCache: 'get', returnEntity: 'InventoryDocumentSerialNumberLine'}, {updateSerialNumberLineAction: updateSerialNumberLineAction });\n } \n \n export function updateSerialNumberLineAsync(context: IContext, workDocumentId: string, updateSerialNumberLineAction?: InventoryDocumentSerialNumberLineUpdateAction | null):AsyncResult {\n const request = createUpdateSerialNumberLineInput(workDocumentId, updateSerialNumberLineAction);\n return executeAction(request, context);\n } \n \n export function createGetLinesSummaryInput(workDocumentId: string, ): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('GetLinesSummary', false, InventoryInboundOutboundDocumentLinesSummaryClass, 'false', {bypassCache: 'none', returnEntity: 'InventoryInboundOutboundDocumentLinesSummary'}, { });\n } \n \n export function getLinesSummaryAsync(context: IContext, workDocumentId: string):AsyncResult {\n const request = createGetLinesSummaryInput(workDocumentId);\n return executeAction(request, context);\n } \n \n export function createGetSerialNumberLinesSummaryInput(workDocumentId: string, documentLineId?: string | null): IDataServiceRequest { \n const query = inventoryInboundOutboundDocumentsQuery(workDocumentId);\n return query.createDataServiceRequestForOperation('GetSerialNumberLinesSummary', false, InventoryDocumentSerialNumberLinesSummaryClass, 'false', {bypassCache: 'none', returnEntity: 'InventoryDocumentSerialNumberLinesSummary'}, {documentLineId: documentLineId });\n } \n \n export function getSerialNumberLinesSummaryAsync(context: IContext, workDocumentId: string, documentLineId?: string | null):AsyncResult {\n const request = createGetSerialNumberLinesSummaryInput(workDocumentId, documentLineId);\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\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 // \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 { PurchaseOrder } from '../Entities/CommerceTypes.g';\n import { PurchaseOrderClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function purchaseOrdersQuery(orderId?: string): DataServiceQuery {\n var key = (orderId) ? { OrderId: orderId } : null;\n return new DataServiceQuery(\"PurchaseOrders\", \"PurchaseOrder\", PurchaseOrderClass, key);\n }\n \n export function createCreateInput(entity: PurchaseOrder): IDataServiceRequest {\n return purchaseOrdersQuery().create(entity);\n }\n\n export function createPurchaseOrderAsync(context: IContext, entity: PurchaseOrder): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: PurchaseOrder): IDataServiceRequest {\n return purchaseOrdersQuery(entity.OrderId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: PurchaseOrder): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: PurchaseOrder): IDataServiceRequest {\n return purchaseOrdersQuery(entity.OrderId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: PurchaseOrder): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(orderId: string): IDataServiceRequest {\n return purchaseOrdersQuery(orderId).read();\n }\n\n export function readAsync(context: IContext, orderId: string): AsyncResult {\n const request = createReadAsync(orderId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return purchaseOrdersQuery().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 createCommitInput(orderId: string, ): IDataServiceRequest { \n const query = purchaseOrdersQuery(orderId);\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function commitAsync(context: IContext, orderId: string):AsyncResult {\n const request = createCommitInput(orderId);\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 { SuspendedCart } from '../Entities/CommerceTypes.g';\n import { SuspendedCartClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function suspendedCartsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"SuspendedCarts\", \"SuspendedCart\", SuspendedCartClass, key);\n }\n \n export function createCreateInput(entity: SuspendedCart): IDataServiceRequest {\n return suspendedCartsQuery().create(entity);\n }\n\n export function createSuspendedCartAsync(context: IContext, entity: SuspendedCart): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: SuspendedCart): IDataServiceRequest {\n return suspendedCartsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: SuspendedCart): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: SuspendedCart): IDataServiceRequest {\n return suspendedCartsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: SuspendedCart): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return suspendedCartsQuery(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 suspendedCartsQuery().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 createGetAllSuspendedCartsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = suspendedCartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAllSuspendedCarts', true, SuspendedCartClass, 'true', {bypassCache: 'none', returnEntity: 'SuspendedCart'}, { });\n } \n \n export function getAllSuspendedCartsAsync(context: IContext, ):AsyncResult {\n const request = createGetAllSuspendedCartsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Warehouse, WarehouseLocationSearchCriteria, WarehouseLocation } from '../Entities/CommerceTypes.g';\n import { WarehouseClass, WarehouseLocationClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function warehousesQuery(inventLocation?: string): DataServiceQuery {\n var key = (inventLocation) ? { InventLocation: inventLocation } : null;\n return new DataServiceQuery(\"Warehouses\", \"Warehouse\", WarehouseClass, key);\n }\n \n export function createCreateInput(entity: Warehouse): IDataServiceRequest {\n return warehousesQuery().create(entity);\n }\n\n export function createWarehouseAsync(context: IContext, entity: Warehouse): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Warehouse): IDataServiceRequest {\n return warehousesQuery(entity.InventLocation).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Warehouse): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Warehouse): IDataServiceRequest {\n return warehousesQuery(entity.InventLocation).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Warehouse): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(inventLocation: string): IDataServiceRequest {\n return warehousesQuery(inventLocation).read();\n }\n\n export function readAsync(context: IContext, inventLocation: string): AsyncResult {\n const request = createReadAsync(inventLocation);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return warehousesQuery().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 createSearchWarehouseLocationsAsyncInput(queryResultSettings: IQueryResultSettings, searchCriteria?: WarehouseLocationSearchCriteria | null): IDataServiceRequest { \n const query = warehousesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchWarehouseLocationsAsync', true, WarehouseLocationClass, 'true', {bypassCache: 'none', returnEntity: 'WarehouseLocation'}, {searchCriteria: searchCriteria });\n } \n \n export function searchWarehouseLocationsAsyncAsync(context: IContext, searchCriteria?: WarehouseLocationSearchCriteria | null):AsyncResult {\n const request = createSearchWarehouseLocationsAsyncInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetWarehouseByIdInput(inventLocation: string, ): IDataServiceRequest { \n const query = warehousesQuery(inventLocation);\n return query.createDataServiceRequestForOperation('GetWarehouseById', false, WarehouseClass, 'false', {bypassCache: 'none', returnEntity: 'Warehouse'}, { });\n } \n \n export function getWarehouseByIdAsync(context: IContext, inventLocation: string):AsyncResult {\n const request = createGetWarehouseByIdInput(inventLocation);\n return executeAction(request, context);\n } \n \n export function createSearchWarehousesInput(queryResultSettings: IQueryResultSettings, searchText?: string | null): IDataServiceRequest { \n const query = warehousesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchWarehouses', false, WarehouseClass, 'true', {bypassCache: 'none', returnEntity: 'Warehouse'}, {searchText: searchText });\n } \n \n export function searchWarehousesAsync(context: IContext, searchText?: string | null):AsyncResult {\n const request = createSearchWarehousesInput(context.queryResultSettings, searchText);\n return executeAction(request, context);\n } \n \n export function createGetLocationsInput(queryResultSettings: IQueryResultSettings, inventLocation: string, ): IDataServiceRequest { \n const query = warehousesQuery(inventLocation).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLocations', false, WarehouseLocationClass, 'true', {bypassCache: 'none', returnEntity: 'WarehouseLocation'}, { });\n } \n \n export function getLocationsAsync(context: IContext, inventLocation: string):AsyncResult {\n const request = createGetLocationsInput(context.queryResultSettings, inventLocation);\n return executeAction(request, context);\n } \n \n export function createSearchLocationsInput(queryResultSettings: IQueryResultSettings, inventLocation: string, searchText?: string | null): IDataServiceRequest { \n const query = warehousesQuery(inventLocation).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchLocations', false, WarehouseLocationClass, 'true', {bypassCache: 'none', returnEntity: 'WarehouseLocation'}, {searchText: searchText });\n } \n \n export function searchLocationsAsync(context: IContext, inventLocation: string, searchText?: string | null):AsyncResult {\n const request = createSearchLocationsInput(context.queryResultSettings, inventLocation, searchText);\n return executeAction(request, context);\n } \n \n export function createGetAvailableFulfillmentLocationsInput(queryResultSettings: IQueryResultSettings, deliveryModeTypeFilter: number): IDataServiceRequest { \n const query = warehousesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableFulfillmentLocations', false, WarehouseClass, 'true', {bypassCache: 'none', returnEntity: 'Warehouse'}, {deliveryModeTypeFilter: deliveryModeTypeFilter });\n } \n \n export function getAvailableFulfillmentLocationsAsync(context: IContext, deliveryModeTypeFilter: number):AsyncResult {\n const request = createGetAvailableFulfillmentLocationsInput(context.queryResultSettings, deliveryModeTypeFilter);\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\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 // \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 * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IInternalTelemetry, LogLevel } from '@msdyn365-commerce/telemetry-internal';\n\nexport const logDebug = (debugMessage: string, telemetry: IInternalTelemetry | undefined): void => {\n telemetry && telemetry.log(LogLevel.Debug, debugMessage);\n};\n\nexport const logError = (errorMessage: string, telemetry: IInternalTelemetry | undefined): void => {\n telemetry && telemetry.log(LogLevel.Error, errorMessage);\n};\n\n/**\n * Returns true if the given string matches an URL pattern\n *\n * @param source The string to check against\n */\nexport const isAbsoluteUrl = (source: string): boolean => {\n return /^(http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?$/.test(source);\n};\n\nexport const isRelativeUrl = (source: string): boolean => {\n return /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/).*(\\.js){1}$/.test(source);\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 TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public WarehouseId: string;\n public IsCreatedOffline: boolean;\n public CartStatusValue: number;\n public ReceiptTransactionTypeValue: number;\n public CommissionSalesGroup: string;\n public Version: number;\n public TotalItems: number;\n public HasTaxCalculationTriggered: boolean;\n public MerchantProperties: Entities.PaymentMerchantInformation[];\n public HasChargeCalculationTriggered: boolean;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationLines = undefined;\n if (odataObject.AffiliationLines) {\n this.AffiliationLines = [];\n for (var i = 0; i < odataObject.AffiliationLines.length; i++) {\n if (odataObject.AffiliationLines[i] != null) {\n if (odataObject.AffiliationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLines[i] = new entityDictionary[className](odataObject.AffiliationLines[i])\n }\n } else {\n this.AffiliationLines[i] = new AffiliationLoyaltyTierClass(odataObject.AffiliationLines[i]);\n }\n } else {\n this.AffiliationLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.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.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.CartStatusValue = \n odataObject.CartStatusValue;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.Version = \n (odataObject.Version != null) ? parseInt(odataObject.Version, 10) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.MerchantProperties = undefined;\n if (odataObject.MerchantProperties) {\n this.MerchantProperties = [];\n for (var i = 0; i < odataObject.MerchantProperties.length; i++) {\n if (odataObject.MerchantProperties[i] != null) {\n if (odataObject.MerchantProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.MerchantProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MerchantProperties[i] = new entityDictionary[className](odataObject.MerchantProperties[i])\n }\n } else {\n this.MerchantProperties[i] = new PaymentMerchantInformationClass(odataObject.MerchantProperties[i]);\n }\n } else {\n this.MerchantProperties[i] = undefined;\n }\n }\n }\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartClass'] = CartClass;\n \n /**\n * Customer entity class.\n */\n export class CustomerClass implements Entities.Customer {\n public AccountNumber: string;\n public RecordId: number;\n public CreatedDateTime: Date;\n public ChargeGroup: string;\n public PriceGroup: string;\n public IsCustomerTaxInclusive: boolean;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Cellphone: string;\n public Email: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public Name: string;\n public PersonNameId: number;\n public FirstName: string;\n public MiddleName: string;\n public LastName: string;\n public DirectoryPartyRecordId: number;\n public PartyNumber: string;\n public CustomerTypeValue: number;\n public Language: string;\n public CustomerGroup: string;\n public CurrencyCode: string;\n public CNPJCPFNumber: string;\n public IdentificationNumber: string;\n public InvoiceAccount: string;\n public MandatoryCreditLimit: boolean;\n public CreditRating: string;\n public CreditLimit: number;\n public Balance: number;\n public Blocked: boolean;\n public BlockedType: number;\n public UseOrderNumberReference: boolean;\n public OrganizationId: string;\n public UsePurchaseRequest: boolean;\n public MultilineDiscountGroup: string;\n public TotalDiscountGroup: string;\n public LineDiscountGroup: string;\n public TaxGroup: string;\n public SalesTaxGroup: string;\n public CommissionSalesGroupId: string;\n public TaxExemptNumber: string;\n public VatNumber: string;\n public TaxOffice: string;\n public NonChargeableAccount: boolean;\n public Tag: string;\n public ReceiptSettings: number;\n public ReceiptEmail: string;\n public OptOutPersonalization: boolean;\n public OptOutWebActivityTracking: boolean;\n public RetailCustomerTableRecordId: number;\n public OfflineImage: string;\n public IsAsyncCustomer: boolean;\n public NewCustomerPartyNumber: string;\n public CustomerAffiliations: Entities.CustomerAffiliation[];\n public Addresses: Entities.Address[];\n public Attributes: Entities.CustomerAttribute[];\n public Images: Entities.MediaLocation[];\n public TitleRecordId: number;\n public IsFloorLimitBlocked: boolean;\n public IsB2b: boolean;\n public IsB2bAdmin: boolean;\n public BusinessPartnerId: string;\n public Contacts: Entities.ContactInfo[];\n public AllowOnAccountPayment: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalDiscount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public TransactionTypeValue: number;\n public TaxCalculationTypeValue: number;\n public SalesInvoiceAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public HasTaxCalculationTriggered: boolean;\n public HasChargeCalculationTriggered: boolean;\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public CustomerName: string;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TaxCalculationTypeValue = \n odataObject.TaxCalculationTypeValue;\n \n this.SalesInvoiceAmount = \n (odataObject.SalesInvoiceAmount != null) ? parseFloat(odataObject.SalesInvoiceAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderClass'] = SalesOrderClass;\n \n /**\n * Shift entity class.\n */\n export class ShiftClass implements Entities.Shift {\n public ShiftId: number;\n public TerminalId: string;\n public StartingAmountTotal: number;\n public FloatingEntryAmountTotal: number;\n public AddToTenderAmountTotal: number;\n public SafeDropTotal: number;\n public BankDropTotal: number;\n public RemoveTenderAmountTotal: number;\n public DeclareTenderAmountTotal: number;\n public OverShortTotal: number;\n public TenderedTotal: number;\n public ChangeTotal: number;\n public IncomeAccountTotal: number;\n public ExpenseAccountTotal: number;\n public CashDrawer: string;\n public StoreRecordId: number;\n public StoreId: string;\n public StaffId: string;\n public CurrentStaffId: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public CloseDateTime: Date;\n public ClosedAtTerminalId: string;\n public ClosedAtShiftId: number;\n public CurrentTerminalId: string;\n public SalesTotal: number;\n public StatusDateTime: Date;\n public ReturnsTotal: number;\n public PaidToAccountTotal: number;\n public TaxTotal: number;\n public ChargeTotal: number;\n public DiscountTotal: number;\n public RoundedAmountTotal: number;\n public CustomerCount: number;\n public SaleTransactionCount: number;\n public NoSaleTransactionCount: number;\n public VoidTransactionCount: number;\n public LogOnTransactionCount: number;\n public SuspendedTransactionCount: number;\n public TransactionCount: number;\n public ReceiptsCount: number;\n public ReturnsCount: number;\n public GoodsSoldQty: number;\n public ServicesSoldQty: number;\n public ReceiptCopiesCount: number;\n public ReceiptCopiesTotal: number;\n public PriceOverrideTotal: number;\n public SuspendedTotal: number;\n public SalesTotalIncludingTax: number;\n public SalesTotalExcludingTax: number;\n public SalesGrandTotal: number;\n public ReturnsGrandTotal: number;\n public TaxLines: Entities.ShiftTaxLine[];\n public TenderLines: Entities.ShiftTenderLine[];\n public AccountLines: Entities.ShiftAccountLine[];\n public IsShared: boolean;\n public StartingAmountRunningTotal: number;\n public GiftCardsTotal: number;\n public GiftCardCashOutTotal: number;\n public VoidedSalesTotal: number;\n public ShiftSalesTotal: number;\n public ShiftReturnsTotal: number;\n public HasPendingOfflineTransactions: number;\n public NumberOfUnreconciledLines: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.StartingAmountTotal = \n (odataObject.StartingAmountTotal != null) ? parseFloat(odataObject.StartingAmountTotal) : undefined;\n \n this.FloatingEntryAmountTotal = \n (odataObject.FloatingEntryAmountTotal != null) ? parseFloat(odataObject.FloatingEntryAmountTotal) : undefined;\n \n this.AddToTenderAmountTotal = \n (odataObject.AddToTenderAmountTotal != null) ? parseFloat(odataObject.AddToTenderAmountTotal) : undefined;\n \n this.SafeDropTotal = \n (odataObject.SafeDropTotal != null) ? parseFloat(odataObject.SafeDropTotal) : undefined;\n \n this.BankDropTotal = \n (odataObject.BankDropTotal != null) ? parseFloat(odataObject.BankDropTotal) : undefined;\n \n this.RemoveTenderAmountTotal = \n (odataObject.RemoveTenderAmountTotal != null) ? parseFloat(odataObject.RemoveTenderAmountTotal) : undefined;\n \n this.DeclareTenderAmountTotal = \n (odataObject.DeclareTenderAmountTotal != null) ? parseFloat(odataObject.DeclareTenderAmountTotal) : undefined;\n \n this.OverShortTotal = \n (odataObject.OverShortTotal != null) ? parseFloat(odataObject.OverShortTotal) : undefined;\n \n this.TenderedTotal = \n (odataObject.TenderedTotal != null) ? parseFloat(odataObject.TenderedTotal) : undefined;\n \n this.ChangeTotal = \n (odataObject.ChangeTotal != null) ? parseFloat(odataObject.ChangeTotal) : undefined;\n \n this.IncomeAccountTotal = \n (odataObject.IncomeAccountTotal != null) ? parseFloat(odataObject.IncomeAccountTotal) : undefined;\n \n this.ExpenseAccountTotal = \n (odataObject.ExpenseAccountTotal != null) ? parseFloat(odataObject.ExpenseAccountTotal) : undefined;\n \n this.CashDrawer = \n odataObject.CashDrawer;\n \n this.StoreRecordId = \n (odataObject.StoreRecordId != null) ? parseInt(odataObject.StoreRecordId, 10) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.CurrentStaffId = \n odataObject.CurrentStaffId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CloseDateTime = \n (odataObject.CloseDateTime instanceof Date) ? odataObject.CloseDateTime\n : (odataObject.CloseDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CloseDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ClosedAtTerminalId = \n odataObject.ClosedAtTerminalId;\n \n this.ClosedAtShiftId = \n (odataObject.ClosedAtShiftId != null) ? parseInt(odataObject.ClosedAtShiftId, 10) : undefined;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this.SalesTotal = \n (odataObject.SalesTotal != null) ? parseFloat(odataObject.SalesTotal) : undefined;\n \n this.StatusDateTime = \n (odataObject.StatusDateTime instanceof Date) ? odataObject.StatusDateTime\n : (odataObject.StatusDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StatusDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReturnsTotal = \n (odataObject.ReturnsTotal != null) ? parseFloat(odataObject.ReturnsTotal) : undefined;\n \n this.PaidToAccountTotal = \n (odataObject.PaidToAccountTotal != null) ? parseFloat(odataObject.PaidToAccountTotal) : undefined;\n \n this.TaxTotal = \n (odataObject.TaxTotal != null) ? parseFloat(odataObject.TaxTotal) : undefined;\n \n this.ChargeTotal = \n (odataObject.ChargeTotal != null) ? parseFloat(odataObject.ChargeTotal) : undefined;\n \n this.DiscountTotal = \n (odataObject.DiscountTotal != null) ? parseFloat(odataObject.DiscountTotal) : undefined;\n \n this.RoundedAmountTotal = \n (odataObject.RoundedAmountTotal != null) ? parseFloat(odataObject.RoundedAmountTotal) : undefined;\n \n this.CustomerCount = \n odataObject.CustomerCount;\n \n this.SaleTransactionCount = \n odataObject.SaleTransactionCount;\n \n this.NoSaleTransactionCount = \n odataObject.NoSaleTransactionCount;\n \n this.VoidTransactionCount = \n odataObject.VoidTransactionCount;\n \n this.LogOnTransactionCount = \n odataObject.LogOnTransactionCount;\n \n this.SuspendedTransactionCount = \n odataObject.SuspendedTransactionCount;\n \n this.TransactionCount = \n odataObject.TransactionCount;\n \n this.ReceiptsCount = \n odataObject.ReceiptsCount;\n \n this.ReturnsCount = \n odataObject.ReturnsCount;\n \n this.GoodsSoldQty = \n (odataObject.GoodsSoldQty != null) ? parseFloat(odataObject.GoodsSoldQty) : undefined;\n \n this.ServicesSoldQty = \n (odataObject.ServicesSoldQty != null) ? parseFloat(odataObject.ServicesSoldQty) : undefined;\n \n this.ReceiptCopiesCount = \n odataObject.ReceiptCopiesCount;\n \n this.ReceiptCopiesTotal = \n (odataObject.ReceiptCopiesTotal != null) ? parseFloat(odataObject.ReceiptCopiesTotal) : undefined;\n \n this.PriceOverrideTotal = \n (odataObject.PriceOverrideTotal != null) ? parseFloat(odataObject.PriceOverrideTotal) : undefined;\n \n this.SuspendedTotal = \n (odataObject.SuspendedTotal != null) ? parseFloat(odataObject.SuspendedTotal) : undefined;\n \n this.SalesTotalIncludingTax = \n (odataObject.SalesTotalIncludingTax != null) ? parseFloat(odataObject.SalesTotalIncludingTax) : undefined;\n \n this.SalesTotalExcludingTax = \n (odataObject.SalesTotalExcludingTax != null) ? parseFloat(odataObject.SalesTotalExcludingTax) : undefined;\n \n this.SalesGrandTotal = \n (odataObject.SalesGrandTotal != null) ? parseFloat(odataObject.SalesGrandTotal) : undefined;\n \n this.ReturnsGrandTotal = \n (odataObject.ReturnsGrandTotal != null) ? parseFloat(odataObject.ReturnsGrandTotal) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new ShiftTaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new ShiftTenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.AccountLines = undefined;\n if (odataObject.AccountLines) {\n this.AccountLines = [];\n for (var i = 0; i < odataObject.AccountLines.length; i++) {\n if (odataObject.AccountLines[i] != null) {\n if (odataObject.AccountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AccountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AccountLines[i] = new entityDictionary[className](odataObject.AccountLines[i])\n }\n } else {\n this.AccountLines[i] = new ShiftAccountLineClass(odataObject.AccountLines[i]);\n }\n } else {\n this.AccountLines[i] = undefined;\n }\n }\n }\n \n this.IsShared = \n odataObject.IsShared;\n \n this.StartingAmountRunningTotal = \n (odataObject.StartingAmountRunningTotal != null) ? parseFloat(odataObject.StartingAmountRunningTotal) : undefined;\n \n this.GiftCardsTotal = \n (odataObject.GiftCardsTotal != null) ? parseFloat(odataObject.GiftCardsTotal) : undefined;\n \n this.GiftCardCashOutTotal = \n (odataObject.GiftCardCashOutTotal != null) ? parseFloat(odataObject.GiftCardCashOutTotal) : undefined;\n \n this.VoidedSalesTotal = \n (odataObject.VoidedSalesTotal != null) ? parseFloat(odataObject.VoidedSalesTotal) : undefined;\n \n this.ShiftSalesTotal = \n (odataObject.ShiftSalesTotal != null) ? parseFloat(odataObject.ShiftSalesTotal) : undefined;\n \n this.ShiftReturnsTotal = \n (odataObject.ShiftReturnsTotal != null) ? parseFloat(odataObject.ShiftReturnsTotal) : undefined;\n \n this.HasPendingOfflineTransactions = \n odataObject.HasPendingOfflineTransactions;\n \n this.NumberOfUnreconciledLines = \n (odataObject.NumberOfUnreconciledLines != null) ? parseFloat(odataObject.NumberOfUnreconciledLines) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftClass'] = ShiftClass;\n \n /**\n * StockCountJournal entity class.\n */\n export class StockCountJournalClass implements Entities.StockCountJournal {\n public JournalId: string;\n public RecordId: string;\n public Description: string;\n public InventLocationId: string;\n public DataAreaId: string;\n public StockCountTransactionLines: Entities.StockCountJournalTransaction[];\n public Worker: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Description = \n odataObject.Description;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.StockCountTransactionLines = undefined;\n if (odataObject.StockCountTransactionLines) {\n this.StockCountTransactionLines = [];\n for (var i = 0; i < odataObject.StockCountTransactionLines.length; i++) {\n if (odataObject.StockCountTransactionLines[i] != null) {\n if (odataObject.StockCountTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.StockCountTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.StockCountTransactionLines[i] = new entityDictionary[className](odataObject.StockCountTransactionLines[i])\n }\n } else {\n this.StockCountTransactionLines[i] = new StockCountJournalTransactionClass(odataObject.StockCountTransactionLines[i]);\n }\n } else {\n this.StockCountTransactionLines[i] = undefined;\n }\n }\n }\n \n this.Worker = \n odataObject.Worker;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalClass'] = StockCountJournalClass;\n \n /**\n * OrgUnit entity class.\n */\n export class OrgUnitClass implements Entities.OrgUnit {\n public OrgUnitNumber: string;\n public RecordId: number;\n public InventoryLocationId: string;\n public OMOperatingUnitNumber: string;\n public TaxGroup: string;\n public FunctionalityProfileId: string;\n public UseCustomerBasedTax: boolean;\n public UseCustomerBasedTaxExemption: boolean;\n public UseDestinationBasedTax: boolean;\n public Currency: string;\n public TimeZoneCode: number;\n public OrgUnitAddress: Entities.Address;\n public OrgUnitFullAddress: string;\n public OrgUnitName: string;\n public Latitude: number;\n public Longitude: number;\n public EmailReceiptProfileId: string;\n public ShippingWarehouseAddress: Entities.Address;\n public TaxRegistrations: Entities.TaxRegistration[];\n public EventNotificationProfileId: string;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.OMOperatingUnitNumber = \n odataObject.OMOperatingUnitNumber;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseCustomerBasedTaxExemption = \n odataObject.UseCustomerBasedTaxExemption;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.Currency = \n odataObject.Currency;\n \n this.TimeZoneCode = \n odataObject.TimeZoneCode;\n \n if (odataObject.OrgUnitAddress == null) {\n this.OrgUnitAddress = undefined;\n } else if (odataObject.OrgUnitAddress['@odata.type'] == null) {\n this.OrgUnitAddress = new AddressClass(odataObject.OrgUnitAddress);\n } else {\n var className: string = odataObject.OrgUnitAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitAddress = new entityDictionary[className](odataObject.OrgUnitAddress)\n }\n }\n\n \n this.OrgUnitFullAddress = \n odataObject.OrgUnitFullAddress;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.EmailReceiptProfileId = \n odataObject.EmailReceiptProfileId;\n \n if (odataObject.ShippingWarehouseAddress == null) {\n this.ShippingWarehouseAddress = undefined;\n } else if (odataObject.ShippingWarehouseAddress['@odata.type'] == null) {\n this.ShippingWarehouseAddress = new AddressClass(odataObject.ShippingWarehouseAddress);\n } else {\n var className: string = odataObject.ShippingWarehouseAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingWarehouseAddress = new entityDictionary[className](odataObject.ShippingWarehouseAddress)\n }\n }\n\n \n this.TaxRegistrations = undefined;\n if (odataObject.TaxRegistrations) {\n this.TaxRegistrations = [];\n for (var i = 0; i < odataObject.TaxRegistrations.length; i++) {\n if (odataObject.TaxRegistrations[i] != null) {\n if (odataObject.TaxRegistrations[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxRegistrations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxRegistrations[i] = new entityDictionary[className](odataObject.TaxRegistrations[i])\n }\n } else {\n this.TaxRegistrations[i] = new TaxRegistrationClass(odataObject.TaxRegistrations[i]);\n }\n } else {\n this.TaxRegistrations[i] = undefined;\n }\n }\n }\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitClass'] = OrgUnitClass;\n \n /**\n * Product entity class.\n */\n export class ProductClass implements Entities.Product {\n public RecordId: number;\n public ProductName: string;\n public ProductNumber: string;\n public Description: string;\n public IsMasterProduct: boolean;\n public IsKit: boolean;\n public ItemId: string;\n public HasLinkedProducts: boolean;\n public Rules: Entities.ProductRules;\n public DefaultUnitOfMeasure: string;\n public Name: string;\n public Locale: string;\n public OfflineImage: string;\n public IsRemote: boolean;\n public ChangeTrackingInformation: Entities.ProductChangeTrackingInformation;\n public Image: Entities.RichMediaLocations;\n public UnitsOfMeasureSymbol: string[];\n public LinkedProducts: Entities.LinkedProduct[];\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public RetailContext: Entities.ProjectionDomain;\n public PrimaryCategoryId: number;\n public CategoryIds: number[];\n public DisplayOrderInCategories: Entities.DisplayOrderInCategory[];\n public RelatedProducts: Entities.RelatedProduct[];\n public ProductsRelatedToThis: Entities.RelatedProduct[];\n public ProductSchema: string[];\n public ProductProperties: Entities.ProductPropertyTranslation[];\n public CompositionInformation: Entities.ProductCompositionInformation;\n public ParentKits: Entities.KitComponent[];\n public SearchName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.Description = \n odataObject.Description;\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.IsKit = \n odataObject.IsKit;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n if (odataObject.Rules == null) {\n this.Rules = undefined;\n } else if (odataObject.Rules['@odata.type'] == null) {\n this.Rules = new ProductRulesClass(odataObject.Rules);\n } else {\n var className: string = odataObject.Rules['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Rules = new entityDictionary[className](odataObject.Rules)\n }\n }\n\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.Name = \n odataObject.Name;\n \n this.Locale = \n odataObject.Locale;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsRemote = \n odataObject.IsRemote;\n \n if (odataObject.ChangeTrackingInformation == null) {\n this.ChangeTrackingInformation = undefined;\n } else if (odataObject.ChangeTrackingInformation['@odata.type'] == null) {\n this.ChangeTrackingInformation = new ProductChangeTrackingInformationClass(odataObject.ChangeTrackingInformation);\n } else {\n var className: string = odataObject.ChangeTrackingInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChangeTrackingInformation = new entityDictionary[className](odataObject.ChangeTrackingInformation)\n }\n }\n\n \n if (odataObject.Image == null) {\n this.Image = undefined;\n } else if (odataObject.Image['@odata.type'] == null) {\n this.Image = new RichMediaLocationsClass(odataObject.Image);\n } else {\n var className: string = odataObject.Image['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Image = new entityDictionary[className](odataObject.Image)\n }\n }\n\n \n this.UnitsOfMeasureSymbol = undefined;\n if (odataObject.UnitsOfMeasureSymbol) {\n this.UnitsOfMeasureSymbol = [];\n for (var i = 0; i < odataObject.UnitsOfMeasureSymbol.length; i++) {\n if (odataObject.UnitsOfMeasureSymbol[i] != null) {\n this.UnitsOfMeasureSymbol[i] = \n odataObject.UnitsOfMeasureSymbol[i];\n } else {\n this.UnitsOfMeasureSymbol[i] = undefined;\n }\n }\n }\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new LinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n if (odataObject.RetailContext == null) {\n this.RetailContext = undefined;\n } else if (odataObject.RetailContext['@odata.type'] == null) {\n this.RetailContext = new ProjectionDomainClass(odataObject.RetailContext);\n } else {\n var className: string = odataObject.RetailContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RetailContext = new entityDictionary[className](odataObject.RetailContext)\n }\n }\n\n \n this.PrimaryCategoryId = \n (odataObject.PrimaryCategoryId != null) ? parseInt(odataObject.PrimaryCategoryId, 10) : undefined;\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.DisplayOrderInCategories = undefined;\n if (odataObject.DisplayOrderInCategories) {\n this.DisplayOrderInCategories = [];\n for (var i = 0; i < odataObject.DisplayOrderInCategories.length; i++) {\n if (odataObject.DisplayOrderInCategories[i] != null) {\n if (odataObject.DisplayOrderInCategories[i]['@odata.type'] != null) {\n var className: string = odataObject.DisplayOrderInCategories[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DisplayOrderInCategories[i] = new entityDictionary[className](odataObject.DisplayOrderInCategories[i])\n }\n } else {\n this.DisplayOrderInCategories[i] = new DisplayOrderInCategoryClass(odataObject.DisplayOrderInCategories[i]);\n }\n } else {\n this.DisplayOrderInCategories[i] = undefined;\n }\n }\n }\n \n this.RelatedProducts = undefined;\n if (odataObject.RelatedProducts) {\n this.RelatedProducts = [];\n for (var i = 0; i < odataObject.RelatedProducts.length; i++) {\n if (odataObject.RelatedProducts[i] != null) {\n if (odataObject.RelatedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.RelatedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RelatedProducts[i] = new entityDictionary[className](odataObject.RelatedProducts[i])\n }\n } else {\n this.RelatedProducts[i] = new RelatedProductClass(odataObject.RelatedProducts[i]);\n }\n } else {\n this.RelatedProducts[i] = undefined;\n }\n }\n }\n \n this.ProductsRelatedToThis = undefined;\n if (odataObject.ProductsRelatedToThis) {\n this.ProductsRelatedToThis = [];\n for (var i = 0; i < odataObject.ProductsRelatedToThis.length; i++) {\n if (odataObject.ProductsRelatedToThis[i] != null) {\n if (odataObject.ProductsRelatedToThis[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductsRelatedToThis[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductsRelatedToThis[i] = new entityDictionary[className](odataObject.ProductsRelatedToThis[i])\n }\n } else {\n this.ProductsRelatedToThis[i] = new RelatedProductClass(odataObject.ProductsRelatedToThis[i]);\n }\n } else {\n this.ProductsRelatedToThis[i] = undefined;\n }\n }\n }\n \n this.ProductSchema = undefined;\n if (odataObject.ProductSchema) {\n this.ProductSchema = [];\n for (var i = 0; i < odataObject.ProductSchema.length; i++) {\n if (odataObject.ProductSchema[i] != null) {\n this.ProductSchema[i] = \n odataObject.ProductSchema[i];\n } else {\n this.ProductSchema[i] = undefined;\n }\n }\n }\n \n this.ProductProperties = undefined;\n if (odataObject.ProductProperties) {\n this.ProductProperties = [];\n for (var i = 0; i < odataObject.ProductProperties.length; i++) {\n if (odataObject.ProductProperties[i] != null) {\n if (odataObject.ProductProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductProperties[i] = new entityDictionary[className](odataObject.ProductProperties[i])\n }\n } else {\n this.ProductProperties[i] = new ProductPropertyTranslationClass(odataObject.ProductProperties[i]);\n }\n } else {\n this.ProductProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.CompositionInformation == null) {\n this.CompositionInformation = undefined;\n } else if (odataObject.CompositionInformation['@odata.type'] == null) {\n this.CompositionInformation = new ProductCompositionInformationClass(odataObject.CompositionInformation);\n } else {\n var className: string = odataObject.CompositionInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CompositionInformation = new entityDictionary[className](odataObject.CompositionInformation)\n }\n }\n\n \n this.ParentKits = undefined;\n if (odataObject.ParentKits) {\n this.ParentKits = [];\n for (var i = 0; i < odataObject.ParentKits.length; i++) {\n if (odataObject.ParentKits[i] != null) {\n if (odataObject.ParentKits[i]['@odata.type'] != null) {\n var className: string = odataObject.ParentKits[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ParentKits[i] = new entityDictionary[className](odataObject.ParentKits[i])\n }\n } else {\n this.ParentKits[i] = new KitComponentClass(odataObject.ParentKits[i]);\n }\n } else {\n this.ParentKits[i] = undefined;\n }\n }\n }\n \n this.SearchName = \n odataObject.SearchName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductClass'] = ProductClass;\n \n /**\n * ProductCatalog entity class.\n */\n export class ProductCatalogClass implements Entities.ProductCatalog {\n public RecordId: number;\n public Name: string;\n public Description: string;\n public Language: string;\n public IsSnapshotEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public CreatedOn: Date;\n public ModifiedOn: Date;\n public PublishedOn: Date;\n public Images: Entities.MediaLocation[];\n public ChannelId: number;\n public DefaultImage: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.Language = \n odataObject.Language;\n \n this.IsSnapshotEnabled = \n odataObject.IsSnapshotEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedOn = \n (odataObject.CreatedOn instanceof Date) ? odataObject.CreatedOn\n : (odataObject.CreatedOn != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ModifiedOn = \n (odataObject.ModifiedOn instanceof Date) ? odataObject.ModifiedOn\n : (odataObject.ModifiedOn != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PublishedOn = \n (odataObject.PublishedOn instanceof Date) ? odataObject.PublishedOn\n : (odataObject.PublishedOn != null) ? jsonLightReadStringPropertyValue(odataObject.PublishedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductCatalogClass'] = ProductCatalogClass;\n \n /**\n * CommerceList entity class.\n */\n export class CommerceListClass implements Entities.CommerceList {\n public Id: number;\n public Name: string;\n public CustomerId: string;\n public CustomerName: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public IsCollaborative: boolean;\n public CreatedDateTime: Date;\n public DueDateTime: Date;\n public CommerceListTypeValue: number;\n public CommerceListLines: Entities.CommerceListLine[];\n public CommerceListContributors: Entities.CommerceListContributor[];\n public CommerceListInvitations: Entities.CommerceListInvitation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsCollaborative = \n odataObject.IsCollaborative;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommerceListTypeValue = \n odataObject.CommerceListTypeValue;\n \n this.CommerceListLines = undefined;\n if (odataObject.CommerceListLines) {\n this.CommerceListLines = [];\n for (var i = 0; i < odataObject.CommerceListLines.length; i++) {\n if (odataObject.CommerceListLines[i] != null) {\n if (odataObject.CommerceListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListLines[i] = new entityDictionary[className](odataObject.CommerceListLines[i])\n }\n } else {\n this.CommerceListLines[i] = new CommerceListLineClass(odataObject.CommerceListLines[i]);\n }\n } else {\n this.CommerceListLines[i] = undefined;\n }\n }\n }\n \n this.CommerceListContributors = undefined;\n if (odataObject.CommerceListContributors) {\n this.CommerceListContributors = [];\n for (var i = 0; i < odataObject.CommerceListContributors.length; i++) {\n if (odataObject.CommerceListContributors[i] != null) {\n if (odataObject.CommerceListContributors[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListContributors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListContributors[i] = new entityDictionary[className](odataObject.CommerceListContributors[i])\n }\n } else {\n this.CommerceListContributors[i] = new CommerceListContributorClass(odataObject.CommerceListContributors[i]);\n }\n } else {\n this.CommerceListContributors[i] = undefined;\n }\n }\n }\n \n this.CommerceListInvitations = undefined;\n if (odataObject.CommerceListInvitations) {\n this.CommerceListInvitations = [];\n for (var i = 0; i < odataObject.CommerceListInvitations.length; i++) {\n if (odataObject.CommerceListInvitations[i] != null) {\n if (odataObject.CommerceListInvitations[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListInvitations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListInvitations[i] = new entityDictionary[className](odataObject.CommerceListInvitations[i])\n }\n } else {\n this.CommerceListInvitations[i] = new CommerceListInvitationClass(odataObject.CommerceListInvitations[i]);\n }\n } else {\n this.CommerceListInvitations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListClass'] = CommerceListClass;\n \n /**\n * ProductList entity class.\n */\n export class ProductListClass implements Entities.ProductList {\n public Id: string;\n public Name: string;\n public CustomerId: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public ProductListTypeValue: number;\n public DataAreaId: string;\n public ProductListLines: Entities.ProductListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductListTypeValue = \n odataObject.ProductListTypeValue;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductListLines = undefined;\n if (odataObject.ProductListLines) {\n this.ProductListLines = [];\n for (var i = 0; i < odataObject.ProductListLines.length; i++) {\n if (odataObject.ProductListLines[i] != null) {\n if (odataObject.ProductListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductListLines[i] = new entityDictionary[className](odataObject.ProductListLines[i])\n }\n } else {\n this.ProductListLines[i] = new ProductListLineClass(odataObject.ProductListLines[i]);\n }\n } else {\n this.ProductListLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListClass'] = ProductListClass;\n \n /**\n * Recommendation entity class.\n */\n export class RecommendationClass implements Entities.Recommendation {\n public Id: string;\n public RecommendationTypeValue: number;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.RecommendationTypeValue = \n odataObject.RecommendationTypeValue;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationClass'] = RecommendationClass;\n \n /**\n * TransferOrder entity class.\n */\n export class TransferOrderClass implements Entities.TransferOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityShipRemaining: number;\n public QuantityReceiveRemaining: number;\n public ShipDate: Date;\n public ReceiveDate: Date;\n public DeliveryModeId: string;\n public OrderLines: Entities.TransferOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityShipRemaining = \n (odataObject.QuantityShipRemaining != null) ? parseFloat(odataObject.QuantityShipRemaining) : undefined;\n \n this.QuantityReceiveRemaining = \n (odataObject.QuantityReceiveRemaining != null) ? parseFloat(odataObject.QuantityReceiveRemaining) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new TransferOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderClass'] = TransferOrderClass;\n \n /**\n * PurchaseOrder entity class.\n */\n export class PurchaseOrderClass implements Entities.PurchaseOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public TotalReceived: number;\n public OrderLines: Entities.PurchaseOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PurchaseOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderClass'] = PurchaseOrderClass;\n \n /**\n * PickingList entity class.\n */\n export class PickingListClass implements Entities.PickingList {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationId: string;\n public DeliveryDate: Date;\n public DeliveryMode: string;\n public TotalReceived: number;\n public OrderLines: Entities.PickingListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PickingListLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListClass'] = PickingListClass;\n \n /**\n * Warehouse entity class.\n */\n export class WarehouseClass implements Entities.Warehouse {\n public InventLocation: string;\n public Name: string;\n public IsWMSEnabled: boolean;\n public DefaultInventoryStatus: string;\n public DefaultReceiptLocation: string;\n public DefaultLocationId: string;\n public DefaultIssueLocation: string;\n public Address: Entities.Address;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InventLocation = \n odataObject.InventLocation;\n \n this.Name = \n odataObject.Name;\n \n this.IsWMSEnabled = \n odataObject.IsWMSEnabled;\n \n this.DefaultInventoryStatus = \n odataObject.DefaultInventoryStatus;\n \n this.DefaultReceiptLocation = \n odataObject.DefaultReceiptLocation;\n \n this.DefaultLocationId = \n odataObject.DefaultLocationId;\n \n this.DefaultIssueLocation = \n odataObject.DefaultIssueLocation;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseClass'] = WarehouseClass;\n \n /**\n * ScanResult entity class.\n */\n export class ScanResultClass implements Entities.ScanResult {\n public ScannedText: string;\n public MaskTypeValue: number;\n public Barcode: Entities.Barcode;\n public Product: Entities.SimpleProduct;\n public LoyaltyCard: Entities.LoyaltyCard;\n public GiftCard: Entities.GiftCard;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Customer: Entities.Customer;\n \n // Navigation properties names\n public static customerPropertyName: string = \"Customer\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ScannedText = \n odataObject.ScannedText;\n \n this.MaskTypeValue = \n odataObject.MaskTypeValue;\n \n if (odataObject.Barcode == null) {\n this.Barcode = undefined;\n } else if (odataObject.Barcode['@odata.type'] == null) {\n this.Barcode = new BarcodeClass(odataObject.Barcode);\n } else {\n var className: string = odataObject.Barcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Barcode = new entityDictionary[className](odataObject.Barcode)\n }\n }\n\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n if (odataObject.LoyaltyCard == null) {\n this.LoyaltyCard = undefined;\n } else if (odataObject.LoyaltyCard['@odata.type'] == null) {\n this.LoyaltyCard = new LoyaltyCardClass(odataObject.LoyaltyCard);\n } else {\n var className: string = odataObject.LoyaltyCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCard = new entityDictionary[className](odataObject.LoyaltyCard)\n }\n }\n\n \n if (odataObject.GiftCard == null) {\n this.GiftCard = undefined;\n } else if (odataObject.GiftCard['@odata.type'] == null) {\n this.GiftCard = new GiftCardClass(odataObject.GiftCard);\n } else {\n var className: string = odataObject.GiftCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.GiftCard = new entityDictionary[className](odataObject.GiftCard)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Customer == null) {\n this.Customer = undefined;\n } else if (odataObject.Customer['@odata.type'] == null) {\n this.Customer = new CustomerClass(odataObject.Customer);\n } else {\n var className: string = odataObject.Customer['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Customer = new entityDictionary[className](odataObject.Customer)\n }\n }\n\n \n }\n }\n entityDictionary['ScanResultClass'] = ScanResultClass;\n \n /**\n * SalesOrderContextualOperationsMap entity class.\n */\n export class SalesOrderContextualOperationsMapClass implements Entities.SalesOrderContextualOperationsMap {\n public Id: string;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public SalesOrder: Entities.SalesOrder;\n \n // Navigation properties names\n public static salesOrderPropertyName: string = \"SalesOrder\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.SalesOrder == null) {\n this.SalesOrder = undefined;\n } else if (odataObject.SalesOrder['@odata.type'] == null) {\n this.SalesOrder = new SalesOrderClass(odataObject.SalesOrder);\n } else {\n var className: string = odataObject.SalesOrder['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesOrder = new entityDictionary[className](odataObject.SalesOrder)\n }\n }\n\n \n }\n }\n entityDictionary['SalesOrderContextualOperationsMapClass'] = SalesOrderContextualOperationsMapClass;\n \n /**\n * InventoryInboundOutboundDocument entity class.\n */\n export class InventoryInboundOutboundDocumentClass implements Entities.InventoryInboundOutboundDocument {\n public WorkDocumentId: string;\n public TerminalId: string;\n public CommitRequestId: string;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public OperationTypeValue: number;\n public StatusValue: number;\n public ReceiptId: string;\n public Note: string;\n public OperationResultMessage: string;\n public DocumentId: string;\n public LongVersion: number;\n public SourceDocument: Entities.InventoryInboundOutboundSourceDocument;\n public SourceDocumentTypeValue: number;\n public CreatedDateTime: Date;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 ClosedShiftId: number;\n public ReferenceId: number;\n public RefChannel: number;\n public RefStore: string;\n public RefTerminal: string;\n public RefTransactionId: string;\n public AuditEventTypeValue: number;\n public FiscalTransactions: Entities.AuditEventFiscalTransaction[];\n public FiscalRegistrationLines: Entities.AuditEventFiscalRegistrationLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.EventIdString = \n odataObject.EventIdString;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.EventType = \n odataObject.EventType;\n \n this.EventDateTime = \n (odataObject.EventDateTime instanceof Date) ? odataObject.EventDateTime\n : (odataObject.EventDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EventDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DurationInMilliseconds = \n odataObject.DurationInMilliseconds;\n \n this.Source = \n odataObject.Source;\n \n this.EventMessage = \n odataObject.EventMessage;\n \n this.LogLevel = \n odataObject.LogLevel;\n \n this.Staff = \n odataObject.Staff;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ClosedShiftId = \n (odataObject.ClosedShiftId != null) ? parseInt(odataObject.ClosedShiftId, 10) : undefined;\n \n this.ReferenceId = \n (odataObject.ReferenceId != null) ? parseInt(odataObject.ReferenceId, 10) : undefined;\n \n this.RefChannel = \n (odataObject.RefChannel != null) ? parseInt(odataObject.RefChannel, 10) : undefined;\n \n this.RefStore = \n odataObject.RefStore;\n \n this.RefTerminal = \n odataObject.RefTerminal;\n \n this.RefTransactionId = \n odataObject.RefTransactionId;\n \n this.AuditEventTypeValue = \n odataObject.AuditEventTypeValue;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new AuditEventFiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.FiscalRegistrationLines = undefined;\n if (odataObject.FiscalRegistrationLines) {\n this.FiscalRegistrationLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationLines.length; i++) {\n if (odataObject.FiscalRegistrationLines[i] != null) {\n if (odataObject.FiscalRegistrationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationLines[i])\n }\n } else {\n this.FiscalRegistrationLines[i] = new AuditEventFiscalRegistrationLineClass(odataObject.FiscalRegistrationLines[i]);\n }\n } else {\n this.FiscalRegistrationLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventClass'] = AuditEventClass;\n \n /**\n * ItemAvailability entity class.\n */\n export class ItemAvailabilityClass implements Entities.ItemAvailability {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public InventoryLocationId: string;\n public ProductId: number;\n public AvailableQuantity: number;\n public OrderedSum: number;\n public PhysicalReserved: number;\n public UnitOfMeasure: string;\n public InventoryUnitOfMeasure: string;\n public InventoryUnitOfMeasureDescription: string;\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.OrderedSum = \n (odataObject.OrderedSum != null) ? parseFloat(odataObject.OrderedSum) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.InventoryUnitOfMeasure = \n odataObject.InventoryUnitOfMeasure;\n \n this.InventoryUnitOfMeasureDescription = \n odataObject.InventoryUnitOfMeasureDescription;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemAvailabilityClass'] = ItemAvailabilityClass;\n \n /**\n * InventoryAvailableToPromise entity class.\n */\n export class InventoryAvailableToPromiseClass\n extends ItemAvailabilityClass\n implements Entities.InventoryAvailableToPromise {\n public Date: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Date = \n odataObject.Date;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InventoryAvailableToPromise\";\n \n }\n }\n entityDictionary['InventoryAvailableToPromiseClass'] = InventoryAvailableToPromiseClass;\n \n /**\n * NotificationItem entity class.\n */\n export class NotificationItemClass implements Entities.NotificationItem {\n public Action: number;\n public ActionName: string;\n public NotificationDetails: Entities.NotificationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionName = \n odataObject.ActionName;\n \n this.NotificationDetails = undefined;\n if (odataObject.NotificationDetails) {\n this.NotificationDetails = [];\n for (var i = 0; i < odataObject.NotificationDetails.length; i++) {\n if (odataObject.NotificationDetails[i] != null) {\n if (odataObject.NotificationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.NotificationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NotificationDetails[i] = new entityDictionary[className](odataObject.NotificationDetails[i])\n }\n } else {\n this.NotificationDetails[i] = new NotificationDetailClass(odataObject.NotificationDetails[i]);\n }\n } else {\n this.NotificationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationItemClass'] = NotificationItemClass;\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity class.\n */\n export class FiscalIntegrationDocumentRetrievalCriteriaClass implements Entities.FiscalIntegrationDocumentRetrievalCriteria {\n public TransactionId: string;\n public IsRemoteTransaction: boolean;\n public QueryBySalesId: boolean;\n public FiscalRegistrationEventTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public DocumentContext: Entities.FiscalIntegrationDocumentContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.DocumentContext == null) {\n this.DocumentContext = undefined;\n } else if (odataObject.DocumentContext['@odata.type'] == null) {\n this.DocumentContext = new FiscalIntegrationDocumentContextClass(odataObject.DocumentContext);\n } else {\n var className: string = odataObject.DocumentContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentContext = new entityDictionary[className](odataObject.DocumentContext)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentRetrievalCriteriaClass'] = FiscalIntegrationDocumentRetrievalCriteriaClass;\n \n /**\n * FiscalIntegrationDocument entity class.\n */\n export class FiscalIntegrationDocumentClass implements Entities.FiscalIntegrationDocument {\n public Document: string;\n public DocumentGenerationResultTypeValue: number;\n public FiscalConnectorTechnicalProfile: Entities.FiscalIntegrationTechnicalProfile;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public SequentialSignatureDataContext: Entities.FiscalIntegrationSignatureDataContext;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Document = \n odataObject.Document;\n \n this.DocumentGenerationResultTypeValue = \n odataObject.DocumentGenerationResultTypeValue;\n \n if (odataObject.FiscalConnectorTechnicalProfile == null) {\n this.FiscalConnectorTechnicalProfile = undefined;\n } else if (odataObject.FiscalConnectorTechnicalProfile['@odata.type'] == null) {\n this.FiscalConnectorTechnicalProfile = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalConnectorTechnicalProfile);\n } else {\n var className: string = odataObject.FiscalConnectorTechnicalProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalConnectorTechnicalProfile = new entityDictionary[className](odataObject.FiscalConnectorTechnicalProfile)\n }\n }\n\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n if (odataObject.SequentialSignatureDataContext == null) {\n this.SequentialSignatureDataContext = undefined;\n } else if (odataObject.SequentialSignatureDataContext['@odata.type'] == null) {\n this.SequentialSignatureDataContext = new FiscalIntegrationSignatureDataContextClass(odataObject.SequentialSignatureDataContext);\n } else {\n var className: string = odataObject.SequentialSignatureDataContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureDataContext = new entityDictionary[className](odataObject.SequentialSignatureDataContext)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentClass'] = FiscalIntegrationDocumentClass;\n \n /**\n * FiscalIntegrationRegistrationResult entity class.\n */\n export class FiscalIntegrationRegistrationResultClass implements Entities.FiscalIntegrationRegistrationResult {\n public TransactionID: string;\n public AuditEventId: string;\n public Response: string;\n public SubmittedDocument: string;\n public RegisterInfo: string;\n public RegistrationStatusValue: number;\n public FiscalRegistrationEventTypeValue: number;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public SequentialSignatureData: Entities.FiscalIntegrationSequentialSignatureData;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionID = \n odataObject.TransactionID;\n \n this.AuditEventId = \n odataObject.AuditEventId;\n \n this.Response = \n odataObject.Response;\n \n this.SubmittedDocument = \n odataObject.SubmittedDocument;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.SequentialSignatureData == null) {\n this.SequentialSignatureData = undefined;\n } else if (odataObject.SequentialSignatureData['@odata.type'] == null) {\n this.SequentialSignatureData = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SequentialSignatureData);\n } else {\n var className: string = odataObject.SequentialSignatureData['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureData = new entityDictionary[className](odataObject.SequentialSignatureData)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationResultClass'] = FiscalIntegrationRegistrationResultClass;\n \n /**\n * FiscalIntegrationRegistrationProcess entity class.\n */\n export class FiscalIntegrationRegistrationProcessClass implements Entities.FiscalIntegrationRegistrationProcess {\n public RecordId: number;\n public RegistrationProcessId: string;\n public Description: string;\n public 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 * DataverseTenderLine entity class.\n */\n export class DataverseTenderLineClass\n extends TenderLineClass\n implements Entities.DataverseTenderLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DataverseTenderLine\";\n \n }\n }\n entityDictionary['DataverseTenderLineClass'] = DataverseTenderLineClass;\n \n /**\n * PaymentError entity class.\n */\n export class PaymentErrorClass implements Entities.PaymentError {\n public Code: string;\n public Message: string;\n public IsLocalized: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.Message = \n odataObject.Message;\n \n this.IsLocalized = \n odataObject.IsLocalized;\n \n }\n }\n entityDictionary['PaymentErrorClass'] = PaymentErrorClass;\n \n /**\n * ProductAttributeMetadataFlags entity class.\n */\n export class ProductAttributeMetadataFlagsClass implements Entities.ProductAttributeMetadataFlags {\n public IsSearchable: boolean;\n public IsRetrievable: boolean;\n public IsQueryable: boolean;\n public IsRefinable: boolean;\n public IsSortable: boolean;\n public IsMultiValue: boolean;\n public IsTokenNormalization: boolean;\n public IsCompleteMatch: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSearchable = \n odataObject.IsSearchable;\n \n this.IsRetrievable = \n odataObject.IsRetrievable;\n \n this.IsQueryable = \n odataObject.IsQueryable;\n \n this.IsRefinable = \n odataObject.IsRefinable;\n \n this.IsSortable = \n odataObject.IsSortable;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsTokenNormalization = \n odataObject.IsTokenNormalization;\n \n this.IsCompleteMatch = \n odataObject.IsCompleteMatch;\n \n }\n }\n entityDictionary['ProductAttributeMetadataFlagsClass'] = ProductAttributeMetadataFlagsClass;\n \n /**\n * UnitOfMeasureConversion entity class.\n */\n export class UnitOfMeasureConversionClass implements Entities.UnitOfMeasureConversion {\n public ItemId: string;\n public FromUnitOfMeasureId: string;\n public ToUnitOfMeasureId: string;\n public FromUnitOfMeasureSymbol: string;\n public ToUnitOfMeasureSymbol: string;\n public IsBackward: boolean;\n public RecordId: number;\n public ProductRecordId: number;\n public Factor: number;\n public Numerator: number;\n public Denominator: number;\n public InnerOffset: number;\n public OuterOffset: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.FromUnitOfMeasureId = \n odataObject.FromUnitOfMeasureId;\n \n this.ToUnitOfMeasureId = \n odataObject.ToUnitOfMeasureId;\n \n this.FromUnitOfMeasureSymbol = \n odataObject.FromUnitOfMeasureSymbol;\n \n this.ToUnitOfMeasureSymbol = \n odataObject.ToUnitOfMeasureSymbol;\n \n this.IsBackward = \n odataObject.IsBackward;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.Factor = \n (odataObject.Factor != null) ? parseFloat(odataObject.Factor) : undefined;\n \n this.Numerator = \n odataObject.Numerator;\n \n this.Denominator = \n odataObject.Denominator;\n \n this.InnerOffset = \n (odataObject.InnerOffset != null) ? parseFloat(odataObject.InnerOffset) : undefined;\n \n this.OuterOffset = \n (odataObject.OuterOffset != null) ? parseFloat(odataObject.OuterOffset) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureConversionClass'] = UnitOfMeasureConversionClass;\n \n /**\n * 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 * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nimport { isNonceEnabled, SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport { IDefaultMetatagsData } from './default-metatags.data';\nimport { IDefaultMetatagsProps } from './default-metatags.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component\n * @extends {React.PureComponent>}\n */\nclass DefaultMetaTags extends React.PureComponent> {\n public render(): JSX.Element {\n const { data, config } = this.props;\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\n let metaTagsHtml: string = '';\n let metaTags;\n if (config.metaTags) {\n metaTags = nonceToken ? this._addNonceToInlineScript(config.metaTags, nonceToken) : config.metaTags;\n metaTagsHtml = metaTags && metaTags.join('\\n');\n } else if (data.metaTags) {\n metaTags = data.metaTags;\n let metaTagsText = metaTags.map(simpleText => simpleText.text);\n metaTagsText = nonceToken ? this._addNonceToInlineScript(metaTagsText, nonceToken) : metaTagsText;\n metaTagsHtml = metaTagsText && metaTagsText.join('\\n');\n }\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: metaTagsHtml } });\n }\n\n private _addNonceToInlineScript(metaTags: string[], nonceToken: string): string[] {\n const inlineScripRegex = /(.*?)<\\/script>/g;\n return metaTags\n .map(metaTag => {\n if (inlineScripRegex.test(metaTag)) {\n return metaTag.replace(/`;\n\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\n }\n}\n\nexport default DefaultExternalScript;\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 */\nexport * from './IProductList';\nexport * from './IAddCartLinesParam';\nexport * from './IRemoveCartLinesParam';\nexport * from './IUpdateCartLinesParam';\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { HtmlHeadInclude, IAny, IGeneric } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IDefaultPageSummaryData } from './default-page-summary.data';\nimport { IDefaultPageSummaryProps } from './default-page-summary.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component.\n * @extends {React.PureComponent}\n */\nclass DefaultPageSummary extends React.PureComponent> {\n public render(): JSX.Element {\n if (this.props.data.pageSummary.result === undefined) {\n throw new Error('PageSummaryData input to page-summary is undefined. Unable to generate page-summary');\n }\n let {\n data: {\n pageSummary: {\n result: { title, description, keywords, sharingImageUrl, faviconUrl }\n }\n }\n } = this.props;\n\n const {\n config,\n context,\n data: {\n pageSummary: {\n result: { canonicalUrl }\n }\n }\n } = this.props;\n\n // Override values coming from data action if config values are provided\n title = config.title || title;\n description = config.description || description;\n keywords = config.keywords || keywords;\n sharingImageUrl = (config.sharingImage && config.sharingImage.src) || sharingImageUrl;\n faviconUrl = config.faviconUrl || faviconUrl;\n\n const pageTitle = this._constructPageTitle(title, context && context.request && context.request.app);\n return (\n <>\n \n {pageTitle && \n {pageTitle}\n }\n {description && }\n {keywords && }\n {canonicalUrl && }\n {faviconUrl && }\n \n {!config.disableOgTags && this._renderOgTags(pageTitle, description, sharingImageUrl)}\n {!config.disableTwitterTags && this._renderTwitterTags(pageTitle, description, sharingImageUrl)}\n \n );\n }\n\n private _renderOgTags(title: string | undefined, description: string | undefined, sharingImageUrl: string | undefined): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _renderTwitterTags(\n title: string | undefined,\n description: string | undefined,\n sharingImageUrl: string | undefined\n ): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _constructPageTitle(title: string | undefined, app: IGeneric): string | undefined {\n if (!title) {\n title = '';\n }\n\n const moduleConfig = this.props.config;\n if (moduleConfig && moduleConfig.ignoreTitleSuffixPrefix) {\n return title;\n }\n\n const appConfig = app && app.platform;\n if (appConfig) {\n if (appConfig.pageTitlePrefix) {\n title = (appConfig.pageTitlePrefix as string) + title;\n }\n if (appConfig.pageTitleSuffix) {\n title += (appConfig.pageTitleSuffix as string);\n }\n }\n\n return title;\n }\n}\n\nexport default DefaultPageSummary;\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, overrideSession: boolean): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('StartSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId, overrideSession: overrideSession });\n }\n\n export function startSessionAsync(context: IContext, transactionId: string | null, overrideSession: boolean):AsyncResult {\n const request = createStartSessionInput(transactionId, overrideSession);\n return executeAction(request, context);\n }\n \n export function createEndSessionInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('EndSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function endSessionAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createEndSessionInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createActivateDeviceInput(deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ActivateDevice', true, DeviceActivationResultClass, 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, forceActivate: forceActivate, deviceType: deviceType });\n }\n\n export function activateDeviceAsync(context: IContext, deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null):AsyncResult {\n const request = createActivateDeviceInput(deviceNumber, terminalId, deviceId, forceActivate, deviceType);\n return executeAction(request, context);\n }\n \n export function createMassActivateDeviceInput(deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('MassActivateDevice', true, DeviceActivationResultClass, 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, deviceType: deviceType });\n }\n\n export function massActivateDeviceAsync(context: IContext, deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null):AsyncResult {\n const request = createMassActivateDeviceInput(deviceNumber, terminalId, deviceId, deviceType);\n return executeAction(request, context);\n }\n \n export function createDeactivateDeviceInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeactivateDevice', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function deactivateDeviceAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createDeactivateDeviceInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createCreateHardwareStationTokenInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateHardwareStationToken', true, CreateHardwareStationTokenResultClass, 'false', { bypassCache: 'get', returnEntity: 'CreateHardwareStationTokenResult'}, { });\n }\n\n export function createHardwareStationTokenAsync(context: IContext):AsyncResult {\n const request = createCreateHardwareStationTokenInput();\n return executeAction(request, context);\n }\n \n export function createValidateHardwareStationTokenInput(deviceNumber?: string | null, hardwareStationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateHardwareStationToken', true, ValidateHardwareStationTokenResultClass, 'false', { bypassCache: 'get', returnEntity: 'ValidateHardwareStationTokenResult'}, {deviceNumber: deviceNumber, hardwareStationToken: hardwareStationToken });\n }\n\n export function validateHardwareStationTokenAsync(context: IContext, deviceNumber?: string | null, hardwareStationToken?: string | null):AsyncResult {\n const request = createValidateHardwareStationTokenInput(deviceNumber, hardwareStationToken);\n return executeAction(request, context);\n }\n \n export function createGetBarcodeByIdInput(barcodeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBarcodeById', true, BarcodeClass, 'false', { bypassCache: 'none', returnEntity: 'Barcode'}, {barcodeId: barcodeId });\n }\n\n export function getBarcodeByIdAsync(context: IContext, barcodeId?: string | null):AsyncResult {\n const request = createGetBarcodeByIdInput(barcodeId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridByIdInput(buttonGridId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetButtonGridById', true, ButtonGridClass, 'false', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {buttonGridId: buttonGridId });\n }\n\n export function getButtonGridByIdAsync(context: IContext, buttonGridId?: string | null):AsyncResult {\n const request = createGetButtonGridByIdInput(buttonGridId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsWithoutImageInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsWithoutImage', true, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsWithoutImageAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsWithoutImageInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByIdsInput(queryResultSettings: IQueryResultSettings, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByIds', true, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {getButtonGridsByIdsCriteria: getButtonGridsByIdsCriteria });\n }\n\n export function getButtonGridsByIdsAsync(context: IContext, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null):AsyncResult {\n const request = createGetButtonGridsByIdsInput(context.queryResultSettings, getButtonGridsByIdsCriteria);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobsByPictureIdsInput(queryResultSettings: IQueryResultSettings, pictureIds: number[]): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetImageBlobsByPictureIds', true, MediaBlobClass, 'true', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {pictureIds: pictureIds });\n }\n\n export function getImageBlobsByPictureIdsAsync(context: IContext, pictureIds: number[]):AsyncResult {\n const request = createGetImageBlobsByPictureIdsInput(context.queryResultSettings, pictureIds);\n return executeAction(request, context);\n }\n \n export function createGetCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCardTypes', true, CardTypeInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CardTypeInfo'}, { });\n }\n\n export function getCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createResolveCardTypesInput(queryResultSettings: IQueryResultSettings, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ResolveCardTypes', true, CardTypeInfoClass, 'true', { bypassCache: 'get', returnEntity: 'CardTypeInfo'}, {cardNumberPrefix: cardNumberPrefix, cardType: cardType, paymentToken: paymentToken });\n }\n\n export function resolveCardTypesAsync(context: IContext, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null):AsyncResult {\n const request = createResolveCardTypesInput(context.queryResultSettings, cardNumberPrefix, cardType, paymentToken);\n return executeAction(request, context);\n }\n \n export function createGetSupportedPaymentCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSupportedPaymentCardTypes', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getSupportedPaymentCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetSupportedPaymentCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCitiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCities', true, CityInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CityInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId });\n }\n\n export function getCitiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null):AsyncResult {\n const request = createGetCitiesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsForShippingInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsForShipping', false, CountryRegionInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsForShippingAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsForShippingInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsByLanguageIdInput(queryResultSettings: IQueryResultSettings, languageId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsByLanguageId', true, CountryRegionInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, {languageId: languageId });\n }\n\n export function getCountryRegionsByLanguageIdAsync(context: IContext, languageId?: string | null):AsyncResult {\n const request = createGetCountryRegionsByLanguageIdInput(context.queryResultSettings, languageId);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelInput(channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannel', false, OnlineChannelClass, 'false', { bypassCache: 'none', returnEntity: 'OnlineChannel'}, {channelId: channelId });\n }\n\n export function getOnlineChannelAsync(context: IContext, channelId: number):AsyncResult {\n const request = createGetOnlineChannelInput(channelId);\n return executeAction(request, context);\n }\n \n export function createGetCountiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCounties', true, CountyInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountyInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId });\n }\n\n export function getCountiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null):AsyncResult {\n const request = createGetCountiesInput(context.queryResultSettings, countryRegionId, stateProvinceId);\n return executeAction(request, context);\n }\n \n export function createGetCreditMemoByIdInput(creditMemoId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCreditMemoById', true, CreditMemoClass, 'false', { bypassCache: 'none', returnEntity: 'CreditMemo'}, {creditMemoId: creditMemoId });\n }\n\n export function getCreditMemoByIdAsync(context: IContext, creditMemoId?: string | null):AsyncResult {\n const request = createGetCreditMemoByIdInput(creditMemoId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetTerminalDataStoreNameInput(terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetTerminalDataStoreName', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId });\n }\n\n export function getTerminalDataStoreNameAsync(context: IContext, terminalId?: string | null):AsyncResult {\n const request = createGetTerminalDataStoreNameInput(terminalId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadLinkInput(dataStoreName: string | null, downloadSessionId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadLink', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName, downloadSessionId: downloadSessionId });\n }\n\n export function getDownloadLinkAsync(context: IContext, dataStoreName: string | null, downloadSessionId: number):AsyncResult {\n const request = createGetDownloadLinkInput(dataStoreName, downloadSessionId);\n return executeAction(request, context);\n }\n \n export function createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataDownloadParametersByTerminal', true, DataDownloadParametersClass, 'false', { bypassCache: 'none', returnEntity: 'DataDownloadParameters'}, {TerminalDataDownloadRequestInfo: terminalDataDownloadRequestInfo });\n }\n\n export function getDataDownloadParametersByTerminalAsync(context: IContext, terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null):AsyncResult {\n const request = createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataUploadParametersByTerminal', true, DataUploadParametersClass, 'false', { bypassCache: 'none', returnEntity: 'DataUploadParameters'}, {TerminalDataUploadRequestInfo: terminalDataUploadRequestInfo });\n }\n\n export function getDataUploadParametersByTerminalAsync(context: IContext, terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null):AsyncResult {\n const request = createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDownloadSessions', true, DownloadSessionClass, 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetInitialDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInitialDownloadSessions', true, DownloadSessionClass, 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getInitialDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetInitialDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadJobDefinitionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUploadJobDefinitions', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadJobDefinitionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadJobDefinitionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUploadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createPostOfflineTransactionsInput(offlineTransactionForMPOS?: string[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('PostOfflineTransactions', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {offlineTransactionForMPOS: offlineTransactionForMPOS });\n }\n\n export function postOfflineTransactionsAsync(context: IContext, offlineTransactionForMPOS?: string[] | null):AsyncResult {\n const request = createPostOfflineTransactionsInput(offlineTransactionForMPOS);\n return executeAction(request, context);\n }\n \n export function createSetOfflineTerminalStateInput(offlineTerminalState?: OfflineTerminalState | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOfflineTerminalState', true, '', '', { bypassCache: 'get', returnEntity: ''}, {offlineTerminalState: offlineTerminalState });\n }\n\n export function setOfflineTerminalStateAsync(context: IContext, offlineTerminalState?: OfflineTerminalState | null):AsyncResult {\n const request = createSetOfflineTerminalStateInput(offlineTerminalState);\n return executeAction(request, context);\n }\n \n export function createGetRetailTrialPlanOfferInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetRetailTrialPlanOffer', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getRetailTrialPlanOfferAsync(context: IContext):AsyncResult {\n const request = createGetRetailTrialPlanOfferInput();\n return executeAction(request, context);\n }\n \n export function createGetLatestNumberSequenceInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLatestNumberSequence', true, NumberSequenceSeedDataClass, 'true', { bypassCache: 'none', returnEntity: 'NumberSequenceSeedData'}, { });\n }\n\n export function getLatestNumberSequenceAsync(context: IContext):AsyncResult {\n const request = createGetLatestNumberSequenceInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReceiptNumberResetInfoInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptNumberResetInfo', true, ReceiptNumberResetInfoClass, 'true', { bypassCache: 'none', returnEntity: 'ReceiptNumberResetInfo'}, { });\n }\n\n export function getReceiptNumberResetInfoAsync(context: IContext):AsyncResult {\n const request = createGetReceiptNumberResetInfoInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimeline', true, LoyaltyRewardPointActivityClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimelineForExpiredPoints', true, LoyaltyRewardPointActivityClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createCalculateTotalCurrencyAmountInput(currenciesAmount?: CurrencyRequest[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateTotalCurrencyAmount', true, CurrencyAmountClass, 'false', { bypassCache: 'get', returnEntity: 'CurrencyAmount'}, {currenciesAmount: currenciesAmount });\n }\n\n export function calculateTotalCurrencyAmountAsync(context: IContext, currenciesAmount?: CurrencyRequest[] | null):AsyncResult {\n const request = createCalculateTotalCurrencyAmountInput(currenciesAmount);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodeInput(discountCode?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDiscountCode', true, DiscountCodeClass, 'false', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {discountCode: discountCode });\n }\n\n export function getDiscountCodeAsync(context: IContext, discountCode?: string | null):AsyncResult {\n const request = createGetDiscountCodeInput(discountCode);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByOfferIdInput(queryResultSettings: IQueryResultSettings, offerId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByOfferId', true, DiscountCodeClass, 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {offerId: offerId });\n }\n\n export function getDiscountCodesByOfferIdAsync(context: IContext, offerId?: string | null):AsyncResult {\n const request = createGetDiscountCodesByOfferIdInput(context.queryResultSettings, offerId);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByKeywordInput(queryResultSettings: IQueryResultSettings, keyword: string | null, activeDate: Date): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByKeyword', true, DiscountCodeClass, 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {keyword: keyword, activeDate: activeDate });\n }\n\n export function getDiscountCodesByKeywordAsync(context: IContext, keyword: string | null, activeDate: Date):AsyncResult {\n const request = createGetDiscountCodesByKeywordInput(context.queryResultSettings, keyword, activeDate);\n return executeAction(request, context);\n }\n \n export function createGetDistrictsInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDistricts', true, DistrictInfoClass, 'true', { bypassCache: 'none', returnEntity: 'DistrictInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName });\n }\n\n export function getDistrictsAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null):AsyncResult {\n const request = createGetDistrictsInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName);\n return executeAction(request, context);\n }\n \n export function createGetHardwareStationProfilesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetHardwareStationProfiles', true, HardwareStationProfileClass, 'true', { bypassCache: 'none', returnEntity: 'HardwareStationProfile'}, { });\n }\n\n export function getHardwareStationProfilesAsync(context: IContext):AsyncResult {\n const request = createGetHardwareStationProfilesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetHardwareProfileByIdInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetHardwareProfileById', true, HardwareProfileClass, 'false', { bypassCache: 'none', returnEntity: 'HardwareProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getHardwareProfileByIdAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetHardwareProfileByIdInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetLocalizedStringsInput(queryResultSettings: IQueryResultSettings, languageId?: string | null, textId?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLocalizedStrings', true, LocalizedStringClass, 'true', { bypassCache: 'none', returnEntity: 'LocalizedString'}, {languageId: languageId, textId: textId });\n }\n\n export function getLocalizedStringsAsync(context: IContext, languageId?: string | null, textId?: number | null):AsyncResult {\n const request = createGetLocalizedStringsInput(context.queryResultSettings, languageId, textId);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionByIdInput(operationId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationPermissionById', true, OperationPermissionClass, 'false', { bypassCache: 'none', returnEntity: 'OperationPermission'}, {operationId: operationId });\n }\n\n export function getOperationPermissionByIdAsync(context: IContext, operationId: number):AsyncResult {\n const request = createGetOperationPermissionByIdInput(operationId);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesByIdInput(queryResultSettings: IQueryResultSettings, reasonCodeGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodesById', true, ReasonCodeClass, 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, {reasonCodeGroupId: reasonCodeGroupId });\n }\n\n export function getReasonCodesByIdAsync(context: IContext, reasonCodeGroupId?: string | null):AsyncResult {\n const request = createGetReasonCodesByIdInput(context.queryResultSettings, reasonCodeGroupId);\n return executeAction(request, context);\n }\n \n export function createSearchReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SearchReportDataSet', true, ReportDataSetClass, 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function searchReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createSearchReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetReportDataSetByIdInput(reportId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReportDataSetById', true, ReportDataSetClass, 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId });\n }\n\n export function getReportDataSetByIdAsync(context: IContext, reportId?: string | null):AsyncResult {\n const request = createGetReportDataSetByIdInput(reportId);\n return executeAction(request, context);\n }\n \n export function createGetSrsReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSrsReportDataSet', true, ReportDataSetClass, 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function getSrsReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createGetSrsReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetIncomeExpenseAccountsInput(queryResultSettings: IQueryResultSettings, incomeExpenseAccountType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetIncomeExpenseAccounts', true, IncomeExpenseAccountClass, 'true', { bypassCache: 'none', returnEntity: 'IncomeExpenseAccount'}, {incomeExpenseAccountType: incomeExpenseAccountType });\n }\n\n export function getIncomeExpenseAccountsAsync(context: IContext, incomeExpenseAccountType: number):AsyncResult {\n const request = createGetIncomeExpenseAccountsInput(context.queryResultSettings, incomeExpenseAccountType);\n return executeAction(request, context);\n }\n \n export function createGetStateProvincesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStateProvinces', true, StateProvinceInfoClass, 'true', { bypassCache: 'none', returnEntity: 'StateProvinceInfo'}, {countryRegionId: countryRegionId });\n }\n\n export function getStateProvincesAsync(context: IContext, countryRegionId?: string | null):AsyncResult {\n const request = createGetStateProvincesInput(context.queryResultSettings, countryRegionId);\n return executeAction(request, context);\n }\n \n export function createGetZipCodesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetZipCodes', true, ZipCodeInfoClass, 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName, district: district });\n }\n\n export function getZipCodesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null):AsyncResult {\n const request = createGetZipCodesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName, district);\n return executeAction(request, context);\n }\n \n export function createGetAddressFromZipCodeInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, zipPostalCode?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressFromZipCode', true, ZipCodeInfoClass, 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, zipPostalCode: zipPostalCode });\n }\n\n export function getAddressFromZipCodeAsync(context: IContext, countryRegionId?: string | null, zipPostalCode?: string | null):AsyncResult {\n const request = createGetAddressFromZipCodeInput(context.queryResultSettings, countryRegionId, zipPostalCode);\n return executeAction(request, context);\n }\n \n export function createDisassembleKitTransactionsInput(kitTransaction?: KitTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DisassembleKitTransactions', true, KitTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'KitTransaction'}, {kitTransaction: kitTransaction });\n }\n\n export function disassembleKitTransactionsAsync(context: IContext, kitTransaction?: KitTransaction | null):AsyncResult {\n const request = createDisassembleKitTransactionsInput(kitTransaction);\n return executeAction(request, context);\n }\n \n export function createIssueLoyaltyCardInput(loyaltyCard?: LoyaltyCard | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('IssueLoyaltyCard', true, LoyaltyCardClass, 'false', { bypassCache: 'get', returnEntity: 'LoyaltyCard'}, {loyaltyCard: loyaltyCard });\n }\n\n export function issueLoyaltyCardAsync(context: IContext, loyaltyCard?: LoyaltyCard | null):AsyncResult {\n const request = createIssueLoyaltyCardInput(loyaltyCard);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardInput(cardNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetLoyaltyCard', true, LoyaltyCardClass, 'false', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {cardNumber: cardNumber });\n }\n\n export function getLoyaltyCardAsync(context: IContext, cardNumber?: string | null):AsyncResult {\n const request = createGetLoyaltyCardInput(cardNumber);\n return executeAction(request, context);\n }\n \n export function createGetCustomerLoyaltyCardsInput(queryResultSettings: IQueryResultSettings, accountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerLoyaltyCards', true, LoyaltyCardClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {accountNumber: accountNumber });\n }\n\n export function getCustomerLoyaltyCardsAsync(context: IContext, accountNumber?: string | null):AsyncResult {\n const request = createGetCustomerLoyaltyCardsInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardTransactionsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyCardTransactions', true, LoyaltyCardTransactionClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCardTransaction'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyCardTransactionsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyCardTransactionsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointsExpiringSoonInput(queryResultSettings: IQueryResultSettings, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointsExpiringSoon', true, LoyaltyRewardPointActivityClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId, daysToExpiry: daysToExpiry });\n }\n\n export function getLoyaltyRewardPointsExpiringSoonAsync(context: IContext, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number):AsyncResult {\n const request = createGetLoyaltyRewardPointsExpiringSoonInput(context.queryResultSettings, cardNumber, rewardPointId, daysToExpiry);\n return executeAction(request, context);\n }\n \n export function createSearchJournalTransactionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: TransactionSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalTransactions', true, TransactionClass, 'true', { bypassCache: 'none', returnEntity: 'Transaction'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalTransactionsAsync(context: IContext, searchCriteria?: TransactionSearchCriteria | null):AsyncResult {\n const request = createSearchJournalTransactionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInput(giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCard', true, GiftCardClass, 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId, tenderTypeId: tenderTypeId, pin: pin, expirationMonth: expirationMonth, expirationYear: expirationYear });\n }\n\n export function getGiftCardAsync(context: IContext, giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null):AsyncResult {\n const request = createGetGiftCardInput(giftCardId, tenderTypeId, pin, expirationMonth, expirationYear);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInquiryInput(giftCardId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCardInquiry', true, GiftCardClass, 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId });\n }\n\n export function getGiftCardInquiryAsync(context: IContext, giftCardId?: string | null):AsyncResult {\n const request = createGetGiftCardInquiryInput(giftCardId);\n return executeAction(request, context);\n }\n \n export function createGetNonSalesTransactionsInput(queryResultSettings: IQueryResultSettings, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNonSalesTransactions', true, NonSalesTransactionClass, 'true', { bypassCache: 'none', returnEntity: 'NonSalesTransaction'}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId, nonSalesTenderTypeValue: nonSalesTenderTypeValue });\n }\n\n export function getNonSalesTransactionsAsync(context: IContext, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number):AsyncResult {\n const request = createGetNonSalesTransactionsInput(context.queryResultSettings, shiftId, shiftTerminalId, nonSalesTenderTypeValue);\n return executeAction(request, context);\n }\n \n export function createCreateNonSalesTransactionInput(nonSalesTransaction?: NonSalesTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateNonSalesTransaction', true, NonSalesTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'NonSalesTransaction'}, {nonSalesTransaction: nonSalesTransaction });\n }\n\n export function createNonSalesTransactionAsync(context: IContext, nonSalesTransaction?: NonSalesTransaction | null):AsyncResult {\n const request = createCreateNonSalesTransactionInput(nonSalesTransaction);\n return executeAction(request, context);\n }\n \n export function createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction?: DropAndDeclareTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateDropAndDeclareTransaction', true, DropAndDeclareTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'DropAndDeclareTransaction'}, {dropAndDeclareTransaction: dropAndDeclareTransaction });\n }\n\n export function createDropAndDeclareTransactionAsync(context: IContext, dropAndDeclareTransaction?: DropAndDeclareTransaction | null):AsyncResult {\n const request = createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction);\n return executeAction(request, context);\n }\n \n export function createGetTaxOverridesInput(queryResultSettings: IQueryResultSettings, overrideBy?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTaxOverrides', true, TaxOverrideClass, 'true', { bypassCache: 'none', returnEntity: 'TaxOverride'}, {overrideBy: overrideBy });\n }\n\n export function getTaxOverridesAsync(context: IContext, overrideBy?: string | null):AsyncResult {\n const request = createGetTaxOverridesInput(context.queryResultSettings, overrideBy);\n return executeAction(request, context);\n }\n \n export function createGetCustomerBalanceInput(accountNumber?: string | null, invoiceAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCustomerBalance', true, CustomerBalancesClass, 'false', { bypassCache: 'none', returnEntity: 'CustomerBalances'}, {accountNumber: accountNumber, invoiceAccountNumber: invoiceAccountNumber });\n }\n\n export function getCustomerBalanceAsync(context: IContext, accountNumber?: string | null, invoiceAccountNumber?: string | null):AsyncResult {\n const request = createGetCustomerBalanceInput(accountNumber, invoiceAccountNumber);\n return executeAction(request, context);\n }\n \n export function createInitiateLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('InitiateLinkToExistingCustomer', true, LinkToExistingCustomerResultClass, 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken, emailTemplateId: emailTemplateId, emailProperties: emailProperties });\n }\n\n export function initiateLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null):AsyncResult {\n const request = createInitiateLinkToExistingCustomerInput(email, activationToken, emailTemplateId, emailProperties);\n return executeAction(request, context);\n }\n \n export function createFinalizeLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('FinalizeLinkToExistingCustomer', true, LinkToExistingCustomerResultClass, 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken });\n }\n\n export function finalizeLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null):AsyncResult {\n const request = createFinalizeLinkToExistingCustomerInput(email, activationToken);\n return executeAction(request, context);\n }\n \n export function createUnlinkFromExistingCustomerInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UnlinkFromExistingCustomer', true, '', '', { bypassCache: 'get', returnEntity: ''}, { });\n }\n\n export function unlinkFromExistingCustomerAsync(context: IContext):AsyncResult {\n const request = createUnlinkFromExistingCustomerInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflineSyncStatusInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOfflineSyncStatus', true, OfflineSyncStatsLineClass, 'true', { bypassCache: 'none', returnEntity: 'OfflineSyncStatsLine'}, { });\n }\n\n export function getOfflineSyncStatusAsync(context: IContext):AsyncResult {\n const request = createGetOfflineSyncStatusInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCount', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOfflinePendingTransactionCountAsync(context: IContext):AsyncResult {\n const request = createGetOfflinePendingTransactionCountInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountByShiftInput(shiftId: number, shiftTerminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCountByShift', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId });\n }\n\n export function getOfflinePendingTransactionCountByShiftAsync(context: IContext, shiftId: number, shiftTerminalId?: string | null):AsyncResult {\n const request = createGetOfflinePendingTransactionCountByShiftInput(shiftId, shiftTerminalId);\n return executeAction(request, context);\n }\n \n export function createUpdateDownloadSessionInput(downloadSession?: DownloadSession | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateDownloadSession', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {downloadSession: downloadSession });\n }\n\n export function updateDownloadSessionAsync(context: IContext, downloadSession?: DownloadSession | null):AsyncResult {\n const request = createUpdateDownloadSessionInput(downloadSession);\n return executeAction(request, context);\n }\n \n export function createUpdateApplicationVersionInput(appVersion?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateApplicationVersion', true, '', '', { bypassCache: 'get', returnEntity: ''}, {appVersion: appVersion });\n }\n\n export function updateApplicationVersionAsync(context: IContext, appVersion?: string | null):AsyncResult {\n const request = createUpdateApplicationVersionInput(appVersion);\n return executeAction(request, context);\n }\n \n export function createGetStorageAccessTokenForUploadInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetStorageAccessTokenForUpload', true, StorageAccessTokenClass, 'false', { bypassCache: 'none', returnEntity: 'StorageAccessToken'}, { });\n }\n\n export function getStorageAccessTokenForUploadAsync(context: IContext):AsyncResult {\n const request = createGetStorageAccessTokenForUploadInput();\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibrariesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibraries', true, FrameworkClass, 'true', { bypassCache: 'none', returnEntity: 'Framework'}, { });\n }\n\n export function getBusinessProcessModelLibrariesAsync(context: IContext):AsyncResult {\n const request = createGetBusinessProcessModelLibrariesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId: number, hierarchyDepth: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibrary', true, FrameworkClass, 'false', { bypassCache: 'none', returnEntity: 'Framework'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, hierarchyDepth: hierarchyDepth });\n }\n\n export function getBusinessProcessModelLibraryAsync(context: IContext, businessProcessModelFrameworkLineId: number, hierarchyDepth: number):AsyncResult {\n const request = createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId, hierarchyDepth);\n return executeAction(request, context);\n }\n \n export function createSearchTaskGuidesByTitleInput(queryResultSettings: IQueryResultSettings, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchTaskGuidesByTitle', true, TaskGuidesSearchResultClass, 'true', { bypassCache: 'none', returnEntity: 'TaskGuidesSearchResult'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, taskGuideSearchText: taskGuideSearchText, queryTypeValue: queryTypeValue });\n }\n\n export function searchTaskGuidesByTitleAsync(context: IContext, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number):AsyncResult {\n const request = createSearchTaskGuidesByTitleInput(context.queryResultSettings, businessProcessModelFrameworkLineId, taskGuideSearchText, queryTypeValue);\n return executeAction(request, context);\n }\n \n export function createGenerateBusinessProcessModelPackageInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateBusinessProcessModelPackage', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateBusinessProcessModelPackageAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateBusinessProcessModelPackageInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createDownloadRecordingInput(businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DownloadRecording', true, RecordingClass, 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function downloadRecordingAsync(context: IContext, businessProcessModelLineId: number):AsyncResult {\n const request = createDownloadRecordingInput(businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createLoadRecordingFromFileInput(recordingUrl?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('LoadRecordingFromFile', true, RecordingClass, 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {recordingUrl: recordingUrl });\n }\n\n export function loadRecordingFromFileAsync(context: IContext, recordingUrl?: string | null):AsyncResult {\n const request = createLoadRecordingFromFileInput(recordingUrl);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingFileInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingFile', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingFileAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingFileInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateTrainingDocumentInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateTrainingDocument', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateTrainingDocumentAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateTrainingDocumentInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingBundleInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingBundle', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingBundleAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingBundleInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createUploadRecordingInput(taskRecording: Recording | null, businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UploadRecording', true, '', '', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording, businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function uploadRecordingAsync(context: IContext, taskRecording: Recording | null, businessProcessModelLineId: number):AsyncResult {\n const request = createUploadRecordingInput(taskRecording, businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createGetAttributeDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeDefinitions', true, AttributeDefinitionClass, 'true', { bypassCache: 'none', returnEntity: 'AttributeDefinition'}, {attributeDefinitionCriteria: attributeDefinitionCriteria });\n }\n\n export function getAttributeDefinitionsAsync(context: IContext, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeDefinitionsInput(context.queryResultSettings, attributeDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAttributeGroupDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeGroupDefinitions', true, AttributeGroupDefinitionClass, 'true', { bypassCache: 'none', returnEntity: 'AttributeGroupDefinition'}, {attributeGroupDefinitionCriteria: attributeGroupDefinitionCriteria });\n }\n\n export function getAttributeGroupDefinitionsAsync(context: IContext, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeGroupDefinitionsInput(context.queryResultSettings, attributeGroupDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalTransactionInput(fiscalTransaction?: FiscalTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalTransaction', true, '', '', { bypassCache: 'get', returnEntity: ''}, {fiscalTransaction: fiscalTransaction });\n }\n\n export function saveFiscalTransactionAsync(context: IContext, fiscalTransaction?: FiscalTransaction | null):AsyncResult {\n const request = createSaveFiscalTransactionInput(fiscalTransaction);\n return executeAction(request, context);\n }\n \n export function createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint?: SalesOrder | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidatePrintReceiptCopyAllowed', true, '', '', { bypassCache: 'get', returnEntity: ''}, {salesOrderToPrint: salesOrderToPrint });\n }\n\n export function validatePrintReceiptCopyAllowedAsync(context: IContext, salesOrderToPrint?: SalesOrder | null):AsyncResult {\n const request = createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint);\n return executeAction(request, context);\n }\n \n export function createRegisterAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAuditEvent', true, '', '', { bypassCache: 'get', returnEntity: ''}, {auditEvent: auditEvent });\n }\n\n export function registerAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createRegisterAndGetAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAndGetAuditEvent', true, AuditEventClass, 'false', { bypassCache: 'get', returnEntity: 'AuditEvent'}, {auditEvent: auditEvent });\n }\n\n export function registerAndGetAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAndGetAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createGetInventoryAvailableToPromiseInput(queryResultSettings: IQueryResultSettings, productId: number, itemId?: string | null, inventLocationId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInventoryAvailableToPromise', true, InventoryAvailableToPromiseClass, 'true', { bypassCache: 'none', returnEntity: 'InventoryAvailableToPromise'}, {productId: productId, itemId: itemId, inventLocationId: inventLocationId });\n }\n\n export function getInventoryAvailableToPromiseAsync(context: IContext, productId: number, itemId?: string | null, inventLocationId?: string | null):AsyncResult {\n const request = createGetInventoryAvailableToPromiseInput(context.queryResultSettings, productId, itemId, inventLocationId);\n return executeAction(request, context);\n }\n \n export function createGetSalesOrdersWithNoFiscalTransactionsInput(queryResultSettings: IQueryResultSettings, storeNumber?: string | null, terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesOrdersWithNoFiscalTransactions', true, SalesOrderClass, 'true', { bypassCache: 'none', returnEntity: 'SalesOrder'}, {storeNumber: storeNumber, terminalId: terminalId });\n }\n\n export function getSalesOrdersWithNoFiscalTransactionsAsync(context: IContext, storeNumber?: string | null, terminalId?: string | null):AsyncResult {\n const request = createGetSalesOrdersWithNoFiscalTransactionsInput(context.queryResultSettings, storeNumber, terminalId);\n return executeAction(request, context);\n }\n \n export function createGetNotificationsInput(queryResultSettings: IQueryResultSettings, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNotifications', true, NotificationItemClass, 'true', { bypassCache: 'none', returnEntity: 'NotificationItem'}, {subscribedOperations: subscribedOperations, extensionProperties: extensionProperties });\n }\n\n export function getNotificationsAsync(context: IContext, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetNotificationsInput(context.queryResultSettings, subscribedOperations, extensionProperties);\n return executeAction(request, context);\n }\n \n export function createAcknowledgeNotificationsInput(lastPullDateTime: Date): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('AcknowledgeNotifications', true, '', '', { bypassCache: 'get', returnEntity: ''}, {lastPullDateTime: lastPullDateTime });\n }\n\n export function acknowledgeNotificationsAsync(context: IContext, lastPullDateTime: Date):AsyncResult {\n const request = createAcknowledgeNotificationsInput(lastPullDateTime);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationNonFiscalDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationNonFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceSetupDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceSetupDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceReadDataDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceReadDataDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ProcessFiscalIntegrationFiscalServiceReadDataResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, documentToProcess: documentToProcess, connectorType: connectorType });\n }\n\n export function processFiscalIntegrationFiscalServiceReadDataResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null):AsyncResult {\n const request = createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId, functionalityProfileGroupId, documentToProcess, connectorType);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalIntegrationRegistrationResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function saveFiscalIntegrationRegistrationResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null):AsyncResult {\n const request = createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId, functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationRegistrationProcessInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationRegistrationProcess', true, FiscalIntegrationRegistrationProcessClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationRegistrationProcess'}, { });\n }\n\n export function getFiscalIntegrationRegistrationProcessAsync(context: IContext):AsyncResult {\n const request = createGetFiscalIntegrationRegistrationProcessInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelSupportedFiscalIntegrationEventsByGroup', true, FiscalIntegrationSupportedEventsClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSupportedEvents'}, {functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getChannelSupportedFiscalIntegrationEventsByGroupAsync(context: IContext, functionalityProfileGroupId?: string | null):AsyncResult {\n const request = createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfiles', true, FiscalIntegrationTechnicalProfileClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesInput(context.queryResultSettings, hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIds', true, FiscalIntegrationTechnicalProfileClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(context.queryResultSettings, hardwareProfileId, functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function 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 // \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 * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './async-result';\nexport * from './Interfaces';\nexport * from './exceptions';\nexport * from './extensions';\nexport * from './externals';\nexport * from './DataServiceQuery';\nexport * from './DataServiceRequest';\nexport * from './data-types';\nexport * from './logging';\nexport * from './retail-action';\nexport * from './Entities/CommerceTypes.g';\n\nexport * as ApplicableOperationsDataActions from './DataActions/ApplicableOperationsDataActions.g';\nexport * as BusinessPartnersDataActions from './DataActions/BusinessPartnersDataActions.g';\nexport * as BusinessPartnerUsersDataActions from './DataActions/BusinessPartnerUsersDataActions.g';\nexport * as CartsDataActions from './DataActions/CartsDataActions.g';\nexport * as CatalogsDataActions from './DataActions/CatalogsDataActions.g';\nexport * as CategoriesDataActions from './DataActions/CategoriesDataActions.g';\nexport * as ChecklistsDataActions from './DataActions/ChecklistsDataActions.g';\nexport * as CommerceListsDataActions from './DataActions/CommerceListsDataActions.g';\nexport * as CustomersDataActions from './DataActions/CustomersDataActions.g';\nexport * as EmployeesDataActions from './DataActions/EmployeesDataActions.g';\nexport * as InventoryInboundOutboundDocumentsDataActions from './DataActions/InventoryInboundOutboundDocumentsDataActions.g';\nexport * as OrgUnitsDataActions from './DataActions/OrgUnitsDataActions.g';\nexport * as PickingListsDataActions from './DataActions/PickingListsDataActions.g';\nexport * as ProductListsDataActions from './DataActions/ProductListsDataActions.g';\nexport * as ProductsDataActions from './DataActions/ProductsDataActions.g';\nexport * as PurchaseOrdersDataActions from './DataActions/PurchaseOrdersDataActions.g';\nexport * as RecommendationsDataActions from './DataActions/RecommendationsDataActions.g';\nexport * as SalesOrdersDataActions from './DataActions/SalesOrdersDataActions.g';\nexport * as ScanResultsDataActions from './DataActions/ScanResultsDataActions.g';\nexport * as ShiftsDataActions from './DataActions/ShiftsDataActions.g';\nexport * as StockCountJournalsDataActions from './DataActions/StockCountJournalsDataActions.g';\nexport * as StoreOperationsDataActions from './DataActions/StoreOperationsDataActions.g';\nexport * as SuspendedCartsDataActions from './DataActions/SuspendedCartsDataActions.g';\nexport * as TransferOrdersDataActions from './DataActions/TransferOrdersDataActions.g';\nexport * as WarehousesDataActions from './DataActions/WarehousesDataActions.g';","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Checklist, ChecklistSearchCriteria, TaskSearchCriteria, ChecklistTask, ChecklistTaskTeamsIntegrationConfiguration } from '../Entities/CommerceTypes.g';\n import { ChecklistClass, ChecklistTaskClass, ChecklistTaskTeamsIntegrationConfigurationClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function checklistsQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Checklists\", \"Checklist\", ChecklistClass, key);\n }\n \n export function createCreateInput(entity: Checklist): IDataServiceRequest {\n return checklistsQuery().create(entity);\n }\n\n export function createChecklistAsync(context: IContext, entity: Checklist): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Checklist): IDataServiceRequest {\n return checklistsQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Checklist): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Checklist): IDataServiceRequest {\n return checklistsQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Checklist): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return checklistsQuery(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 checklistsQuery().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 createSearchChecklistsInput(queryResultSettings: IQueryResultSettings, checklistSearchCriteria?: ChecklistSearchCriteria | null): IDataServiceRequest { \n const query = checklistsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchChecklists', true, ChecklistClass, 'true', {bypassCache: 'none', returnEntity: 'Checklist'}, {checklistSearchCriteria: checklistSearchCriteria });\n } \n \n export function searchChecklistsAsync(context: IContext, checklistSearchCriteria?: ChecklistSearchCriteria | null):AsyncResult {\n const request = createSearchChecklistsInput(context.queryResultSettings, checklistSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchTasksInput(queryResultSettings: IQueryResultSettings, taskSearchCriteria?: TaskSearchCriteria | null, userGraphToken?: string | null): IDataServiceRequest { \n const query = checklistsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchTasks', true, ChecklistTaskClass, 'true', {bypassCache: 'none', returnEntity: 'ChecklistTask'}, {taskSearchCriteria: taskSearchCriteria, userGraphToken: userGraphToken });\n } \n \n export function searchTasksAsync(context: IContext, taskSearchCriteria?: TaskSearchCriteria | null, userGraphToken?: string | null):AsyncResult {\n const request = createSearchTasksInput(context.queryResultSettings, taskSearchCriteria, userGraphToken);\n return executeAction(request, context);\n } \n \n export function createCreateTaskInput(createTask?: ChecklistTask | null, userGraphToken?: string | null, channelId?: number | null): IDataServiceRequest { \n const query = checklistsQuery();\n return query.createDataServiceRequestForOperation('CreateTask', true, ChecklistTaskClass, 'false', {bypassCache: 'get', returnEntity: 'ChecklistTask'}, {createTask: createTask, userGraphToken: userGraphToken, channelId: channelId });\n } \n \n export function createTaskAsync(context: IContext, createTask?: ChecklistTask | null, userGraphToken?: string | null, channelId?: number | null):AsyncResult {\n const request = createCreateTaskInput(createTask, userGraphToken, channelId);\n return executeAction(request, context);\n } \n \n export function createUpdateChecklistsInput(queryResultSettings: IQueryResultSettings, updateChecklists?: Checklist[] | null): IDataServiceRequest { \n const query = checklistsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('UpdateChecklists', true, ChecklistClass, 'true', {bypassCache: 'get', returnEntity: 'Checklist'}, {updateChecklists: updateChecklists });\n } \n \n export function updateChecklistsAsync(context: IContext, updateChecklists?: Checklist[] | null):AsyncResult {\n const request = createUpdateChecklistsInput(context.queryResultSettings, updateChecklists);\n return executeAction(request, context);\n } \n \n export function createUpdateTasksInput(queryResultSettings: IQueryResultSettings, updateTasks?: ChecklistTask[] | null, userGraphToken?: string | null, channelId?: number | null): IDataServiceRequest { \n const query = checklistsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('UpdateTasks', true, ChecklistTaskClass, 'true', {bypassCache: 'get', returnEntity: 'ChecklistTask'}, {updateTasks: updateTasks, userGraphToken: userGraphToken, channelId: channelId });\n } \n \n export function updateTasksAsync(context: IContext, updateTasks?: ChecklistTask[] | null, userGraphToken?: string | null, channelId?: number | null):AsyncResult {\n const request = createUpdateTasksInput(context.queryResultSettings, updateTasks, userGraphToken, channelId);\n return executeAction(request, context);\n } \n \n export function createGetTaskByIdInput(taskId?: string | null, userGraphToken?: string | null): IDataServiceRequest { \n const query = checklistsQuery();\n return query.createDataServiceRequestForOperation('GetTaskById', true, ChecklistTaskClass, 'false', {bypassCache: 'none', returnEntity: 'ChecklistTask'}, {taskId: taskId, userGraphToken: userGraphToken });\n } \n \n export function getTaskByIdAsync(context: IContext, taskId?: string | null, userGraphToken?: string | null):AsyncResult {\n const request = createGetTaskByIdInput(taskId, userGraphToken);\n return executeAction(request, context);\n } \n \n export function createGetTeamsIntegrationConfigurationInput(): IDataServiceRequest { \n const query = checklistsQuery();\n return query.createDataServiceRequestForOperation('GetTeamsIntegrationConfiguration', false, ChecklistTaskTeamsIntegrationConfigurationClass, 'false', {bypassCache: 'none', returnEntity: 'ChecklistTaskTeamsIntegrationConfiguration'}, { });\n } \n \n export function getTeamsIntegrationConfigurationAsync(context: IContext, ):AsyncResult {\n const request = createGetTeamsIntegrationConfigurationInput();\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 { 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\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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\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 // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Employee, EmployeeActivitySearchCriteria, EmployeeActivity, OrgUnit, ClientBookCustomerSearchCriteria, ClientBookCustomer, ClientBookRefiner, ClientBookChanges } from '../Entities/CommerceTypes.g';\n import { EmployeeClass, EmployeeActivityClass, OrgUnitClass, ClientBookCustomerClass, ClientBookRefinerClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function employeesQuery(staffId?: string): DataServiceQuery {\n var key = (staffId) ? { StaffId: staffId } : null;\n return new DataServiceQuery(\"Employees\", \"Employee\", EmployeeClass, key);\n }\n \n export function createCreateInput(entity: Employee): IDataServiceRequest {\n return employeesQuery().create(entity);\n }\n\n export function createEmployeeAsync(context: IContext, entity: Employee): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Employee): IDataServiceRequest {\n return employeesQuery(entity.StaffId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Employee): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Employee): IDataServiceRequest {\n return employeesQuery(entity.StaffId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Employee): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(staffId: string): IDataServiceRequest {\n return employeesQuery(staffId).read();\n }\n\n export function readAsync(context: IContext, staffId: string): AsyncResult {\n const request = createReadAsync(staffId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return employeesQuery().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 createGetActivitiesInput(queryResultSettings: IQueryResultSettings, employeeActivitySearchCriteria?: EmployeeActivitySearchCriteria | null): IDataServiceRequest { \n const query = employeesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetActivities', true, EmployeeActivityClass, 'true', {bypassCache: 'none', returnEntity: 'EmployeeActivity'}, {employeeActivitySearchCriteria: employeeActivitySearchCriteria });\n } \n \n export function getActivitiesAsync(context: IContext, employeeActivitySearchCriteria?: EmployeeActivitySearchCriteria | null):AsyncResult {\n const request = createGetActivitiesInput(context.queryResultSettings, employeeActivitySearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetManagerActivityViewInput(queryResultSettings: IQueryResultSettings, employeeActivitySearchCriteria?: EmployeeActivitySearchCriteria | null): IDataServiceRequest { \n const query = employeesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetManagerActivityView', true, EmployeeActivityClass, 'true', {bypassCache: 'none', returnEntity: 'EmployeeActivity'}, {employeeActivitySearchCriteria: employeeActivitySearchCriteria });\n } \n \n export function getManagerActivityViewAsync(context: IContext, employeeActivitySearchCriteria?: EmployeeActivitySearchCriteria | null):AsyncResult {\n const request = createGetManagerActivityViewInput(context.queryResultSettings, employeeActivitySearchCriteria);\n return executeAction(request, context);\n } \n \n export function createRegisterActivityInput(staffId: string, employeeActivityType: number): IDataServiceRequest { \n const query = employeesQuery(staffId);\n return query.createDataServiceRequestForOperation('RegisterActivity', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {employeeActivityType: employeeActivityType });\n } \n \n export function registerActivityAsync(context: IContext, staffId: string, employeeActivityType: number):AsyncResult {\n const request = createRegisterActivityInput(staffId, employeeActivityType);\n return executeAction(request, context);\n } \n \n export function createGetAccessibleOrgUnitsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = employeesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAccessibleOrgUnits', true, OrgUnitClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnit'}, { });\n } \n \n export function getAccessibleOrgUnitsAsync(context: IContext, ):AsyncResult {\n const request = createGetAccessibleOrgUnitsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetLatestActivityInput(): IDataServiceRequest { \n const query = employeesQuery();\n return query.createDataServiceRequestForOperation('GetLatestActivity', true, EmployeeActivityClass, 'false', {bypassCache: 'none', returnEntity: 'EmployeeActivity'}, { });\n } \n \n export function getLatestActivityAsync(context: IContext, ):AsyncResult {\n const request = createGetLatestActivityInput();\n return executeAction(request, context);\n } \n \n export function createSearchClientBookCustomersInput(queryResultSettings: IQueryResultSettings, clientBookCustomerSearchCriteria?: ClientBookCustomerSearchCriteria | null): IDataServiceRequest { \n const query = employeesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchClientBookCustomers', true, ClientBookCustomerClass, 'true', {bypassCache: 'none', returnEntity: 'ClientBookCustomer'}, {clientBookCustomerSearchCriteria: clientBookCustomerSearchCriteria });\n } \n \n export function searchClientBookCustomersAsync(context: IContext, clientBookCustomerSearchCriteria?: ClientBookCustomerSearchCriteria | null):AsyncResult {\n const request = createSearchClientBookCustomersInput(context.queryResultSettings, clientBookCustomerSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetClientBookSearchRefinersInput(queryResultSettings: IQueryResultSettings, refinerSourceTypes: number[], searchCriteria?: ClientBookCustomerSearchCriteria | null): IDataServiceRequest { \n const query = employeesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetClientBookSearchRefiners', true, ClientBookRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'ClientBookRefiner'}, {refinerSourceTypes: refinerSourceTypes, searchCriteria: searchCriteria });\n } \n \n export function getClientBookSearchRefinersAsync(context: IContext, refinerSourceTypes: number[], searchCriteria?: ClientBookCustomerSearchCriteria | null):AsyncResult {\n const request = createGetClientBookSearchRefinersInput(context.queryResultSettings, refinerSourceTypes, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createUpdateClientBookInput(clientBookChanges?: ClientBookChanges | null): IDataServiceRequest { \n const query = employeesQuery();\n return query.createDataServiceRequestForOperation('UpdateClientBook', true, '', '', {bypassCache: 'get', returnEntity: ''}, {clientBookChanges: clientBookChanges });\n } \n \n export function updateClientBookAsync(context: IContext, clientBookChanges?: ClientBookChanges | null):AsyncResult {\n const request = createUpdateClientBookInput(clientBookChanges);\n return executeAction(request, context);\n } \n \n export function createGetCurrentEmployeeInput(): IDataServiceRequest { \n const query = employeesQuery();\n return query.createDataServiceRequestForOperation('GetCurrentEmployee', false, EmployeeClass, 'false', {bypassCache: 'none', returnEntity: 'Employee'}, { });\n } \n \n export function getCurrentEmployeeAsync(context: IContext, ):AsyncResult {\n const request = createGetCurrentEmployeeInput();\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\nexport * from './IDataServiceRequest';\nexport * from './IDataServiceQueryInternal';\nexport * from './ICallerContext';\nexport * from './ICache';\nexport * from './IODataMetadata';\nexport * from './IQueryResultSettings';\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 { ProductCatalog } from '../Entities/CommerceTypes.g';\n import { ProductCatalogClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function catalogsQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Catalogs\", \"ProductCatalog\", ProductCatalogClass, key);\n }\n \n export function createCreateInput(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery().create(entity);\n }\n\n export function createProductCatalogAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return catalogsQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return catalogsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCatalogsInput(queryResultSettings: IQueryResultSettings, channelId: number, activeOnly: boolean): IDataServiceRequest { \n const query = catalogsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogs', true, ProductCatalogClass, 'true', {bypassCache: 'none', returnEntity: 'ProductCatalog'}, {channelId: channelId, activeOnly: activeOnly });\n } \n \n export function getCatalogsAsync(context: IContext, channelId: number, activeOnly: boolean):AsyncResult {\n const request = createGetCatalogsInput(context.queryResultSettings, channelId, activeOnly);\n return executeAction(request, context);\n } \n \n ","/*!\n * 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 * from './ProxyError';\nexport * from './ErrorHelper';\nexport * from './ErrorParser';\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 * 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\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 // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { SalesOrderContextualOperationsMap, OrderSearchCriteria, FulfillmentLineSearchCriteria, FulfillmentLineContextualOperationsMap } from '../Entities/CommerceTypes.g';\n import { SalesOrderContextualOperationsMapClass, FulfillmentLineContextualOperationsMapClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function applicableOperationsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"ApplicableOperations\", \"SalesOrderContextualOperationsMap\", SalesOrderContextualOperationsMapClass, key);\n }\n \n export function createCreateInput(entity: SalesOrderContextualOperationsMap): IDataServiceRequest {\n return applicableOperationsQuery().create(entity);\n }\n\n export function createSalesOrderContextualOperationsMapAsync(context: IContext, entity: SalesOrderContextualOperationsMap): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: SalesOrderContextualOperationsMap): IDataServiceRequest {\n return applicableOperationsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: SalesOrderContextualOperationsMap): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: SalesOrderContextualOperationsMap): IDataServiceRequest {\n return applicableOperationsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: SalesOrderContextualOperationsMap): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return applicableOperationsQuery(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 applicableOperationsQuery().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 createGetOrdersInput(queryResultSettings: IQueryResultSettings, orderSearchCriteria?: OrderSearchCriteria | null): IDataServiceRequest { \n const query = applicableOperationsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrders', true, SalesOrderContextualOperationsMapClass, 'true', {bypassCache: 'none', returnEntity: 'SalesOrderContextualOperationsMap'}, {orderSearchCriteria: orderSearchCriteria });\n } \n \n export function getOrdersAsync(context: IContext, orderSearchCriteria?: OrderSearchCriteria | null):AsyncResult {\n const request = createGetOrdersInput(context.queryResultSettings, orderSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentLinesInput(queryResultSettings: IQueryResultSettings, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null): IDataServiceRequest { \n const query = applicableOperationsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentLines', true, FulfillmentLineContextualOperationsMapClass, 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLineContextualOperationsMap'}, {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 ","\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 { TransferOrder, TransferOrderLine, Comment, TransferOrderJournal, ReceiptRetrievalCriteria, Receipt } from '../Entities/CommerceTypes.g';\n import { TransferOrderClass, TransferOrderLineClass, CommentClass, TransferOrderJournalClass, ReceiptClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function transferOrdersQuery(orderId?: string): DataServiceQuery {\n var key = (orderId) ? { OrderId: orderId } : null;\n return new DataServiceQuery(\"TransferOrders\", \"TransferOrder\", TransferOrderClass, key);\n }\n \n export function createCreateInput(entity: TransferOrder): IDataServiceRequest {\n return transferOrdersQuery().create(entity);\n }\n\n export function createTransferOrderAsync(context: IContext, entity: TransferOrder): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: TransferOrder): IDataServiceRequest {\n return transferOrdersQuery(entity.OrderId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: TransferOrder): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: TransferOrder): IDataServiceRequest {\n return transferOrdersQuery(entity.OrderId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: TransferOrder): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(orderId: string): IDataServiceRequest {\n return transferOrdersQuery(orderId).read();\n }\n\n export function readAsync(context: IContext, orderId: string): AsyncResult {\n const request = createReadAsync(orderId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return transferOrdersQuery().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 createCommitInput(orderId: string, skipNotValidLines?: boolean | null): IDataServiceRequest { \n const query = transferOrdersQuery(orderId);\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, {skipNotValidLines: skipNotValidLines });\n } \n \n export function commitAsync(context: IContext, orderId: string, skipNotValidLines?: boolean | null):AsyncResult {\n const request = createCommitInput(orderId, skipNotValidLines);\n return executeAction(request, context);\n } \n \n export function createGetTransferOrderLinesInput(queryResultSettings: IQueryResultSettings, orderId: string, ): IDataServiceRequest { \n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTransferOrderLines', true, TransferOrderLineClass, 'true', {bypassCache: 'none', returnEntity: 'TransferOrderLine'}, { });\n } \n \n export function getTransferOrderLinesAsync(context: IContext, orderId: string):AsyncResult {\n const request = createGetTransferOrderLinesInput(context.queryResultSettings, orderId);\n return executeAction(request, context);\n } \n \n export function createCreateTransferOrderLinesInput(queryResultSettings: IQueryResultSettings, orderId: string, transferOrderLines?: TransferOrderLine[] | null): IDataServiceRequest { \n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('CreateTransferOrderLines', true, TransferOrderLineClass, 'true', {bypassCache: 'get', returnEntity: 'TransferOrderLine'}, {transferOrderLines: transferOrderLines });\n } \n \n export function createTransferOrderLinesAsync(context: IContext, orderId: string, transferOrderLines?: TransferOrderLine[] | null):AsyncResult {\n const request = createCreateTransferOrderLinesInput(context.queryResultSettings, orderId, transferOrderLines);\n return executeAction(request, context);\n } \n \n export function createUpdateTransferOrderLinesInput(queryResultSettings: IQueryResultSettings, orderId: string, transferOrderLines?: TransferOrderLine[] | null): IDataServiceRequest { \n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('UpdateTransferOrderLines', true, TransferOrderLineClass, 'true', {bypassCache: 'get', returnEntity: 'TransferOrderLine'}, {transferOrderLines: transferOrderLines });\n } \n \n export function updateTransferOrderLinesAsync(context: IContext, orderId: string, transferOrderLines?: TransferOrderLine[] | null):AsyncResult {\n const request = createUpdateTransferOrderLinesInput(context.queryResultSettings, orderId, transferOrderLines);\n return executeAction(request, context);\n } \n \n export function createGetTransferOrderCommentsInput(queryResultSettings: IQueryResultSettings, orderId: string, ): IDataServiceRequest { \n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTransferOrderComments', true, CommentClass, 'true', {bypassCache: 'none', returnEntity: 'Comment'}, { });\n } \n \n export function getTransferOrderCommentsAsync(context: IContext, orderId: string):AsyncResult {\n const request = createGetTransferOrderCommentsInput(context.queryResultSettings, orderId);\n return executeAction(request, context);\n } \n \n export function createAddTransferOrderCommentInput(orderId: string, authorStaffId?: string | null, commentText?: string | null): IDataServiceRequest { \n const query = transferOrdersQuery(orderId);\n return query.createDataServiceRequestForOperation('AddTransferOrderComment', true, CommentClass, 'false', {bypassCache: 'get', returnEntity: 'Comment'}, {AuthorStaffId: authorStaffId, CommentText: commentText });\n } \n \n export function addTransferOrderCommentAsync(context: IContext, orderId: string, authorStaffId?: string | null, commentText?: string | null):AsyncResult {\n const request = createAddTransferOrderCommentInput(orderId, authorStaffId, commentText);\n return executeAction(request, context);\n } \n \n export function createDeleteTransferOrderLinesInput(queryResultSettings: IQueryResultSettings, orderId: string, transferOrderLines?: TransferOrderLine[] | null): IDataServiceRequest { \n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('DeleteTransferOrderLines', true, TransferOrderLineClass, 'true', {bypassCache: 'get', returnEntity: 'TransferOrderLine'}, {transferOrderLines: transferOrderLines });\n } \n \n export function deleteTransferOrderLinesAsync(context: IContext, orderId: string, transferOrderLines?: TransferOrderLine[] | null):AsyncResult {\n const request = createDeleteTransferOrderLinesInput(context.queryResultSettings, orderId, transferOrderLines);\n return executeAction(request, context);\n } \n \n export function createGetTransferOrderJournalsInput(queryResultSettings: IQueryResultSettings, orderId: string, ): IDataServiceRequest { \n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTransferOrderJournals', true, TransferOrderJournalClass, 'true', {bypassCache: 'none', returnEntity: 'TransferOrderJournal'}, { });\n } \n \n export function getTransferOrderJournalsAsync(context: IContext, orderId: string):AsyncResult {\n const request = createGetTransferOrderJournalsInput(context.queryResultSettings, orderId);\n return executeAction(request, context);\n } \n \n export function createGetTransferPackingSlipInput(queryResultSettings: IQueryResultSettings, orderId: string, voucherId?: string | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTransferPackingSlip', true, ReceiptClass, 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {voucherId: voucherId, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getTransferPackingSlipAsync(context: IContext, orderId: string, voucherId?: string | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetTransferPackingSlipInput(context.queryResultSettings, orderId, voucherId, receiptRetrievalCriteria);\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 * 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 \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 TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n WarehouseId?: string;\n IsCreatedOffline?: boolean;\n CartStatusValue?: number;\n ReceiptTransactionTypeValue?: number;\n CommissionSalesGroup?: string;\n Version?: number;\n TotalItems?: number;\n HasTaxCalculationTriggered?: boolean;\n MerchantProperties?: PaymentMerchantInformation[];\n HasChargeCalculationTriggered?: boolean;\n FiscalTransactions?: FiscalTransaction[];\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Customer entity interface.\n */\n export interface Customer {\n AccountNumber: string;\n RecordId?: number;\n CreatedDateTime?: Date;\n ChargeGroup?: string;\n PriceGroup?: string;\n IsCustomerTaxInclusive?: boolean;\n Phone?: string;\n PhoneRecordId?: number;\n PhoneExt?: string;\n Cellphone?: string;\n Email?: string;\n EmailRecordId?: number;\n Url?: string;\n UrlRecordId?: number;\n Name?: string;\n PersonNameId?: number;\n FirstName?: string;\n MiddleName?: string;\n LastName?: string;\n DirectoryPartyRecordId?: number;\n PartyNumber?: string;\n CustomerTypeValue?: number;\n Language?: string;\n CustomerGroup?: string;\n CurrencyCode?: string;\n CNPJCPFNumber?: string;\n IdentificationNumber?: string;\n InvoiceAccount?: string;\n MandatoryCreditLimit?: boolean;\n CreditRating?: string;\n CreditLimit?: number;\n Balance?: number;\n Blocked?: boolean;\n BlockedType?: number;\n UseOrderNumberReference?: boolean;\n OrganizationId?: string;\n UsePurchaseRequest?: boolean;\n MultilineDiscountGroup?: string;\n TotalDiscountGroup?: string;\n LineDiscountGroup?: string;\n TaxGroup?: string;\n SalesTaxGroup?: string;\n CommissionSalesGroupId?: string;\n TaxExemptNumber?: string;\n VatNumber?: string;\n TaxOffice?: string;\n NonChargeableAccount?: boolean;\n Tag?: string;\n ReceiptSettings?: number;\n ReceiptEmail?: string;\n OptOutPersonalization?: boolean;\n OptOutWebActivityTracking?: boolean;\n RetailCustomerTableRecordId?: number;\n OfflineImage?: string;\n IsAsyncCustomer?: boolean;\n NewCustomerPartyNumber?: string;\n CustomerAffiliations?: CustomerAffiliation[];\n Addresses?: Address[];\n Attributes?: CustomerAttribute[];\n Images?: MediaLocation[];\n TitleRecordId?: number;\n IsFloorLimitBlocked?: boolean;\n IsB2b?: boolean;\n IsB2bAdmin?: boolean;\n BusinessPartnerId?: string;\n Contacts?: ContactInfo[];\n AllowOnAccountPayment?: boolean;\n 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 TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalDiscount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n TransactionTypeValue?: number;\n TaxCalculationTypeValue?: number;\n SalesInvoiceAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardBalance?: number;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n GiftCardIssueAmount?: number;\n GiftCardIdMasked?: string;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n HasTaxCalculationTriggered?: boolean;\n HasChargeCalculationTriggered?: boolean;\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n CustomerName?: string;\n FiscalTransactions?: FiscalTransaction[];\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Shift entity interface.\n */\n export interface Shift {\n ShiftId: number;\n TerminalId: string;\n StartingAmountTotal: number;\n FloatingEntryAmountTotal: number;\n AddToTenderAmountTotal: number;\n SafeDropTotal: number;\n BankDropTotal: number;\n RemoveTenderAmountTotal: number;\n DeclareTenderAmountTotal: number;\n OverShortTotal: number;\n TenderedTotal: number;\n ChangeTotal: number;\n IncomeAccountTotal: number;\n ExpenseAccountTotal: number;\n CashDrawer?: string;\n StoreRecordId?: number;\n StoreId?: string;\n StaffId?: string;\n CurrentStaffId?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n CloseDateTime?: Date;\n ClosedAtTerminalId?: string;\n ClosedAtShiftId?: number;\n CurrentTerminalId?: string;\n SalesTotal?: number;\n StatusDateTime?: Date;\n ReturnsTotal?: number;\n PaidToAccountTotal?: number;\n TaxTotal?: number;\n ChargeTotal?: number;\n DiscountTotal?: number;\n RoundedAmountTotal?: number;\n CustomerCount?: number;\n SaleTransactionCount?: number;\n NoSaleTransactionCount?: number;\n VoidTransactionCount?: number;\n LogOnTransactionCount?: number;\n SuspendedTransactionCount?: number;\n TransactionCount?: number;\n ReceiptsCount?: number;\n ReturnsCount?: number;\n GoodsSoldQty?: number;\n ServicesSoldQty?: number;\n ReceiptCopiesCount?: number;\n ReceiptCopiesTotal?: number;\n PriceOverrideTotal?: number;\n SuspendedTotal?: number;\n SalesTotalIncludingTax?: number;\n SalesTotalExcludingTax?: number;\n SalesGrandTotal?: number;\n ReturnsGrandTotal?: number;\n TaxLines?: ShiftTaxLine[];\n TenderLines?: ShiftTenderLine[];\n AccountLines?: ShiftAccountLine[];\n IsShared?: boolean;\n StartingAmountRunningTotal?: number;\n GiftCardsTotal?: number;\n GiftCardCashOutTotal?: number;\n VoidedSalesTotal?: number;\n ShiftSalesTotal?: number;\n ShiftReturnsTotal?: number;\n HasPendingOfflineTransactions?: number;\n NumberOfUnreconciledLines?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StockCountJournal entity interface.\n */\n export interface StockCountJournal {\n JournalId: string;\n RecordId?: string;\n Description?: string;\n InventLocationId?: string;\n DataAreaId?: string;\n StockCountTransactionLines?: StockCountJournalTransaction[];\n Worker?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnit entity interface.\n */\n export interface OrgUnit {\n OrgUnitNumber: string;\n RecordId: number;\n InventoryLocationId?: string;\n OMOperatingUnitNumber?: string;\n TaxGroup?: string;\n FunctionalityProfileId?: string;\n UseCustomerBasedTax?: boolean;\n UseCustomerBasedTaxExemption?: boolean;\n UseDestinationBasedTax?: boolean;\n Currency?: string;\n TimeZoneCode?: number;\n OrgUnitAddress?: Address;\n OrgUnitFullAddress?: string;\n OrgUnitName?: string;\n Latitude?: number;\n Longitude?: number;\n EmailReceiptProfileId?: string;\n ShippingWarehouseAddress?: Address;\n TaxRegistrations?: TaxRegistration[];\n EventNotificationProfileId?: string;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Product entity interface.\n */\n export interface Product {\n RecordId: number;\n ProductName?: string;\n ProductNumber?: string;\n Description?: string;\n IsMasterProduct: boolean;\n IsKit: boolean;\n ItemId?: string;\n HasLinkedProducts: boolean;\n Rules: ProductRules;\n DefaultUnitOfMeasure?: string;\n Name?: string;\n Locale?: string;\n OfflineImage?: string;\n IsRemote?: boolean;\n ChangeTrackingInformation?: ProductChangeTrackingInformation;\n Image?: RichMediaLocations;\n UnitsOfMeasureSymbol?: string[];\n LinkedProducts?: LinkedProduct[];\n BasePrice?: number;\n Price?: number;\n AdjustedPrice?: number;\n RetailContext?: ProjectionDomain;\n PrimaryCategoryId?: number;\n CategoryIds?: number[];\n DisplayOrderInCategories?: DisplayOrderInCategory[];\n RelatedProducts?: RelatedProduct[];\n ProductsRelatedToThis?: RelatedProduct[];\n ProductSchema?: string[];\n ProductProperties?: ProductPropertyTranslation[];\n CompositionInformation?: ProductCompositionInformation;\n ParentKits?: KitComponent[];\n SearchName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductCatalog entity interface.\n */\n export interface ProductCatalog {\n RecordId: number;\n Name?: string;\n Description?: string;\n Language?: string;\n IsSnapshotEnabled: boolean;\n ValidFrom: Date;\n ValidTo: Date;\n CreatedOn: Date;\n ModifiedOn: Date;\n PublishedOn: Date;\n Images?: MediaLocation[];\n ChannelId?: number;\n DefaultImage?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceList entity interface.\n */\n export interface CommerceList {\n Id: number;\n Name?: string;\n CustomerId?: string;\n CustomerName?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n IsCollaborative?: boolean;\n CreatedDateTime?: Date;\n DueDateTime?: Date;\n CommerceListTypeValue?: number;\n CommerceListLines?: CommerceListLine[];\n CommerceListContributors?: CommerceListContributor[];\n CommerceListInvitations?: CommerceListInvitation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductList entity interface.\n */\n export interface ProductList {\n Id: string;\n Name?: string;\n CustomerId?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n ProductListTypeValue?: number;\n DataAreaId?: string;\n ProductListLines?: ProductListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Recommendation entity interface.\n */\n export interface Recommendation {\n Id: string;\n RecommendationTypeValue?: number;\n Title?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrder entity interface.\n */\n export interface TransferOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityShipRemaining?: number;\n QuantityReceiveRemaining?: number;\n ShipDate?: Date;\n ReceiveDate?: Date;\n DeliveryModeId?: string;\n OrderLines?: TransferOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseOrder entity interface.\n */\n export interface PurchaseOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n TotalReceived?: number;\n OrderLines?: PurchaseOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingList entity interface.\n */\n export interface PickingList {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationId?: string;\n DeliveryDate?: Date;\n DeliveryMode?: string;\n TotalReceived?: number;\n OrderLines?: PickingListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warehouse entity interface.\n */\n export interface Warehouse {\n InventLocation: string;\n Name?: string;\n IsWMSEnabled: boolean;\n DefaultInventoryStatus?: string;\n DefaultReceiptLocation?: string;\n DefaultLocationId?: string;\n DefaultIssueLocation?: string;\n Address?: Address;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScanResult entity interface.\n */\n export interface ScanResult {\n ScannedText: string;\n MaskTypeValue?: number;\n Barcode?: Barcode;\n Product?: SimpleProduct;\n LoyaltyCard?: LoyaltyCard;\n GiftCard?: GiftCard;\n ExtensionProperties?: CommerceProperty[];\n Customer?: Customer;\n }\n \n /**\n * SalesOrderContextualOperationsMap entity interface.\n */\n export interface SalesOrderContextualOperationsMap {\n Id: string;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n SalesOrder: SalesOrder;\n }\n \n /**\n * InventoryInboundOutboundDocument entity interface.\n */\n export interface InventoryInboundOutboundDocument {\n WorkDocumentId: string;\n TerminalId?: string;\n CommitRequestId?: string;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n OperationTypeValue?: number;\n StatusValue?: number;\n ReceiptId?: string;\n Note?: string;\n OperationResultMessage?: string;\n DocumentId?: string;\n LongVersion?: number;\n SourceDocument?: InventoryInboundOutboundSourceDocument;\n SourceDocumentTypeValue?: number;\n CreatedDateTime?: Date;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentTypeId?: string;\n Description?: string;\n StaffId?: string;\n 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 ClosedShiftId?: number;\n ReferenceId?: number;\n RefChannel?: number;\n RefStore?: string;\n RefTerminal?: string;\n RefTransactionId?: string;\n AuditEventTypeValue?: number;\n FiscalTransactions?: AuditEventFiscalTransaction[];\n FiscalRegistrationLines?: AuditEventFiscalRegistrationLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemAvailability entity interface.\n */\n export interface ItemAvailability {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n InventoryLocationId?: string;\n ProductId?: number;\n AvailableQuantity?: number;\n OrderedSum?: number;\n PhysicalReserved?: number;\n UnitOfMeasure?: string;\n InventoryUnitOfMeasure?: string;\n InventoryUnitOfMeasureDescription?: string;\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryAvailableToPromise entity interface.\n */\n export interface InventoryAvailableToPromise extends ItemAvailability {\n Date?: string;\n }\n \n /**\n * NotificationItem entity interface.\n */\n export interface NotificationItem {\n Action?: number;\n ActionName?: string;\n NotificationDetails?: NotificationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity interface.\n */\n export interface FiscalIntegrationDocumentRetrievalCriteria {\n TransactionId?: string;\n IsRemoteTransaction?: boolean;\n QueryBySalesId?: boolean;\n FiscalRegistrationEventTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n DocumentContext?: FiscalIntegrationDocumentContext;\n }\n \n /**\n * FiscalIntegrationDocument entity interface.\n */\n export interface FiscalIntegrationDocument {\n Document?: string;\n DocumentGenerationResultTypeValue?: number;\n FiscalConnectorTechnicalProfile?: FiscalIntegrationTechnicalProfile;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n SequentialSignatureDataContext?: FiscalIntegrationSignatureDataContext;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationResult entity interface.\n */\n export interface FiscalIntegrationRegistrationResult {\n TransactionID?: string;\n AuditEventId?: string;\n Response?: string;\n SubmittedDocument?: string;\n RegisterInfo?: string;\n RegistrationStatusValue?: number;\n FiscalRegistrationEventTypeValue?: number;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n ReasonCodeLines?: ReasonCodeLine[];\n SequentialSignatureData?: FiscalIntegrationSequentialSignatureData;\n }\n \n /**\n * FiscalIntegrationRegistrationProcess entity interface.\n */\n export interface FiscalIntegrationRegistrationProcess {\n RecordId?: number;\n RegistrationProcessId?: string;\n Description?: string;\n 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 * DataverseTenderLine entity interface.\n */\n export interface DataverseTenderLine extends TenderLine {\n }\n \n /**\n * PaymentError entity interface.\n */\n export interface PaymentError {\n Code?: string;\n Message?: string;\n IsLocalized?: boolean;\n }\n \n /**\n * ProductAttributeMetadataFlags entity interface.\n */\n export interface ProductAttributeMetadataFlags {\n IsSearchable?: boolean;\n IsRetrievable?: boolean;\n IsQueryable?: boolean;\n IsRefinable?: boolean;\n IsSortable?: boolean;\n IsMultiValue?: boolean;\n IsTokenNormalization?: boolean;\n IsCompleteMatch?: boolean;\n }\n \n /**\n * UnitOfMeasureConversion entity interface.\n */\n export interface UnitOfMeasureConversion {\n ItemId?: string;\n FromUnitOfMeasureId?: string;\n ToUnitOfMeasureId?: string;\n FromUnitOfMeasureSymbol?: string;\n ToUnitOfMeasureSymbol?: string;\n IsBackward?: boolean;\n RecordId?: number;\n ProductRecordId?: number;\n Factor?: number;\n Numerator?: number;\n Denominator?: number;\n InnerOffset?: number;\n OuterOffset?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * 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 // \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 * 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 // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Shift, SuspendedCart, ShiftTenderLine, ShiftRetrievalCriteria, Receipt } from '../Entities/CommerceTypes.g';\n import { ShiftClass, SuspendedCartClass, ReceiptClass, ShiftTenderLineClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function shiftsQuery(shiftId?: number, terminalId?: string): DataServiceQuery {\n var key = (shiftId && terminalId) ? { ShiftId: shiftId, TerminalId: terminalId } : null;\n return new DataServiceQuery(\"Shifts\", \"Shift\", ShiftClass, key);\n }\n \n export function createCreateInput(entity: Shift): IDataServiceRequest {\n return shiftsQuery().create(entity);\n }\n\n export function createShiftAsync(context: IContext, entity: Shift): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Shift): IDataServiceRequest {\n return shiftsQuery(entity.ShiftId, entity.TerminalId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Shift): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Shift): IDataServiceRequest {\n return shiftsQuery(entity.ShiftId, entity.TerminalId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Shift): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(shiftId: number, terminalId: string): IDataServiceRequest {\n return shiftsQuery(shiftId, terminalId).read();\n }\n\n export function readAsync(context: IContext, shiftId: number, terminalId: string): AsyncResult {\n const request = createReadAsync(shiftId, terminalId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return shiftsQuery().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 createSuspendInput(shiftId: number, terminalId: string, transactionId?: string | null): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId);\n return query.createDataServiceRequestForOperation('Suspend', true, ShiftClass, 'false', {bypassCache: 'get', returnEntity: 'Shift'}, {transactionId: transactionId });\n } \n \n export function suspendAsync(context: IContext, shiftId: number, terminalId: string, transactionId?: string | null):AsyncResult {\n const request = createSuspendInput(shiftId, terminalId, transactionId);\n return executeAction(request, context);\n } \n \n export function createResumeInput(shiftId: number, terminalId: string, cashDrawer?: string | null): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId);\n return query.createDataServiceRequestForOperation('Resume', true, ShiftClass, 'false', {bypassCache: 'get', returnEntity: 'Shift'}, {cashDrawer: cashDrawer });\n } \n \n export function resumeAsync(context: IContext, shiftId: number, terminalId: string, cashDrawer?: string | null):AsyncResult {\n const request = createResumeInput(shiftId, terminalId, cashDrawer);\n return executeAction(request, context);\n } \n \n export function createUpsertShiftsInput(shifts?: Shift[] | null): IDataServiceRequest { \n const query = shiftsQuery();\n return query.createDataServiceRequestForOperation('UpsertShifts', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {shifts: shifts });\n } \n \n export function upsertShiftsAsync(context: IContext, shifts?: Shift[] | null):AsyncResult {\n const request = createUpsertShiftsInput(shifts);\n return executeAction(request, context);\n } \n \n export function createUpsertAndValidateShiftsInput(shiftId?: number | null, terminalId?: string | null, shifts?: Shift[] | null): IDataServiceRequest { \n const query = shiftsQuery();\n return query.createDataServiceRequestForOperation('UpsertAndValidateShifts', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {shiftId: shiftId, terminalId: terminalId, shifts: shifts });\n } \n \n export function upsertAndValidateShiftsAsync(context: IContext, shiftId?: number | null, terminalId?: string | null, shifts?: Shift[] | null):AsyncResult {\n const request = createUpsertAndValidateShiftsInput(shiftId, terminalId, shifts);\n return executeAction(request, context);\n } \n \n export function createDeleteShiftsInput(): IDataServiceRequest { \n const query = shiftsQuery();\n return query.createDataServiceRequestForOperation('DeleteShifts', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function deleteShiftsAsync(context: IContext, ):AsyncResult {\n const request = createDeleteShiftsInput();\n return executeAction(request, context);\n } \n \n export function createOpenInput(shiftId: number | null, cashDrawer: string | null, isShared: boolean): IDataServiceRequest { \n const query = shiftsQuery();\n return query.createDataServiceRequestForOperation('Open', true, ShiftClass, 'false', {bypassCache: 'get', returnEntity: 'Shift'}, {shiftId: shiftId, cashDrawer: cashDrawer, isShared: isShared });\n } \n \n export function openAsync(context: IContext, shiftId: number | null, cashDrawer: string | null, isShared: boolean):AsyncResult {\n const request = createOpenInput(shiftId, cashDrawer, isShared);\n return executeAction(request, context);\n } \n \n export function createCloseInput(shiftId: number, terminalId: string, transactionId: string | null, forceClose: boolean, hasOfflinePendingTransactions?: boolean | null): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId);\n return query.createDataServiceRequestForOperation('Close', true, ShiftClass, 'false', {bypassCache: 'get', returnEntity: 'Shift'}, {transactionId: transactionId, forceClose: forceClose, hasOfflinePendingTransactions: hasOfflinePendingTransactions });\n } \n \n export function closeAsync(context: IContext, shiftId: number, terminalId: string, transactionId: string | null, forceClose: boolean, hasOfflinePendingTransactions?: boolean | null):AsyncResult {\n const request = createCloseInput(shiftId, terminalId, transactionId, forceClose, hasOfflinePendingTransactions);\n return executeAction(request, context);\n } \n \n export function createGetSuspendedCartsByShiftInput(queryResultSettings: IQueryResultSettings, shiftTerminalId: string | null, shiftId: number): IDataServiceRequest { \n const query = shiftsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSuspendedCartsByShift', true, SuspendedCartClass, 'true', {bypassCache: 'none', returnEntity: 'SuspendedCart'}, {shiftTerminalId: shiftTerminalId, shiftId: shiftId });\n } \n \n export function getSuspendedCartsByShiftAsync(context: IContext, shiftTerminalId: string | null, shiftId: number):AsyncResult {\n const request = createGetSuspendedCartsByShiftInput(context.queryResultSettings, shiftTerminalId, shiftId);\n return executeAction(request, context);\n } \n \n export function createVoidSuspendedCartsInput(shiftId: number, terminalId: string, ): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId);\n return query.createDataServiceRequestForOperation('VoidSuspendedCarts', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function voidSuspendedCartsAsync(context: IContext, shiftId: number, terminalId: string):AsyncResult {\n const request = createVoidSuspendedCartsInput(shiftId, terminalId);\n return executeAction(request, context);\n } \n \n export function createSaveTenderLinesInput(shiftId: number, terminalId: string, tenderLines?: ShiftTenderLine[] | null): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId);\n return query.createDataServiceRequestForOperation('SaveTenderLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {tenderLines: tenderLines });\n } \n \n export function saveTenderLinesAsync(context: IContext, shiftId: number, terminalId: string, tenderLines?: ShiftTenderLine[] | null):AsyncResult {\n const request = createSaveTenderLinesInput(shiftId, terminalId, tenderLines);\n return executeAction(request, context);\n } \n \n export function createBlindCloseInput(shiftId: number, terminalId: string, transactionId: string | null, forceClose: boolean): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId);\n return query.createDataServiceRequestForOperation('BlindClose', true, ShiftClass, 'false', {bypassCache: 'get', returnEntity: 'Shift'}, {transactionId: transactionId, forceClose: forceClose });\n } \n \n export function blindCloseAsync(context: IContext, shiftId: number, terminalId: string, transactionId: string | null, forceClose: boolean):AsyncResult {\n const request = createBlindCloseInput(shiftId, terminalId, transactionId, forceClose);\n return executeAction(request, context);\n } \n \n export function createForceDeleteInput(shiftId: number, terminalId: string, transactionId?: string | null): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId);\n return query.createDataServiceRequestForOperation('ForceDelete', true, '', '', {bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n } \n \n export function forceDeleteAsync(context: IContext, shiftId: number, terminalId: string, transactionId?: string | null):AsyncResult {\n const request = createForceDeleteInput(shiftId, terminalId, transactionId);\n return executeAction(request, context);\n } \n \n export function createUseInput(shiftId: number, terminalId: string, ): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId);\n return query.createDataServiceRequestForOperation('Use', true, ShiftClass, 'false', {bypassCache: 'get', returnEntity: 'Shift'}, { });\n } \n \n export function useAsync(context: IContext, shiftId: number, terminalId: string):AsyncResult {\n const request = createUseInput(shiftId, terminalId);\n return executeAction(request, context);\n } \n \n export function createGetByStatusInput(queryResultSettings: IQueryResultSettings, statusValue: number): IDataServiceRequest { \n const query = shiftsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByStatus', false, ShiftClass, 'true', {bypassCache: 'none', returnEntity: 'Shift'}, {statusValue: statusValue });\n } \n \n export function getByStatusAsync(context: IContext, statusValue: number):AsyncResult {\n const request = createGetByStatusInput(context.queryResultSettings, statusValue);\n return executeAction(request, context);\n } \n \n export function createGetByStatusFilterByUserRoleInput(queryResultSettings: IQueryResultSettings, statusValue: number, filterByUserRole: boolean): IDataServiceRequest { \n const query = shiftsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByStatusFilterByUserRole', false, ShiftClass, 'true', {bypassCache: 'none', returnEntity: 'Shift'}, {statusValue: statusValue, filterByUserRole: filterByUserRole });\n } \n \n export function getByStatusFilterByUserRoleAsync(context: IContext, statusValue: number, filterByUserRole: boolean):AsyncResult {\n const request = createGetByStatusFilterByUserRoleInput(context.queryResultSettings, statusValue, filterByUserRole);\n return executeAction(request, context);\n } \n \n export function createGetByRetrievalCriteriaInput(queryResultSettings: IQueryResultSettings, shiftRetrievalCriteria?: ShiftRetrievalCriteria | null): IDataServiceRequest { \n const query = shiftsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByRetrievalCriteria', true, ShiftClass, 'true', {bypassCache: 'none', returnEntity: 'Shift'}, {shiftRetrievalCriteria: shiftRetrievalCriteria });\n } \n \n export function getByRetrievalCriteriaAsync(context: IContext, shiftRetrievalCriteria?: ShiftRetrievalCriteria | null):AsyncResult {\n const request = createGetByRetrievalCriteriaInput(context.queryResultSettings, shiftRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createGetXReportInput(shiftId: number, terminalId: string, transactionId?: string | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId);\n return query.createDataServiceRequestForOperation('GetXReport', false, ReceiptClass, 'false', {bypassCache: 'none', returnEntity: 'Receipt'}, {transactionId: transactionId, hardwareProfileId: hardwareProfileId });\n } \n \n export function getXReportAsync(context: IContext, shiftId: number, terminalId: string, transactionId?: string | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetXReportInput(shiftId, terminalId, transactionId, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createGetZReportInput(transactionId?: string | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = shiftsQuery();\n return query.createDataServiceRequestForOperation('GetZReport', false, ReceiptClass, 'false', {bypassCache: 'none', returnEntity: 'Receipt'}, {transactionId: transactionId, hardwareProfileId: hardwareProfileId });\n } \n \n export function getZReportAsync(context: IContext, transactionId?: string | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetZReportInput(transactionId, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createGetOpenTenderLinesInput(queryResultSettings: IQueryResultSettings, shiftId: number, terminalId: string, ): IDataServiceRequest { \n const query = shiftsQuery(shiftId, terminalId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOpenTenderLines', false, ShiftTenderLineClass, 'true', {bypassCache: 'none', returnEntity: 'ShiftTenderLine'}, { });\n } \n \n export function getOpenTenderLinesAsync(context: IContext, shiftId: number, terminalId: string):AsyncResult {\n const request = createGetOpenTenderLinesInput(context.queryResultSettings, shiftId, terminalId);\n return executeAction(request, context);\n } \n \n export function createValidateCashDrawerLimitInput(shiftTerminalId: string | null, shiftId: number): IDataServiceRequest { \n const query = shiftsQuery();\n return query.createDataServiceRequestForOperation('ValidateCashDrawerLimit', true, '', '', {bypassCache: 'get', returnEntity: ''}, {shiftTerminalId: shiftTerminalId, shiftId: shiftId });\n } \n \n export function validateCashDrawerLimitAsync(context: IContext, shiftTerminalId: string | null, shiftId: number):AsyncResult {\n const request = createValidateCashDrawerLimitInput(shiftTerminalId, shiftId);\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 * 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 // \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 * 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","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { PickingList } from '../Entities/CommerceTypes.g';\n import { PickingListClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function pickingListsQuery(orderId?: string): DataServiceQuery {\n var key = (orderId) ? { OrderId: orderId } : null;\n return new DataServiceQuery(\"PickingLists\", \"PickingList\", PickingListClass, key);\n }\n \n export function createCreateInput(entity: PickingList): IDataServiceRequest {\n return pickingListsQuery().create(entity);\n }\n\n export function createPickingListAsync(context: IContext, entity: PickingList): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: PickingList): IDataServiceRequest {\n return pickingListsQuery(entity.OrderId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: PickingList): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: PickingList): IDataServiceRequest {\n return pickingListsQuery(entity.OrderId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: PickingList): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(orderId: string): IDataServiceRequest {\n return pickingListsQuery(orderId).read();\n }\n\n export function readAsync(context: IContext, orderId: string): AsyncResult {\n const request = createReadAsync(orderId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return pickingListsQuery().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 createCommitInput(orderId: string, ): IDataServiceRequest { \n const query = pickingListsQuery(orderId);\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function commitAsync(context: IContext, orderId: string):AsyncResult {\n const request = createCommitInput(orderId);\n return executeAction(request, context);\n } \n \n "],"sourceRoot":""}