{"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/Entities/CommerceModels.g.ts?1e76","webpack:///../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack:///../src/async-result.ts?1ea5","webpack:///../../src/data-types/index.ts?4f60","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/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","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","PrepaymentRoundingDifference","PrepaymentAppliedOnPickup","PrepaymentAmountInvoiced","PromotionLines","QuotationExpiryDate","ReasonCodeLines","ReasonCodeLineClass","ReceiptEmail","RequestedDeliveryDate","RequiredDepositAmount","RequiredDepositWithoutCarryoutAmount","SalesId","ShippingAddress","AddressClass","StaffId","SubtotalAmount","SubtotalAmountWithoutTax","NetPrice","SubtotalSalesAmount","TaxAmount","TaxOnCancellationCharge","TaxOnShippingCharge","TaxOnNonShippingCharges","TaxOverrideCode","TenderLines","RefundableTenderLines","TerminalId","TotalAmount","TotalSalesAmount","TotalReturnAmount","TotalCarryoutSalesAmount","TotalCustomerOrderSalesAmount","TotalManualDiscountAmount","TotalManualDiscountPercentage","WarehouseId","IsCreatedOffline","CartStatusValue","ReceiptTransactionTypeValue","CommissionSalesGroup","Version","TotalItems","HasTaxCalculationTriggered","MerchantProperties","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","SalesAgreementRecordId","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","TransactionDate","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","PriceLines","PriceLineClass","DiscountLines","DiscountLineClass","RelatedDiscountedLineIds","TaxRatePercent","IsCustomerAccountDeposit","LinkedParentLineId","QuantityReturnable","LineNumber","TrackingId","QuantityRemained","CatalogId","ThirdPartyGiftCardInfo","ThirdPartyGiftCardInfoClass","BarcodeEmbeddedPrice","PriceInBarcode","InvoiceTypeValue","InvoicedSalesId","WarehouseLocation","DetailedLineStatusValue","SalesAgreementLineRecordId","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","PricingAttributeCombinationPriority","IsDiscountCodeRequired","ThresholdAmountRequired","BundleId","PriceOverrideRestrictionValue","AllowPriceOverride","MaximumDiscountPercentage","MaximumLineDiscountAmount","MaximumLineReturnAmount","MaximumTotalDiscountAmount","MaximumTotalDiscountPercentage","MaxTotalReturnAmount","Roles","AllowUseSharedShift","AllowManageSharedShift","AllowTaskGuides","AllowSaleOutsideAssortment","AllowPrintingReceiptCopy","AllowSkipFiscalRegistration","AllowSkipRegistrationOrMarkAsRegistered","AllowPostponeRegistration","AllowCreateTransferOrder","AllowAcceptOrder","AllowTaskManagement","AllowRejectOrder","AllowMassActivation","AllowPostInventoryAdjustment","AllowPostStockCounting","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","RequireShippingAddress","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","InventorySiteId","InventoryStatusId","LicensePlate","ReservationId","ReturnQuantity","ProductSourceValue","IsInvoiceSettled","IsPriceLocked","AgreementPrice","ReturnStore","ReturnTerminalId","ReturnChannelId","SalesDate","SavedQuantity","IsSavedDiscount","ElectronicDeliveryEmailAddress","LoyaltyPercentageDiscount","TenderDiscountPercentage","Found","DateToActivateItem","PeriodicPercentageDiscount","QuantityDiscounted","UnitQuantity","UnitOfMeasureConversion","UnitOfMeasureConversionClass","PeriodicDiscountPossibilities","ReturnLabelProperties","ReturnLabelContentClass","LineMultilineDiscOnItem","LineMultilineDiscOnItemValue","WasChanged","OriginalSalesOrderUnitOfMeasure","InventOrderUnitOfMeasure","IsLoyaltyDiscountApplied","ReturnLoyaltyRewardPointLines","FulfillmentStatus","FulfillmentStatusValue","DetailedLineStatus","DetailedLineStatusClass","LastReturnProcessedTime","SalesAgreementPrice","IsSalesAgreementSkipped","SearchAreaClass","Radius","DistanceUnitValue","TenderTypeName","TenderCurrency","CountingRequired","StartingAmountOfStoreCurrency","StartingAmountOfTenderCurrency","FloatingEntryAmountOfStoreCurrency","FloatingEntryAmountOfTenderCurrency","SafeDropAmountOfStoreCurrency","SafeDropAmountOfTenderCurrency","BankDropAmountOfStoreCurrency","BankDropAmountOfTenderCurrency","RemoveTenderAmountOfStoreCurrency","RemoveTenderAmountOfTenderCurrency","DeclareTenderAmountOfStoreCurrency","DeclareTenderAmountOfTenderCurrency","TenderedAmountOfStoreCurrency","TenderedAmountOfTenderCurrency","ChangeAmountOfStoreCurrency","ChangeAmountOfTenderCurrency","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","RoundingDifference","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","PriceSourceTypeValue","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","ItemIds","AvailableSerializedLineOnly","DocumentLineIds","DocumentOperationTypeValue","InventoryDocumentSearchCriteriaClass","TransferFromWarehouse","ShipFromWarehouse","TransferToWarehouse","DocumentTypeIds","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","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","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","LogLevel","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","ConnectorLocationValue","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","PriceMethod","OriginId","PriceChangedByExtensions","TradeAgreementPriceLineClass","AttributePricingTradeAgreementPriceLineClass","CanApplyPriceAdjustments","SalesAgreementPriceLineClass","PriceAdjustmentPriceLineClass","Concurrency","AttributePricingAdjustmentPriceLineClass","CanCompoundOnAdjustedPrice","AdjustedAmount","BasePriceLineClass","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","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","MaximumPurchasablePhysicalAvailableQuantity","MaximumPurchasableTotalAvailableQuantity","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","categoriesQuery","recordId","createCategoryAsync","createGetCategoriesInput","catalogId","getCategoriesAsync","createGetAttributesInput","categoryId","getAttributesAsync","createGetCatalogAttributesInput","categoryIds","getCatalogAttributesAsync","createGetChildrenInput","getChildrenAsync","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","get","toStringTag","newStatus","isError","setTimeout","obj","__decorate","observable","storeQuery","createRoundAmountByTenderTypeInput","roundAmountByTenderTypeAsync","createGetAffiliationsByNameInput","affiliationNames","getAffiliationsByNameAsync","createVoidSuspendedTransactionsInput","suspendedCartIds","shiftId","shiftTerminalId","voidSuspendedTransactionsAsync","searchCriteria","createGetMerchantPropertiesByServiceAccountIdInput","serviceAccountIds","getMerchantPropertiesByServiceAccountIdAsync","createGetStoreSafesInput","getStoreSafesAsync","createGetShiftReconciliationLinesInput","shiftReconciliationLineRetrievalCriteria","getShiftReconciliationLinesAsync","createReconcileLinesInput","shiftReconciliationLines","description","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","createCalculateSalesDocumentInput","salesDocument","calculateSalesDocumentAsync","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","join","LocalizedErrorMessage","ProxyErrorSDK","localizedErrorMessage","formatData","setPrototypeOf","extraData","_canRetry","_errorCode","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","headers","_extraData","proxyError","errorName","data","exception","convertToString","accumulator","depth","prop","stringifyValue","array","isObjectNotEmptyOrNull","isEmpty","object","isNullOrWhitespace","returnValue","trim","params","index","param","replace","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","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","RETAIL_SERVER_REDIRECT_ERROR","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","URL","location","href","searchParams","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","filter","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","source","done","cancel","url","isAbsoluteUrl","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","SalesAgreementLineType","DiscountLineType","ManualDiscountType","CustomerDiscountType","ReasonCodeInputType","ReasonCodeLineType","ChargeModule","ChargeType","ChargeMethod","CashType","IncomeExpenseAccountType","TenderLineStatus","TenderLineVoidStatus","PaymentProcessingType","CreditCardProcessorStatus","ContactInformationType","CommerceEntityDataLevel","ProductPropertyType","AttributeGroupType","ProductSource","RoundingMethod","LineMultilineDiscountOnItem","LoyaltyRewardPointEntryType","LoyaltyRewardPointType","TransactionType","CashManagementTransactionContext","CustomerTimelineItemEntityType","EmployeePermissionsAllowPrintingReceiptCopy","AddressFormatLineType","SalesRepPromptType","RetailProductSearchType","RetailDenominationsToDisplay","EmployeeLogonType","RetailCustomerSearchMode","RequirePaymentForFulfillment","CardNotPresentProcessingConfiguration","ChangeDueBehavior","FontSchemeType","DeviceActivationStatus","DualDisplayType","FiscalRegisterType","PrinterLogotype","PrinterLogoAlignmentType","FiscalIntegrationConnectorType","FiscalIntegrationConnectorLocation","PrintBehavior","DistanceUnit","StockCountStatus","RecommendedElementType","CommerceListInvitationStatus","CommerceListInvitationType","SearchLocation","OrderSearchType","SalesTransactionType","CustomerRefinerSource","PriceSourceType","RetailAffiliationType","InventoryDocumentLineOriginType","InventorySerialNumberLineStatus","InventorySourceDocumentLineStatus","RetailOperation","RefinerType","DisplayTemplate","ClientBookRefinerSource","ProductRefinerSource","LoyaltyCardTenderType","ReleasedProductType","RetailChannelType","LogOnConfiguration","TransactionServiceAuthenticationType","IncludePersonalDataInGuestOrderLookupPolicy","RetailAddressBookType","InventoryAvailabilityClientDisplayMode","EmployeeActivityType","DeliveryPreferenceType","LayoutType","SalesInvoiceType","InvoiceType","InvoicePaidStatus","TaxOverrideType","TaxOverrideBy","ReasonCodeInputRequiredType","FrameworkAccess","MetadataControl","FiscalIntegrationRegistrationStatus","CustomerOrderOperation","BusinessPartnerOperationType","BusinessPartnerOperationStatus","CartType","CartStatus","PeriodicDiscountsCalculateScope","CustomerType","ContactInfoType","ChecklistStatus","ChecklistTaskDeepLinkType","ChecklistTaskStatus","DocumentStatus","CustomerOrderType","LineDiscountCalculationType","TaxCalculationType","ShiftStatus","TaxRegistrationType","CommerceListType","RecommendationType","PurchaseTransferOrderType","BusinessPartnerUserStatus","ElectronicAddressType","DownloadSessionStatus","HardwareStationType","AuditEventUploadType","AuditEventType","AuditLogTraceLevel","FiscalIntegrationEventType","FiscalIntegrationDocumentGenerationResultType","FiscalIntegrationRegistrationProcessMode","FiscalIntegrationServiceCommunicationResultType","FiscalIntegrationServiceFailureType","PickupTimeslotAvailabilitySearchOption","AttachedServiceStatus","ReceiptEmailBehavior","CartLineQuantityLimitsErrors","CommunicationErrors","ConfigurationErrors","DataValidationErrors","FeatureNotSupportedErrors","SecurityErrors","StorageErrors","VersionNotSupportedErrors","PaymentErrors","FiscalIntegrationServiceErrors","CommerceDataExchangeErrors","TaskManagementErrorCode","PricingDataValidationErrors","PaymentConfigurationErrors","BusinessPartnerOperationDeliveryType","OnlineStoreCustomerType","WrongEndpointErrors","RetailServerApiErrors","ExceptionSeverity","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","property","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","map","Boolean","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/2.aedab880ca22cc3668bd.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 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 PrepaymentRoundingDifference: number;\n public PrepaymentAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PromotionLines: string[];\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public SalesId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public NetPrice: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public WarehouseId: string;\n public IsCreatedOffline: boolean;\n public CartStatusValue: number;\n public ReceiptTransactionTypeValue: number;\n public CommissionSalesGroup: string;\n public Version: number;\n public TotalItems: number;\n public HasTaxCalculationTriggered: boolean;\n public MerchantProperties: Entities.PaymentMerchantInformation[];\n public HasChargeCalculationTriggered: boolean;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationLines = undefined;\n if (odataObject.AffiliationLines) {\n this.AffiliationLines = [];\n for (var i = 0; i < odataObject.AffiliationLines.length; i++) {\n if (odataObject.AffiliationLines[i] != null) {\n if (odataObject.AffiliationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLines[i] = new entityDictionary[className](odataObject.AffiliationLines[i])\n }\n } else {\n this.AffiliationLines[i] = new AffiliationLoyaltyTierClass(odataObject.AffiliationLines[i]);\n }\n } else {\n this.AffiliationLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CancellationChargeAmount = \n (odataObject.CancellationChargeAmount != null) ? parseFloat(odataObject.CancellationChargeAmount) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.CartLines = undefined;\n if (odataObject.CartLines) {\n this.CartLines = [];\n for (var i = 0; i < odataObject.CartLines.length; i++) {\n if (odataObject.CartLines[i] != null) {\n if (odataObject.CartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLines[i] = new entityDictionary[className](odataObject.CartLines[i])\n }\n } else {\n this.CartLines[i] = new CartLineClass(odataObject.CartLines[i]);\n }\n } else {\n this.CartLines[i] = undefined;\n }\n }\n }\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxViewLines = undefined;\n if (odataObject.TaxViewLines) {\n this.TaxViewLines = [];\n for (var i = 0; i < odataObject.TaxViewLines.length; i++) {\n if (odataObject.TaxViewLines[i] != null) {\n if (odataObject.TaxViewLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxViewLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxViewLines[i] = new entityDictionary[className](odataObject.TaxViewLines[i])\n }\n } else {\n this.TaxViewLines[i] = new TaxViewLineClass(odataObject.TaxViewLines[i]);\n }\n } else {\n this.TaxViewLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.Id = \n odataObject.Id;\n \n this.SuspendedCartId = \n odataObject.SuspendedCartId;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.OrderNumber = \n odataObject.OrderNumber;\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.PrepaymentAppliedOnPickup = \n (odataObject.PrepaymentAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.SalesId = \n odataObject.SalesId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.CartStatusValue = \n odataObject.CartStatusValue;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.Version = \n (odataObject.Version != null) ? parseInt(odataObject.Version, 10) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.MerchantProperties = undefined;\n if (odataObject.MerchantProperties) {\n this.MerchantProperties = [];\n for (var i = 0; i < odataObject.MerchantProperties.length; i++) {\n if (odataObject.MerchantProperties[i] != null) {\n if (odataObject.MerchantProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.MerchantProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MerchantProperties[i] = new entityDictionary[className](odataObject.MerchantProperties[i])\n }\n } else {\n this.MerchantProperties[i] = new PaymentMerchantInformationClass(odataObject.MerchantProperties[i]);\n }\n } else {\n this.MerchantProperties[i] = undefined;\n }\n }\n }\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartClass'] = CartClass;\n \n /**\n * Customer entity class.\n */\n export class CustomerClass implements Entities.Customer {\n public AccountNumber: string;\n public RecordId: number;\n public CreatedDateTime: Date;\n public ChargeGroup: string;\n public PriceGroup: string;\n public IsCustomerTaxInclusive: boolean;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Cellphone: string;\n public Email: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public Name: string;\n public PersonNameId: number;\n public FirstName: string;\n public MiddleName: string;\n public LastName: string;\n public DirectoryPartyRecordId: number;\n public PartyNumber: string;\n public CustomerTypeValue: number;\n public Language: string;\n public CustomerGroup: string;\n public CurrencyCode: string;\n public CNPJCPFNumber: string;\n public IdentificationNumber: string;\n public InvoiceAccount: string;\n public MandatoryCreditLimit: boolean;\n public CreditRating: string;\n public CreditLimit: number;\n public Balance: number;\n public Blocked: boolean;\n public BlockedType: number;\n public UseOrderNumberReference: boolean;\n public OrganizationId: string;\n public UsePurchaseRequest: boolean;\n public MultilineDiscountGroup: string;\n public TotalDiscountGroup: string;\n public LineDiscountGroup: string;\n public TaxGroup: string;\n public SalesTaxGroup: string;\n public CommissionSalesGroupId: string;\n public TaxExemptNumber: string;\n public VatNumber: string;\n public TaxOffice: string;\n public NonChargeableAccount: boolean;\n public Tag: string;\n public ReceiptSettings: number;\n public ReceiptEmail: string;\n public OptOutPersonalization: boolean;\n public OptOutWebActivityTracking: boolean;\n public RetailCustomerTableRecordId: number;\n public OfflineImage: string;\n public IsAsyncCustomer: boolean;\n public NewCustomerPartyNumber: string;\n public CustomerAffiliations: Entities.CustomerAffiliation[];\n public Addresses: Entities.Address[];\n public Attributes: Entities.CustomerAttribute[];\n public Images: Entities.MediaLocation[];\n public TitleRecordId: number;\n public IsFloorLimitBlocked: boolean;\n public IsB2b: boolean;\n public IsB2bAdmin: boolean;\n public BusinessPartnerId: string;\n public Contacts: Entities.ContactInfo[];\n public AllowOnAccountPayment: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 PrepaymentRoundingDifference: number;\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public SalesId: string;\n public SalesPaymentDifference: number;\n public SalesLines: Entities.SalesLine[];\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public StatementCode: string;\n public StoreId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxAmountExclusive: number;\n public TaxAmountInclusive: number;\n public TaxLines: Entities.TaxLine[];\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalDiscount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public TransactionTypeValue: number;\n public TaxCalculationTypeValue: number;\n public SalesInvoiceAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public HasTaxCalculationTriggered: boolean;\n public HasChargeCalculationTriggered: boolean;\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public CustomerName: string;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public LanguageId: string;\n public SalesAgreementRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.McrOrderStopped = \n odataObject.McrOrderStopped;\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n if (odataObject.AggregateInventoryQuantities == null) {\n this.AggregateInventoryQuantities = undefined;\n } else if (odataObject.AggregateInventoryQuantities['@odata.type'] == null) {\n this.AggregateInventoryQuantities = new InventoryQuantitiesClass(odataObject.AggregateInventoryQuantities);\n } else {\n var className: string = odataObject.AggregateInventoryQuantities['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregateInventoryQuantities = new entityDictionary[className](odataObject.AggregateInventoryQuantities)\n }\n }\n\n \n if (odataObject.UnifiedDeliveryInformation == null) {\n this.UnifiedDeliveryInformation = undefined;\n } else if (odataObject.UnifiedDeliveryInformation['@odata.type'] == null) {\n this.UnifiedDeliveryInformation = new DeliveryInformationClass(odataObject.UnifiedDeliveryInformation);\n } else {\n var className: string = odataObject.UnifiedDeliveryInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnifiedDeliveryInformation = new entityDictionary[className](odataObject.UnifiedDeliveryInformation)\n }\n }\n\n \n this.PaymentStatusValue = \n odataObject.PaymentStatusValue;\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.AffiliationLoyaltyTierLines = undefined;\n if (odataObject.AffiliationLoyaltyTierLines) {\n this.AffiliationLoyaltyTierLines = [];\n for (var i = 0; i < odataObject.AffiliationLoyaltyTierLines.length; i++) {\n if (odataObject.AffiliationLoyaltyTierLines[i] != null) {\n if (odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLoyaltyTierLines[i] = new entityDictionary[className](odataObject.AffiliationLoyaltyTierLines[i])\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = new SalesAffiliationLoyaltyTierClass(odataObject.AffiliationLoyaltyTierLines[i]);\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CalculatedDepositAmount = \n (odataObject.CalculatedDepositAmount != null) ? parseFloat(odataObject.CalculatedDepositAmount) : undefined;\n \n this.CancellationCharge = \n (odataObject.CancellationCharge != null) ? parseFloat(odataObject.CancellationCharge) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.ContactInformationCollection = undefined;\n if (odataObject.ContactInformationCollection) {\n this.ContactInformationCollection = [];\n for (var i = 0; i < odataObject.ContactInformationCollection.length; i++) {\n if (odataObject.ContactInformationCollection[i] != null) {\n if (odataObject.ContactInformationCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ContactInformationCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ContactInformationCollection[i] = new entityDictionary[className](odataObject.ContactInformationCollection[i])\n }\n } else {\n this.ContactInformationCollection[i] = new ContactInformationClass(odataObject.ContactInformationCollection[i]);\n }\n } else {\n this.ContactInformationCollection[i] = undefined;\n }\n }\n }\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.CustomerOrderTypeValue = \n odataObject.CustomerOrderTypeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.EntryStatusValue = \n odataObject.EntryStatusValue;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.HasLoyaltyPayment = \n odataObject.HasLoyaltyPayment;\n \n this.Id = \n odataObject.Id;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.SuspendedTransactionId = \n odataObject.SuspendedTransactionId;\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.IsTaxExemptedForPriceInclusive = \n odataObject.IsTaxExemptedForPriceInclusive;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LineDiscountCalculationTypeValue = \n odataObject.LineDiscountCalculationTypeValue;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyManualDiscountAmount = \n (odataObject.LoyaltyManualDiscountAmount != null) ? parseFloat(odataObject.LoyaltyManualDiscountAmount) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetAmountWithNoTax = \n (odataObject.NetAmountWithNoTax != null) ? parseFloat(odataObject.NetAmountWithNoTax) : undefined;\n \n this.NetAmountWithTax = \n (odataObject.NetAmountWithTax != null) ? parseFloat(odataObject.NetAmountWithTax) : undefined;\n \n this.NumberOfItems = \n (odataObject.NumberOfItems != null) ? parseFloat(odataObject.NumberOfItems) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PeriodicDiscountAmount = \n (odataObject.PeriodicDiscountAmount != null) ? parseFloat(odataObject.PeriodicDiscountAmount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.PrepaymentAmountAppliedOnPickup = \n (odataObject.PrepaymentAmountAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAmountAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPaymentDifference = \n (odataObject.SalesPaymentDifference != null) ? parseFloat(odataObject.SalesPaymentDifference) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TaxCalculationTypeValue = \n odataObject.TaxCalculationTypeValue;\n \n this.SalesInvoiceAmount = \n (odataObject.SalesInvoiceAmount != null) ? parseFloat(odataObject.SalesInvoiceAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.SalesAgreementRecordId = \n (odataObject.SalesAgreementRecordId != null) ? parseInt(odataObject.SalesAgreementRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderClass'] = SalesOrderClass;\n \n /**\n * Shift entity class.\n */\n export class ShiftClass implements Entities.Shift {\n public ShiftId: number;\n public TerminalId: string;\n public StartingAmountTotal: number;\n public FloatingEntryAmountTotal: number;\n public AddToTenderAmountTotal: number;\n public SafeDropTotal: number;\n public BankDropTotal: number;\n public RemoveTenderAmountTotal: number;\n public DeclareTenderAmountTotal: number;\n public OverShortTotal: number;\n public TenderedTotal: number;\n public ChangeTotal: number;\n public IncomeAccountTotal: number;\n public ExpenseAccountTotal: number;\n public CashDrawer: string;\n public StoreRecordId: number;\n public StoreId: string;\n public StaffId: string;\n public CurrentStaffId: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public CloseDateTime: Date;\n public ClosedAtTerminalId: string;\n public ClosedAtShiftId: number;\n public CurrentTerminalId: string;\n public SalesTotal: number;\n public StatusDateTime: Date;\n public ReturnsTotal: number;\n public PaidToAccountTotal: number;\n public TaxTotal: number;\n public ChargeTotal: number;\n public DiscountTotal: number;\n public RoundedAmountTotal: number;\n public CustomerCount: number;\n public SaleTransactionCount: number;\n public NoSaleTransactionCount: number;\n public VoidTransactionCount: number;\n public LogOnTransactionCount: number;\n public SuspendedTransactionCount: number;\n public TransactionCount: number;\n public ReceiptsCount: number;\n public ReturnsCount: number;\n public GoodsSoldQty: number;\n public ServicesSoldQty: number;\n public ReceiptCopiesCount: number;\n public ReceiptCopiesTotal: number;\n public PriceOverrideTotal: number;\n public SuspendedTotal: number;\n public SalesTotalIncludingTax: number;\n public SalesTotalExcludingTax: number;\n public SalesGrandTotal: number;\n public ReturnsGrandTotal: number;\n public TaxLines: Entities.ShiftTaxLine[];\n public TenderLines: Entities.ShiftTenderLine[];\n public AccountLines: Entities.ShiftAccountLine[];\n public IsShared: boolean;\n public StartingAmountRunningTotal: number;\n public GiftCardsTotal: number;\n public GiftCardCashOutTotal: number;\n public VoidedSalesTotal: number;\n public ShiftSalesTotal: number;\n public ShiftReturnsTotal: number;\n public HasPendingOfflineTransactions: number;\n public NumberOfUnreconciledLines: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.StartingAmountTotal = \n (odataObject.StartingAmountTotal != null) ? parseFloat(odataObject.StartingAmountTotal) : undefined;\n \n this.FloatingEntryAmountTotal = \n (odataObject.FloatingEntryAmountTotal != null) ? parseFloat(odataObject.FloatingEntryAmountTotal) : undefined;\n \n this.AddToTenderAmountTotal = \n (odataObject.AddToTenderAmountTotal != null) ? parseFloat(odataObject.AddToTenderAmountTotal) : undefined;\n \n this.SafeDropTotal = \n (odataObject.SafeDropTotal != null) ? parseFloat(odataObject.SafeDropTotal) : undefined;\n \n this.BankDropTotal = \n (odataObject.BankDropTotal != null) ? parseFloat(odataObject.BankDropTotal) : undefined;\n \n this.RemoveTenderAmountTotal = \n (odataObject.RemoveTenderAmountTotal != null) ? parseFloat(odataObject.RemoveTenderAmountTotal) : undefined;\n \n this.DeclareTenderAmountTotal = \n (odataObject.DeclareTenderAmountTotal != null) ? parseFloat(odataObject.DeclareTenderAmountTotal) : undefined;\n \n this.OverShortTotal = \n (odataObject.OverShortTotal != null) ? parseFloat(odataObject.OverShortTotal) : undefined;\n \n this.TenderedTotal = \n (odataObject.TenderedTotal != null) ? parseFloat(odataObject.TenderedTotal) : undefined;\n \n this.ChangeTotal = \n (odataObject.ChangeTotal != null) ? parseFloat(odataObject.ChangeTotal) : undefined;\n \n this.IncomeAccountTotal = \n (odataObject.IncomeAccountTotal != null) ? parseFloat(odataObject.IncomeAccountTotal) : undefined;\n \n this.ExpenseAccountTotal = \n (odataObject.ExpenseAccountTotal != null) ? parseFloat(odataObject.ExpenseAccountTotal) : undefined;\n \n this.CashDrawer = \n odataObject.CashDrawer;\n \n this.StoreRecordId = \n (odataObject.StoreRecordId != null) ? parseInt(odataObject.StoreRecordId, 10) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.CurrentStaffId = \n odataObject.CurrentStaffId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CloseDateTime = \n (odataObject.CloseDateTime instanceof Date) ? odataObject.CloseDateTime\n : (odataObject.CloseDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CloseDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ClosedAtTerminalId = \n odataObject.ClosedAtTerminalId;\n \n this.ClosedAtShiftId = \n (odataObject.ClosedAtShiftId != null) ? parseInt(odataObject.ClosedAtShiftId, 10) : undefined;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this.SalesTotal = \n (odataObject.SalesTotal != null) ? parseFloat(odataObject.SalesTotal) : undefined;\n \n this.StatusDateTime = \n (odataObject.StatusDateTime instanceof Date) ? odataObject.StatusDateTime\n : (odataObject.StatusDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StatusDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReturnsTotal = \n (odataObject.ReturnsTotal != null) ? parseFloat(odataObject.ReturnsTotal) : undefined;\n \n this.PaidToAccountTotal = \n (odataObject.PaidToAccountTotal != null) ? parseFloat(odataObject.PaidToAccountTotal) : undefined;\n \n this.TaxTotal = \n (odataObject.TaxTotal != null) ? parseFloat(odataObject.TaxTotal) : undefined;\n \n this.ChargeTotal = \n (odataObject.ChargeTotal != null) ? parseFloat(odataObject.ChargeTotal) : undefined;\n \n this.DiscountTotal = \n (odataObject.DiscountTotal != null) ? parseFloat(odataObject.DiscountTotal) : undefined;\n \n this.RoundedAmountTotal = \n (odataObject.RoundedAmountTotal != null) ? parseFloat(odataObject.RoundedAmountTotal) : undefined;\n \n this.CustomerCount = \n odataObject.CustomerCount;\n \n this.SaleTransactionCount = \n odataObject.SaleTransactionCount;\n \n this.NoSaleTransactionCount = \n odataObject.NoSaleTransactionCount;\n \n this.VoidTransactionCount = \n odataObject.VoidTransactionCount;\n \n this.LogOnTransactionCount = \n odataObject.LogOnTransactionCount;\n \n this.SuspendedTransactionCount = \n odataObject.SuspendedTransactionCount;\n \n this.TransactionCount = \n odataObject.TransactionCount;\n \n this.ReceiptsCount = \n odataObject.ReceiptsCount;\n \n this.ReturnsCount = \n odataObject.ReturnsCount;\n \n this.GoodsSoldQty = \n (odataObject.GoodsSoldQty != null) ? parseFloat(odataObject.GoodsSoldQty) : undefined;\n \n this.ServicesSoldQty = \n (odataObject.ServicesSoldQty != null) ? parseFloat(odataObject.ServicesSoldQty) : undefined;\n \n this.ReceiptCopiesCount = \n odataObject.ReceiptCopiesCount;\n \n this.ReceiptCopiesTotal = \n (odataObject.ReceiptCopiesTotal != null) ? parseFloat(odataObject.ReceiptCopiesTotal) : undefined;\n \n this.PriceOverrideTotal = \n (odataObject.PriceOverrideTotal != null) ? parseFloat(odataObject.PriceOverrideTotal) : undefined;\n \n this.SuspendedTotal = \n (odataObject.SuspendedTotal != null) ? parseFloat(odataObject.SuspendedTotal) : undefined;\n \n this.SalesTotalIncludingTax = \n (odataObject.SalesTotalIncludingTax != null) ? parseFloat(odataObject.SalesTotalIncludingTax) : undefined;\n \n this.SalesTotalExcludingTax = \n (odataObject.SalesTotalExcludingTax != null) ? parseFloat(odataObject.SalesTotalExcludingTax) : undefined;\n \n this.SalesGrandTotal = \n (odataObject.SalesGrandTotal != null) ? parseFloat(odataObject.SalesGrandTotal) : undefined;\n \n this.ReturnsGrandTotal = \n (odataObject.ReturnsGrandTotal != null) ? parseFloat(odataObject.ReturnsGrandTotal) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new ShiftTaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new ShiftTenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.AccountLines = undefined;\n if (odataObject.AccountLines) {\n this.AccountLines = [];\n for (var i = 0; i < odataObject.AccountLines.length; i++) {\n if (odataObject.AccountLines[i] != null) {\n if (odataObject.AccountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AccountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AccountLines[i] = new entityDictionary[className](odataObject.AccountLines[i])\n }\n } else {\n this.AccountLines[i] = new ShiftAccountLineClass(odataObject.AccountLines[i]);\n }\n } else {\n this.AccountLines[i] = undefined;\n }\n }\n }\n \n this.IsShared = \n odataObject.IsShared;\n \n this.StartingAmountRunningTotal = \n (odataObject.StartingAmountRunningTotal != null) ? parseFloat(odataObject.StartingAmountRunningTotal) : undefined;\n \n this.GiftCardsTotal = \n (odataObject.GiftCardsTotal != null) ? parseFloat(odataObject.GiftCardsTotal) : undefined;\n \n this.GiftCardCashOutTotal = \n (odataObject.GiftCardCashOutTotal != null) ? parseFloat(odataObject.GiftCardCashOutTotal) : undefined;\n \n this.VoidedSalesTotal = \n (odataObject.VoidedSalesTotal != null) ? parseFloat(odataObject.VoidedSalesTotal) : undefined;\n \n this.ShiftSalesTotal = \n (odataObject.ShiftSalesTotal != null) ? parseFloat(odataObject.ShiftSalesTotal) : undefined;\n \n this.ShiftReturnsTotal = \n (odataObject.ShiftReturnsTotal != null) ? parseFloat(odataObject.ShiftReturnsTotal) : undefined;\n \n this.HasPendingOfflineTransactions = \n odataObject.HasPendingOfflineTransactions;\n \n this.NumberOfUnreconciledLines = \n (odataObject.NumberOfUnreconciledLines != null) ? parseFloat(odataObject.NumberOfUnreconciledLines) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftClass'] = ShiftClass;\n \n /**\n * StockCountJournal entity class.\n */\n export class StockCountJournalClass implements Entities.StockCountJournal {\n public JournalId: string;\n public RecordId: string;\n public Description: string;\n public InventLocationId: string;\n public DataAreaId: string;\n public StockCountTransactionLines: Entities.StockCountJournalTransaction[];\n public Worker: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Description = \n odataObject.Description;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.StockCountTransactionLines = undefined;\n if (odataObject.StockCountTransactionLines) {\n this.StockCountTransactionLines = [];\n for (var i = 0; i < odataObject.StockCountTransactionLines.length; i++) {\n if (odataObject.StockCountTransactionLines[i] != null) {\n if (odataObject.StockCountTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.StockCountTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.StockCountTransactionLines[i] = new entityDictionary[className](odataObject.StockCountTransactionLines[i])\n }\n } else {\n this.StockCountTransactionLines[i] = new StockCountJournalTransactionClass(odataObject.StockCountTransactionLines[i]);\n }\n } else {\n this.StockCountTransactionLines[i] = undefined;\n }\n }\n }\n \n this.Worker = \n odataObject.Worker;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalClass'] = StockCountJournalClass;\n \n /**\n * OrgUnit entity class.\n */\n export class OrgUnitClass implements Entities.OrgUnit {\n public OrgUnitNumber: string;\n public RecordId: number;\n public InventoryLocationId: string;\n public OMOperatingUnitNumber: string;\n public TaxGroup: string;\n public FunctionalityProfileId: string;\n public UseCustomerBasedTax: boolean;\n public UseCustomerBasedTaxExemption: boolean;\n public UseDestinationBasedTax: boolean;\n public Currency: string;\n public TimeZoneCode: number;\n public OrgUnitAddress: Entities.Address;\n public OrgUnitFullAddress: string;\n public OrgUnitName: string;\n public Latitude: number;\n public Longitude: number;\n public EmailReceiptProfileId: string;\n public ShippingWarehouseAddress: Entities.Address;\n public TaxRegistrations: Entities.TaxRegistration[];\n public EventNotificationProfileId: string;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.OMOperatingUnitNumber = \n odataObject.OMOperatingUnitNumber;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseCustomerBasedTaxExemption = \n odataObject.UseCustomerBasedTaxExemption;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.Currency = \n odataObject.Currency;\n \n this.TimeZoneCode = \n odataObject.TimeZoneCode;\n \n if (odataObject.OrgUnitAddress == null) {\n this.OrgUnitAddress = undefined;\n } else if (odataObject.OrgUnitAddress['@odata.type'] == null) {\n this.OrgUnitAddress = new AddressClass(odataObject.OrgUnitAddress);\n } else {\n var className: string = odataObject.OrgUnitAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitAddress = new entityDictionary[className](odataObject.OrgUnitAddress)\n }\n }\n\n \n this.OrgUnitFullAddress = \n odataObject.OrgUnitFullAddress;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.EmailReceiptProfileId = \n odataObject.EmailReceiptProfileId;\n \n if (odataObject.ShippingWarehouseAddress == null) {\n this.ShippingWarehouseAddress = undefined;\n } else if (odataObject.ShippingWarehouseAddress['@odata.type'] == null) {\n this.ShippingWarehouseAddress = new AddressClass(odataObject.ShippingWarehouseAddress);\n } else {\n var className: string = odataObject.ShippingWarehouseAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingWarehouseAddress = new entityDictionary[className](odataObject.ShippingWarehouseAddress)\n }\n }\n\n \n this.TaxRegistrations = undefined;\n if (odataObject.TaxRegistrations) {\n this.TaxRegistrations = [];\n for (var i = 0; i < odataObject.TaxRegistrations.length; i++) {\n if (odataObject.TaxRegistrations[i] != null) {\n if (odataObject.TaxRegistrations[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxRegistrations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxRegistrations[i] = new entityDictionary[className](odataObject.TaxRegistrations[i])\n }\n } else {\n this.TaxRegistrations[i] = new TaxRegistrationClass(odataObject.TaxRegistrations[i]);\n }\n } else {\n this.TaxRegistrations[i] = undefined;\n }\n }\n }\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitClass'] = OrgUnitClass;\n \n /**\n * Product entity class.\n */\n export class ProductClass implements Entities.Product {\n public RecordId: number;\n public ProductName: string;\n public ProductNumber: string;\n public Description: string;\n public IsMasterProduct: boolean;\n public IsKit: boolean;\n public ItemId: string;\n public HasLinkedProducts: boolean;\n public Rules: Entities.ProductRules;\n public DefaultUnitOfMeasure: string;\n public Name: string;\n public Locale: string;\n public OfflineImage: string;\n public IsRemote: boolean;\n public ChangeTrackingInformation: Entities.ProductChangeTrackingInformation;\n public Image: Entities.RichMediaLocations;\n public UnitsOfMeasureSymbol: string[];\n public LinkedProducts: Entities.LinkedProduct[];\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public RetailContext: Entities.ProjectionDomain;\n public PrimaryCategoryId: number;\n public CategoryIds: number[];\n public DisplayOrderInCategories: Entities.DisplayOrderInCategory[];\n public RelatedProducts: Entities.RelatedProduct[];\n public ProductsRelatedToThis: Entities.RelatedProduct[];\n public ProductSchema: string[];\n public ProductProperties: Entities.ProductPropertyTranslation[];\n public CompositionInformation: Entities.ProductCompositionInformation;\n public ParentKits: Entities.KitComponent[];\n public SearchName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.Description = \n odataObject.Description;\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.IsKit = \n odataObject.IsKit;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n if (odataObject.Rules == null) {\n this.Rules = undefined;\n } else if (odataObject.Rules['@odata.type'] == null) {\n this.Rules = new ProductRulesClass(odataObject.Rules);\n } else {\n var className: string = odataObject.Rules['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Rules = new entityDictionary[className](odataObject.Rules)\n }\n }\n\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.Name = \n odataObject.Name;\n \n this.Locale = \n odataObject.Locale;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsRemote = \n odataObject.IsRemote;\n \n if (odataObject.ChangeTrackingInformation == null) {\n this.ChangeTrackingInformation = undefined;\n } else if (odataObject.ChangeTrackingInformation['@odata.type'] == null) {\n this.ChangeTrackingInformation = new ProductChangeTrackingInformationClass(odataObject.ChangeTrackingInformation);\n } else {\n var className: string = odataObject.ChangeTrackingInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChangeTrackingInformation = new entityDictionary[className](odataObject.ChangeTrackingInformation)\n }\n }\n\n \n if (odataObject.Image == null) {\n this.Image = undefined;\n } else if (odataObject.Image['@odata.type'] == null) {\n this.Image = new RichMediaLocationsClass(odataObject.Image);\n } else {\n var className: string = odataObject.Image['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Image = new entityDictionary[className](odataObject.Image)\n }\n }\n\n \n this.UnitsOfMeasureSymbol = undefined;\n if (odataObject.UnitsOfMeasureSymbol) {\n this.UnitsOfMeasureSymbol = [];\n for (var i = 0; i < odataObject.UnitsOfMeasureSymbol.length; i++) {\n if (odataObject.UnitsOfMeasureSymbol[i] != null) {\n this.UnitsOfMeasureSymbol[i] = \n odataObject.UnitsOfMeasureSymbol[i];\n } else {\n this.UnitsOfMeasureSymbol[i] = undefined;\n }\n }\n }\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new LinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n if (odataObject.RetailContext == null) {\n this.RetailContext = undefined;\n } else if (odataObject.RetailContext['@odata.type'] == null) {\n this.RetailContext = new ProjectionDomainClass(odataObject.RetailContext);\n } else {\n var className: string = odataObject.RetailContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RetailContext = new entityDictionary[className](odataObject.RetailContext)\n }\n }\n\n \n this.PrimaryCategoryId = \n (odataObject.PrimaryCategoryId != null) ? parseInt(odataObject.PrimaryCategoryId, 10) : undefined;\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.DisplayOrderInCategories = undefined;\n if (odataObject.DisplayOrderInCategories) {\n this.DisplayOrderInCategories = [];\n for (var i = 0; i < odataObject.DisplayOrderInCategories.length; i++) {\n if (odataObject.DisplayOrderInCategories[i] != null) {\n if (odataObject.DisplayOrderInCategories[i]['@odata.type'] != null) {\n var className: string = odataObject.DisplayOrderInCategories[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DisplayOrderInCategories[i] = new entityDictionary[className](odataObject.DisplayOrderInCategories[i])\n }\n } else {\n this.DisplayOrderInCategories[i] = new DisplayOrderInCategoryClass(odataObject.DisplayOrderInCategories[i]);\n }\n } else {\n this.DisplayOrderInCategories[i] = undefined;\n }\n }\n }\n \n this.RelatedProducts = undefined;\n if (odataObject.RelatedProducts) {\n this.RelatedProducts = [];\n for (var i = 0; i < odataObject.RelatedProducts.length; i++) {\n if (odataObject.RelatedProducts[i] != null) {\n if (odataObject.RelatedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.RelatedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RelatedProducts[i] = new entityDictionary[className](odataObject.RelatedProducts[i])\n }\n } else {\n this.RelatedProducts[i] = new RelatedProductClass(odataObject.RelatedProducts[i]);\n }\n } else {\n this.RelatedProducts[i] = undefined;\n }\n }\n }\n \n this.ProductsRelatedToThis = undefined;\n if (odataObject.ProductsRelatedToThis) {\n this.ProductsRelatedToThis = [];\n for (var i = 0; i < odataObject.ProductsRelatedToThis.length; i++) {\n if (odataObject.ProductsRelatedToThis[i] != null) {\n if (odataObject.ProductsRelatedToThis[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductsRelatedToThis[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductsRelatedToThis[i] = new entityDictionary[className](odataObject.ProductsRelatedToThis[i])\n }\n } else {\n this.ProductsRelatedToThis[i] = new RelatedProductClass(odataObject.ProductsRelatedToThis[i]);\n }\n } else {\n this.ProductsRelatedToThis[i] = undefined;\n }\n }\n }\n \n this.ProductSchema = undefined;\n if (odataObject.ProductSchema) {\n this.ProductSchema = [];\n for (var i = 0; i < odataObject.ProductSchema.length; i++) {\n if (odataObject.ProductSchema[i] != null) {\n this.ProductSchema[i] = \n odataObject.ProductSchema[i];\n } else {\n this.ProductSchema[i] = undefined;\n }\n }\n }\n \n this.ProductProperties = undefined;\n if (odataObject.ProductProperties) {\n this.ProductProperties = [];\n for (var i = 0; i < odataObject.ProductProperties.length; i++) {\n if (odataObject.ProductProperties[i] != null) {\n if (odataObject.ProductProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductProperties[i] = new entityDictionary[className](odataObject.ProductProperties[i])\n }\n } else {\n this.ProductProperties[i] = new ProductPropertyTranslationClass(odataObject.ProductProperties[i]);\n }\n } else {\n this.ProductProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.CompositionInformation == null) {\n this.CompositionInformation = undefined;\n } else if (odataObject.CompositionInformation['@odata.type'] == null) {\n this.CompositionInformation = new ProductCompositionInformationClass(odataObject.CompositionInformation);\n } else {\n var className: string = odataObject.CompositionInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CompositionInformation = new entityDictionary[className](odataObject.CompositionInformation)\n }\n }\n\n \n this.ParentKits = undefined;\n if (odataObject.ParentKits) {\n this.ParentKits = [];\n for (var i = 0; i < odataObject.ParentKits.length; i++) {\n if (odataObject.ParentKits[i] != null) {\n if (odataObject.ParentKits[i]['@odata.type'] != null) {\n var className: string = odataObject.ParentKits[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ParentKits[i] = new entityDictionary[className](odataObject.ParentKits[i])\n }\n } else {\n this.ParentKits[i] = new KitComponentClass(odataObject.ParentKits[i]);\n }\n } else {\n this.ParentKits[i] = undefined;\n }\n }\n }\n \n this.SearchName = \n odataObject.SearchName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductClass'] = ProductClass;\n \n /**\n * ProductCatalog entity class.\n */\n export class ProductCatalogClass implements Entities.ProductCatalog {\n public RecordId: number;\n public Name: string;\n public Description: string;\n public Language: string;\n public IsSnapshotEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public CreatedOn: Date;\n public ModifiedOn: Date;\n public PublishedOn: Date;\n public Images: Entities.MediaLocation[];\n public ChannelId: number;\n public DefaultImage: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.Language = \n odataObject.Language;\n \n this.IsSnapshotEnabled = \n odataObject.IsSnapshotEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedOn = \n (odataObject.CreatedOn instanceof Date) ? odataObject.CreatedOn\n : (odataObject.CreatedOn != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ModifiedOn = \n (odataObject.ModifiedOn instanceof Date) ? odataObject.ModifiedOn\n : (odataObject.ModifiedOn != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PublishedOn = \n (odataObject.PublishedOn instanceof Date) ? odataObject.PublishedOn\n : (odataObject.PublishedOn != null) ? jsonLightReadStringPropertyValue(odataObject.PublishedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductCatalogClass'] = ProductCatalogClass;\n \n /**\n * CommerceList entity class.\n */\n export class CommerceListClass implements Entities.CommerceList {\n public Id: number;\n public Name: string;\n public CustomerId: string;\n public CustomerName: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public IsCollaborative: boolean;\n public CreatedDateTime: Date;\n public DueDateTime: Date;\n public CommerceListTypeValue: number;\n public CommerceListLines: Entities.CommerceListLine[];\n public CommerceListContributors: Entities.CommerceListContributor[];\n public CommerceListInvitations: Entities.CommerceListInvitation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsCollaborative = \n odataObject.IsCollaborative;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommerceListTypeValue = \n odataObject.CommerceListTypeValue;\n \n this.CommerceListLines = undefined;\n if (odataObject.CommerceListLines) {\n this.CommerceListLines = [];\n for (var i = 0; i < odataObject.CommerceListLines.length; i++) {\n if (odataObject.CommerceListLines[i] != null) {\n if (odataObject.CommerceListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListLines[i] = new entityDictionary[className](odataObject.CommerceListLines[i])\n }\n } else {\n this.CommerceListLines[i] = new CommerceListLineClass(odataObject.CommerceListLines[i]);\n }\n } else {\n this.CommerceListLines[i] = undefined;\n }\n }\n }\n \n this.CommerceListContributors = undefined;\n if (odataObject.CommerceListContributors) {\n this.CommerceListContributors = [];\n for (var i = 0; i < odataObject.CommerceListContributors.length; i++) {\n if (odataObject.CommerceListContributors[i] != null) {\n if (odataObject.CommerceListContributors[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListContributors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListContributors[i] = new entityDictionary[className](odataObject.CommerceListContributors[i])\n }\n } else {\n this.CommerceListContributors[i] = new CommerceListContributorClass(odataObject.CommerceListContributors[i]);\n }\n } else {\n this.CommerceListContributors[i] = undefined;\n }\n }\n }\n \n this.CommerceListInvitations = undefined;\n if (odataObject.CommerceListInvitations) {\n this.CommerceListInvitations = [];\n for (var i = 0; i < odataObject.CommerceListInvitations.length; i++) {\n if (odataObject.CommerceListInvitations[i] != null) {\n if (odataObject.CommerceListInvitations[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListInvitations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListInvitations[i] = new entityDictionary[className](odataObject.CommerceListInvitations[i])\n }\n } else {\n this.CommerceListInvitations[i] = new CommerceListInvitationClass(odataObject.CommerceListInvitations[i]);\n }\n } else {\n this.CommerceListInvitations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListClass'] = CommerceListClass;\n \n /**\n * ProductList entity class.\n */\n export class ProductListClass implements Entities.ProductList {\n public Id: string;\n public Name: string;\n public CustomerId: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public ProductListTypeValue: number;\n public DataAreaId: string;\n public ProductListLines: Entities.ProductListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductListTypeValue = \n odataObject.ProductListTypeValue;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductListLines = undefined;\n if (odataObject.ProductListLines) {\n this.ProductListLines = [];\n for (var i = 0; i < odataObject.ProductListLines.length; i++) {\n if (odataObject.ProductListLines[i] != null) {\n if (odataObject.ProductListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductListLines[i] = new entityDictionary[className](odataObject.ProductListLines[i])\n }\n } else {\n this.ProductListLines[i] = new ProductListLineClass(odataObject.ProductListLines[i]);\n }\n } else {\n this.ProductListLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListClass'] = ProductListClass;\n \n /**\n * Recommendation entity class.\n */\n export class RecommendationClass implements Entities.Recommendation {\n public Id: string;\n public RecommendationTypeValue: number;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.RecommendationTypeValue = \n odataObject.RecommendationTypeValue;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationClass'] = RecommendationClass;\n \n /**\n * TransferOrder entity class.\n */\n export class TransferOrderClass implements Entities.TransferOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityShipRemaining: number;\n public QuantityReceiveRemaining: number;\n public ShipDate: Date;\n public ReceiveDate: Date;\n public DeliveryModeId: string;\n public OrderLines: Entities.TransferOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityShipRemaining = \n (odataObject.QuantityShipRemaining != null) ? parseFloat(odataObject.QuantityShipRemaining) : undefined;\n \n this.QuantityReceiveRemaining = \n (odataObject.QuantityReceiveRemaining != null) ? parseFloat(odataObject.QuantityReceiveRemaining) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new TransferOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderClass'] = TransferOrderClass;\n \n /**\n * PurchaseOrder entity class.\n */\n export class PurchaseOrderClass implements Entities.PurchaseOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public TotalReceived: number;\n public OrderLines: Entities.PurchaseOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PurchaseOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderClass'] = PurchaseOrderClass;\n \n /**\n * PickingList entity class.\n */\n export class PickingListClass implements Entities.PickingList {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationId: string;\n public DeliveryDate: Date;\n public DeliveryMode: string;\n public TotalReceived: number;\n public OrderLines: Entities.PickingListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PickingListLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListClass'] = PickingListClass;\n \n /**\n * Warehouse entity class.\n */\n export class WarehouseClass implements Entities.Warehouse {\n public InventLocation: string;\n public Name: string;\n public IsWMSEnabled: boolean;\n public DefaultInventoryStatus: string;\n public DefaultReceiptLocation: string;\n public DefaultLocationId: string;\n public DefaultIssueLocation: string;\n public Address: Entities.Address;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InventLocation = \n odataObject.InventLocation;\n \n this.Name = \n odataObject.Name;\n \n this.IsWMSEnabled = \n odataObject.IsWMSEnabled;\n \n this.DefaultInventoryStatus = \n odataObject.DefaultInventoryStatus;\n \n this.DefaultReceiptLocation = \n odataObject.DefaultReceiptLocation;\n \n this.DefaultLocationId = \n odataObject.DefaultLocationId;\n \n this.DefaultIssueLocation = \n odataObject.DefaultIssueLocation;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseClass'] = WarehouseClass;\n \n /**\n * ScanResult entity class.\n */\n export class ScanResultClass implements Entities.ScanResult {\n public ScannedText: string;\n public MaskTypeValue: number;\n public Barcode: Entities.Barcode;\n public Product: Entities.SimpleProduct;\n public LoyaltyCard: Entities.LoyaltyCard;\n public GiftCard: Entities.GiftCard;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Customer: Entities.Customer;\n \n // Navigation properties names\n public static customerPropertyName: string = \"Customer\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ScannedText = \n odataObject.ScannedText;\n \n this.MaskTypeValue = \n odataObject.MaskTypeValue;\n \n if (odataObject.Barcode == null) {\n this.Barcode = undefined;\n } else if (odataObject.Barcode['@odata.type'] == null) {\n this.Barcode = new BarcodeClass(odataObject.Barcode);\n } else {\n var className: string = odataObject.Barcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Barcode = new entityDictionary[className](odataObject.Barcode)\n }\n }\n\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n if (odataObject.LoyaltyCard == null) {\n this.LoyaltyCard = undefined;\n } else if (odataObject.LoyaltyCard['@odata.type'] == null) {\n this.LoyaltyCard = new LoyaltyCardClass(odataObject.LoyaltyCard);\n } else {\n var className: string = odataObject.LoyaltyCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCard = new entityDictionary[className](odataObject.LoyaltyCard)\n }\n }\n\n \n if (odataObject.GiftCard == null) {\n this.GiftCard = undefined;\n } else if (odataObject.GiftCard['@odata.type'] == null) {\n this.GiftCard = new GiftCardClass(odataObject.GiftCard);\n } else {\n var className: string = odataObject.GiftCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.GiftCard = new entityDictionary[className](odataObject.GiftCard)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Customer == null) {\n this.Customer = undefined;\n } else if (odataObject.Customer['@odata.type'] == null) {\n this.Customer = new CustomerClass(odataObject.Customer);\n } else {\n var className: string = odataObject.Customer['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Customer = new entityDictionary[className](odataObject.Customer)\n }\n }\n\n \n }\n }\n entityDictionary['ScanResultClass'] = ScanResultClass;\n \n /**\n * SalesOrderContextualOperationsMap entity class.\n */\n export class SalesOrderContextualOperationsMapClass implements Entities.SalesOrderContextualOperationsMap {\n public Id: string;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public SalesOrder: Entities.SalesOrder;\n \n // Navigation properties names\n public static salesOrderPropertyName: string = \"SalesOrder\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.SalesOrder == null) {\n this.SalesOrder = undefined;\n } else if (odataObject.SalesOrder['@odata.type'] == null) {\n this.SalesOrder = new SalesOrderClass(odataObject.SalesOrder);\n } else {\n var className: string = odataObject.SalesOrder['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesOrder = new entityDictionary[className](odataObject.SalesOrder)\n }\n }\n\n \n }\n }\n entityDictionary['SalesOrderContextualOperationsMapClass'] = SalesOrderContextualOperationsMapClass;\n \n /**\n * InventoryInboundOutboundDocument entity class.\n */\n export class InventoryInboundOutboundDocumentClass implements Entities.InventoryInboundOutboundDocument {\n public WorkDocumentId: string;\n public TerminalId: string;\n public CommitRequestId: string;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public OperationTypeValue: number;\n public StatusValue: number;\n public ReceiptId: string;\n public Note: string;\n public OperationResultMessage: string;\n public DocumentId: string;\n public LongVersion: number;\n public SourceDocument: Entities.InventoryInboundOutboundSourceDocument;\n public SourceDocumentTypeValue: number;\n public CreatedDateTime: Date;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public TransactionDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CommitRequestId = \n odataObject.CommitRequestId;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.Note = \n odataObject.Note;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n if (odataObject.SourceDocument == null) {\n this.SourceDocument = undefined;\n } else if (odataObject.SourceDocument['@odata.type'] == null) {\n this.SourceDocument = new InventoryInboundOutboundSourceDocumentClass(odataObject.SourceDocument);\n } else {\n var className: string = odataObject.SourceDocument['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocument = new entityDictionary[className](odataObject.SourceDocument)\n }\n }\n\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.TransactionDate = \n (odataObject.TransactionDate instanceof Date) ? odataObject.TransactionDate\n : (odataObject.TransactionDate != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentClass'] = InventoryInboundOutboundDocumentClass;\n \n /**\n * BusinessPartner entity class.\n */\n export class BusinessPartnerClass implements Entities.BusinessPartner {\n public BusinessPartnerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerClass'] = BusinessPartnerClass;\n \n /**\n * BusinessPartnerUser entity class.\n */\n export class BusinessPartnerUserClass implements Entities.BusinessPartnerUser {\n public B2BUserId: string;\n public BusinessPartnerId: string;\n public FirstName: string;\n public LastName: string;\n public Email: string;\n public SpendingLimit: number;\n public LastOperationId: string;\n public StatusValue: number;\n public IsAdmin: boolean;\n public AccountNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.B2BUserId = \n odataObject.B2BUserId;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.Email = \n odataObject.Email;\n \n this.SpendingLimit = \n (odataObject.SpendingLimit != null) ? parseFloat(odataObject.SpendingLimit) : undefined;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.IsAdmin = \n odataObject.IsAdmin;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerUserClass'] = BusinessPartnerUserClass;\n \n /**\n * SuspendedCart entity class.\n */\n export class SuspendedCartClass implements Entities.SuspendedCart {\n public Id: string;\n public ReceiptId: string;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Cart: Entities.Cart;\n \n // Navigation properties names\n public static cartPropertyName: string = \"Cart\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Cart == null) {\n this.Cart = undefined;\n } else if (odataObject.Cart['@odata.type'] == null) {\n this.Cart = new CartClass(odataObject.Cart);\n } else {\n var className: string = odataObject.Cart['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Cart = new entityDictionary[className](odataObject.Cart)\n }\n }\n\n \n }\n }\n entityDictionary['SuspendedCartClass'] = SuspendedCartClass;\n \n /**\n * CountryRegion entity class.\n */\n export class CountryRegionClass implements Entities.CountryRegion {\n public CountryRegionId: string;\n public IsoCode: string;\n public ShortName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsoCode = \n odataObject.IsoCode;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionClass'] = CountryRegionClass;\n \n /**\n * ExtensibleEnumeration entity class.\n */\n export class ExtensibleEnumerationClass implements Entities.ExtensibleEnumeration {\n public Name: string;\n public Value: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['ExtensibleEnumerationClass'] = ExtensibleEnumerationClass;\n \n /**\n * ExtensibleEnumeration_1OfT entity class.\n */\n export class ExtensibleEnumeration_1OfTClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleEnumeration_1OfT {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.Framework.ExtensibleEnumeration_1OfT\";\n \n }\n }\n entityDictionary['ExtensibleEnumeration_1OfTClass'] = ExtensibleEnumeration_1OfTClass;\n \n /**\n * ExtensibleTransactionType entity class.\n */\n export class ExtensibleTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleTransactionTypeClass'] = ExtensibleTransactionTypeClass;\n \n /**\n * ExtensibleSalesTransactionType entity class.\n */\n export class ExtensibleSalesTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleSalesTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleSalesTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleSalesTransactionTypeClass'] = ExtensibleSalesTransactionTypeClass;\n \n /**\n * FulfillmentLineStatus entity class.\n */\n export class FulfillmentLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineStatus\";\n \n }\n }\n entityDictionary['FulfillmentLineStatusClass'] = FulfillmentLineStatusClass;\n \n /**\n * FulfillmentLineDeliveryType entity class.\n */\n export class FulfillmentLineDeliveryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineDeliveryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineDeliveryType\";\n \n }\n }\n entityDictionary['FulfillmentLineDeliveryTypeClass'] = FulfillmentLineDeliveryTypeClass;\n \n /**\n * ExtensibleAddressType entity class.\n */\n export class ExtensibleAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAddressType\";\n \n }\n }\n entityDictionary['ExtensibleAddressTypeClass'] = ExtensibleAddressTypeClass;\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity class.\n */\n export class ExtensibleLoyaltyRewardPointActivityEntryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleLoyaltyRewardPointActivityEntryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleLoyaltyRewardPointActivityEntryType\";\n \n }\n }\n entityDictionary['ExtensibleLoyaltyRewardPointActivityEntryTypeClass'] = ExtensibleLoyaltyRewardPointActivityEntryTypeClass;\n \n /**\n * ExtensibleAttributeDataType entity class.\n */\n export class ExtensibleAttributeDataTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAttributeDataType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAttributeDataType\";\n \n }\n }\n entityDictionary['ExtensibleAttributeDataTypeClass'] = ExtensibleAttributeDataTypeClass;\n \n /**\n * ReleasedProductServiceType entity class.\n */\n export class ReleasedProductServiceTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReleasedProductServiceType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReleasedProductServiceType\";\n \n }\n }\n entityDictionary['ReleasedProductServiceTypeClass'] = ReleasedProductServiceTypeClass;\n \n /**\n * ExtensibleElectronicAddressType entity class.\n */\n export class ExtensibleElectronicAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleElectronicAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleElectronicAddressType\";\n \n }\n }\n entityDictionary['ExtensibleElectronicAddressTypeClass'] = ExtensibleElectronicAddressTypeClass;\n \n /**\n * ReceiptOutputFormatType entity class.\n */\n export class ReceiptOutputFormatTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReceiptOutputFormatType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReceiptOutputFormatType\";\n \n }\n }\n entityDictionary['ReceiptOutputFormatTypeClass'] = ReceiptOutputFormatTypeClass;\n \n /**\n * OrderLookupAdditionalCriteriaType entity class.\n */\n export class OrderLookupAdditionalCriteriaTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.OrderLookupAdditionalCriteriaType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrderLookupAdditionalCriteriaType\";\n \n }\n }\n entityDictionary['OrderLookupAdditionalCriteriaTypeClass'] = OrderLookupAdditionalCriteriaTypeClass;\n \n /**\n * Address entity class.\n */\n export class AddressClass implements Entities.Address {\n public Name: string;\n public Id: string;\n public FullAddress: string;\n public RecordId: number;\n public Street: string;\n public StreetNumber: string;\n public County: string;\n public CountyName: string;\n public City: string;\n public DistrictName: string;\n public State: string;\n public StateName: string;\n public ZipCode: string;\n public ThreeLetterISORegionName: string;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Email: string;\n public EmailContent: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public TwoLetterISORegionName: string;\n public Deactivate: boolean;\n public AttentionTo: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public TaxGroup: string;\n public AddressTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public PartyNumber: string;\n public IsAsyncAddress: boolean;\n public DirectoryPartyTableRecordId: number;\n public DirectoryPartyLocationRecordId: number;\n public DirectoryPartyLocationRoleRecordId: number;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public LogisticsLocationExtRecordId: number;\n public LogisticsLocationRoleRecordId: number;\n public PhoneLogisticsLocationRecordId: number;\n public PhoneLogisticsLocationId: string;\n public EmailLogisticsLocationRecordId: number;\n public EmailLogisticsLocationId: string;\n public UrlLogisticsLocationRecordId: number;\n public UrlLogisticsLocationId: string;\n public ExpireRecordId: number;\n public SortOrder: number;\n public RoleCount: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Id = \n odataObject.Id;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.ZipCode = \n odataObject.ZipCode;\n \n this.ThreeLetterISORegionName = \n odataObject.ThreeLetterISORegionName;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Email = \n odataObject.Email;\n \n this.EmailContent = \n odataObject.EmailContent;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.TwoLetterISORegionName = \n odataObject.TwoLetterISORegionName;\n \n this.Deactivate = \n odataObject.Deactivate;\n \n this.AttentionTo = \n odataObject.AttentionTo;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.IsAsyncAddress = \n odataObject.IsAsyncAddress;\n \n this.DirectoryPartyTableRecordId = \n (odataObject.DirectoryPartyTableRecordId != null) ? parseInt(odataObject.DirectoryPartyTableRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRecordId = \n (odataObject.DirectoryPartyLocationRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRoleRecordId = \n (odataObject.DirectoryPartyLocationRoleRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRoleRecordId, 10) : undefined;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.LogisticsLocationExtRecordId = \n (odataObject.LogisticsLocationExtRecordId != null) ? parseInt(odataObject.LogisticsLocationExtRecordId, 10) : undefined;\n \n this.LogisticsLocationRoleRecordId = \n (odataObject.LogisticsLocationRoleRecordId != null) ? parseInt(odataObject.LogisticsLocationRoleRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationRecordId = \n (odataObject.PhoneLogisticsLocationRecordId != null) ? parseInt(odataObject.PhoneLogisticsLocationRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationId = \n odataObject.PhoneLogisticsLocationId;\n \n this.EmailLogisticsLocationRecordId = \n (odataObject.EmailLogisticsLocationRecordId != null) ? parseInt(odataObject.EmailLogisticsLocationRecordId, 10) : undefined;\n \n this.EmailLogisticsLocationId = \n odataObject.EmailLogisticsLocationId;\n \n this.UrlLogisticsLocationRecordId = \n (odataObject.UrlLogisticsLocationRecordId != null) ? parseInt(odataObject.UrlLogisticsLocationRecordId, 10) : undefined;\n \n this.UrlLogisticsLocationId = \n odataObject.UrlLogisticsLocationId;\n \n this.ExpireRecordId = \n (odataObject.ExpireRecordId != null) ? parseInt(odataObject.ExpireRecordId, 10) : undefined;\n \n this.SortOrder = \n odataObject.SortOrder;\n \n this.RoleCount = \n odataObject.RoleCount;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressClass'] = AddressClass;\n \n /**\n * CustomerAffiliation entity class.\n */\n export class CustomerAffiliationClass implements Entities.CustomerAffiliation {\n public RecordId: number;\n public RetailAffiliationId: number;\n public Name: string;\n public Description: string;\n public HideInChannels: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RetailAffiliationId = \n (odataObject.RetailAffiliationId != null) ? parseInt(odataObject.RetailAffiliationId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.HideInChannels = \n odataObject.HideInChannels;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAffiliationClass'] = CustomerAffiliationClass;\n \n /**\n * CustomerBalances entity class.\n */\n export class CustomerBalancesClass implements Entities.CustomerBalances {\n public Balance: number;\n public PendingBalance: number;\n public CreditLimit: number;\n public InvoiceAccountBalance: number;\n public InvoiceAccountPendingBalance: number;\n public InvoiceAccountCreditLimit: number;\n public OpenInvoiceBalance: number;\n public OpenInvoiceCount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.PendingBalance = \n (odataObject.PendingBalance != null) ? parseFloat(odataObject.PendingBalance) : undefined;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.InvoiceAccountBalance = \n (odataObject.InvoiceAccountBalance != null) ? parseFloat(odataObject.InvoiceAccountBalance) : undefined;\n \n this.InvoiceAccountPendingBalance = \n (odataObject.InvoiceAccountPendingBalance != null) ? parseFloat(odataObject.InvoiceAccountPendingBalance) : undefined;\n \n this.InvoiceAccountCreditLimit = \n (odataObject.InvoiceAccountCreditLimit != null) ? parseFloat(odataObject.InvoiceAccountCreditLimit) : undefined;\n \n this.OpenInvoiceBalance = \n (odataObject.OpenInvoiceBalance != null) ? parseFloat(odataObject.OpenInvoiceBalance) : undefined;\n \n this.OpenInvoiceCount = \n odataObject.OpenInvoiceCount;\n \n }\n }\n entityDictionary['CustomerBalancesClass'] = CustomerBalancesClass;\n \n /**\n * GlobalCustomer entity class.\n */\n export class GlobalCustomerClass implements Entities.GlobalCustomer {\n public PartyNumber: string;\n public RecordId: number;\n public IsAsyncCustomer: boolean;\n public AccountNumber: string;\n public FullName: string;\n public FullAddress: string;\n public Phone: string;\n public Email: string;\n public CustomerTypeValue: number;\n public Images: Entities.MediaLocation[];\n public OfflineImage: string;\n public IsB2b: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.FullName = \n odataObject.FullName;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GlobalCustomerClass'] = GlobalCustomerClass;\n \n /**\n * AttributeValue entity class.\n */\n export class AttributeValueClass implements Entities.AttributeValue {\n public Name: string;\n public KeyName: string;\n public UnitOfMeasureSymbol: string;\n public DataTypeValue: number;\n public BooleanValue: boolean;\n public DateTimeOffsetValue: Date;\n public FloatValue: number;\n public IntegerValue: number;\n public TextValue: string;\n public CurrencyValue: number;\n public CurrencyCode: string;\n public AttributeValueId: number;\n public RecordId: number;\n public Swatches: Entities.AttributeSwatch[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FloatValue = \n (odataObject.FloatValue != null) ? parseFloat(odataObject.FloatValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.TextValue = \n odataObject.TextValue;\n \n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Swatches = undefined;\n if (odataObject.Swatches) {\n this.Swatches = [];\n for (var i = 0; i < odataObject.Swatches.length; i++) {\n if (odataObject.Swatches[i] != null) {\n if (odataObject.Swatches[i]['@odata.type'] != null) {\n var className: string = odataObject.Swatches[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Swatches[i] = new entityDictionary[className](odataObject.Swatches[i])\n }\n } else {\n this.Swatches[i] = new AttributeSwatchClass(odataObject.Swatches[i]);\n }\n } else {\n this.Swatches[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueClass'] = AttributeValueClass;\n \n /**\n * AttributeValueBase entity class.\n */\n export class AttributeValueBaseClass implements Entities.AttributeValueBase {\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueBaseClass'] = AttributeValueBaseClass;\n \n /**\n * Barcode entity class.\n */\n export class BarcodeClass implements Entities.Barcode {\n public BarcodeId: string;\n public BarcodePrice: number;\n public Quantity: number;\n public CustomerId: string;\n public EmployeeId: string;\n public SalespersonId: string;\n public EANLicenseId: string;\n public DataEntry: string;\n public DiscountCode: string;\n public GiftCardNumber: string;\n public LoyaltyCardNumber: string;\n public ItemBarcode: Entities.ItemBarcode;\n public EntryMethodTypeValue: number;\n public ItemType: number;\n public EnterDimensions: boolean;\n public ItemGroupId: string;\n public ItemDepartmentId: string;\n public ScaleItem: boolean;\n public ZeroPriceValid: boolean;\n public NegativeQuantity: boolean;\n public DiscountNotAllowed: boolean;\n public DateToBeBlocked: Date;\n public DateToBeActivated: Date;\n public CheckDigitValidated: boolean;\n public CouponId: string;\n public Message: string;\n public LineDiscountGroup: string;\n public MultilineDiscountGroup: string;\n public IncludedInTotalDiscount: boolean;\n public CostPrice: number;\n public BatchId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BarcodeId = \n odataObject.BarcodeId;\n \n this.BarcodePrice = \n (odataObject.BarcodePrice != null) ? parseFloat(odataObject.BarcodePrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.EmployeeId = \n odataObject.EmployeeId;\n \n this.SalespersonId = \n odataObject.SalespersonId;\n \n this.EANLicenseId = \n odataObject.EANLicenseId;\n \n this.DataEntry = \n odataObject.DataEntry;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.GiftCardNumber = \n odataObject.GiftCardNumber;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n if (odataObject.ItemBarcode == null) {\n this.ItemBarcode = undefined;\n } else if (odataObject.ItemBarcode['@odata.type'] == null) {\n this.ItemBarcode = new ItemBarcodeClass(odataObject.ItemBarcode);\n } else {\n var className: string = odataObject.ItemBarcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemBarcode = new entityDictionary[className](odataObject.ItemBarcode)\n }\n }\n\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.EnterDimensions = \n odataObject.EnterDimensions;\n \n this.ItemGroupId = \n odataObject.ItemGroupId;\n \n this.ItemDepartmentId = \n odataObject.ItemDepartmentId;\n \n this.ScaleItem = \n odataObject.ScaleItem;\n \n this.ZeroPriceValid = \n odataObject.ZeroPriceValid;\n \n this.NegativeQuantity = \n odataObject.NegativeQuantity;\n \n this.DiscountNotAllowed = \n odataObject.DiscountNotAllowed;\n \n this.DateToBeBlocked = \n (odataObject.DateToBeBlocked instanceof Date) ? odataObject.DateToBeBlocked\n : (odataObject.DateToBeBlocked != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeBlocked, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBeActivated = \n (odataObject.DateToBeActivated instanceof Date) ? odataObject.DateToBeActivated\n : (odataObject.DateToBeActivated != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeActivated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CheckDigitValidated = \n odataObject.CheckDigitValidated;\n \n this.CouponId = \n odataObject.CouponId;\n \n this.Message = \n odataObject.Message;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.IncludedInTotalDiscount = \n odataObject.IncludedInTotalDiscount;\n \n this.CostPrice = \n (odataObject.CostPrice != null) ? parseFloat(odataObject.CostPrice) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BarcodeClass'] = BarcodeClass;\n \n /**\n * ItemBarcode entity class.\n */\n export class ItemBarcodeClass implements Entities.ItemBarcode {\n public RecordId: number;\n public ItemId: string;\n public Description: string;\n public BarcodeSetupId: string;\n public ItemBarcodeValue: string;\n public InventoryDimensionId: string;\n public IsBlocked: boolean;\n public Display: boolean;\n public VariantId: string;\n public UnitId: string;\n public UseForInput: boolean;\n public UseForPrinting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.BarcodeSetupId = \n odataObject.BarcodeSetupId;\n \n this.ItemBarcodeValue = \n odataObject.ItemBarcodeValue;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.Display = \n odataObject.Display;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.UseForInput = \n odataObject.UseForInput;\n \n this.UseForPrinting = \n odataObject.UseForPrinting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemBarcodeClass'] = ItemBarcodeClass;\n \n /**\n * ButtonGrid entity class.\n */\n export class ButtonGridClass implements Entities.ButtonGrid {\n public Id: string;\n public Name: string;\n public DefaultColor: number;\n public SpaceBetweenButtonsInPixels: number;\n public Buttons: Entities.ButtonGridButton[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultColor = \n odataObject.DefaultColor;\n \n this.SpaceBetweenButtonsInPixels = \n odataObject.SpaceBetweenButtonsInPixels;\n \n this.Buttons = undefined;\n if (odataObject.Buttons) {\n this.Buttons = [];\n for (var i = 0; i < odataObject.Buttons.length; i++) {\n if (odataObject.Buttons[i] != null) {\n if (odataObject.Buttons[i]['@odata.type'] != null) {\n var className: string = odataObject.Buttons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Buttons[i] = new entityDictionary[className](odataObject.Buttons[i])\n }\n } else {\n this.Buttons[i] = new ButtonGridButtonClass(odataObject.Buttons[i]);\n }\n } else {\n this.Buttons[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridClass'] = ButtonGridClass;\n \n /**\n * GetButtonGridsByIdsCriteria entity class.\n */\n export class GetButtonGridsByIdsCriteriaClass implements Entities.GetButtonGridsByIdsCriteria {\n public ButtonGridIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridIds = undefined;\n if (odataObject.ButtonGridIds) {\n this.ButtonGridIds = [];\n for (var i = 0; i < odataObject.ButtonGridIds.length; i++) {\n if (odataObject.ButtonGridIds[i] != null) {\n this.ButtonGridIds[i] = \n odataObject.ButtonGridIds[i];\n } else {\n this.ButtonGridIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GetButtonGridsByIdsCriteriaClass'] = GetButtonGridsByIdsCriteriaClass;\n \n /**\n * CartLine entity class.\n */\n export class CartLineClass implements Entities.CartLine {\n public LineId: string;\n public TaxOverrideCode: string;\n public ItemId: string;\n public Barcode: string;\n public EntryMethodTypeValue: number;\n public Description: string;\n public InventoryDimensionId: string;\n public Comment: string;\n public ProductId: number;\n public WarehouseId: string;\n public Quantity: number;\n public Price: number;\n public ExtendedPrice: number;\n public TaxAmount: number;\n public ItemTaxGroupId: string;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountAmountWithoutTax: number;\n public DiscountAmount: number;\n public LineDiscount: number;\n public LinePercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public UnitOfMeasureSymbol: string;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public WarrantiedId: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public IsVoided: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public IsGiftCardLine: boolean;\n public IsPriceKeyedIn: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public SalesStatusValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityCanceled: number;\n public FulfillmentStoreId: string;\n public SerialNumber: string;\n public ElectronicDeliveryEmail: string;\n public ElectronicDeliveryEmailContent: string;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public GiftCardBalance: number;\n public LineVersion: number;\n public PromotionLines: string[];\n public PriceLines: Entities.PriceLine[];\n public DiscountLines: Entities.DiscountLine[];\n public RelatedDiscountedLineIds: string[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TaxRatePercent: number;\n public IsCustomerAccountDeposit: boolean;\n public LinkedParentLineId: string;\n public QuantityReturnable: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n public LineNumber: number;\n public CommissionSalesGroup: string;\n public TrackingId: string;\n public StaffId: string;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public CatalogId: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public WarehouseLocation: string;\n public DetailedLineStatusValue: number;\n public SalesAgreementLineRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.Comment = \n odataObject.Comment;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ExtendedPrice = \n (odataObject.ExtendedPrice != null) ? parseFloat(odataObject.ExtendedPrice) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.WarrantiedId = \n odataObject.WarrantiedId;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ElectronicDeliveryEmail = \n odataObject.ElectronicDeliveryEmail;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['CartLineClass'] = CartLineClass;\n \n /**\n * ThirdPartyGiftCardInfo entity class.\n */\n export class ThirdPartyGiftCardInfoClass implements Entities.ThirdPartyGiftCardInfo {\n public Amount: number;\n public Authorization: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ThirdPartyGiftCardInfoClass'] = ThirdPartyGiftCardInfoClass;\n \n /**\n * CardTypeInfo entity class.\n */\n export class CardTypeInfoClass implements Entities.CardTypeInfo {\n public RecordId: number;\n public TypeId: string;\n public Name: string;\n public PaymentMethodId: string;\n public CardTypeValue: number;\n public Issuer: string;\n public NumberFrom: string;\n public NumberTo: string;\n public CashBackLimit: number;\n public AllowManualInput: boolean;\n public CheckModulus: boolean;\n public HasTenderDiscount: boolean;\n public IsPinRequired: boolean;\n public IsExpirationDateRequired: boolean;\n public ConnectorName: string;\n public PaymentProcessorMethod: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.Name = \n odataObject.Name;\n \n this.PaymentMethodId = \n odataObject.PaymentMethodId;\n \n this.CardTypeValue = \n odataObject.CardTypeValue;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.NumberFrom = \n odataObject.NumberFrom;\n \n this.NumberTo = \n odataObject.NumberTo;\n \n this.CashBackLimit = \n (odataObject.CashBackLimit != null) ? parseFloat(odataObject.CashBackLimit) : undefined;\n \n this.AllowManualInput = \n odataObject.AllowManualInput;\n \n this.CheckModulus = \n odataObject.CheckModulus;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.IsPinRequired = \n odataObject.IsPinRequired;\n \n this.IsExpirationDateRequired = \n odataObject.IsExpirationDateRequired;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.PaymentProcessorMethod = \n odataObject.PaymentProcessorMethod;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CardTypeInfoClass'] = CardTypeInfoClass;\n \n /**\n * CashDeclaration entity class.\n */\n export class CashDeclarationClass implements Entities.CashDeclaration {\n public RecordId: number;\n public Currency: string;\n public Amount: number;\n public CashTypeValue: number;\n public IncludeInQuickPayShortcuts: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashTypeValue = \n odataObject.CashTypeValue;\n \n this.IncludeInQuickPayShortcuts = \n odataObject.IncludeInQuickPayShortcuts;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CashDeclarationClass'] = CashDeclarationClass;\n \n /**\n * IncomeExpenseAccount entity class.\n */\n export class IncomeExpenseAccountClass implements Entities.IncomeExpenseAccount {\n public Amount: number;\n public AccountNumber: string;\n public AccountName: string;\n public AccountNameAlias: string;\n public AccountTypeValue: number;\n public Quantity: number;\n public Message1Line: string;\n public Message2Line: string;\n public SlipText1Line: string;\n public SlipText2Line: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.AccountName = \n odataObject.AccountName;\n \n this.AccountNameAlias = \n odataObject.AccountNameAlias;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Message1Line = \n odataObject.Message1Line;\n \n this.Message2Line = \n odataObject.Message2Line;\n \n this.SlipText1Line = \n odataObject.SlipText1Line;\n \n this.SlipText2Line = \n odataObject.SlipText2Line;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseAccountClass'] = IncomeExpenseAccountClass;\n \n /**\n * IncomeExpenseLine entity class.\n */\n export class IncomeExpenseLineClass implements Entities.IncomeExpenseLine {\n public Amount: number;\n public IncomeExpenseAccount: string;\n public StoreNumber: string;\n public AccountTypeValue: number;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.IncomeExpenseAccount = \n odataObject.IncomeExpenseAccount;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseLineClass'] = IncomeExpenseLineClass;\n \n /**\n * CartTenderLine entity class.\n */\n export class CartTenderLineClass implements Entities.CartTenderLine {\n public PaymentCard: Entities.PaymentCard;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public CardPaymentAcceptResult: Entities.CardPaymentAcceptResult;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.PaymentCard == null) {\n this.PaymentCard = undefined;\n } else if (odataObject.PaymentCard['@odata.type'] == null) {\n this.PaymentCard = new PaymentCardClass(odataObject.PaymentCard);\n } else {\n var className: string = odataObject.PaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentCard = new entityDictionary[className](odataObject.PaymentCard)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n if (odataObject.CardPaymentAcceptResult == null) {\n this.CardPaymentAcceptResult = undefined;\n } else if (odataObject.CardPaymentAcceptResult['@odata.type'] == null) {\n this.CardPaymentAcceptResult = new CardPaymentAcceptResultClass(odataObject.CardPaymentAcceptResult);\n } else {\n var className: string = odataObject.CardPaymentAcceptResult['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardPaymentAcceptResult = new entityDictionary[className](odataObject.CardPaymentAcceptResult)\n }\n }\n\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartTenderLineClass'] = CartTenderLineClass;\n \n /**\n * ChargeLine entity class.\n */\n export class ChargeLineClass implements Entities.ChargeLine {\n public ChargeLineId: string;\n public ChargeCode: string;\n public CurrencyCode: string;\n public ModuleTypeValue: number;\n public IsHeaderChargeProrated: boolean;\n public ChargeTypeValue: number;\n public ChargeMethodValue: number;\n public CalculatedAmount: number;\n public Value: number;\n public Description: string;\n public TransactionId: string;\n public MarkupAutoLineRecordId: number;\n public MarkupAutoTableRecId: number;\n public SaleLineNumber: number;\n public FromAmount: number;\n public ToAmount: number;\n public Keep: number;\n public AmountRefunded: number;\n public ChargeLineOverrides: Entities.ChargeLineOverride[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public IsOverridden: boolean;\n public IsInvoiced: boolean;\n public CalculatedProratedAmount: number;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeLineId = \n odataObject.ChargeLineId;\n \n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.IsHeaderChargeProrated = \n odataObject.IsHeaderChargeProrated;\n \n this.ChargeTypeValue = \n odataObject.ChargeTypeValue;\n \n this.ChargeMethodValue = \n odataObject.ChargeMethodValue;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.MarkupAutoLineRecordId = \n (odataObject.MarkupAutoLineRecordId != null) ? parseInt(odataObject.MarkupAutoLineRecordId, 10) : undefined;\n \n this.MarkupAutoTableRecId = \n (odataObject.MarkupAutoTableRecId != null) ? parseInt(odataObject.MarkupAutoTableRecId, 10) : undefined;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.FromAmount = \n (odataObject.FromAmount != null) ? parseFloat(odataObject.FromAmount) : undefined;\n \n this.ToAmount = \n (odataObject.ToAmount != null) ? parseFloat(odataObject.ToAmount) : undefined;\n \n this.Keep = \n odataObject.Keep;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.ChargeLineOverrides = undefined;\n if (odataObject.ChargeLineOverrides) {\n this.ChargeLineOverrides = [];\n for (var i = 0; i < odataObject.ChargeLineOverrides.length; i++) {\n if (odataObject.ChargeLineOverrides[i] != null) {\n if (odataObject.ChargeLineOverrides[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLineOverrides[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLineOverrides[i] = new entityDictionary[className](odataObject.ChargeLineOverrides[i])\n }\n } else {\n this.ChargeLineOverrides[i] = new ChargeLineOverrideClass(odataObject.ChargeLineOverrides[i]);\n }\n } else {\n this.ChargeLineOverrides[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.IsOverridden = \n odataObject.IsOverridden;\n \n this.IsInvoiced = \n odataObject.IsInvoiced;\n \n this.CalculatedProratedAmount = \n (odataObject.CalculatedProratedAmount != null) ? parseFloat(odataObject.CalculatedProratedAmount) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeLineClass'] = ChargeLineClass;\n \n /**\n * CityInfo entity class.\n */\n export class CityInfoClass implements Entities.CityInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CityInfoClass'] = CityInfoClass;\n \n /**\n * CommissionSalesGroup entity class.\n */\n export class CommissionSalesGroupClass implements Entities.CommissionSalesGroup {\n public GroupId: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.GroupId = \n odataObject.GroupId;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommissionSalesGroupClass'] = CommissionSalesGroupClass;\n \n /**\n * ContactInformation entity class.\n */\n export class ContactInformationClass implements Entities.ContactInformation {\n public Value: string;\n public ContactInformationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ContactInformationTypeValue = \n odataObject.ContactInformationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInformationClass'] = ContactInformationClass;\n \n /**\n * AttributeCategory entity class.\n */\n export class AttributeCategoryClass implements Entities.AttributeCategory {\n public Value: Entities.CommercePropertyValue;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeCategoryClass'] = AttributeCategoryClass;\n \n /**\n * AttributeProduct entity class.\n */\n export class AttributeProductClass implements Entities.AttributeProduct {\n public MetadataFlags: Entities.ProductAttributeMetadataFlags;\n public IsDimension: boolean;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.MetadataFlags == null) {\n this.MetadataFlags = undefined;\n } else if (odataObject.MetadataFlags['@odata.type'] == null) {\n this.MetadataFlags = new ProductAttributeMetadataFlagsClass(odataObject.MetadataFlags);\n } else {\n var className: string = odataObject.MetadataFlags['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataFlags = new entityDictionary[className](odataObject.MetadataFlags)\n }\n }\n\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeProductClass'] = AttributeProductClass;\n \n /**\n * ProductComparisonEntry entity class.\n */\n export class ProductComparisonEntryClass implements Entities.ProductComparisonEntry {\n public ProductId: number;\n public AttributeValue: Entities.AttributeValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new AttributeValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonEntryClass'] = ProductComparisonEntryClass;\n \n /**\n * ProductComparisonLine entity class.\n */\n export class ProductComparisonLineClass implements Entities.ProductComparisonLine {\n public AttributeRecordId: number;\n public AttributeName: string;\n public ProductAttributeComparisonEntries: Entities.ProductComparisonEntry[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.AttributeName = \n odataObject.AttributeName;\n \n this.ProductAttributeComparisonEntries = undefined;\n if (odataObject.ProductAttributeComparisonEntries) {\n this.ProductAttributeComparisonEntries = [];\n for (var i = 0; i < odataObject.ProductAttributeComparisonEntries.length; i++) {\n if (odataObject.ProductAttributeComparisonEntries[i] != null) {\n if (odataObject.ProductAttributeComparisonEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductAttributeComparisonEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductAttributeComparisonEntries[i] = new entityDictionary[className](odataObject.ProductAttributeComparisonEntries[i])\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = new ProductComparisonEntryClass(odataObject.ProductAttributeComparisonEntries[i]);\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonLineClass'] = ProductComparisonLineClass;\n \n /**\n * CustomerSearchField entity class.\n */\n export class CustomerSearchFieldClass implements Entities.CustomerSearchField {\n public IsShortcut: boolean;\n public DisplayName: string;\n public CanBeRefined: boolean;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsShortcut = \n odataObject.IsShortcut;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.CanBeRefined = \n odataObject.CanBeRefined;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchFieldClass'] = CustomerSearchFieldClass;\n \n /**\n * CustomerSearchByFieldCriteria entity class.\n */\n export class CustomerSearchByFieldCriteriaClass implements Entities.CustomerSearchByFieldCriteria {\n public Criteria: Entities.CustomerSearchByFieldCriterion[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Criteria = undefined;\n if (odataObject.Criteria) {\n this.Criteria = [];\n for (var i = 0; i < odataObject.Criteria.length; i++) {\n if (odataObject.Criteria[i] != null) {\n if (odataObject.Criteria[i]['@odata.type'] != null) {\n var className: string = odataObject.Criteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Criteria[i] = new entityDictionary[className](odataObject.Criteria[i])\n }\n } else {\n this.Criteria[i] = new CustomerSearchByFieldCriterionClass(odataObject.Criteria[i]);\n }\n } else {\n this.Criteria[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriteriaClass'] = CustomerSearchByFieldCriteriaClass;\n \n /**\n * CustomerSearchByFieldCriterion entity class.\n */\n export class CustomerSearchByFieldCriterionClass implements Entities.CustomerSearchByFieldCriterion {\n public SearchTerm: string;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchTerm = \n odataObject.SearchTerm;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriterionClass'] = CustomerSearchByFieldCriterionClass;\n \n /**\n * CustomerSearchFieldType entity class.\n */\n export class CustomerSearchFieldTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.CustomerSearchFieldType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerSearchFieldType\";\n \n }\n }\n entityDictionary['CustomerSearchFieldTypeClass'] = CustomerSearchFieldTypeClass;\n \n /**\n * OrderShipments entity class.\n */\n export class OrderShipmentsClass implements Entities.OrderShipments {\n public SalesId: string;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public StatusValue: number;\n public CurrencyCode: string;\n public CustomerId: string;\n public DeliveryMode: string;\n public GrossAmount: number;\n public InventoryLocationId: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public TotalAmount: number;\n public TaxAmount: number;\n public SalesLines: Entities.SalesLine[];\n public Shipments: Entities.Shipment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderShipmentsClass'] = OrderShipmentsClass;\n \n /**\n * Shipment entity class.\n */\n export class ShipmentClass implements Entities.Shipment {\n public SalesId: string;\n public ShipmentId: string;\n public DeliveryAddress: Entities.Address;\n public ShipDate: Date;\n public DeliveryMode: string;\n public TermsOfDelivery: string;\n public WeightUnit: string;\n public TrackingNumber: string;\n public TrackingUrl: string;\n public LatestCarrierTrackingInfo: Entities.TrackingInfo;\n public CarrierId: string;\n public CarrierName: string;\n public ShippingWeight: number;\n public ShipmentLines: Entities.ShipmentLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ShipmentId = \n odataObject.ShipmentId;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TermsOfDelivery = \n odataObject.TermsOfDelivery;\n \n this.WeightUnit = \n odataObject.WeightUnit;\n \n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n if (odataObject.LatestCarrierTrackingInfo == null) {\n this.LatestCarrierTrackingInfo = undefined;\n } else if (odataObject.LatestCarrierTrackingInfo['@odata.type'] == null) {\n this.LatestCarrierTrackingInfo = new TrackingInfoClass(odataObject.LatestCarrierTrackingInfo);\n } else {\n var className: string = odataObject.LatestCarrierTrackingInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LatestCarrierTrackingInfo = new entityDictionary[className](odataObject.LatestCarrierTrackingInfo)\n }\n }\n\n \n this.CarrierId = \n odataObject.CarrierId;\n \n this.CarrierName = \n odataObject.CarrierName;\n \n this.ShippingWeight = \n (odataObject.ShippingWeight != null) ? parseFloat(odataObject.ShippingWeight) : undefined;\n \n this.ShipmentLines = undefined;\n if (odataObject.ShipmentLines) {\n this.ShipmentLines = [];\n for (var i = 0; i < odataObject.ShipmentLines.length; i++) {\n if (odataObject.ShipmentLines[i] != null) {\n if (odataObject.ShipmentLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentLines[i] = new entityDictionary[className](odataObject.ShipmentLines[i])\n }\n } else {\n this.ShipmentLines[i] = new ShipmentLineClass(odataObject.ShipmentLines[i]);\n }\n } else {\n this.ShipmentLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentClass'] = ShipmentClass;\n \n /**\n * ShipmentLine entity class.\n */\n export class ShipmentLineClass implements Entities.ShipmentLine {\n public ShipmentLineId: string;\n public ItemId: string;\n public Description: string;\n public InventDimId: string;\n public OrderedQuantity: number;\n public DeliveredQuantity: number;\n public RemainingQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 LineNumber: number;\n public SavedEffectiveAmount: number;\n public Percentage: number;\n public DealPrice: number;\n public DiscountLineTypeValue: number;\n public ManualDiscountTypeValue: number;\n public CustomerDiscountTypeValue: number;\n public PeriodicDiscountTypeValue: number;\n public DiscountApplicationGroup: string;\n public ConcurrencyModeValue: number;\n public IsCompoundable: boolean;\n public DiscountCode: string;\n public PricingPriorityNumber: number;\n public PricingAttributeCombinationPriority: number;\n public IsDiscountCodeRequired: boolean;\n public ThresholdAmountRequired: number;\n public BundleId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.DiscountCost = \n (odataObject.DiscountCost != null) ? parseFloat(odataObject.DiscountCost) : undefined;\n \n this.EffectiveAmount = \n (odataObject.EffectiveAmount != null) ? parseFloat(odataObject.EffectiveAmount) : undefined;\n \n this.EffectivePercentage = \n (odataObject.EffectivePercentage != null) ? parseFloat(odataObject.EffectivePercentage) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.SavedEffectiveAmount = \n (odataObject.SavedEffectiveAmount != null) ? parseFloat(odataObject.SavedEffectiveAmount) : undefined;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.DealPrice = \n (odataObject.DealPrice != null) ? parseFloat(odataObject.DealPrice) : undefined;\n \n this.DiscountLineTypeValue = \n odataObject.DiscountLineTypeValue;\n \n this.ManualDiscountTypeValue = \n odataObject.ManualDiscountTypeValue;\n \n this.CustomerDiscountTypeValue = \n odataObject.CustomerDiscountTypeValue;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.DiscountApplicationGroup = \n odataObject.DiscountApplicationGroup;\n \n this.ConcurrencyModeValue = \n odataObject.ConcurrencyModeValue;\n \n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.PricingAttributeCombinationPriority = \n (odataObject.PricingAttributeCombinationPriority != null) ? parseFloat(odataObject.PricingAttributeCombinationPriority) : undefined;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ThresholdAmountRequired = \n (odataObject.ThresholdAmountRequired != null) ? parseFloat(odataObject.ThresholdAmountRequired) : undefined;\n \n this.BundleId = \n odataObject.BundleId;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountLineClass'] = DiscountLineClass;\n \n /**\n * EmployeePermissions entity class.\n */\n export class EmployeePermissionsClass implements Entities.EmployeePermissions {\n public PriceOverrideRestrictionValue: number;\n public AllowPriceOverride: number;\n public MaximumDiscountPercentage: number;\n public MaximumLineDiscountAmount: number;\n public MaximumLineReturnAmount: number;\n public MaximumTotalDiscountAmount: number;\n public MaximumTotalDiscountPercentage: number;\n public MaxTotalReturnAmount: number;\n public StaffId: string;\n public Roles: string[];\n public AllowUseSharedShift: boolean;\n public AllowManageSharedShift: boolean;\n public AllowTaskGuides: boolean;\n public AllowSaleOutsideAssortment: boolean;\n public AllowPrintingReceiptCopy: string;\n public AllowSkipFiscalRegistration: boolean;\n public AllowSkipRegistrationOrMarkAsRegistered: boolean;\n public AllowPostponeRegistration: boolean;\n public AllowCreateTransferOrder: boolean;\n public AllowAcceptOrder: boolean;\n public AllowTaskManagement: boolean;\n public AllowRejectOrder: boolean;\n public AllowMassActivation: boolean;\n public AllowPostInventoryAdjustment: boolean;\n public AllowPostStockCounting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PriceOverrideRestrictionValue = \n odataObject.PriceOverrideRestrictionValue;\n \n this.AllowPriceOverride = \n odataObject.AllowPriceOverride;\n \n this.MaximumDiscountPercentage = \n (odataObject.MaximumDiscountPercentage != null) ? parseFloat(odataObject.MaximumDiscountPercentage) : undefined;\n \n this.MaximumLineDiscountAmount = \n (odataObject.MaximumLineDiscountAmount != null) ? parseFloat(odataObject.MaximumLineDiscountAmount) : undefined;\n \n this.MaximumLineReturnAmount = \n (odataObject.MaximumLineReturnAmount != null) ? parseFloat(odataObject.MaximumLineReturnAmount) : undefined;\n \n this.MaximumTotalDiscountAmount = \n (odataObject.MaximumTotalDiscountAmount != null) ? parseFloat(odataObject.MaximumTotalDiscountAmount) : undefined;\n \n this.MaximumTotalDiscountPercentage = \n (odataObject.MaximumTotalDiscountPercentage != null) ? parseFloat(odataObject.MaximumTotalDiscountPercentage) : undefined;\n \n this.MaxTotalReturnAmount = \n (odataObject.MaxTotalReturnAmount != null) ? parseFloat(odataObject.MaxTotalReturnAmount) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.Roles = undefined;\n if (odataObject.Roles) {\n this.Roles = [];\n for (var i = 0; i < odataObject.Roles.length; i++) {\n if (odataObject.Roles[i] != null) {\n this.Roles[i] = \n odataObject.Roles[i];\n } else {\n this.Roles[i] = undefined;\n }\n }\n }\n \n this.AllowUseSharedShift = \n odataObject.AllowUseSharedShift;\n \n this.AllowManageSharedShift = \n odataObject.AllowManageSharedShift;\n \n this.AllowTaskGuides = \n odataObject.AllowTaskGuides;\n \n this.AllowSaleOutsideAssortment = \n odataObject.AllowSaleOutsideAssortment;\n \n this.AllowPrintingReceiptCopy = \n odataObject.AllowPrintingReceiptCopy;\n \n this.AllowSkipFiscalRegistration = \n odataObject.AllowSkipFiscalRegistration;\n \n this.AllowSkipRegistrationOrMarkAsRegistered = \n odataObject.AllowSkipRegistrationOrMarkAsRegistered;\n \n this.AllowPostponeRegistration = \n odataObject.AllowPostponeRegistration;\n \n this.AllowCreateTransferOrder = \n odataObject.AllowCreateTransferOrder;\n \n this.AllowAcceptOrder = \n odataObject.AllowAcceptOrder;\n \n this.AllowTaskManagement = \n odataObject.AllowTaskManagement;\n \n this.AllowRejectOrder = \n odataObject.AllowRejectOrder;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.AllowPostInventoryAdjustment = \n odataObject.AllowPostInventoryAdjustment;\n \n this.AllowPostStockCounting = \n odataObject.AllowPostStockCounting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeePermissionsClass'] = EmployeePermissionsClass;\n \n /**\n * CommerceProperty entity class.\n */\n export class CommercePropertyClass implements Entities.CommerceProperty {\n public Key: string;\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['CommercePropertyClass'] = CommercePropertyClass;\n \n /**\n * CommercePropertyValue entity class.\n */\n export class CommercePropertyValueClass implements Entities.CommercePropertyValue {\n public BooleanValue: boolean;\n public ByteValue: number;\n public DateTimeOffsetValue: Date;\n public DecimalValue: number;\n public IntegerValue: number;\n public LongValue: number;\n public StringValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.ByteValue = \n (odataObject.ByteValue != null) ? parseInt(odataObject.ByteValue, 10) : undefined;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DecimalValue = \n (odataObject.DecimalValue != null) ? parseFloat(odataObject.DecimalValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.LongValue = \n (odataObject.LongValue != null) ? parseInt(odataObject.LongValue, 10) : undefined;\n \n this.StringValue = \n odataObject.StringValue;\n \n }\n }\n entityDictionary['CommercePropertyValueClass'] = CommercePropertyValueClass;\n \n /**\n * CountryRegionInfo entity class.\n */\n export class CountryRegionInfoClass implements Entities.CountryRegionInfo {\n public CountryRegionId: string;\n public ShortName: string;\n public LongName: string;\n public ISOCode: string;\n public TimeZone: number;\n public LanguageId: string;\n public AddressFormatLines: Entities.AddressFormattingInfo[];\n public AddressFormatId: string;\n public AddressFormatName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.LongName = \n odataObject.LongName;\n \n this.ISOCode = \n odataObject.ISOCode;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AddressFormatLines = undefined;\n if (odataObject.AddressFormatLines) {\n this.AddressFormatLines = [];\n for (var i = 0; i < odataObject.AddressFormatLines.length; i++) {\n if (odataObject.AddressFormatLines[i] != null) {\n if (odataObject.AddressFormatLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AddressFormatLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AddressFormatLines[i] = new entityDictionary[className](odataObject.AddressFormatLines[i])\n }\n } else {\n this.AddressFormatLines[i] = new AddressFormattingInfoClass(odataObject.AddressFormatLines[i]);\n }\n } else {\n this.AddressFormatLines[i] = undefined;\n }\n }\n }\n \n this.AddressFormatId = \n odataObject.AddressFormatId;\n \n this.AddressFormatName = \n odataObject.AddressFormatName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionInfoClass'] = CountryRegionInfoClass;\n \n /**\n * CreditMemo entity class.\n */\n export class CreditMemoClass implements Entities.CreditMemo {\n public Id: string;\n public Balance: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreditMemoClass'] = CreditMemoClass;\n \n /**\n * Currency entity class.\n */\n export class CurrencyClass implements Entities.Currency {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public RoundOffPrice: number;\n public RoundOffSales: number;\n public RoundOffTypePrice: number;\n public RoundOffTypeSales: number;\n public NumberOfDecimals: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.RoundOffPrice = \n (odataObject.RoundOffPrice != null) ? parseFloat(odataObject.RoundOffPrice) : undefined;\n \n this.RoundOffSales = \n (odataObject.RoundOffSales != null) ? parseFloat(odataObject.RoundOffSales) : undefined;\n \n this.RoundOffTypePrice = \n odataObject.RoundOffTypePrice;\n \n this.RoundOffTypeSales = \n odataObject.RoundOffTypeSales;\n \n this.NumberOfDecimals = \n odataObject.NumberOfDecimals;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyClass'] = CurrencyClass;\n \n /**\n * CurrencyAmount entity class.\n */\n export class CurrencyAmountClass implements Entities.CurrencyAmount {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public ConvertedAmount: number;\n public RoundedConvertedAmount: number;\n public ExchangeRate: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.ConvertedAmount = \n (odataObject.ConvertedAmount != null) ? parseFloat(odataObject.ConvertedAmount) : undefined;\n \n this.RoundedConvertedAmount = \n (odataObject.RoundedConvertedAmount != null) ? parseFloat(odataObject.RoundedConvertedAmount) : undefined;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyAmountClass'] = CurrencyAmountClass;\n \n /**\n * ScaleUnitConfiguration entity class.\n */\n export class ScaleUnitConfigurationClass implements Entities.ScaleUnitConfiguration {\n public Id: string;\n public Name: string;\n public Region: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Region = \n odataObject.Region;\n \n }\n }\n entityDictionary['ScaleUnitConfigurationClass'] = ScaleUnitConfigurationClass;\n \n /**\n * EnvironmentConfiguration entity class.\n */\n export class EnvironmentConfigurationClass implements Entities.EnvironmentConfiguration {\n public EnvironmentId: string;\n public EnvironmentName: string;\n public TenantId: string;\n public ClientAppInsightsInstrumentationKey: string;\n public HardwareStationAppInsightsInstrumentationKey: string;\n public WindowsPhonePosAppInsightsInstrumentationKey: string;\n public BaseVersion: string;\n public ScaleUnit: Entities.ScaleUnitConfiguration;\n public AADAuthority: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.EnvironmentName = \n odataObject.EnvironmentName;\n \n this.TenantId = \n odataObject.TenantId;\n \n this.ClientAppInsightsInstrumentationKey = \n odataObject.ClientAppInsightsInstrumentationKey;\n \n this.HardwareStationAppInsightsInstrumentationKey = \n odataObject.HardwareStationAppInsightsInstrumentationKey;\n \n this.WindowsPhonePosAppInsightsInstrumentationKey = \n odataObject.WindowsPhonePosAppInsightsInstrumentationKey;\n \n this.BaseVersion = \n odataObject.BaseVersion;\n \n if (odataObject.ScaleUnit == null) {\n this.ScaleUnit = undefined;\n } else if (odataObject.ScaleUnit['@odata.type'] == null) {\n this.ScaleUnit = new ScaleUnitConfigurationClass(odataObject.ScaleUnit);\n } else {\n var className: string = odataObject.ScaleUnit['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ScaleUnit = new entityDictionary[className](odataObject.ScaleUnit)\n }\n }\n\n \n this.AADAuthority = \n odataObject.AADAuthority;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['EnvironmentConfigurationClass'] = EnvironmentConfigurationClass;\n \n /**\n * DeviceConfiguration entity class.\n */\n export class DeviceConfigurationClass implements Entities.DeviceConfiguration {\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowItemsAggregation: boolean;\n public AggregateItemsForPrinting: boolean;\n public AggregatePayments: boolean;\n public AlwaysExpandTransactionScreenLineDetails: boolean;\n public AuditEnabled: boolean;\n public DiscountAtTotal: string;\n public ProductDiscount: string;\n public ManuallyCalculateComplexDiscounts: boolean;\n public DisplaySecondaryTotalCurrency: boolean;\n public EndOfTransaction: string;\n public ItemNotOnFile: string;\n public LimitStaffListToStore: boolean;\n public LineItemTaxChange: string;\n public MarkUp: string;\n public MaximumPrice: number;\n public MaximumQuantity: number;\n public MinimumPasswordLength: number;\n public MustKeyInPriceIfZero: boolean;\n public NfcEContingencyModeEnabled: string;\n public NfcEVoided: string;\n public FunctionalityProfileDescription: string;\n public OverridePrice: string;\n public PrintVoidTransactionReceipts: boolean;\n public PrintReceiptsOnCardDecline: boolean;\n public PrintXZReportsOnTerminal: boolean;\n public PrintTenderDetailsOnXReport: boolean;\n public ProfileId: string;\n public RefundSale: string;\n public ReturnProduct: string;\n public SalesPerson: string;\n public SecondaryTotalCurrency: string;\n public SelectHardwareStationOnTendering: boolean;\n public SerialNumber: string;\n public ShowStaffListAtLogOn: boolean;\n public StaffBarcodeLogOn: boolean;\n public StaffBarcodeLogOnRequiresPassword: boolean;\n public StaffCardLogOn: boolean;\n public StaffCardLogOnRequiresPassword: boolean;\n public StartOfTransaction: string;\n public EnableTimeRegistration: boolean;\n public TenderDeclaration: string;\n public TransactionTaxChange: string;\n public VoidItem: string;\n public VoidPayment: string;\n public SalesModeDefaultsAsCustomerOrder: boolean;\n public CreateOfflineCustomerOrders: boolean;\n public CreateAsyncCustomers: boolean;\n public EnableAxCustomerSearch: boolean;\n public VoidTransaction: string;\n public CultureName: string;\n public SystemLegalTermsUrl: string;\n public SystemPrivacyStatementUrl: string;\n public HideTrainingMode: boolean;\n public StorePhone: string;\n public StatementMethod: string;\n public StoreNumber: string;\n public ChannelId: number;\n public StoreTaxGroup: string;\n public TaxIdNumber: string;\n public TaxOverrideGroup: number;\n public TenderDeclarationCalculation: number;\n public UseCustomerBasedTax: boolean;\n public UseDestinationBasedTax: boolean;\n public AutoLogOffTimeoutInMinutes: number;\n public AutoExitMethodValue: number;\n public CustomerDisplayText1: string;\n public CustomerDisplayText2: string;\n public EFTStoreId: number;\n public EFTTerminalId: string;\n public ExitAfterEachTransaction: boolean;\n public HardwareProfile: string;\n public Placement: string;\n public TerminalDescription: string;\n public OpenDrawer: string;\n public OpenDrawerAtLogOnLogOff: boolean;\n public PrintTaxRefundChecks: boolean;\n public StandAlone: boolean;\n public TerminalId: string;\n public TerminalStatement: boolean;\n public VisualProfile: string;\n public Currency: string;\n public InventLocationId: string;\n public IncludeKitComponents: boolean;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontScheme: number;\n public ShowAppBarLabel: boolean;\n public LogOnBackgroundPictureAsBase64: string;\n public LogOnBackgroundPicturePortraitAsBase64: string;\n public BackgroundPictureAsBase64: string;\n public LogonBackgroundPictureId: number;\n public LogonBackgroundPictureIdCompact: number;\n public LogonBackgroundPictureIdPortrait: number;\n public LogonBackgroundPictureIdCompactPortrait: number;\n public BackgroundPictureId: number;\n public RequireAmountDeclaration: boolean;\n public DecimalNotRequiredForMinorCurrencyUnit: boolean;\n public MaxTransactionSearchResults: number;\n public OfflineProfileId: number;\n public NewOfflineDatabaseCheckInterval: number;\n public OfflineTransactionUploadInterval: number;\n public ReconnectToOnlineInterval: number;\n public SwitchToOfflineTimeout: number;\n public OfflineSwitchApiPerformanceThresholdInSeconds: number;\n public ReconnectFromPerformanceInducedOfflineIntervalInSeconds: number;\n public RetentionDays: number;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public CreateRecording: boolean;\n public PlaybackRecording: boolean;\n public ShouldUseDefaultCommisionSalesGroup: boolean;\n public AskForSalesRepresentative: number;\n public IsSalesRepRequired: boolean;\n public ProhibitMixingSalesAndReturns: boolean;\n public ApplyDiscountsToPriceKeyedIn: boolean;\n public ApplyDiscountsToPriceOverrides: boolean;\n public IsProductSuggestionsEnabled: boolean;\n public ProductSearchType: string;\n public TerminalRecId: number;\n public DeviceRecId: number;\n public DenominationsToDisplayValue: number;\n public PromptOnSeamlessOffline: boolean;\n public RetryCountToOffline: number;\n public EnableAdvancedOfflineSwitching: boolean;\n public SystemHealthCheckInterval: number;\n public RejectOrderFulfillment: string;\n public ManuallyCalculateTaxes: boolean;\n public EmployeeLogonTypeValue: number;\n public StartAmountCalculation: number;\n public BankDropCalculation: number;\n public GenerateLoyaltyCardNumber: boolean;\n public FiscalRegistrationProcessId: string;\n public IncludeSalesOrderInvoices: boolean;\n public IncludeFreeTextInvoices: boolean;\n public IncludeProjectInvoices: boolean;\n public IncludeCreditNoteInvoices: boolean;\n public DisplayTaxExemptInLineDetails: boolean;\n public TaxExemptReceiptIndicator: string;\n public ManuallyCalculateCharges: boolean;\n public ChargeOverrideReasonCode: string;\n public ShiftReconcilation: string;\n public CustomerAccountFloorLimit: number;\n public VoidSuspendedTransactionsOnCloseShift: boolean;\n public ShowDateTime: boolean;\n public UseAdvancedCashManagement: boolean;\n public DefaultCustomerSearchModeValue: number;\n public AllowManualOfflineBeforeSignIn: boolean;\n public UseFinancialReconciliationInStore: boolean;\n public RequirePaymentForFulfillmentValue: number;\n public CardNotPresentProcessingConfigurationValue: number;\n public EnableQuickPayShortcuts: boolean;\n public ChangeDueBehaviorValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowItemsAggregation = \n odataObject.AllowItemsAggregation;\n \n this.AggregateItemsForPrinting = \n odataObject.AggregateItemsForPrinting;\n \n this.AggregatePayments = \n odataObject.AggregatePayments;\n \n this.AlwaysExpandTransactionScreenLineDetails = \n odataObject.AlwaysExpandTransactionScreenLineDetails;\n \n this.AuditEnabled = \n odataObject.AuditEnabled;\n \n this.DiscountAtTotal = \n odataObject.DiscountAtTotal;\n \n this.ProductDiscount = \n odataObject.ProductDiscount;\n \n this.ManuallyCalculateComplexDiscounts = \n odataObject.ManuallyCalculateComplexDiscounts;\n \n this.DisplaySecondaryTotalCurrency = \n odataObject.DisplaySecondaryTotalCurrency;\n \n this.EndOfTransaction = \n odataObject.EndOfTransaction;\n \n this.ItemNotOnFile = \n odataObject.ItemNotOnFile;\n \n this.LimitStaffListToStore = \n odataObject.LimitStaffListToStore;\n \n this.LineItemTaxChange = \n odataObject.LineItemTaxChange;\n \n this.MarkUp = \n odataObject.MarkUp;\n \n this.MaximumPrice = \n (odataObject.MaximumPrice != null) ? parseFloat(odataObject.MaximumPrice) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumPasswordLength = \n odataObject.MinimumPasswordLength;\n \n this.MustKeyInPriceIfZero = \n odataObject.MustKeyInPriceIfZero;\n \n this.NfcEContingencyModeEnabled = \n odataObject.NfcEContingencyModeEnabled;\n \n this.NfcEVoided = \n odataObject.NfcEVoided;\n \n this.FunctionalityProfileDescription = \n odataObject.FunctionalityProfileDescription;\n \n this.OverridePrice = \n odataObject.OverridePrice;\n \n this.PrintVoidTransactionReceipts = \n odataObject.PrintVoidTransactionReceipts;\n \n this.PrintReceiptsOnCardDecline = \n odataObject.PrintReceiptsOnCardDecline;\n \n this.PrintXZReportsOnTerminal = \n odataObject.PrintXZReportsOnTerminal;\n \n this.PrintTenderDetailsOnXReport = \n odataObject.PrintTenderDetailsOnXReport;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RefundSale = \n odataObject.RefundSale;\n \n this.ReturnProduct = \n odataObject.ReturnProduct;\n \n this.SalesPerson = \n odataObject.SalesPerson;\n \n this.SecondaryTotalCurrency = \n odataObject.SecondaryTotalCurrency;\n \n this.SelectHardwareStationOnTendering = \n odataObject.SelectHardwareStationOnTendering;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ShowStaffListAtLogOn = \n odataObject.ShowStaffListAtLogOn;\n \n this.StaffBarcodeLogOn = \n odataObject.StaffBarcodeLogOn;\n \n this.StaffBarcodeLogOnRequiresPassword = \n odataObject.StaffBarcodeLogOnRequiresPassword;\n \n this.StaffCardLogOn = \n odataObject.StaffCardLogOn;\n \n this.StaffCardLogOnRequiresPassword = \n odataObject.StaffCardLogOnRequiresPassword;\n \n this.StartOfTransaction = \n odataObject.StartOfTransaction;\n \n this.EnableTimeRegistration = \n odataObject.EnableTimeRegistration;\n \n this.TenderDeclaration = \n odataObject.TenderDeclaration;\n \n this.TransactionTaxChange = \n odataObject.TransactionTaxChange;\n \n this.VoidItem = \n odataObject.VoidItem;\n \n this.VoidPayment = \n odataObject.VoidPayment;\n \n this.SalesModeDefaultsAsCustomerOrder = \n odataObject.SalesModeDefaultsAsCustomerOrder;\n \n this.CreateOfflineCustomerOrders = \n odataObject.CreateOfflineCustomerOrders;\n \n this.CreateAsyncCustomers = \n odataObject.CreateAsyncCustomers;\n \n this.EnableAxCustomerSearch = \n odataObject.EnableAxCustomerSearch;\n \n this.VoidTransaction = \n odataObject.VoidTransaction;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.SystemLegalTermsUrl = \n odataObject.SystemLegalTermsUrl;\n \n this.SystemPrivacyStatementUrl = \n odataObject.SystemPrivacyStatementUrl;\n \n this.HideTrainingMode = \n odataObject.HideTrainingMode;\n \n this.StorePhone = \n odataObject.StorePhone;\n \n this.StatementMethod = \n odataObject.StatementMethod;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreTaxGroup = \n odataObject.StoreTaxGroup;\n \n this.TaxIdNumber = \n odataObject.TaxIdNumber;\n \n this.TaxOverrideGroup = \n (odataObject.TaxOverrideGroup != null) ? parseInt(odataObject.TaxOverrideGroup, 10) : undefined;\n \n this.TenderDeclarationCalculation = \n odataObject.TenderDeclarationCalculation;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.AutoLogOffTimeoutInMinutes = \n odataObject.AutoLogOffTimeoutInMinutes;\n \n this.AutoExitMethodValue = \n odataObject.AutoExitMethodValue;\n \n this.CustomerDisplayText1 = \n odataObject.CustomerDisplayText1;\n \n this.CustomerDisplayText2 = \n odataObject.CustomerDisplayText2;\n \n this.EFTStoreId = \n (odataObject.EFTStoreId != null) ? parseInt(odataObject.EFTStoreId, 10) : undefined;\n \n this.EFTTerminalId = \n odataObject.EFTTerminalId;\n \n this.ExitAfterEachTransaction = \n odataObject.ExitAfterEachTransaction;\n \n this.HardwareProfile = \n odataObject.HardwareProfile;\n \n this.Placement = \n odataObject.Placement;\n \n this.TerminalDescription = \n odataObject.TerminalDescription;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.OpenDrawerAtLogOnLogOff = \n odataObject.OpenDrawerAtLogOnLogOff;\n \n this.PrintTaxRefundChecks = \n odataObject.PrintTaxRefundChecks;\n \n this.StandAlone = \n odataObject.StandAlone;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TerminalStatement = \n odataObject.TerminalStatement;\n \n this.VisualProfile = \n odataObject.VisualProfile;\n \n this.Currency = \n odataObject.Currency;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.IncludeKitComponents = \n odataObject.IncludeKitComponents;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontScheme = \n odataObject.FontScheme;\n \n this.ShowAppBarLabel = \n odataObject.ShowAppBarLabel;\n \n this.LogOnBackgroundPictureAsBase64 = \n odataObject.LogOnBackgroundPictureAsBase64;\n \n this.LogOnBackgroundPicturePortraitAsBase64 = \n odataObject.LogOnBackgroundPicturePortraitAsBase64;\n \n this.BackgroundPictureAsBase64 = \n odataObject.BackgroundPictureAsBase64;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompact = \n (odataObject.LogonBackgroundPictureIdCompact != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompact, 10) : undefined;\n \n this.LogonBackgroundPictureIdPortrait = \n (odataObject.LogonBackgroundPictureIdPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdPortrait, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompactPortrait = \n (odataObject.LogonBackgroundPictureIdCompactPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompactPortrait, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.RequireAmountDeclaration = \n odataObject.RequireAmountDeclaration;\n \n this.DecimalNotRequiredForMinorCurrencyUnit = \n odataObject.DecimalNotRequiredForMinorCurrencyUnit;\n \n this.MaxTransactionSearchResults = \n odataObject.MaxTransactionSearchResults;\n \n this.OfflineProfileId = \n (odataObject.OfflineProfileId != null) ? parseInt(odataObject.OfflineProfileId, 10) : undefined;\n \n this.NewOfflineDatabaseCheckInterval = \n odataObject.NewOfflineDatabaseCheckInterval;\n \n this.OfflineTransactionUploadInterval = \n odataObject.OfflineTransactionUploadInterval;\n \n this.ReconnectToOnlineInterval = \n odataObject.ReconnectToOnlineInterval;\n \n this.SwitchToOfflineTimeout = \n odataObject.SwitchToOfflineTimeout;\n \n this.OfflineSwitchApiPerformanceThresholdInSeconds = \n odataObject.OfflineSwitchApiPerformanceThresholdInSeconds;\n \n this.ReconnectFromPerformanceInducedOfflineIntervalInSeconds = \n odataObject.ReconnectFromPerformanceInducedOfflineIntervalInSeconds;\n \n this.RetentionDays = \n odataObject.RetentionDays;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.CreateRecording = \n odataObject.CreateRecording;\n \n this.PlaybackRecording = \n odataObject.PlaybackRecording;\n \n this.ShouldUseDefaultCommisionSalesGroup = \n odataObject.ShouldUseDefaultCommisionSalesGroup;\n \n this.AskForSalesRepresentative = \n odataObject.AskForSalesRepresentative;\n \n this.IsSalesRepRequired = \n odataObject.IsSalesRepRequired;\n \n this.ProhibitMixingSalesAndReturns = \n odataObject.ProhibitMixingSalesAndReturns;\n \n this.ApplyDiscountsToPriceKeyedIn = \n odataObject.ApplyDiscountsToPriceKeyedIn;\n \n this.ApplyDiscountsToPriceOverrides = \n odataObject.ApplyDiscountsToPriceOverrides;\n \n this.IsProductSuggestionsEnabled = \n odataObject.IsProductSuggestionsEnabled;\n \n this.ProductSearchType = \n odataObject.ProductSearchType;\n \n this.TerminalRecId = \n (odataObject.TerminalRecId != null) ? parseInt(odataObject.TerminalRecId, 10) : undefined;\n \n this.DeviceRecId = \n (odataObject.DeviceRecId != null) ? parseInt(odataObject.DeviceRecId, 10) : undefined;\n \n this.DenominationsToDisplayValue = \n odataObject.DenominationsToDisplayValue;\n \n this.PromptOnSeamlessOffline = \n odataObject.PromptOnSeamlessOffline;\n \n this.RetryCountToOffline = \n odataObject.RetryCountToOffline;\n \n this.EnableAdvancedOfflineSwitching = \n odataObject.EnableAdvancedOfflineSwitching;\n \n this.SystemHealthCheckInterval = \n odataObject.SystemHealthCheckInterval;\n \n this.RejectOrderFulfillment = \n odataObject.RejectOrderFulfillment;\n \n this.ManuallyCalculateTaxes = \n odataObject.ManuallyCalculateTaxes;\n \n this.EmployeeLogonTypeValue = \n odataObject.EmployeeLogonTypeValue;\n \n this.StartAmountCalculation = \n odataObject.StartAmountCalculation;\n \n this.BankDropCalculation = \n odataObject.BankDropCalculation;\n \n this.GenerateLoyaltyCardNumber = \n odataObject.GenerateLoyaltyCardNumber;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IncludeSalesOrderInvoices = \n odataObject.IncludeSalesOrderInvoices;\n \n this.IncludeFreeTextInvoices = \n odataObject.IncludeFreeTextInvoices;\n \n this.IncludeProjectInvoices = \n odataObject.IncludeProjectInvoices;\n \n this.IncludeCreditNoteInvoices = \n odataObject.IncludeCreditNoteInvoices;\n \n this.DisplayTaxExemptInLineDetails = \n odataObject.DisplayTaxExemptInLineDetails;\n \n this.TaxExemptReceiptIndicator = \n odataObject.TaxExemptReceiptIndicator;\n \n this.ManuallyCalculateCharges = \n odataObject.ManuallyCalculateCharges;\n \n this.ChargeOverrideReasonCode = \n odataObject.ChargeOverrideReasonCode;\n \n this.ShiftReconcilation = \n odataObject.ShiftReconcilation;\n \n this.CustomerAccountFloorLimit = \n (odataObject.CustomerAccountFloorLimit != null) ? parseFloat(odataObject.CustomerAccountFloorLimit) : undefined;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.ShowDateTime = \n odataObject.ShowDateTime;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.DefaultCustomerSearchModeValue = \n odataObject.DefaultCustomerSearchModeValue;\n \n this.AllowManualOfflineBeforeSignIn = \n odataObject.AllowManualOfflineBeforeSignIn;\n \n this.UseFinancialReconciliationInStore = \n odataObject.UseFinancialReconciliationInStore;\n \n this.RequirePaymentForFulfillmentValue = \n odataObject.RequirePaymentForFulfillmentValue;\n \n this.CardNotPresentProcessingConfigurationValue = \n odataObject.CardNotPresentProcessingConfigurationValue;\n \n this.EnableQuickPayShortcuts = \n odataObject.EnableQuickPayShortcuts;\n \n this.ChangeDueBehaviorValue = \n odataObject.ChangeDueBehaviorValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceConfigurationClass'] = DeviceConfigurationClass;\n \n /**\n * VisualProfile entity class.\n */\n export class VisualProfileClass implements Entities.VisualProfile {\n public ChannelId: number;\n public TerminalId: string;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontSchemeTypeValue: number;\n public IsAppBarLabelVisible: boolean;\n public IsDateTimeVisible: boolean;\n public LogOnLayoutTypeValue: number;\n public LogOnKeyboardTypeValue: number;\n public LogonBackgroundPictureId: number;\n public CompactLogonBackgroundPictureId: number;\n public PortraitLogonBackgroundPictureId: number;\n public CompactPortraitLogonBackgroundPictureId: number;\n public BackgroundPictureId: number;\n public LogOnLogoPictureId: number;\n public IsProductIdVisibleOnCartLine: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontSchemeTypeValue = \n odataObject.FontSchemeTypeValue;\n \n this.IsAppBarLabelVisible = \n odataObject.IsAppBarLabelVisible;\n \n this.IsDateTimeVisible = \n odataObject.IsDateTimeVisible;\n \n this.LogOnLayoutTypeValue = \n odataObject.LogOnLayoutTypeValue;\n \n this.LogOnKeyboardTypeValue = \n odataObject.LogOnKeyboardTypeValue;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.CompactLogonBackgroundPictureId = \n (odataObject.CompactLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactLogonBackgroundPictureId, 10) : undefined;\n \n this.PortraitLogonBackgroundPictureId = \n (odataObject.PortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.PortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.CompactPortraitLogonBackgroundPictureId = \n (odataObject.CompactPortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactPortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.LogOnLogoPictureId = \n (odataObject.LogOnLogoPictureId != null) ? parseInt(odataObject.LogOnLogoPictureId, 10) : undefined;\n \n this.IsProductIdVisibleOnCartLine = \n odataObject.IsProductIdVisibleOnCartLine;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VisualProfileClass'] = VisualProfileClass;\n \n /**\n * OperationalInsightsConfiguration entity class.\n */\n export class OperationalInsightsConfigurationClass implements Entities.OperationalInsightsConfiguration {\n public InstrumentationKey: string;\n public EnvironmentId: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InstrumentationKey = \n odataObject.InstrumentationKey;\n \n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationalInsightsConfigurationClass'] = OperationalInsightsConfigurationClass;\n \n /**\n * Device entity class.\n */\n export class DeviceClass implements Entities.Device {\n public ChannelId: number;\n public RecordId: number;\n public DeviceNumber: string;\n public DeviceId: string;\n public Description: string;\n public DeviceType: number;\n public TerminalRecordId: number;\n public TerminalId: string;\n public ChannelName: string;\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowMassActivation: boolean;\n public TokenIssueTime: Date;\n public ActivationStatusValue: number;\n public Token: string;\n public CountryRegionIsoCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.DeviceId = \n odataObject.DeviceId;\n \n this.Description = \n odataObject.Description;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.TerminalRecordId = \n (odataObject.TerminalRecordId != null) ? parseInt(odataObject.TerminalRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ChannelName = \n odataObject.ChannelName;\n \n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.TokenIssueTime = \n (odataObject.TokenIssueTime instanceof Date) ? odataObject.TokenIssueTime\n : (odataObject.TokenIssueTime != null) ? jsonLightReadStringPropertyValue(odataObject.TokenIssueTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceClass'] = DeviceClass;\n \n /**\n * DiscountCode entity class.\n */\n export class DiscountCodeClass implements Entities.DiscountCode {\n public RecordId: number;\n public Barcode: string;\n public Code: string;\n public ConcurrencyMode: number;\n public Description: string;\n public Disclaimer: string;\n public IsDiscountCodeRequired: boolean;\n public Name: string;\n public OfferId: string;\n public IsEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.Code = \n odataObject.Code;\n \n this.ConcurrencyMode = \n odataObject.ConcurrencyMode;\n \n this.Description = \n odataObject.Description;\n \n this.Disclaimer = \n odataObject.Disclaimer;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.Name = \n odataObject.Name;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountCodeClass'] = DiscountCodeClass;\n \n /**\n * DistrictInfo entity class.\n */\n export class DistrictInfoClass implements Entities.DistrictInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DistrictInfoClass'] = DistrictInfoClass;\n \n /**\n * HardwareProfile entity class.\n */\n export class HardwareProfileClass implements Entities.HardwareProfile {\n public RecordId: number;\n public LineDisplayDelayForLinkedItems: number;\n public LineDisplayBalanceText: string;\n public LineDisplayBinaryConversion: boolean;\n public LineDisplayCharacterSet: number;\n public LineDisplayClosedLine1: string;\n public LineDisplayClosedLine2: string;\n public LineDisplayDeviceDescription: string;\n public LineDisplayDeviceTypeValue: number;\n public LineDisplayDeviceName: string;\n public LineDisplayDisplayLinkedItem: boolean;\n public LineDisplayDisplayTerminalClosed: boolean;\n public LineDisplayTotalText: string;\n public DualDisplayActive: boolean;\n public DualDisplayWebBrowserUrl: string;\n public DualDisplayImageRotatorInterval: number;\n public DualDisplayImageRotatorPath: string;\n public DualDisplayReceiptWidthPercentage: number;\n public DualDisplayDisplayType: string;\n public EftTypeId: number;\n public EftCompanyId: string;\n public EftConfiguration: number;\n public EftPaymentConnectorName: string;\n public EftData: string;\n public EftDescription: string;\n public EftMerchantId: string;\n public EftPassword: string;\n public EftServerName: string;\n public EftServerPort: string;\n public EftUserId: string;\n public EftTestMode: boolean;\n public MsrEndTrack1: string;\n public MsrEndTrack2: string;\n public FiscalPrinterManagementReportPAFIdentification: string;\n public FiscalPrinterManagementReportConfigParameter: string;\n public FiscalPrinterManagementReportTenderType: string;\n public FiscalPrinterManagementReportGiftCard: string;\n public FiscalRegisterDeviceTypeValue: number;\n public FiscalRegisterConfiguration: string;\n public FiscalRegisterDeviceDescription: string;\n public FiscalRegisterDeviceName: string;\n public KeyboardMappingId: string;\n public KeyLockDeviceTypeValue: number;\n public KeyLockDeviceDescription: string;\n public KeyLockDeviceName: string;\n public MsrDeviceTypeValue: number;\n public MsrDeviceDescription: string;\n public MsrDeviceName: string;\n public MsrMake: string;\n public MsrModel: string;\n public MsrSeparator: string;\n public MsrStartTrack: string;\n public PinPadDeviceTypeValue: number;\n public PinPadDeviceName: string;\n public PinPadMake: string;\n public PinPadModel: string;\n public PinPadDeviceDescription: string;\n public ProfileDescription: string;\n public ProfileId: string;\n public RFIDDeviceTypeValue: number;\n public RFIDDeviceName: string;\n public RFIDDeviceDescription: string;\n public ScaleDeviceTypeValue: number;\n public ScaleDeviceName: string;\n public ScaleDeviceDescription: string;\n public ScaleManualInputAllowed: boolean;\n public ScaleTimeoutInSeconds: number;\n public SignatureCaptureDeviceTypeValue: number;\n public SignatureCaptureDeviceName: string;\n public SignatureCaptureMake: string;\n public SignatureCaptureModel: string;\n public SignatureCaptureDeviceDescription: string;\n public SignatureCaptureFormName: string;\n public Printers: Entities.HardwareProfilePrinter[];\n public Scanners: Entities.HardwareProfileScanner[];\n public FiscalIntegrationTechnicalProfiles: Entities.FiscalIntegrationTechnicalProfile[];\n public CashDrawers: Entities.HardwareProfileCashDrawer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineDisplayDelayForLinkedItems = \n odataObject.LineDisplayDelayForLinkedItems;\n \n this.LineDisplayBalanceText = \n odataObject.LineDisplayBalanceText;\n \n this.LineDisplayBinaryConversion = \n odataObject.LineDisplayBinaryConversion;\n \n this.LineDisplayCharacterSet = \n odataObject.LineDisplayCharacterSet;\n \n this.LineDisplayClosedLine1 = \n odataObject.LineDisplayClosedLine1;\n \n this.LineDisplayClosedLine2 = \n odataObject.LineDisplayClosedLine2;\n \n this.LineDisplayDeviceDescription = \n odataObject.LineDisplayDeviceDescription;\n \n this.LineDisplayDeviceTypeValue = \n odataObject.LineDisplayDeviceTypeValue;\n \n this.LineDisplayDeviceName = \n odataObject.LineDisplayDeviceName;\n \n this.LineDisplayDisplayLinkedItem = \n odataObject.LineDisplayDisplayLinkedItem;\n \n this.LineDisplayDisplayTerminalClosed = \n odataObject.LineDisplayDisplayTerminalClosed;\n \n this.LineDisplayTotalText = \n odataObject.LineDisplayTotalText;\n \n this.DualDisplayActive = \n odataObject.DualDisplayActive;\n \n this.DualDisplayWebBrowserUrl = \n odataObject.DualDisplayWebBrowserUrl;\n \n this.DualDisplayImageRotatorInterval = \n odataObject.DualDisplayImageRotatorInterval;\n \n this.DualDisplayImageRotatorPath = \n odataObject.DualDisplayImageRotatorPath;\n \n this.DualDisplayReceiptWidthPercentage = \n (odataObject.DualDisplayReceiptWidthPercentage != null) ? parseFloat(odataObject.DualDisplayReceiptWidthPercentage) : undefined;\n \n this.DualDisplayDisplayType = \n odataObject.DualDisplayDisplayType;\n \n this.EftTypeId = \n odataObject.EftTypeId;\n \n this.EftCompanyId = \n odataObject.EftCompanyId;\n \n this.EftConfiguration = \n odataObject.EftConfiguration;\n \n this.EftPaymentConnectorName = \n odataObject.EftPaymentConnectorName;\n \n this.EftData = \n odataObject.EftData;\n \n this.EftDescription = \n odataObject.EftDescription;\n \n this.EftMerchantId = \n odataObject.EftMerchantId;\n \n this.EftPassword = \n odataObject.EftPassword;\n \n this.EftServerName = \n odataObject.EftServerName;\n \n this.EftServerPort = \n odataObject.EftServerPort;\n \n this.EftUserId = \n odataObject.EftUserId;\n \n this.EftTestMode = \n odataObject.EftTestMode;\n \n this.MsrEndTrack1 = \n odataObject.MsrEndTrack1;\n \n this.MsrEndTrack2 = \n odataObject.MsrEndTrack2;\n \n this.FiscalPrinterManagementReportPAFIdentification = \n odataObject.FiscalPrinterManagementReportPAFIdentification;\n \n this.FiscalPrinterManagementReportConfigParameter = \n odataObject.FiscalPrinterManagementReportConfigParameter;\n \n this.FiscalPrinterManagementReportTenderType = \n odataObject.FiscalPrinterManagementReportTenderType;\n \n this.FiscalPrinterManagementReportGiftCard = \n odataObject.FiscalPrinterManagementReportGiftCard;\n \n this.FiscalRegisterDeviceTypeValue = \n odataObject.FiscalRegisterDeviceTypeValue;\n \n this.FiscalRegisterConfiguration = \n odataObject.FiscalRegisterConfiguration;\n \n this.FiscalRegisterDeviceDescription = \n odataObject.FiscalRegisterDeviceDescription;\n \n this.FiscalRegisterDeviceName = \n odataObject.FiscalRegisterDeviceName;\n \n this.KeyboardMappingId = \n odataObject.KeyboardMappingId;\n \n this.KeyLockDeviceTypeValue = \n odataObject.KeyLockDeviceTypeValue;\n \n this.KeyLockDeviceDescription = \n odataObject.KeyLockDeviceDescription;\n \n this.KeyLockDeviceName = \n odataObject.KeyLockDeviceName;\n \n this.MsrDeviceTypeValue = \n odataObject.MsrDeviceTypeValue;\n \n this.MsrDeviceDescription = \n odataObject.MsrDeviceDescription;\n \n this.MsrDeviceName = \n odataObject.MsrDeviceName;\n \n this.MsrMake = \n odataObject.MsrMake;\n \n this.MsrModel = \n odataObject.MsrModel;\n \n this.MsrSeparator = \n odataObject.MsrSeparator;\n \n this.MsrStartTrack = \n odataObject.MsrStartTrack;\n \n this.PinPadDeviceTypeValue = \n odataObject.PinPadDeviceTypeValue;\n \n this.PinPadDeviceName = \n odataObject.PinPadDeviceName;\n \n this.PinPadMake = \n odataObject.PinPadMake;\n \n this.PinPadModel = \n odataObject.PinPadModel;\n \n this.PinPadDeviceDescription = \n odataObject.PinPadDeviceDescription;\n \n this.ProfileDescription = \n odataObject.ProfileDescription;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RFIDDeviceTypeValue = \n odataObject.RFIDDeviceTypeValue;\n \n this.RFIDDeviceName = \n odataObject.RFIDDeviceName;\n \n this.RFIDDeviceDescription = \n odataObject.RFIDDeviceDescription;\n \n this.ScaleDeviceTypeValue = \n odataObject.ScaleDeviceTypeValue;\n \n this.ScaleDeviceName = \n odataObject.ScaleDeviceName;\n \n this.ScaleDeviceDescription = \n odataObject.ScaleDeviceDescription;\n \n this.ScaleManualInputAllowed = \n odataObject.ScaleManualInputAllowed;\n \n this.ScaleTimeoutInSeconds = \n odataObject.ScaleTimeoutInSeconds;\n \n this.SignatureCaptureDeviceTypeValue = \n odataObject.SignatureCaptureDeviceTypeValue;\n \n this.SignatureCaptureDeviceName = \n odataObject.SignatureCaptureDeviceName;\n \n this.SignatureCaptureMake = \n odataObject.SignatureCaptureMake;\n \n this.SignatureCaptureModel = \n odataObject.SignatureCaptureModel;\n \n this.SignatureCaptureDeviceDescription = \n odataObject.SignatureCaptureDeviceDescription;\n \n this.SignatureCaptureFormName = \n odataObject.SignatureCaptureFormName;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new HardwareProfilePrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.Scanners = undefined;\n if (odataObject.Scanners) {\n this.Scanners = [];\n for (var i = 0; i < odataObject.Scanners.length; i++) {\n if (odataObject.Scanners[i] != null) {\n if (odataObject.Scanners[i]['@odata.type'] != null) {\n var className: string = odataObject.Scanners[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scanners[i] = new entityDictionary[className](odataObject.Scanners[i])\n }\n } else {\n this.Scanners[i] = new HardwareProfileScannerClass(odataObject.Scanners[i]);\n }\n } else {\n this.Scanners[i] = undefined;\n }\n }\n }\n \n this.FiscalIntegrationTechnicalProfiles = undefined;\n if (odataObject.FiscalIntegrationTechnicalProfiles) {\n this.FiscalIntegrationTechnicalProfiles = [];\n for (var i = 0; i < odataObject.FiscalIntegrationTechnicalProfiles.length; i++) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i] != null) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalIntegrationTechnicalProfiles[i] = new entityDictionary[className](odataObject.FiscalIntegrationTechnicalProfiles[i])\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalIntegrationTechnicalProfiles[i]);\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = undefined;\n }\n }\n }\n \n this.CashDrawers = undefined;\n if (odataObject.CashDrawers) {\n this.CashDrawers = [];\n for (var i = 0; i < odataObject.CashDrawers.length; i++) {\n if (odataObject.CashDrawers[i] != null) {\n if (odataObject.CashDrawers[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawers[i] = new entityDictionary[className](odataObject.CashDrawers[i])\n }\n } else {\n this.CashDrawers[i] = new HardwareProfileCashDrawerClass(odataObject.CashDrawers[i]);\n }\n } else {\n this.CashDrawers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileClass'] = HardwareProfileClass;\n \n /**\n * SupportedLanguage entity class.\n */\n export class SupportedLanguageClass implements Entities.SupportedLanguage {\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SupportedLanguageClass'] = SupportedLanguageClass;\n \n /**\n * PaymentCard entity class.\n */\n export class PaymentCardClass implements Entities.PaymentCard {\n public UseShippingAddress: boolean;\n public CardNumber: string;\n public CCID: string;\n public Track1: string;\n public Track2: string;\n public Track3: string;\n public VoiceAuthorizationCode: string;\n public EncryptedPin: string;\n public AdditionalSecurityData: string;\n public IsSwipe: boolean;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseShippingAddress = \n odataObject.UseShippingAddress;\n \n this.CardNumber = \n odataObject.CardNumber;\n \n this.CCID = \n odataObject.CCID;\n \n this.Track1 = \n odataObject.Track1;\n \n this.Track2 = \n odataObject.Track2;\n \n this.Track3 = \n odataObject.Track3;\n \n this.VoiceAuthorizationCode = \n odataObject.VoiceAuthorizationCode;\n \n this.EncryptedPin = \n odataObject.EncryptedPin;\n \n this.AdditionalSecurityData = \n odataObject.AdditionalSecurityData;\n \n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentCardClass'] = PaymentCardClass;\n \n /**\n * CardPaymentAcceptSettings entity class.\n */\n export class CardPaymentAcceptSettingsClass implements Entities.CardPaymentAcceptSettings {\n public HostPageOrigin: string;\n public AdaptorPath: string;\n public CardTokenizationEnabled: boolean;\n public CardPaymentEnabled: boolean;\n public PaymentAmount: number;\n public HideBillingAddress: boolean;\n public TenderTypeId: string;\n public Locale: string;\n public RequireShippingAddress: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HostPageOrigin = \n odataObject.HostPageOrigin;\n \n this.AdaptorPath = \n odataObject.AdaptorPath;\n \n this.CardTokenizationEnabled = \n odataObject.CardTokenizationEnabled;\n \n this.CardPaymentEnabled = \n odataObject.CardPaymentEnabled;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.HideBillingAddress = \n odataObject.HideBillingAddress;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Locale = \n odataObject.Locale;\n \n this.RequireShippingAddress = \n odataObject.RequireShippingAddress;\n \n }\n }\n entityDictionary['CardPaymentAcceptSettingsClass'] = CardPaymentAcceptSettingsClass;\n \n /**\n * CardPaymentAcceptPoint entity class.\n */\n export class CardPaymentAcceptPointClass implements Entities.CardPaymentAcceptPoint {\n public AcceptPageUrl: string;\n public AcceptPageSubmitUrl: string;\n public MessageOrigin: string;\n public AcceptPageContent: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AcceptPageUrl = \n odataObject.AcceptPageUrl;\n \n this.AcceptPageSubmitUrl = \n odataObject.AcceptPageSubmitUrl;\n \n this.MessageOrigin = \n odataObject.MessageOrigin;\n \n this.AcceptPageContent = \n odataObject.AcceptPageContent;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['CardPaymentAcceptPointClass'] = CardPaymentAcceptPointClass;\n \n /**\n * CardPaymentAcceptResult entity class.\n */\n export class CardPaymentAcceptResultClass implements Entities.CardPaymentAcceptResult {\n public TenderLine: Entities.TenderLine;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public PaymentSdkErrors: Entities.PaymentError[];\n public AdditionalContext: string;\n public AccessCode: string;\n public Settings: Entities.RetrievePaymentResultSettings;\n public Email: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.TenderLine == null) {\n this.TenderLine = undefined;\n } else if (odataObject.TenderLine['@odata.type'] == null) {\n this.TenderLine = new TenderLineClass(odataObject.TenderLine);\n } else {\n var className: string = odataObject.TenderLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLine = new entityDictionary[className](odataObject.TenderLine)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.AccessCode = \n odataObject.AccessCode;\n \n if (odataObject.Settings == null) {\n this.Settings = undefined;\n } else if (odataObject.Settings['@odata.type'] == null) {\n this.Settings = new RetrievePaymentResultSettingsClass(odataObject.Settings);\n } else {\n var className: string = odataObject.Settings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Settings = new entityDictionary[className](odataObject.Settings)\n }\n }\n\n \n this.Email = \n odataObject.Email;\n \n }\n }\n entityDictionary['CardPaymentAcceptResultClass'] = CardPaymentAcceptResultClass;\n \n /**\n * ReasonCodeLine entity class.\n */\n export class ReasonCodeLineClass implements Entities.ReasonCodeLine {\n public LineId: string;\n public Amount: number;\n public Information: string;\n public InformationAmount: number;\n public InputTypeValue: number;\n public ItemTender: string;\n public LineNumber: number;\n public LineTypeValue: number;\n public ParentLineId: string;\n public ReasonCodeId: string;\n public StatementCode: string;\n public SubReasonCodeId: string;\n public SourceCode: string;\n public SourceCode2: string;\n public SourceCode3: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public FiscalTransactionParentGuid: string;\n public IsChanged: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Information = \n odataObject.Information;\n \n this.InformationAmount = \n (odataObject.InformationAmount != null) ? parseFloat(odataObject.InformationAmount) : undefined;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ItemTender = \n odataObject.ItemTender;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LineTypeValue = \n odataObject.LineTypeValue;\n \n this.ParentLineId = \n odataObject.ParentLineId;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.SubReasonCodeId = \n odataObject.SubReasonCodeId;\n \n this.SourceCode = \n odataObject.SourceCode;\n \n this.SourceCode2 = \n odataObject.SourceCode2;\n \n this.SourceCode3 = \n odataObject.SourceCode3;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FiscalTransactionParentGuid = \n odataObject.FiscalTransactionParentGuid;\n \n this.IsChanged = \n odataObject.IsChanged;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeLineClass'] = ReasonCodeLineClass;\n \n /**\n * ReasonSubCode entity class.\n */\n export class ReasonSubCodeClass implements Entities.ReasonSubCode {\n public TriggerCode: string;\n public AmountPercent: number;\n public ReasonCodeId: string;\n public SubCodeId: string;\n public Description: string;\n public TriggerFunctionTypeValue: number;\n public ProductId: number;\n public PriceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TriggerCode = \n odataObject.TriggerCode;\n \n this.AmountPercent = \n (odataObject.AmountPercent != null) ? parseFloat(odataObject.AmountPercent) : undefined;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SubCodeId = \n odataObject.SubCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.TriggerFunctionTypeValue = \n odataObject.TriggerFunctionTypeValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.PriceTypeValue = \n odataObject.PriceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonSubCodeClass'] = ReasonSubCodeClass;\n \n /**\n * Receipt entity class.\n */\n export class ReceiptClass implements Entities.Receipt {\n public TransactionId: string;\n public Header: string;\n public Body: string;\n public Footer: string;\n public Width: number;\n public ReceiptId: string;\n public LayoutId: string;\n public ReceiptTitle: string;\n public ReceiptTypeValue: number;\n public ReceiptTypeStrValue: string;\n public Printers: Entities.Printer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.Header = \n odataObject.Header;\n \n this.Body = \n odataObject.Body;\n \n this.Footer = \n odataObject.Footer;\n \n this.Width = \n odataObject.Width;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypeStrValue = \n odataObject.ReceiptTypeStrValue;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new PrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptClass'] = ReceiptClass;\n \n /**\n * ReceiptMask entity class.\n */\n export class ReceiptMaskClass implements Entities.ReceiptMask {\n public FunctionalityProfileId: string;\n public IsIndependent: boolean;\n public ReceiptTransactionTypeValue: number;\n public RecordId: number;\n public Mask: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.IsIndependent = \n odataObject.IsIndependent;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Mask = \n odataObject.Mask;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptMaskClass'] = ReceiptMaskClass;\n \n /**\n * SalesLine entity class.\n */\n export class SalesLineClass implements Entities.SalesLine {\n public StaffId: string;\n public LineId: string;\n public Description: string;\n public OriginLineId: string;\n public TaxOverrideCode: string;\n public IsPriceKeyedIn: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public ProductId: number;\n public Barcode: string;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public EntryMethodTypeValue: number;\n public MasterProductId: number;\n public ListingId: number;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public Comment: string;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public WarehouseLocation: string;\n public InventoryStatusId: string;\n public LicensePlate: string;\n public InventoryDimensionId: string;\n public 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 SalesAgreementPrice: number;\n public SalesAgreementLineRecordId: number;\n public IsSalesAgreementSkipped: boolean;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Description = \n odataObject.Description;\n \n this.OriginLineId = \n odataObject.OriginLineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comment = \n odataObject.Comment;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.InventoryStatusId = \n odataObject.InventoryStatusId;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.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.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n this.IsSalesAgreementSkipped = \n odataObject.IsSalesAgreementSkipped;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineClass'] = SalesLineClass;\n \n /**\n * SearchArea entity class.\n */\n export class SearchAreaClass implements Entities.SearchArea {\n public Longitude: number;\n public Latitude: number;\n public Radius: number;\n public DistanceUnitValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Radius = \n (odataObject.Radius != null) ? parseFloat(odataObject.Radius) : undefined;\n \n this.DistanceUnitValue = \n odataObject.DistanceUnitValue;\n \n }\n }\n entityDictionary['SearchAreaClass'] = SearchAreaClass;\n \n /**\n * ShiftAccountLine entity class.\n */\n export class ShiftAccountLineClass implements Entities.ShiftAccountLine {\n public AccountTypeValue: number;\n public AccountNumber: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftAccountLineClass'] = ShiftAccountLineClass;\n \n /**\n * ShiftTenderLine entity class.\n */\n export class ShiftTenderLineClass implements Entities.ShiftTenderLine {\n public TenderTypeId: string;\n public TenderTypeName: string;\n public CardTypeId: string;\n public TenderCurrency: string;\n public CountingRequired: boolean;\n public StartingAmountOfStoreCurrency: number;\n public StartingAmountOfTenderCurrency: number;\n public FloatingEntryAmountOfStoreCurrency: number;\n public FloatingEntryAmountOfTenderCurrency: number;\n public SafeDropAmountOfStoreCurrency: number;\n public SafeDropAmountOfTenderCurrency: number;\n public BankDropAmountOfStoreCurrency: number;\n public BankDropAmountOfTenderCurrency: number;\n public RemoveTenderAmountOfStoreCurrency: number;\n public RemoveTenderAmountOfTenderCurrency: number;\n public DeclareTenderAmountOfStoreCurrency: number;\n public DeclareTenderAmountOfTenderCurrency: number;\n public TenderedAmountOfStoreCurrency: number;\n public TenderedAmountOfTenderCurrency: number;\n public ChangeAmountOfStoreCurrency: number;\n public ChangeAmountOfTenderCurrency: number;\n public Count: number;\n public Notes: string;\n public 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 RoundingDifference: number;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.RefundableAmount = \n (odataObject.RefundableAmount != null) ? parseFloat(odataObject.RefundableAmount) : undefined;\n \n this.CaptureToken = \n odataObject.CaptureToken;\n \n this.CardToken = \n odataObject.CardToken;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.IncomeExpenseAccountTypeValue = \n odataObject.IncomeExpenseAccountTypeValue;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n this.TenderDate = \n (odataObject.TenderDate instanceof Date) ? odataObject.TenderDate\n : (odataObject.TenderDate != null) ? jsonLightReadStringPropertyValue(odataObject.TenderDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsPreProcessed = \n odataObject.IsPreProcessed;\n \n this.IsDeposit = \n odataObject.IsDeposit;\n \n this.IsCustomerAccountFloorLimitUsed = \n odataObject.IsCustomerAccountFloorLimitUsed;\n \n this.AuthorizationReferenceId = \n odataObject.AuthorizationReferenceId;\n \n this.IsIncrementalCaptureEnabled = \n odataObject.IsIncrementalCaptureEnabled;\n \n this.IsReauthorizationEnabled = \n odataObject.IsReauthorizationEnabled;\n \n this.IncrementalOffsetAmount = \n (odataObject.IncrementalOffsetAmount != null) ? parseFloat(odataObject.IncrementalOffsetAmount) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.RoundingDifference = \n (odataObject.RoundingDifference != null) ? parseFloat(odataObject.RoundingDifference) : undefined;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderLineClass'] = TenderLineClass;\n \n /**\n * TextValueTranslation entity class.\n */\n export class TextValueTranslationClass implements Entities.TextValueTranslation {\n public Language: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Language = \n odataObject.Language;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TextValueTranslationClass'] = TextValueTranslationClass;\n \n /**\n * UnitOfMeasure entity class.\n */\n export class UnitOfMeasureClass implements Entities.UnitOfMeasure {\n public DecimalPrecision: number;\n public Symbol: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DecimalPrecision = \n odataObject.DecimalPrecision;\n \n this.Symbol = \n odataObject.Symbol;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureClass'] = UnitOfMeasureClass;\n \n /**\n * RecommendedElement entity class.\n */\n export class RecommendedElementClass implements Entities.RecommendedElement {\n public ElementId: string;\n public ElementTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ElementId = \n odataObject.ElementId;\n \n this.ElementTypeValue = \n odataObject.ElementTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendedElementClass'] = RecommendedElementClass;\n \n /**\n * RecommendationCriteria entity class.\n */\n export class RecommendationCriteriaClass implements Entities.RecommendationCriteria {\n public CustomerAccountNumber: string;\n public CatalogId: number;\n public ProductIds: number[];\n public CategoryIds: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationCriteriaClass'] = RecommendationCriteriaClass;\n \n /**\n * ProductListLine entity class.\n */\n export class ProductListLineClass implements Entities.ProductListLine {\n public ProductListId: string;\n public LineId: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductListId = \n odataObject.ProductListId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListLineClass'] = ProductListLineClass;\n \n /**\n * CommerceListLine entity class.\n */\n export class CommerceListLineClass implements Entities.CommerceListLine {\n public CommerceListId: number;\n public LineId: number;\n public CustomerId: string;\n public CustomerName: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CommerceListId = \n (odataObject.CommerceListId != null) ? parseInt(odataObject.CommerceListId, 10) : undefined;\n \n this.LineId = \n (odataObject.LineId != null) ? parseInt(odataObject.LineId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListLineClass'] = CommerceListLineClass;\n \n /**\n * CommerceListContributor entity class.\n */\n export class CommerceListContributorClass implements Entities.CommerceListContributor {\n public RecordId: number;\n public CustomerId: string;\n public CustomerName: string;\n public InvitationId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvitationId = \n (odataObject.InvitationId != null) ? parseInt(odataObject.InvitationId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListContributorClass'] = CommerceListContributorClass;\n \n /**\n * CommerceListInvitation entity class.\n */\n export class CommerceListInvitationClass implements Entities.CommerceListInvitation {\n public RecordId: number;\n public Invitee: string;\n public IsSent: boolean;\n public LastRequestDateTime: Date;\n public LastSentDateTime: Date;\n public StatusValue: number;\n public Token: string;\n public InvitationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Invitee = \n odataObject.Invitee;\n \n this.IsSent = \n odataObject.IsSent;\n \n this.LastRequestDateTime = \n (odataObject.LastRequestDateTime instanceof Date) ? odataObject.LastRequestDateTime\n : (odataObject.LastRequestDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastRequestDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastSentDateTime = \n (odataObject.LastSentDateTime instanceof Date) ? odataObject.LastSentDateTime\n : (odataObject.LastSentDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSentDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.InvitationTypeValue = \n odataObject.InvitationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListInvitationClass'] = CommerceListInvitationClass;\n \n /**\n * SearchFilter entity class.\n */\n export class SearchFilterClass implements Entities.SearchFilter {\n public Key: string;\n public FilterTypeValue: number;\n public SearchValues: Entities.SearchFilterValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.FilterTypeValue = \n odataObject.FilterTypeValue;\n \n this.SearchValues = undefined;\n if (odataObject.SearchValues) {\n this.SearchValues = [];\n for (var i = 0; i < odataObject.SearchValues.length; i++) {\n if (odataObject.SearchValues[i] != null) {\n if (odataObject.SearchValues[i]['@odata.type'] != null) {\n var className: string = odataObject.SearchValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchValues[i] = new entityDictionary[className](odataObject.SearchValues[i])\n }\n } else {\n this.SearchValues[i] = new SearchFilterValueClass(odataObject.SearchValues[i]);\n }\n } else {\n this.SearchValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchFilterClass'] = SearchFilterClass;\n \n /**\n * SearchFilterValue entity class.\n */\n export class SearchFilterValueClass implements Entities.SearchFilterValue {\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['SearchFilterValueClass'] = SearchFilterValueClass;\n \n /**\n * TransactionSearchCriteria entity class.\n */\n export class TransactionSearchCriteriaClass implements Entities.TransactionSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SearchLocationTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionSearchCriteriaClass'] = TransactionSearchCriteriaClass;\n \n /**\n * SalesOrderSearchCriteria entity class.\n */\n export class SalesOrderSearchCriteriaClass implements Entities.SalesOrderSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public SearchTypeValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public IncludeDetails: boolean;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SalesTransactionTypeValues: number[];\n public SearchLocationTypeValue: number;\n public TransactionStatusTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SearchTypeValue = \n odataObject.SearchTypeValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IncludeDetails = \n odataObject.IncludeDetails;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SalesTransactionTypeValues = undefined;\n if (odataObject.SalesTransactionTypeValues) {\n this.SalesTransactionTypeValues = [];\n for (var i = 0; i < odataObject.SalesTransactionTypeValues.length; i++) {\n if (odataObject.SalesTransactionTypeValues[i] != null) {\n this.SalesTransactionTypeValues[i] = \n odataObject.SalesTransactionTypeValues[i];\n } else {\n this.SalesTransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.TransactionStatusTypeValues = undefined;\n if (odataObject.TransactionStatusTypeValues) {\n this.TransactionStatusTypeValues = [];\n for (var i = 0; i < odataObject.TransactionStatusTypeValues.length; i++) {\n if (odataObject.TransactionStatusTypeValues[i] != null) {\n this.TransactionStatusTypeValues[i] = \n odataObject.TransactionStatusTypeValues[i];\n } else {\n this.TransactionStatusTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderSearchCriteriaClass'] = SalesOrderSearchCriteriaClass;\n \n /**\n * SearchStoreCriteria entity class.\n */\n export class SearchStoreCriteriaClass implements Entities.SearchStoreCriteria {\n public ChannelId: number;\n public StoreNumber: string;\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n }\n }\n entityDictionary['SearchStoreCriteriaClass'] = SearchStoreCriteriaClass;\n \n /**\n * CustomerSearchCriteria entity class.\n */\n export class CustomerSearchCriteriaClass implements Entities.CustomerSearchCriteria {\n public Keyword: string;\n public SearchOnlyCurrentCompany: boolean;\n public SearchLocationValue: number;\n public Refinements: Entities.CustomerRefinerValue[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Keyword = \n odataObject.Keyword;\n \n this.SearchOnlyCurrentCompany = \n odataObject.SearchOnlyCurrentCompany;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.Refinements = undefined;\n if (odataObject.Refinements) {\n this.Refinements = [];\n for (var i = 0; i < odataObject.Refinements.length; i++) {\n if (odataObject.Refinements[i] != null) {\n if (odataObject.Refinements[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinements[i] = new entityDictionary[className](odataObject.Refinements[i])\n }\n } else {\n this.Refinements[i] = new CustomerRefinerValueClass(odataObject.Refinements[i]);\n }\n } else {\n this.Refinements[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchCriteriaClass'] = CustomerSearchCriteriaClass;\n \n /**\n * ProductPrice entity class.\n */\n export class ProductPriceClass implements Entities.ProductPrice {\n public ProductId: number;\n public ListingId: number;\n public BasePrice: number;\n public TradeAgreementPrice: number;\n public AdjustedPrice: number;\n public MaxVariantPrice: number;\n public MinVariantPrice: number;\n public CustomerContextualPrice: number;\n public DiscountAmount: number;\n public CurrencyCode: string;\n public ItemId: string;\n public InventoryDimensionId: string;\n public UnitOfMeasure: string;\n public ValidFrom: Date;\n public ProductLookupId: number;\n public ChannelId: number;\n public CatalogId: number;\n public DiscountLines: Entities.DiscountLine[];\n public SalesAgreementPrice: number;\n public PriceSourceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.TradeAgreementPrice = \n (odataObject.TradeAgreementPrice != null) ? parseFloat(odataObject.TradeAgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.CustomerContextualPrice = \n (odataObject.CustomerContextualPrice != null) ? parseFloat(odataObject.CustomerContextualPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductLookupId = \n (odataObject.ProductLookupId != null) ? parseInt(odataObject.ProductLookupId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.PriceSourceTypeValue = \n odataObject.PriceSourceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPriceClass'] = ProductPriceClass;\n \n /**\n * OrgUnitAvailability entity class.\n */\n export class OrgUnitAvailabilityClass implements Entities.OrgUnitAvailability {\n public OrgUnitLocation: Entities.OrgUnitLocation;\n public ItemAvailabilities: Entities.ItemAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.OrgUnitLocation == null) {\n this.OrgUnitLocation = undefined;\n } else if (odataObject.OrgUnitLocation['@odata.type'] == null) {\n this.OrgUnitLocation = new OrgUnitLocationClass(odataObject.OrgUnitLocation);\n } else {\n var className: string = odataObject.OrgUnitLocation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitLocation = new entityDictionary[className](odataObject.OrgUnitLocation)\n }\n }\n\n \n this.ItemAvailabilities = undefined;\n if (odataObject.ItemAvailabilities) {\n this.ItemAvailabilities = [];\n for (var i = 0; i < odataObject.ItemAvailabilities.length; i++) {\n if (odataObject.ItemAvailabilities[i] != null) {\n if (odataObject.ItemAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemAvailabilities[i] = new entityDictionary[className](odataObject.ItemAvailabilities[i])\n }\n } else {\n this.ItemAvailabilities[i] = new ItemAvailabilityClass(odataObject.ItemAvailabilities[i]);\n }\n } else {\n this.ItemAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitAvailabilityClass'] = OrgUnitAvailabilityClass;\n \n /**\n * ProductVariantPropertySet entity class.\n */\n export class ProductVariantPropertySetClass implements Entities.ProductVariantPropertySet {\n public VariantId: number;\n public ProductVariantPropertiesAsList: Entities.ProductPropertyTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.VariantId = \n (odataObject.VariantId != null) ? parseInt(odataObject.VariantId, 10) : undefined;\n \n this.ProductVariantPropertiesAsList = undefined;\n if (odataObject.ProductVariantPropertiesAsList) {\n this.ProductVariantPropertiesAsList = [];\n for (var i = 0; i < odataObject.ProductVariantPropertiesAsList.length; i++) {\n if (odataObject.ProductVariantPropertiesAsList[i] != null) {\n if (odataObject.ProductVariantPropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductVariantPropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductVariantPropertiesAsList[i] = new entityDictionary[className](odataObject.ProductVariantPropertiesAsList[i])\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.ProductVariantPropertiesAsList[i]);\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantPropertySetClass'] = ProductVariantPropertySetClass;\n \n /**\n * PurchaseOrderLine entity class.\n */\n export class PurchaseOrderLineClass implements Entities.PurchaseOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseQuantity: number;\n public PurchaseUnit: string;\n public PurchaseReceived: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public UniqueIdentifier: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseQuantity = \n (odataObject.PurchaseQuantity != null) ? parseFloat(odataObject.PurchaseQuantity) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.PurchaseReceived = \n (odataObject.PurchaseReceived != null) ? parseFloat(odataObject.PurchaseReceived) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.UniqueIdentifier = \n odataObject.UniqueIdentifier;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderLineClass'] = PurchaseOrderLineClass;\n \n /**\n * TransferOrderLine entity class.\n */\n export class TransferOrderLineClass implements Entities.TransferOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityTransferred: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityRemainShip: number;\n public QuantityRemainReceive: number;\n public PurchaseUnit: string;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityTransferred = \n (odataObject.QuantityTransferred != null) ? parseFloat(odataObject.QuantityTransferred) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityRemainShip = \n (odataObject.QuantityRemainShip != null) ? parseFloat(odataObject.QuantityRemainShip) : undefined;\n \n this.QuantityRemainReceive = \n (odataObject.QuantityRemainReceive != null) ? parseFloat(odataObject.QuantityRemainReceive) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderLineClass'] = TransferOrderLineClass;\n \n /**\n * TransferOrderJournal entity class.\n */\n export class TransferOrderJournalClass implements Entities.TransferOrderJournal {\n public OrderId: string;\n public VoucherId: string;\n public UpdatedByWorker: string;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public PostingDate: Date;\n public DeliveryMode: string;\n public Comments: string;\n public JournalLines: Entities.TransferOrderJournalLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.VoucherId = \n odataObject.VoucherId;\n \n this.UpdatedByWorker = \n odataObject.UpdatedByWorker;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.PostingDate = \n (odataObject.PostingDate instanceof Date) ? odataObject.PostingDate\n : (odataObject.PostingDate != null) ? jsonLightReadStringPropertyValue(odataObject.PostingDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comments = \n odataObject.Comments;\n \n this.JournalLines = undefined;\n if (odataObject.JournalLines) {\n this.JournalLines = [];\n for (var i = 0; i < odataObject.JournalLines.length; i++) {\n if (odataObject.JournalLines[i] != null) {\n if (odataObject.JournalLines[i]['@odata.type'] != null) {\n var className: string = odataObject.JournalLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.JournalLines[i] = new entityDictionary[className](odataObject.JournalLines[i])\n }\n } else {\n this.JournalLines[i] = new TransferOrderJournalLineClass(odataObject.JournalLines[i]);\n }\n } else {\n this.JournalLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalClass'] = TransferOrderJournalClass;\n \n /**\n * PickingListLine entity class.\n */\n export class PickingListLineClass implements Entities.PickingListLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListLineClass'] = PickingListLineClass;\n \n /**\n * Affiliation entity class.\n */\n export class AffiliationClass implements Entities.Affiliation {\n public RecordId: number;\n public AffiliationTypeValue: number;\n public Description: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationClass'] = AffiliationClass;\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity class.\n */\n export class InventoryInboundOutboundDocumentLinesSummaryClass implements Entities.InventoryInboundOutboundDocumentLinesSummary {\n public InProgressQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InProgressQuantity = \n (odataObject.InProgressQuantity != null) ? parseFloat(odataObject.InProgressQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLinesSummaryClass'] = InventoryInboundOutboundDocumentLinesSummaryClass;\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity class.\n */\n export class InventoryDocumentSerialNumberLinesSummaryClass implements Entities.InventoryDocumentSerialNumberLinesSummary {\n public RegisteringQuantity: number;\n public RegisteredQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegisteringQuantity = \n (odataObject.RegisteringQuantity != null) ? parseFloat(odataObject.RegisteringQuantity) : undefined;\n \n this.RegisteredQuantity = \n (odataObject.RegisteredQuantity != null) ? parseFloat(odataObject.RegisteredQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLinesSummaryClass'] = InventoryDocumentSerialNumberLinesSummaryClass;\n \n /**\n * InventoryInboundOutboundDocumentLine entity class.\n */\n export class InventoryInboundOutboundDocumentLineClass implements Entities.InventoryInboundOutboundDocumentLine {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentLineRecordId: number;\n public SourceDocumentTypeValue: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public QuantityToUpdate: number;\n public LocationId: string;\n public ItemId: string;\n public ProductId: number;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public OperationResultMessage: string;\n public IsCloseLine: boolean;\n public OriginTypeValue: number;\n public UnitOfMeasure: string;\n public SourceDocumentLine: Entities.InventoryInboundOutboundSourceDocumentLine;\n public SerialNumberLines: Entities.InventoryDocumentSerialNumberLine[];\n public LongVersion: number;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.QuantityToUpdate = \n (odataObject.QuantityToUpdate != null) ? parseFloat(odataObject.QuantityToUpdate) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.IsCloseLine = \n odataObject.IsCloseLine;\n \n this.OriginTypeValue = \n odataObject.OriginTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n if (odataObject.SourceDocumentLine == null) {\n this.SourceDocumentLine = undefined;\n } else if (odataObject.SourceDocumentLine['@odata.type'] == null) {\n this.SourceDocumentLine = new InventoryInboundOutboundSourceDocumentLineClass(odataObject.SourceDocumentLine);\n } else {\n var className: string = odataObject.SourceDocumentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocumentLine = new entityDictionary[className](odataObject.SourceDocumentLine)\n }\n }\n\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLineClass'] = InventoryInboundOutboundDocumentLineClass;\n \n /**\n * InventoryInboundOutboundSourceDocument entity class.\n */\n export class InventoryInboundOutboundSourceDocumentClass implements Entities.InventoryInboundOutboundSourceDocument {\n public RecordId: number;\n public DocumentTypeValue: number;\n public DocumentId: string;\n public StatusValue: number;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public TotalQuantityOrdered: number;\n public TotalQuantityShipped: number;\n public TotalQuantityReceived: number;\n public TotalQuantityCancelled: number;\n public DataAreaId: string;\n public Note: string;\n public TotalLines: number;\n public IsChangeAllowed: boolean;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalQuantityOrdered = \n (odataObject.TotalQuantityOrdered != null) ? parseFloat(odataObject.TotalQuantityOrdered) : undefined;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.TotalQuantityReceived = \n (odataObject.TotalQuantityReceived != null) ? parseFloat(odataObject.TotalQuantityReceived) : undefined;\n \n this.TotalQuantityCancelled = \n (odataObject.TotalQuantityCancelled != null) ? parseFloat(odataObject.TotalQuantityCancelled) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.TotalLines = \n (odataObject.TotalLines != null) ? parseInt(odataObject.TotalLines, 10) : undefined;\n \n this.IsChangeAllowed = \n odataObject.IsChangeAllowed;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentClass'] = InventoryInboundOutboundSourceDocumentClass;\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity class.\n */\n export class InventoryInboundOutboundSourceDocumentLineClass implements Entities.InventoryInboundOutboundSourceDocumentLine {\n public DocumentRecordId: number;\n public DocumentTypeValue: number;\n public RecordId: number;\n public LineNumber: number;\n public ItemId: string;\n public ProductId: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public LocationId: string;\n public OverDeliveryPercentage: number;\n public UnderDeliveryPercentage: number;\n public UnitId: string;\n public Receiver: string;\n public DataAreaId: string;\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentId: string;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public HasSerialNumber: boolean;\n public IsSerialNumberBlankReceiptAllowed: boolean;\n public IsSerialNumberDuplicateCheckEnabled: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public SerialNumberLines: Entities.InventoryDocumentSourceSerialNumberLine[];\n public StatusValue: number;\n public ToProductId: number;\n public ToLocationId: string;\n public InventoryDimensionId: string;\n public ToInventoryDimensionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentRecordId = \n (odataObject.DocumentRecordId != null) ? parseInt(odataObject.DocumentRecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.OverDeliveryPercentage = \n (odataObject.OverDeliveryPercentage != null) ? parseFloat(odataObject.OverDeliveryPercentage) : undefined;\n \n this.UnderDeliveryPercentage = \n (odataObject.UnderDeliveryPercentage != null) ? parseFloat(odataObject.UnderDeliveryPercentage) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsSerialNumberBlankReceiptAllowed = \n odataObject.IsSerialNumberBlankReceiptAllowed;\n \n this.IsSerialNumberDuplicateCheckEnabled = \n odataObject.IsSerialNumberDuplicateCheckEnabled;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ToProductId = \n (odataObject.ToProductId != null) ? parseInt(odataObject.ToProductId, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ToInventoryDimensionId = \n odataObject.ToInventoryDimensionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentLineClass'] = InventoryInboundOutboundSourceDocumentLineClass;\n \n /**\n * InventoryDocumentLineFilterCriteria entity class.\n */\n export class InventoryDocumentLineFilterCriteriaClass implements Entities.InventoryDocumentLineFilterCriteria {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineFilterCriteriaClass'] = InventoryDocumentLineFilterCriteriaClass;\n \n /**\n * InventoryDocumentUpdateLinesAction entity class.\n */\n export class InventoryDocumentUpdateLinesActionClass implements Entities.InventoryDocumentUpdateLinesAction {\n public Quantity: number;\n public ActionTypeValue: number;\n public LocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ActionTypeValue = \n odataObject.ActionTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentUpdateLinesActionClass'] = InventoryDocumentUpdateLinesActionClass;\n \n /**\n * InventoryDocumentLineOperationResultSettings entity class.\n */\n export class InventoryDocumentLineOperationResultSettingsClass implements Entities.InventoryDocumentLineOperationResultSettings {\n public ModeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModeValue = \n odataObject.ModeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineOperationResultSettingsClass'] = InventoryDocumentLineOperationResultSettingsClass;\n \n /**\n * InventoryDocumentLineSearchCriteria entity class.\n */\n export class InventoryDocumentLineSearchCriteriaClass implements Entities.InventoryDocumentLineSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ProductId: number;\n public ItemIds: string[];\n public AvailableSerializedLineOnly: boolean;\n public DocumentLineIds: string[];\n public DocumentOperationTypeValue: number;\n public OperationTypeValue: number;\n public LocationId: string;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n this.ItemIds[i] = \n odataObject.ItemIds[i];\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.AvailableSerializedLineOnly = \n odataObject.AvailableSerializedLineOnly;\n \n this.DocumentLineIds = undefined;\n if (odataObject.DocumentLineIds) {\n this.DocumentLineIds = [];\n for (var i = 0; i < odataObject.DocumentLineIds.length; i++) {\n if (odataObject.DocumentLineIds[i] != null) {\n this.DocumentLineIds[i] = \n odataObject.DocumentLineIds[i];\n } else {\n this.DocumentLineIds[i] = undefined;\n }\n }\n }\n \n this.DocumentOperationTypeValue = \n odataObject.DocumentOperationTypeValue;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineSearchCriteriaClass'] = InventoryDocumentLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSearchCriteria entity class.\n */\n export class InventoryDocumentSearchCriteriaClass implements Entities.InventoryDocumentSearchCriteria {\n public DocumentId: string;\n public TransferFromWarehouse: string;\n public ShipFromWarehouse: string;\n public TransferToWarehouse: string;\n public Description: string;\n public DocumentTypeIds: string[];\n public DocumentStateValue: number;\n public DocumentTypeValues: number[];\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.TransferFromWarehouse = \n odataObject.TransferFromWarehouse;\n \n this.ShipFromWarehouse = \n odataObject.ShipFromWarehouse;\n \n this.TransferToWarehouse = \n odataObject.TransferToWarehouse;\n \n this.Description = \n odataObject.Description;\n \n this.DocumentTypeIds = undefined;\n if (odataObject.DocumentTypeIds) {\n this.DocumentTypeIds = [];\n for (var i = 0; i < odataObject.DocumentTypeIds.length; i++) {\n if (odataObject.DocumentTypeIds[i] != null) {\n this.DocumentTypeIds[i] = \n odataObject.DocumentTypeIds[i];\n } else {\n this.DocumentTypeIds[i] = undefined;\n }\n }\n }\n \n this.DocumentStateValue = \n odataObject.DocumentStateValue;\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSearchCriteriaClass'] = InventoryDocumentSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity class.\n */\n export class InventoryDocumentSerialNumberLineSearchCriteriaClass implements Entities.InventoryDocumentSerialNumberLineSearchCriteria {\n public DocumentLineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineSearchCriteriaClass'] = InventoryDocumentSerialNumberLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity class.\n */\n export class InventoryDocumentSerialNumberLineUpdateActionClass implements Entities.InventoryDocumentSerialNumberLineUpdateAction {\n public DocumentLineId: string;\n public LineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineUpdateActionClass'] = InventoryDocumentSerialNumberLineUpdateActionClass;\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity class.\n */\n export class InventoryDocumentSerialNumberLineResetActionClass implements Entities.InventoryDocumentSerialNumberLineResetAction {\n public DocumentLineId: string;\n public LineId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineResetActionClass'] = InventoryDocumentSerialNumberLineResetActionClass;\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity class.\n */\n export class InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass implements Entities.InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n public UpdatedLines: Entities.InventoryInboundOutboundDocumentLine[];\n public TotalLinesUpdated: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UpdatedLines = undefined;\n if (odataObject.UpdatedLines) {\n this.UpdatedLines = [];\n for (var i = 0; i < odataObject.UpdatedLines.length; i++) {\n if (odataObject.UpdatedLines[i] != null) {\n if (odataObject.UpdatedLines[i]['@odata.type'] != null) {\n var className: string = odataObject.UpdatedLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpdatedLines[i] = new entityDictionary[className](odataObject.UpdatedLines[i])\n }\n } else {\n this.UpdatedLines[i] = new InventoryInboundOutboundDocumentLineClass(odataObject.UpdatedLines[i]);\n }\n } else {\n this.UpdatedLines[i] = undefined;\n }\n }\n }\n \n this.TotalLinesUpdated = \n odataObject.TotalLinesUpdated;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass'] = InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass;\n \n /**\n * WarehouseLocationSearchCriteria entity class.\n */\n export class WarehouseLocationSearchCriteriaClass implements Entities.WarehouseLocationSearchCriteria {\n public WarehouseIds: string[];\n public IsLocationProfileRequired: boolean;\n public SearchText: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarehouseIds = undefined;\n if (odataObject.WarehouseIds) {\n this.WarehouseIds = [];\n for (var i = 0; i < odataObject.WarehouseIds.length; i++) {\n if (odataObject.WarehouseIds[i] != null) {\n this.WarehouseIds[i] = \n odataObject.WarehouseIds[i];\n } else {\n this.WarehouseIds[i] = undefined;\n }\n }\n }\n \n this.IsLocationProfileRequired = \n odataObject.IsLocationProfileRequired;\n \n this.SearchText = \n odataObject.SearchText;\n \n }\n }\n entityDictionary['WarehouseLocationSearchCriteriaClass'] = WarehouseLocationSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLine entity class.\n */\n export class InventoryDocumentSerialNumberLineClass implements Entities.InventoryDocumentSerialNumberLine {\n public WorkDocumentId: string;\n public WorkDocumentLineId: string;\n public SourceLineId: string;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public ModifiedDateTime: Date;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public SourceLine: Entities.InventoryDocumentSourceSerialNumberLine;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.WorkDocumentLineId = \n odataObject.WorkDocumentLineId;\n \n this.SourceLineId = \n odataObject.SourceLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n if (odataObject.SourceLine == null) {\n this.SourceLine = undefined;\n } else if (odataObject.SourceLine['@odata.type'] == null) {\n this.SourceLine = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SourceLine);\n } else {\n var className: string = odataObject.SourceLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceLine = new entityDictionary[className](odataObject.SourceLine)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineClass'] = InventoryDocumentSerialNumberLineClass;\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity class.\n */\n export class InventoryDocumentValidationCategoryResultsSummaryClass implements Entities.InventoryDocumentValidationCategoryResultsSummary {\n public CategoryName: string;\n public SeverityValue: number;\n public TotalValidationResultCount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.TotalValidationResultCount = \n odataObject.TotalValidationResultCount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationCategoryResultsSummaryClass'] = InventoryDocumentValidationCategoryResultsSummaryClass;\n \n /**\n * InventoryDocumentValidationResultSummary entity class.\n */\n export class InventoryDocumentValidationResultSummaryClass implements Entities.InventoryDocumentValidationResultSummary {\n public DocumentId: string;\n public DocumentVersion: number;\n public CategorySummaries: Entities.InventoryDocumentValidationCategoryResultsSummary[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.CategorySummaries = undefined;\n if (odataObject.CategorySummaries) {\n this.CategorySummaries = [];\n for (var i = 0; i < odataObject.CategorySummaries.length; i++) {\n if (odataObject.CategorySummaries[i] != null) {\n if (odataObject.CategorySummaries[i]['@odata.type'] != null) {\n var className: string = odataObject.CategorySummaries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategorySummaries[i] = new entityDictionary[className](odataObject.CategorySummaries[i])\n }\n } else {\n this.CategorySummaries[i] = new InventoryDocumentValidationCategoryResultsSummaryClass(odataObject.CategorySummaries[i]);\n }\n } else {\n this.CategorySummaries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSummaryClass'] = InventoryDocumentValidationResultSummaryClass;\n \n /**\n * InventoryDocumentValidationResultLine entity class.\n */\n export class InventoryDocumentValidationResultLineClass implements Entities.InventoryDocumentValidationResultLine {\n public DocumentValidationResultLineId: string;\n public CategoryName: string;\n public SeverityValue: number;\n public ErrorCode: number;\n public ErrorMessage: string;\n public DocumentId: string;\n public DocumentLongVersion: number;\n public DocumentLineId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentValidationResultLineId = \n odataObject.DocumentValidationResultLineId;\n \n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentLongVersion = \n (odataObject.DocumentLongVersion != null) ? parseInt(odataObject.DocumentLongVersion, 10) : undefined;\n \n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultLineClass'] = InventoryDocumentValidationResultLineClass;\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity class.\n */\n export class InventoryDocumentValidationResultSearchCriteriaClass implements Entities.InventoryDocumentValidationResultSearchCriteria {\n public DocumentId: string;\n public DocumentVersion: number;\n public SeverityValue: number;\n public Categories: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.Categories = undefined;\n if (odataObject.Categories) {\n this.Categories = [];\n for (var i = 0; i < odataObject.Categories.length; i++) {\n if (odataObject.Categories[i] != null) {\n this.Categories[i] = \n odataObject.Categories[i];\n } else {\n this.Categories[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSearchCriteriaClass'] = InventoryDocumentValidationResultSearchCriteriaClass;\n \n /**\n * ProductDimensionValueInventoryAvailability entity class.\n */\n export class ProductDimensionValueInventoryAvailabilityClass implements Entities.ProductDimensionValueInventoryAvailability {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ProductIds: number[];\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n }\n }\n entityDictionary['ProductDimensionValueInventoryAvailabilityClass'] = ProductDimensionValueInventoryAvailabilityClass;\n \n /**\n * ProductDimension entity class.\n */\n export class ProductDimensionClass implements Entities.ProductDimension {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionClass'] = ProductDimensionClass;\n \n /**\n * ProductDimensionValue entity class.\n */\n export class ProductDimensionValueClass implements Entities.ProductDimensionValue {\n public RecordId: number;\n public Value: string;\n public DimensionId: string;\n public ColorHexCode: string;\n public ImageUrl: string;\n public RefinerGroup: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n odataObject.Value;\n \n this.DimensionId = \n odataObject.DimensionId;\n \n this.ColorHexCode = \n odataObject.ColorHexCode;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.RefinerGroup = \n odataObject.RefinerGroup;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionValueClass'] = ProductDimensionValueClass;\n \n /**\n * ProductDimensionCombination entity class.\n */\n export class ProductDimensionCombinationClass implements Entities.ProductDimensionCombination {\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionCombinationClass'] = ProductDimensionCombinationClass;\n \n /**\n * SearchRefiner entity class.\n */\n export class SearchRefinerClass implements Entities.SearchRefiner {\n public RecordId: number;\n public KeyName: string;\n public DataTypeValue: number;\n public RefinerTypeValue: number;\n public DisplayTemplateValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.RefinerTypeValue = \n odataObject.RefinerTypeValue;\n \n this.DisplayTemplateValue = \n odataObject.DisplayTemplateValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerClass'] = SearchRefinerClass;\n \n /**\n * SearchRefinerValue entity class.\n */\n export class SearchRefinerValueClass implements Entities.SearchRefinerValue {\n public RefinerRecordId: number;\n public DataTypeValue: number;\n public LeftValueBoundString: string;\n public RightValueBoundString: string;\n public UnitText: string;\n public RowNumber: number;\n public Count: number;\n public LeftValueBoundLocalizedString: string;\n public RightValueBoundLocalizedString: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinerRecordId = \n (odataObject.RefinerRecordId != null) ? parseInt(odataObject.RefinerRecordId, 10) : undefined;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.LeftValueBoundString = \n odataObject.LeftValueBoundString;\n \n this.RightValueBoundString = \n odataObject.RightValueBoundString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.RowNumber = \n odataObject.RowNumber;\n \n this.Count = \n odataObject.Count;\n \n this.LeftValueBoundLocalizedString = \n odataObject.LeftValueBoundLocalizedString;\n \n this.RightValueBoundLocalizedString = \n odataObject.RightValueBoundLocalizedString;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerValueClass'] = SearchRefinerValueClass;\n \n /**\n * ProductRefiner entity class.\n */\n export class ProductRefinerClass\n extends SearchRefinerClass\n implements Entities.ProductRefiner {\n public SourceValue: number;\n public Values: Entities.ProductRefinerValue[];\n public IsDimension: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ProductRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefiner\";\n \n }\n }\n entityDictionary['ProductRefinerClass'] = ProductRefinerClass;\n \n /**\n * ProductRefinerValue entity class.\n */\n export class ProductRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ProductRefinerValue {\n public RefinerSourceValue: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefinerValue\";\n \n }\n }\n entityDictionary['ProductRefinerValueClass'] = ProductRefinerValueClass;\n \n /**\n * ClientBookRefiner entity class.\n */\n export class ClientBookRefinerClass\n extends SearchRefinerClass\n implements Entities.ClientBookRefiner {\n public SourceValue: number;\n public Values: Entities.ClientBookRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ClientBookRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefiner\";\n \n }\n }\n entityDictionary['ClientBookRefinerClass'] = ClientBookRefinerClass;\n \n /**\n * ClientBookRefinerValue entity class.\n */\n export class ClientBookRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ClientBookRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefinerValue\";\n \n }\n }\n entityDictionary['ClientBookRefinerValueClass'] = ClientBookRefinerValueClass;\n \n /**\n * ProductRelationType entity class.\n */\n export class ProductRelationTypeClass implements Entities.ProductRelationType {\n public Name: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRelationTypeClass'] = ProductRelationTypeClass;\n \n /**\n * ComponentInSlotRelation entity class.\n */\n export class ComponentInSlotRelationClass implements Entities.ComponentInSlotRelation {\n public ComponentId: number;\n public SlotId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentId = \n (odataObject.ComponentId != null) ? parseInt(odataObject.ComponentId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentInSlotRelationClass'] = ComponentInSlotRelationClass;\n \n /**\n * ProductRules entity class.\n */\n export class ProductRulesClass implements Entities.ProductRules {\n public HasLinkedProducts: boolean;\n public IsSerialized: boolean;\n public IsActiveInSalesProcess: boolean;\n public IsBlocked: boolean;\n public DateOfBlocking: Date;\n public DateToActivate: Date;\n public DateToBlock: Date;\n public DefaultUnitOfMeasure: string;\n public PriceKeyingRequirementValue: number;\n public QuantityKeyingRequirementValue: number;\n public MustKeyInComment: boolean;\n public CanQuantityBecomeNegative: boolean;\n public MustScaleItem: boolean;\n public CanPriceBeZero: boolean;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n this.IsSerialized = \n odataObject.IsSerialized;\n \n this.IsActiveInSalesProcess = \n odataObject.IsActiveInSalesProcess;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.DateOfBlocking = \n (odataObject.DateOfBlocking instanceof Date) ? odataObject.DateOfBlocking\n : (odataObject.DateOfBlocking != null) ? jsonLightReadStringPropertyValue(odataObject.DateOfBlocking, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToActivate = \n (odataObject.DateToActivate instanceof Date) ? odataObject.DateToActivate\n : (odataObject.DateToActivate != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBlock = \n (odataObject.DateToBlock instanceof Date) ? odataObject.DateToBlock\n : (odataObject.DateToBlock != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBlock, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.PriceKeyingRequirementValue = \n odataObject.PriceKeyingRequirementValue;\n \n this.QuantityKeyingRequirementValue = \n odataObject.QuantityKeyingRequirementValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.CanQuantityBecomeNegative = \n odataObject.CanQuantityBecomeNegative;\n \n this.MustScaleItem = \n odataObject.MustScaleItem;\n \n this.CanPriceBeZero = \n odataObject.CanPriceBeZero;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRulesClass'] = ProductRulesClass;\n \n /**\n * LocalizedString entity class.\n */\n export class LocalizedStringClass implements Entities.LocalizedString {\n public RecordId: number;\n public LanguageId: string;\n public TextId: number;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedStringClass'] = LocalizedStringClass;\n \n /**\n * LoyaltyCard entity class.\n */\n export class LoyaltyCardClass implements Entities.LoyaltyCard {\n public CardNumber: string;\n public CardTenderTypeValue: number;\n public CustomerAccount: string;\n public LoyaltyGroups: Entities.LoyaltyGroup[];\n public RewardPoints: Entities.LoyaltyRewardPoint[];\n public LoyaltyEnrollmentDate: Date;\n public LoyaltyEnrollmentDateLocal: Date;\n public LoyaltyEnrollmentTime: number;\n public LoyaltyEnrollmentTimeLocal: number;\n public OmOperatingUnitId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardNumber = \n odataObject.CardNumber;\n \n this.CardTenderTypeValue = \n odataObject.CardTenderTypeValue;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.LoyaltyGroups = undefined;\n if (odataObject.LoyaltyGroups) {\n this.LoyaltyGroups = [];\n for (var i = 0; i < odataObject.LoyaltyGroups.length; i++) {\n if (odataObject.LoyaltyGroups[i] != null) {\n if (odataObject.LoyaltyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyGroups[i] = new entityDictionary[className](odataObject.LoyaltyGroups[i])\n }\n } else {\n this.LoyaltyGroups[i] = new LoyaltyGroupClass(odataObject.LoyaltyGroups[i]);\n }\n } else {\n this.LoyaltyGroups[i] = undefined;\n }\n }\n }\n \n this.RewardPoints = undefined;\n if (odataObject.RewardPoints) {\n this.RewardPoints = [];\n for (var i = 0; i < odataObject.RewardPoints.length; i++) {\n if (odataObject.RewardPoints[i] != null) {\n if (odataObject.RewardPoints[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPoints[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPoints[i] = new entityDictionary[className](odataObject.RewardPoints[i])\n }\n } else {\n this.RewardPoints[i] = new LoyaltyRewardPointClass(odataObject.RewardPoints[i]);\n }\n } else {\n this.RewardPoints[i] = undefined;\n }\n }\n }\n \n this.LoyaltyEnrollmentDate = \n (odataObject.LoyaltyEnrollmentDate instanceof Date) ? odataObject.LoyaltyEnrollmentDate\n : (odataObject.LoyaltyEnrollmentDate != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentDateLocal = \n (odataObject.LoyaltyEnrollmentDateLocal instanceof Date) ? odataObject.LoyaltyEnrollmentDateLocal\n : (odataObject.LoyaltyEnrollmentDateLocal != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDateLocal, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentTime = \n odataObject.LoyaltyEnrollmentTime;\n \n this.LoyaltyEnrollmentTimeLocal = \n odataObject.LoyaltyEnrollmentTimeLocal;\n \n this.OmOperatingUnitId = \n (odataObject.OmOperatingUnitId != null) ? parseInt(odataObject.OmOperatingUnitId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardClass'] = LoyaltyCardClass;\n \n /**\n * ProductComponent entity class.\n */\n export class ProductComponentClass implements Entities.ProductComponent {\n public ProductId: number;\n public SlotId: number;\n public Product: Entities.SimpleProduct;\n public AdditionalChargeForComponent: number;\n public Behavior: Entities.ProductBehavior;\n public Description: string;\n public Dimensions: Entities.ProductDimension[];\n public ItemId: string;\n public Name: string;\n public ProductTypeValue: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n this.AdditionalChargeForComponent = \n (odataObject.AdditionalChargeForComponent != null) ? parseFloat(odataObject.AdditionalChargeForComponent) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Description = \n odataObject.Description;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComponentClass'] = ProductComponentClass;\n \n /**\n * SimpleProduct entity class.\n */\n export class SimpleProductClass implements Entities.SimpleProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public MasterProductId: number;\n public Components: Entities.ProductComponent[];\n public IsGiftCard: boolean;\n public Dimensions: Entities.ProductDimension[];\n public Behavior: Entities.ProductBehavior;\n public LinkedProducts: Entities.SimpleLinkedProduct[];\n public PrimaryImageUrl: string;\n public ItemTypeValue: number;\n public ItemServiceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.Components = undefined;\n if (odataObject.Components) {\n this.Components = [];\n for (var i = 0; i < odataObject.Components.length; i++) {\n if (odataObject.Components[i] != null) {\n if (odataObject.Components[i]['@odata.type'] != null) {\n var className: string = odataObject.Components[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Components[i] = new entityDictionary[className](odataObject.Components[i])\n }\n } else {\n this.Components[i] = new ProductComponentClass(odataObject.Components[i]);\n }\n } else {\n this.Components[i] = undefined;\n }\n }\n }\n \n this.IsGiftCard = \n odataObject.IsGiftCard;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new SimpleLinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.ItemTypeValue = \n odataObject.ItemTypeValue;\n \n this.ItemServiceTypeValue = \n odataObject.ItemServiceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleProductClass'] = SimpleProductClass;\n \n /**\n * ProductBehavior entity class.\n */\n export class ProductBehaviorClass implements Entities.ProductBehavior {\n public HasSerialNumber: boolean;\n public IsDiscountAllowed: boolean;\n public IsManualDiscountAllowed: boolean;\n public IsKitDisassemblyAllowed: boolean;\n public IsNegativeQuantityAllowed: boolean;\n public IsReturnAllowed: boolean;\n public IsSaleAtPhysicalStoresAllowed: boolean;\n public IsZeroSalePriceAllowed: boolean;\n public KeyInPriceValue: number;\n public KeyInQuantityValue: number;\n public MustKeyInComment: boolean;\n public MustPrintIndividualShelfLabelsForVariants: boolean;\n public MustPromptForSerialNumberOnlyAtSale: boolean;\n public MustWeighProductAtSale: boolean;\n public ValidFromDateForSaleAtPhysicalStores: Date;\n public ValidToDateForSaleAtPhysicalStores: Date;\n public IsStorageDimensionGroupLocationActive: boolean;\n public IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n public AllowNegativePhysicalInventory: boolean;\n public IsStockedProduct: boolean;\n public IsBlankSerialNumberAllowed: boolean;\n public IsBlankSerialNumberReceiptAllowed: boolean;\n public IsSerialNumberControlEnabled: boolean;\n public IsStorageDimensionGroupLocationBlankIssueAllowed: boolean;\n public IsSerialNumberRequired: boolean;\n public DefaultQuantity: number;\n public MaximumQuantity: number;\n public MinimumQuantity: number;\n public MultipleOfQuantity: number;\n public InventoryLocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsDiscountAllowed = \n odataObject.IsDiscountAllowed;\n \n this.IsManualDiscountAllowed = \n odataObject.IsManualDiscountAllowed;\n \n this.IsKitDisassemblyAllowed = \n odataObject.IsKitDisassemblyAllowed;\n \n this.IsNegativeQuantityAllowed = \n odataObject.IsNegativeQuantityAllowed;\n \n this.IsReturnAllowed = \n odataObject.IsReturnAllowed;\n \n this.IsSaleAtPhysicalStoresAllowed = \n odataObject.IsSaleAtPhysicalStoresAllowed;\n \n this.IsZeroSalePriceAllowed = \n odataObject.IsZeroSalePriceAllowed;\n \n this.KeyInPriceValue = \n odataObject.KeyInPriceValue;\n \n this.KeyInQuantityValue = \n odataObject.KeyInQuantityValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.MustPrintIndividualShelfLabelsForVariants = \n odataObject.MustPrintIndividualShelfLabelsForVariants;\n \n this.MustPromptForSerialNumberOnlyAtSale = \n odataObject.MustPromptForSerialNumberOnlyAtSale;\n \n this.MustWeighProductAtSale = \n odataObject.MustWeighProductAtSale;\n \n this.ValidFromDateForSaleAtPhysicalStores = \n (odataObject.ValidFromDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidFromDateForSaleAtPhysicalStores\n : (odataObject.ValidFromDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDateForSaleAtPhysicalStores = \n (odataObject.ValidToDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidToDateForSaleAtPhysicalStores\n : (odataObject.ValidToDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsStorageDimensionGroupLocationActive = \n odataObject.IsStorageDimensionGroupLocationActive;\n \n this.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled = \n odataObject.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled;\n \n this.AllowNegativePhysicalInventory = \n odataObject.AllowNegativePhysicalInventory;\n \n this.IsStockedProduct = \n odataObject.IsStockedProduct;\n \n this.IsBlankSerialNumberAllowed = \n odataObject.IsBlankSerialNumberAllowed;\n \n this.IsBlankSerialNumberReceiptAllowed = \n odataObject.IsBlankSerialNumberReceiptAllowed;\n \n this.IsSerialNumberControlEnabled = \n odataObject.IsSerialNumberControlEnabled;\n \n this.IsStorageDimensionGroupLocationBlankIssueAllowed = \n odataObject.IsStorageDimensionGroupLocationBlankIssueAllowed;\n \n this.IsSerialNumberRequired = \n odataObject.IsSerialNumberRequired;\n \n this.DefaultQuantity = \n (odataObject.DefaultQuantity != null) ? parseFloat(odataObject.DefaultQuantity) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumQuantity = \n (odataObject.MinimumQuantity != null) ? parseFloat(odataObject.MinimumQuantity) : undefined;\n \n this.MultipleOfQuantity = \n (odataObject.MultipleOfQuantity != null) ? parseFloat(odataObject.MultipleOfQuantity) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductBehaviorClass'] = ProductBehaviorClass;\n \n /**\n * SimpleLinkedProduct entity class.\n */\n export class SimpleLinkedProductClass implements Entities.SimpleLinkedProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public Quantity: number;\n public Behavior: Entities.ProductBehavior;\n public Dimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleLinkedProductClass'] = SimpleLinkedProductClass;\n \n /**\n * ProductSearchResult entity class.\n */\n export class ProductSearchResultClass implements Entities.ProductSearchResult {\n public ItemId: string;\n public Name: string;\n public Price: number;\n public PrimaryImageUrl: string;\n public RecordId: number;\n public TrackingId: string;\n public AverageRating: number;\n public TotalRatings: number;\n public Description: string;\n public BasePrice: number;\n public MinVariantPrice: number;\n public MaxVariantPrice: number;\n public DisplayOrder: number;\n public AttributeValues: Entities.AttributeValue[];\n public IsMasterProduct: boolean;\n public MasterProductId: number;\n public DefaultUnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.Description = \n odataObject.Description;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductSearchResultClass'] = ProductSearchResultClass;\n \n /**\n * SearchSuggestion entity class.\n */\n export class SearchSuggestionClass implements Entities.SearchSuggestion {\n public Value: string;\n public Value2: Entities.CommerceProperty;\n public Value3: Entities.CommerceProperty;\n public Value4: Entities.CommerceProperty;\n public SuggestionType: string;\n public Id: string;\n public ImageUrl: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n if (odataObject.Value2 == null) {\n this.Value2 = undefined;\n } else if (odataObject.Value2['@odata.type'] == null) {\n this.Value2 = new CommercePropertyClass(odataObject.Value2);\n } else {\n var className: string = odataObject.Value2['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value2 = new entityDictionary[className](odataObject.Value2)\n }\n }\n\n \n if (odataObject.Value3 == null) {\n this.Value3 = undefined;\n } else if (odataObject.Value3['@odata.type'] == null) {\n this.Value3 = new CommercePropertyClass(odataObject.Value3);\n } else {\n var className: string = odataObject.Value3['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value3 = new entityDictionary[className](odataObject.Value3)\n }\n }\n\n \n if (odataObject.Value4 == null) {\n this.Value4 = undefined;\n } else if (odataObject.Value4['@odata.type'] == null) {\n this.Value4 = new CommercePropertyClass(odataObject.Value4);\n } else {\n var className: string = odataObject.Value4['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value4 = new entityDictionary[className](odataObject.Value4)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.Id = \n odataObject.Id;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchSuggestionClass'] = SearchSuggestionClass;\n \n /**\n * LoyaltyPointRedemptionEstimate entity class.\n */\n export class LoyaltyPointRedemptionEstimateClass implements Entities.LoyaltyPointRedemptionEstimate {\n public MaxCurrencyValueOfLoyaltyPoints: number;\n public RewardPointToRedeemList: Entities.LoyaltyRewardPointLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MaxCurrencyValueOfLoyaltyPoints = \n (odataObject.MaxCurrencyValueOfLoyaltyPoints != null) ? parseFloat(odataObject.MaxCurrencyValueOfLoyaltyPoints) : undefined;\n \n this.RewardPointToRedeemList = undefined;\n if (odataObject.RewardPointToRedeemList) {\n this.RewardPointToRedeemList = [];\n for (var i = 0; i < odataObject.RewardPointToRedeemList.length; i++) {\n if (odataObject.RewardPointToRedeemList[i] != null) {\n if (odataObject.RewardPointToRedeemList[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPointToRedeemList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPointToRedeemList[i] = new entityDictionary[className](odataObject.RewardPointToRedeemList[i])\n }\n } else {\n this.RewardPointToRedeemList[i] = new LoyaltyRewardPointLineClass(odataObject.RewardPointToRedeemList[i]);\n }\n } else {\n this.RewardPointToRedeemList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyPointRedemptionEstimateClass'] = LoyaltyPointRedemptionEstimateClass;\n \n /**\n * LoyaltyGroup entity class.\n */\n export class LoyaltyGroupClass implements Entities.LoyaltyGroup {\n public Description: string;\n public Name: string;\n public RecordId: number;\n public LoyaltyTiers: Entities.LoyaltyTier[];\n public LoyaltyCardTiers: Entities.LoyaltyCardTier[];\n public HighestActiveLoyaltyCardTier: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LoyaltyTiers = undefined;\n if (odataObject.LoyaltyTiers) {\n this.LoyaltyTiers = [];\n for (var i = 0; i < odataObject.LoyaltyTiers.length; i++) {\n if (odataObject.LoyaltyTiers[i] != null) {\n if (odataObject.LoyaltyTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyTiers[i] = new entityDictionary[className](odataObject.LoyaltyTiers[i])\n }\n } else {\n this.LoyaltyTiers[i] = new LoyaltyTierClass(odataObject.LoyaltyTiers[i]);\n }\n } else {\n this.LoyaltyTiers[i] = undefined;\n }\n }\n }\n \n this.LoyaltyCardTiers = undefined;\n if (odataObject.LoyaltyCardTiers) {\n this.LoyaltyCardTiers = [];\n for (var i = 0; i < odataObject.LoyaltyCardTiers.length; i++) {\n if (odataObject.LoyaltyCardTiers[i] != null) {\n if (odataObject.LoyaltyCardTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyCardTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCardTiers[i] = new entityDictionary[className](odataObject.LoyaltyCardTiers[i])\n }\n } else {\n this.LoyaltyCardTiers[i] = new LoyaltyCardTierClass(odataObject.LoyaltyCardTiers[i]);\n }\n } else {\n this.LoyaltyCardTiers[i] = undefined;\n }\n }\n }\n \n this.HighestActiveLoyaltyCardTier = \n (odataObject.HighestActiveLoyaltyCardTier != null) ? parseInt(odataObject.HighestActiveLoyaltyCardTier, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyGroupClass'] = LoyaltyGroupClass;\n \n /**\n * LoyaltyTier entity class.\n */\n export class LoyaltyTierClass implements Entities.LoyaltyTier {\n public Description: string;\n public RecordId: number;\n public TierId: string;\n public TierLevel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.TierLevel = \n (odataObject.TierLevel != null) ? parseFloat(odataObject.TierLevel) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyTierClass'] = LoyaltyTierClass;\n \n /**\n * LoyaltyCardTier entity class.\n */\n export class LoyaltyCardTierClass implements Entities.LoyaltyCardTier {\n public RecordId: number;\n public TierId: string;\n public LoyaltyTierRecordId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardTierClass'] = LoyaltyCardTierClass;\n \n /**\n * LoyaltyRewardPoint entity class.\n */\n export class LoyaltyRewardPointClass implements Entities.LoyaltyRewardPoint {\n public IsRedeemable: boolean;\n public RewardPointCurrency: string;\n public RewardPointTypeValue: number;\n public Description: string;\n public RewardPointId: string;\n public IssuedPoints: number;\n public UsedPoints: number;\n public ExpiredPoints: number;\n public ActivePoints: number;\n public PointsExpiringSoon: number;\n public UnvestedPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsRedeemable = \n odataObject.IsRedeemable;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.RewardPointTypeValue = \n odataObject.RewardPointTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.IssuedPoints = \n (odataObject.IssuedPoints != null) ? parseFloat(odataObject.IssuedPoints) : undefined;\n \n this.UsedPoints = \n (odataObject.UsedPoints != null) ? parseFloat(odataObject.UsedPoints) : undefined;\n \n this.ExpiredPoints = \n (odataObject.ExpiredPoints != null) ? parseFloat(odataObject.ExpiredPoints) : undefined;\n \n this.ActivePoints = \n (odataObject.ActivePoints != null) ? parseFloat(odataObject.ActivePoints) : undefined;\n \n this.PointsExpiringSoon = \n (odataObject.PointsExpiringSoon != null) ? parseFloat(odataObject.PointsExpiringSoon) : undefined;\n \n this.UnvestedPoints = \n (odataObject.UnvestedPoints != null) ? parseFloat(odataObject.UnvestedPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointClass'] = LoyaltyRewardPointClass;\n \n /**\n * LoyaltyCardTransaction entity class.\n */\n export class LoyaltyCardTransactionClass implements Entities.LoyaltyCardTransaction {\n public ChannelName: string;\n public EntryDateTime: Date;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public RewardPointAmountQuantity: number;\n public TransactionId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelName = \n odataObject.ChannelName;\n \n this.EntryDateTime = \n (odataObject.EntryDateTime instanceof Date) ? odataObject.EntryDateTime\n : (odataObject.EntryDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n }\n }\n entityDictionary['LoyaltyCardTransactionClass'] = LoyaltyCardTransactionClass;\n \n /**\n * GiftCard entity class.\n */\n export class GiftCardClass implements Entities.GiftCard {\n public Id: string;\n public Balance: number;\n public BalanceCurrencyCode: string;\n public BalanceInCardCurrency: number;\n public CardCurrencyCode: string;\n public GiftCardIssueAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.BalanceCurrencyCode = \n odataObject.BalanceCurrencyCode;\n \n this.BalanceInCardCurrency = \n (odataObject.BalanceInCardCurrency != null) ? parseFloat(odataObject.BalanceInCardCurrency) : undefined;\n \n this.CardCurrencyCode = \n odataObject.CardCurrencyCode;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GiftCardClass'] = GiftCardClass;\n \n /**\n * OperationPermission entity class.\n */\n export class OperationPermissionClass implements Entities.OperationPermission {\n public OperationName: string;\n public OperationId: number;\n public CheckUserAccess: boolean;\n public AllowAnonymousAccess: boolean;\n public AllowCustomerAccess: boolean;\n public AllowApplicationAccess: boolean;\n public IsEnabledForTaskManagement: boolean;\n public Permissions: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OperationName = \n odataObject.OperationName;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.CheckUserAccess = \n odataObject.CheckUserAccess;\n \n this.AllowAnonymousAccess = \n odataObject.AllowAnonymousAccess;\n \n this.AllowCustomerAccess = \n odataObject.AllowCustomerAccess;\n \n this.AllowApplicationAccess = \n odataObject.AllowApplicationAccess;\n \n this.IsEnabledForTaskManagement = \n odataObject.IsEnabledForTaskManagement;\n \n this.Permissions = undefined;\n if (odataObject.Permissions) {\n this.Permissions = [];\n for (var i = 0; i < odataObject.Permissions.length; i++) {\n if (odataObject.Permissions[i] != null) {\n this.Permissions[i] = \n odataObject.Permissions[i];\n } else {\n this.Permissions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationPermissionClass'] = OperationPermissionClass;\n \n /**\n * StateProvinceInfo entity class.\n */\n export class StateProvinceInfoClass implements Entities.StateProvinceInfo {\n public CountryRegionId: string;\n public StateId: string;\n public StateName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.StateName = \n odataObject.StateName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StateProvinceInfoClass'] = StateProvinceInfoClass;\n \n /**\n * TransactionLog entity class.\n */\n export class TransactionLogClass\n extends TransactionClass\n implements Entities.TransactionLog {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TransactionLog\";\n \n }\n }\n entityDictionary['TransactionLogClass'] = TransactionLogClass;\n \n /**\n * KitTransaction entity class.\n */\n export class KitTransactionClass\n extends TransactionLogClass\n implements Entities.KitTransaction {\n public KitTransactionLines: Entities.KitTransactionLine[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.KitTransactionLines = undefined;\n if (odataObject.KitTransactionLines) {\n this.KitTransactionLines = [];\n for (var i = 0; i < odataObject.KitTransactionLines.length; i++) {\n if (odataObject.KitTransactionLines[i] != null) {\n if (odataObject.KitTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.KitTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitTransactionLines[i] = new entityDictionary[className](odataObject.KitTransactionLines[i])\n }\n } else {\n this.KitTransactionLines[i] = new KitTransactionLineClass(odataObject.KitTransactionLines[i]);\n }\n } else {\n this.KitTransactionLines[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.KitTransaction\";\n \n }\n }\n entityDictionary['KitTransactionClass'] = KitTransactionClass;\n \n /**\n * SalesTaxGroup entity class.\n */\n export class SalesTaxGroupClass implements Entities.SalesTaxGroup {\n public RecordId: number;\n public TaxGroup: string;\n public TaxGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.TaxGroupName = \n odataObject.TaxGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesTaxGroupClass'] = SalesTaxGroupClass;\n \n /**\n * ProductProperty entity class.\n */\n export class ProductPropertyClass implements Entities.ProductProperty {\n public ValueString: string;\n public UnitText: string;\n public PropertyTypeValue: number;\n public KeyName: string;\n public FriendlyName: string;\n public RecordId: number;\n public IsDimensionProperty: boolean;\n public AttributeValueId: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public GroupId: number;\n public GroupTypeValue: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public ProductId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValueString = \n odataObject.ValueString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.PropertyTypeValue = \n odataObject.PropertyTypeValue;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsDimensionProperty = \n odataObject.IsDimensionProperty;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupTypeValue = \n odataObject.GroupTypeValue;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductPropertyClass'] = ProductPropertyClass;\n \n /**\n * ProductCompositionInformation entity class.\n */\n export class ProductCompositionInformationClass implements Entities.ProductCompositionInformation {\n public VariantInformation: Entities.ProductVariantInformation;\n public KitDefinition: Entities.KitDefinition;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.VariantInformation == null) {\n this.VariantInformation = undefined;\n } else if (odataObject.VariantInformation['@odata.type'] == null) {\n this.VariantInformation = new ProductVariantInformationClass(odataObject.VariantInformation);\n } else {\n var className: string = odataObject.VariantInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.VariantInformation = new entityDictionary[className](odataObject.VariantInformation)\n }\n }\n\n \n if (odataObject.KitDefinition == null) {\n this.KitDefinition = undefined;\n } else if (odataObject.KitDefinition['@odata.type'] == null) {\n this.KitDefinition = new KitDefinitionClass(odataObject.KitDefinition);\n } else {\n var className: string = odataObject.KitDefinition['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitDefinition = new entityDictionary[className](odataObject.KitDefinition)\n }\n }\n\n \n }\n }\n entityDictionary['ProductCompositionInformationClass'] = ProductCompositionInformationClass;\n \n /**\n * ProductVariantInformation entity class.\n */\n export class ProductVariantInformationClass implements Entities.ProductVariantInformation {\n public ActiveVariantProductId: number;\n public Variants: Entities.ProductVariant[];\n public Dimensions: Entities.ProductDimensionSet[];\n public ItemId: string;\n public MasterProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActiveVariantProductId = \n (odataObject.ActiveVariantProductId != null) ? parseInt(odataObject.ActiveVariantProductId, 10) : undefined;\n \n this.Variants = undefined;\n if (odataObject.Variants) {\n this.Variants = [];\n for (var i = 0; i < odataObject.Variants.length; i++) {\n if (odataObject.Variants[i] != null) {\n if (odataObject.Variants[i]['@odata.type'] != null) {\n var className: string = odataObject.Variants[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Variants[i] = new entityDictionary[className](odataObject.Variants[i])\n }\n } else {\n this.Variants[i] = new ProductVariantClass(odataObject.Variants[i]);\n }\n } else {\n this.Variants[i] = undefined;\n }\n }\n }\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionSetClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductVariantInformationClass'] = ProductVariantInformationClass;\n \n /**\n * ProductChangeTrackingInformation entity class.\n */\n export class ProductChangeTrackingInformationClass implements Entities.ProductChangeTrackingInformation {\n public ModifiedDateTime: Date;\n public ChangeActionValue: number;\n public RequestedActionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChangeActionValue = \n odataObject.ChangeActionValue;\n \n this.RequestedActionValue = \n odataObject.RequestedActionValue;\n \n }\n }\n entityDictionary['ProductChangeTrackingInformationClass'] = ProductChangeTrackingInformationClass;\n \n /**\n * ProductDimensionSet entity class.\n */\n export class ProductDimensionSetClass implements Entities.ProductDimensionSet {\n public DimensionKey: string;\n public DimensionValues: Entities.ProductDimensionValueSet[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionKey = \n odataObject.DimensionKey;\n \n this.DimensionValues = undefined;\n if (odataObject.DimensionValues) {\n this.DimensionValues = [];\n for (var i = 0; i < odataObject.DimensionValues.length; i++) {\n if (odataObject.DimensionValues[i] != null) {\n if (odataObject.DimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.DimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValues[i] = new entityDictionary[className](odataObject.DimensionValues[i])\n }\n } else {\n this.DimensionValues[i] = new ProductDimensionValueSetClass(odataObject.DimensionValues[i]);\n }\n } else {\n this.DimensionValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionSetClass'] = ProductDimensionSetClass;\n \n /**\n * ProductDimensionValueSet entity class.\n */\n export class ProductDimensionValueSetClass implements Entities.ProductDimensionValueSet {\n public DimensionId: string;\n public DimensionValue: string;\n public VariantSet: number[];\n public Language: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public SwatchRefinerGroupValue: string;\n public SwatchRefinerGroupTranslation: string;\n public SwatchRefinerGroupImageUrl: string;\n public SwatchRefinerGroupColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionId = \n odataObject.DimensionId;\n \n this.DimensionValue = \n odataObject.DimensionValue;\n \n this.VariantSet = undefined;\n if (odataObject.VariantSet) {\n this.VariantSet = [];\n for (var i = 0; i < odataObject.VariantSet.length; i++) {\n if (odataObject.VariantSet[i] != null) {\n this.VariantSet[i] = \n parseInt(odataObject.VariantSet[i], 10);\n } else {\n this.VariantSet[i] = undefined;\n }\n }\n }\n \n this.Language = \n odataObject.Language;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.SwatchRefinerGroupValue = \n odataObject.SwatchRefinerGroupValue;\n \n this.SwatchRefinerGroupTranslation = \n odataObject.SwatchRefinerGroupTranslation;\n \n this.SwatchRefinerGroupImageUrl = \n odataObject.SwatchRefinerGroupImageUrl;\n \n this.SwatchRefinerGroupColorHexCode = \n odataObject.SwatchRefinerGroupColorHexCode;\n \n }\n }\n entityDictionary['ProductDimensionValueSetClass'] = ProductDimensionValueSetClass;\n \n /**\n * RichMediaLocations entity class.\n */\n export class RichMediaLocationsClass implements Entities.RichMediaLocations {\n public Items: Entities.RichMediaLocationsRichMediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Items = undefined;\n if (odataObject.Items) {\n this.Items = [];\n for (var i = 0; i < odataObject.Items.length; i++) {\n if (odataObject.Items[i] != null) {\n if (odataObject.Items[i]['@odata.type'] != null) {\n var className: string = odataObject.Items[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Items[i] = new entityDictionary[className](odataObject.Items[i])\n }\n } else {\n this.Items[i] = new RichMediaLocationsRichMediaLocationClass(odataObject.Items[i]);\n }\n } else {\n this.Items[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RichMediaLocationsClass'] = RichMediaLocationsClass;\n \n /**\n * RichMediaLocationsRichMediaLocation entity class.\n */\n export class RichMediaLocationsRichMediaLocationClass implements Entities.RichMediaLocationsRichMediaLocation {\n public Url: string;\n public AltText: string;\n public IsSelfHosted: boolean;\n public IsDefault: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n }\n }\n entityDictionary['RichMediaLocationsRichMediaLocationClass'] = RichMediaLocationsRichMediaLocationClass;\n \n /**\n * KitDefinition entity class.\n */\n export class KitDefinitionClass implements Entities.KitDefinition {\n public DisassembleAtRegister: boolean;\n public KitLineDefinitions: Entities.KitLineDefinition[];\n public KitLineProductToVariantMap: Entities.ComponentKitVariantSet[];\n public KitVariantToComponentMap: Entities.KitVariantContent[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DisassembleAtRegister = \n odataObject.DisassembleAtRegister;\n \n this.KitLineDefinitions = undefined;\n if (odataObject.KitLineDefinitions) {\n this.KitLineDefinitions = [];\n for (var i = 0; i < odataObject.KitLineDefinitions.length; i++) {\n if (odataObject.KitLineDefinitions[i] != null) {\n if (odataObject.KitLineDefinitions[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineDefinitions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineDefinitions[i] = new entityDictionary[className](odataObject.KitLineDefinitions[i])\n }\n } else {\n this.KitLineDefinitions[i] = new KitLineDefinitionClass(odataObject.KitLineDefinitions[i]);\n }\n } else {\n this.KitLineDefinitions[i] = undefined;\n }\n }\n }\n \n this.KitLineProductToVariantMap = undefined;\n if (odataObject.KitLineProductToVariantMap) {\n this.KitLineProductToVariantMap = [];\n for (var i = 0; i < odataObject.KitLineProductToVariantMap.length; i++) {\n if (odataObject.KitLineProductToVariantMap[i] != null) {\n if (odataObject.KitLineProductToVariantMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineProductToVariantMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineProductToVariantMap[i] = new entityDictionary[className](odataObject.KitLineProductToVariantMap[i])\n }\n } else {\n this.KitLineProductToVariantMap[i] = new ComponentKitVariantSetClass(odataObject.KitLineProductToVariantMap[i]);\n }\n } else {\n this.KitLineProductToVariantMap[i] = undefined;\n }\n }\n }\n \n this.KitVariantToComponentMap = undefined;\n if (odataObject.KitVariantToComponentMap) {\n this.KitVariantToComponentMap = [];\n for (var i = 0; i < odataObject.KitVariantToComponentMap.length; i++) {\n if (odataObject.KitVariantToComponentMap[i] != null) {\n if (odataObject.KitVariantToComponentMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitVariantToComponentMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitVariantToComponentMap[i] = new entityDictionary[className](odataObject.KitVariantToComponentMap[i])\n }\n } else {\n this.KitVariantToComponentMap[i] = new KitVariantContentClass(odataObject.KitVariantToComponentMap[i]);\n }\n } else {\n this.KitVariantToComponentMap[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitDefinitionClass'] = KitDefinitionClass;\n \n /**\n * ComponentKitVariantSet entity class.\n */\n export class ComponentKitVariantSetClass implements Entities.ComponentKitVariantSet {\n public KitLineProductId: number;\n public KitVariantIdList: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineProductId = \n (odataObject.KitLineProductId != null) ? parseInt(odataObject.KitLineProductId, 10) : undefined;\n \n this.KitVariantIdList = undefined;\n if (odataObject.KitVariantIdList) {\n this.KitVariantIdList = [];\n for (var i = 0; i < odataObject.KitVariantIdList.length; i++) {\n if (odataObject.KitVariantIdList[i] != null) {\n this.KitVariantIdList[i] = \n parseInt(odataObject.KitVariantIdList[i], 10);\n } else {\n this.KitVariantIdList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentKitVariantSetClass'] = ComponentKitVariantSetClass;\n \n /**\n * KitLineDefinition entity class.\n */\n export class KitLineDefinitionClass implements Entities.KitLineDefinition {\n public ComponentProductId: number;\n public KitLineIdentifier: number;\n public SubstituteProductIds: number[];\n public ComponentProperties: Entities.KitLineProductProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentProductId = \n (odataObject.ComponentProductId != null) ? parseInt(odataObject.ComponentProductId, 10) : undefined;\n \n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.SubstituteProductIds = undefined;\n if (odataObject.SubstituteProductIds) {\n this.SubstituteProductIds = [];\n for (var i = 0; i < odataObject.SubstituteProductIds.length; i++) {\n if (odataObject.SubstituteProductIds[i] != null) {\n this.SubstituteProductIds[i] = \n parseInt(odataObject.SubstituteProductIds[i], 10);\n } else {\n this.SubstituteProductIds[i] = undefined;\n }\n }\n }\n \n this.ComponentProperties = undefined;\n if (odataObject.ComponentProperties) {\n this.ComponentProperties = [];\n for (var i = 0; i < odataObject.ComponentProperties.length; i++) {\n if (odataObject.ComponentProperties[i] != null) {\n if (odataObject.ComponentProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ComponentProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ComponentProperties[i] = new entityDictionary[className](odataObject.ComponentProperties[i])\n }\n } else {\n this.ComponentProperties[i] = new KitLineProductPropertyClass(odataObject.ComponentProperties[i]);\n }\n } else {\n this.ComponentProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineDefinitionClass'] = KitLineDefinitionClass;\n \n /**\n * KitLineProductProperty entity class.\n */\n export class KitLineProductPropertyClass implements Entities.KitLineProductProperty {\n public KitLineIdentifier: number;\n public ProductId: number;\n public Unit: string;\n public Quantity: number;\n public Charge: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Charge = \n (odataObject.Charge != null) ? parseFloat(odataObject.Charge) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineProductPropertyClass'] = KitLineProductPropertyClass;\n \n /**\n * KitComponentKey entity class.\n */\n export class KitComponentKeyClass implements Entities.KitComponentKey {\n public KitLineIdentifier: number;\n public DistinctProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.DistinctProductId = \n (odataObject.DistinctProductId != null) ? parseInt(odataObject.DistinctProductId, 10) : undefined;\n \n }\n }\n entityDictionary['KitComponentKeyClass'] = KitComponentKeyClass;\n \n /**\n * KitVariantContent entity class.\n */\n export class KitVariantContentClass implements Entities.KitVariantContent {\n public KitVariantId: number;\n public KitComponentKeyList: Entities.KitComponentKey[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitVariantId = \n (odataObject.KitVariantId != null) ? parseInt(odataObject.KitVariantId, 10) : undefined;\n \n this.KitComponentKeyList = undefined;\n if (odataObject.KitComponentKeyList) {\n this.KitComponentKeyList = [];\n for (var i = 0; i < odataObject.KitComponentKeyList.length; i++) {\n if (odataObject.KitComponentKeyList[i] != null) {\n if (odataObject.KitComponentKeyList[i]['@odata.type'] != null) {\n var className: string = odataObject.KitComponentKeyList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitComponentKeyList[i] = new entityDictionary[className](odataObject.KitComponentKeyList[i])\n }\n } else {\n this.KitComponentKeyList[i] = new KitComponentKeyClass(odataObject.KitComponentKeyList[i]);\n }\n } else {\n this.KitComponentKeyList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitVariantContentClass'] = KitVariantContentClass;\n \n /**\n * ProductLookupClause entity class.\n */\n export class ProductLookupClauseClass implements Entities.ProductLookupClause {\n public ItemId: string;\n public InventDimensionId: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductLookupClauseClass'] = ProductLookupClauseClass;\n \n /**\n * ProductAssortmentInterval entity class.\n */\n export class ProductAssortmentIntervalClass implements Entities.ProductAssortmentInterval {\n public ProductId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAssortmentIntervalClass'] = ProductAssortmentIntervalClass;\n \n /**\n * OrgUnitLocation entity class.\n */\n export class OrgUnitLocationClass implements Entities.OrgUnitLocation {\n public Contacts: Entities.OrgUnitContact[];\n public ChannelId: number;\n public Latitude: number;\n public Longitude: number;\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n public Address: string;\n public Street: string;\n public StreetNumber: string;\n public City: string;\n public DistrictName: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public Zip: string;\n public County: string;\n public CountyName: string;\n public State: string;\n public StateName: string;\n public Country: string;\n public Distance: number;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public PostalAddressId: number;\n public OpenFrom: number;\n public OpenTo: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.Address = \n odataObject.Address;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.Zip = \n odataObject.Zip;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.Country = \n odataObject.Country;\n \n this.Distance = \n (odataObject.Distance != null) ? parseFloat(odataObject.Distance) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.PostalAddressId = \n (odataObject.PostalAddressId != null) ? parseInt(odataObject.PostalAddressId, 10) : undefined;\n \n this.OpenFrom = \n odataObject.OpenFrom;\n \n this.OpenTo = \n odataObject.OpenTo;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitLocationClass'] = OrgUnitLocationClass;\n \n /**\n * OrgUnitContact entity class.\n */\n export class OrgUnitContactClass implements Entities.OrgUnitContact {\n public ChannelId: number;\n public Locator: string;\n public LocatorExtension: string;\n public ContactTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Locator = \n odataObject.Locator;\n \n this.LocatorExtension = \n odataObject.LocatorExtension;\n \n this.ContactTypeValue = \n odataObject.ContactTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitContactClass'] = OrgUnitContactClass;\n \n /**\n * SalesLineDeliveryOption entity class.\n */\n export class SalesLineDeliveryOptionClass implements Entities.SalesLineDeliveryOption {\n public SalesLineId: string;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineId = \n odataObject.SalesLineId;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineDeliveryOptionClass'] = SalesLineDeliveryOptionClass;\n \n /**\n * DeliveryOption entity class.\n */\n export class DeliveryOptionClass implements Entities.DeliveryOption {\n public ChargeGroup: string;\n public Code: string;\n public Description: string;\n public RecordId: number;\n public DeliveryChargeLines: Entities.DeliveryChargeLine[];\n public TotalChargeAmount: number;\n public ShippingChargeAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.Code = \n odataObject.Code;\n \n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeliveryChargeLines = undefined;\n if (odataObject.DeliveryChargeLines) {\n this.DeliveryChargeLines = [];\n for (var i = 0; i < odataObject.DeliveryChargeLines.length; i++) {\n if (odataObject.DeliveryChargeLines[i] != null) {\n if (odataObject.DeliveryChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryChargeLines[i] = new entityDictionary[className](odataObject.DeliveryChargeLines[i])\n }\n } else {\n this.DeliveryChargeLines[i] = new DeliveryChargeLineClass(odataObject.DeliveryChargeLines[i]);\n }\n } else {\n this.DeliveryChargeLines[i] = undefined;\n }\n }\n }\n \n this.TotalChargeAmount = \n (odataObject.TotalChargeAmount != null) ? parseFloat(odataObject.TotalChargeAmount) : undefined;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryOptionClass'] = DeliveryOptionClass;\n \n /**\n * ChannelDeliveryOption entity class.\n */\n export class ChannelDeliveryOptionClass implements Entities.ChannelDeliveryOption {\n public ChannelId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionClass'] = ChannelDeliveryOptionClass;\n \n /**\n * ChannelIdentity entity class.\n */\n export class ChannelIdentityClass implements Entities.ChannelIdentity {\n public ChannelType: Entities.ExtensibleRetailChannelType;\n public Name: string;\n public OperatingUnitNumber: string;\n public DataAreaId: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ChannelType == null) {\n this.ChannelType = undefined;\n } else if (odataObject.ChannelType['@odata.type'] == null) {\n this.ChannelType = new ExtensibleRetailChannelTypeClass(odataObject.ChannelType);\n } else {\n var className: string = odataObject.ChannelType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelType = new entityDictionary[className](odataObject.ChannelType)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.OperatingUnitNumber = \n odataObject.OperatingUnitNumber;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelIdentityClass'] = ChannelIdentityClass;\n \n /**\n * ExtensibleRetailChannelType entity class.\n */\n export class ExtensibleRetailChannelTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleRetailChannelType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleRetailChannelType\";\n \n }\n }\n entityDictionary['ExtensibleRetailChannelTypeClass'] = ExtensibleRetailChannelTypeClass;\n \n /**\n * ChannelProfileProperty entity class.\n */\n export class ChannelProfilePropertyClass implements Entities.ChannelProfileProperty {\n public Key: number;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfilePropertyClass'] = ChannelProfilePropertyClass;\n \n /**\n * ChannelConfiguration entity class.\n */\n export class ChannelConfigurationClass implements Entities.ChannelConfiguration {\n public RecordId: number;\n public ChannelNaturalId: string;\n public MinimumDepositPercentage: number;\n public QuoteExpirationDays: number;\n public PickupDeliveryModeCode: string;\n public CarryoutDeliveryModeCode: string;\n public CancellationChargePercentage: number;\n public InventLocation: string;\n public InventLocationDataAreaId: string;\n public BingMapsApiKey: string;\n public BingMapsEnabled: boolean;\n public Currency: string;\n public CatalogDefaultImageTemplate: string;\n public CompanyCurrency: string;\n public PriceIncludesSalesTax: boolean;\n public CountryRegionId: string;\n public ChannelCountryRegionISOCode: string;\n public DefaultLanguageId: string;\n public TimeZoneInfoId: string;\n public EmailDeliveryModeCode: string;\n public GiftCardItemId: string;\n public EnableProductRecommendations: boolean;\n public RefundableShippingAmountWithoutApproval: number;\n public RefundShippingCharges: boolean;\n public ReceiptSettingsValue: number;\n public CustomerAttributeGroupId: number;\n public ClientBookAttributeGroupId: number;\n public NotificationRefreshInterval: number;\n public AllowExchangeOnReturnOrders: boolean;\n public FiscalRegistrationProcessId: string;\n public IsInventoryAutomaticValidationEnabled: boolean;\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public Properties: Entities.ChannelProperty[];\n public Languages: Entities.ChannelLanguage[];\n public UseAdvancedAutoCharges: boolean;\n public UseRTSForOnlineOrderCreation: boolean;\n public IsWarrantyAutoPromptEnabled: boolean;\n public EnableProductRatingsForRetailStores: boolean;\n public EnableFetchingPickingListsForPickingAndReceiving: boolean;\n public EnableReturnsForMultipleOrderInvoices: boolean;\n public EnableAnonymousOrderLookupByChannelReferenceId: boolean;\n public VoidSuspendedTransactionsOnCloseShift: number;\n public EnableOmniChannelPayments: boolean;\n public UseAdvancedCashManagement: boolean;\n public EnableFiscalRegistrationStorageBackup: boolean;\n public UseSalesReceiptAsDefaultReceiptTypeInJournal: boolean;\n public SalesOrderHeaderAttributeGroups: number[];\n public SalesOrderLinesAttributeGroups: number[];\n public CustomerAddressBooks: Entities.StoreAddressBook[];\n public EnableReturnPolicies: boolean;\n public InventAvailabilityCalculationMode: string;\n public IsPriceInclusiveTaxExemptCalculationEnabled: boolean;\n public EnableValidationOfSerialNumbersForInStoreReturns: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelNaturalId = \n odataObject.ChannelNaturalId;\n \n this.MinimumDepositPercentage = \n (odataObject.MinimumDepositPercentage != null) ? parseFloat(odataObject.MinimumDepositPercentage) : undefined;\n \n this.QuoteExpirationDays = \n odataObject.QuoteExpirationDays;\n \n this.PickupDeliveryModeCode = \n odataObject.PickupDeliveryModeCode;\n \n this.CarryoutDeliveryModeCode = \n odataObject.CarryoutDeliveryModeCode;\n \n this.CancellationChargePercentage = \n (odataObject.CancellationChargePercentage != null) ? parseFloat(odataObject.CancellationChargePercentage) : undefined;\n \n this.InventLocation = \n odataObject.InventLocation;\n \n this.InventLocationDataAreaId = \n odataObject.InventLocationDataAreaId;\n \n this.BingMapsApiKey = \n odataObject.BingMapsApiKey;\n \n this.BingMapsEnabled = \n odataObject.BingMapsEnabled;\n \n this.Currency = \n odataObject.Currency;\n \n this.CatalogDefaultImageTemplate = \n odataObject.CatalogDefaultImageTemplate;\n \n this.CompanyCurrency = \n odataObject.CompanyCurrency;\n \n this.PriceIncludesSalesTax = \n odataObject.PriceIncludesSalesTax;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ChannelCountryRegionISOCode = \n odataObject.ChannelCountryRegionISOCode;\n \n this.DefaultLanguageId = \n odataObject.DefaultLanguageId;\n \n this.TimeZoneInfoId = \n odataObject.TimeZoneInfoId;\n \n this.EmailDeliveryModeCode = \n odataObject.EmailDeliveryModeCode;\n \n this.GiftCardItemId = \n odataObject.GiftCardItemId;\n \n this.EnableProductRecommendations = \n odataObject.EnableProductRecommendations;\n \n this.RefundableShippingAmountWithoutApproval = \n (odataObject.RefundableShippingAmountWithoutApproval != null) ? parseFloat(odataObject.RefundableShippingAmountWithoutApproval) : undefined;\n \n this.RefundShippingCharges = \n odataObject.RefundShippingCharges;\n \n this.ReceiptSettingsValue = \n odataObject.ReceiptSettingsValue;\n \n this.CustomerAttributeGroupId = \n (odataObject.CustomerAttributeGroupId != null) ? parseInt(odataObject.CustomerAttributeGroupId, 10) : undefined;\n \n this.ClientBookAttributeGroupId = \n (odataObject.ClientBookAttributeGroupId != null) ? parseInt(odataObject.ClientBookAttributeGroupId, 10) : undefined;\n \n this.NotificationRefreshInterval = \n odataObject.NotificationRefreshInterval;\n \n this.AllowExchangeOnReturnOrders = \n odataObject.AllowExchangeOnReturnOrders;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IsInventoryAutomaticValidationEnabled = \n odataObject.IsInventoryAutomaticValidationEnabled;\n \n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.Properties = undefined;\n if (odataObject.Properties) {\n this.Properties = [];\n for (var i = 0; i < odataObject.Properties.length; i++) {\n if (odataObject.Properties[i] != null) {\n if (odataObject.Properties[i]['@odata.type'] != null) {\n var className: string = odataObject.Properties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Properties[i] = new entityDictionary[className](odataObject.Properties[i])\n }\n } else {\n this.Properties[i] = new ChannelPropertyClass(odataObject.Properties[i]);\n }\n } else {\n this.Properties[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n if (odataObject.Languages[i]['@odata.type'] != null) {\n var className: string = odataObject.Languages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Languages[i] = new entityDictionary[className](odataObject.Languages[i])\n }\n } else {\n this.Languages[i] = new ChannelLanguageClass(odataObject.Languages[i]);\n }\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n this.UseAdvancedAutoCharges = \n odataObject.UseAdvancedAutoCharges;\n \n this.UseRTSForOnlineOrderCreation = \n odataObject.UseRTSForOnlineOrderCreation;\n \n this.IsWarrantyAutoPromptEnabled = \n odataObject.IsWarrantyAutoPromptEnabled;\n \n this.EnableProductRatingsForRetailStores = \n odataObject.EnableProductRatingsForRetailStores;\n \n this.EnableFetchingPickingListsForPickingAndReceiving = \n odataObject.EnableFetchingPickingListsForPickingAndReceiving;\n \n this.EnableReturnsForMultipleOrderInvoices = \n odataObject.EnableReturnsForMultipleOrderInvoices;\n \n this.EnableAnonymousOrderLookupByChannelReferenceId = \n odataObject.EnableAnonymousOrderLookupByChannelReferenceId;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.EnableOmniChannelPayments = \n odataObject.EnableOmniChannelPayments;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.EnableFiscalRegistrationStorageBackup = \n odataObject.EnableFiscalRegistrationStorageBackup;\n \n this.UseSalesReceiptAsDefaultReceiptTypeInJournal = \n odataObject.UseSalesReceiptAsDefaultReceiptTypeInJournal;\n \n this.SalesOrderHeaderAttributeGroups = undefined;\n if (odataObject.SalesOrderHeaderAttributeGroups) {\n this.SalesOrderHeaderAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderHeaderAttributeGroups.length; i++) {\n if (odataObject.SalesOrderHeaderAttributeGroups[i] != null) {\n this.SalesOrderHeaderAttributeGroups[i] = \n parseInt(odataObject.SalesOrderHeaderAttributeGroups[i], 10);\n } else {\n this.SalesOrderHeaderAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.SalesOrderLinesAttributeGroups = undefined;\n if (odataObject.SalesOrderLinesAttributeGroups) {\n this.SalesOrderLinesAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderLinesAttributeGroups.length; i++) {\n if (odataObject.SalesOrderLinesAttributeGroups[i] != null) {\n this.SalesOrderLinesAttributeGroups[i] = \n parseInt(odataObject.SalesOrderLinesAttributeGroups[i], 10);\n } else {\n this.SalesOrderLinesAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.CustomerAddressBooks = undefined;\n if (odataObject.CustomerAddressBooks) {\n this.CustomerAddressBooks = [];\n for (var i = 0; i < odataObject.CustomerAddressBooks.length; i++) {\n if (odataObject.CustomerAddressBooks[i] != null) {\n if (odataObject.CustomerAddressBooks[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAddressBooks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAddressBooks[i] = new entityDictionary[className](odataObject.CustomerAddressBooks[i])\n }\n } else {\n this.CustomerAddressBooks[i] = new StoreAddressBookClass(odataObject.CustomerAddressBooks[i]);\n }\n } else {\n this.CustomerAddressBooks[i] = undefined;\n }\n }\n }\n \n this.EnableReturnPolicies = \n odataObject.EnableReturnPolicies;\n \n this.InventAvailabilityCalculationMode = \n odataObject.InventAvailabilityCalculationMode;\n \n this.IsPriceInclusiveTaxExemptCalculationEnabled = \n odataObject.IsPriceInclusiveTaxExemptCalculationEnabled;\n \n this.EnableValidationOfSerialNumbersForInStoreReturns = \n odataObject.EnableValidationOfSerialNumbersForInStoreReturns;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelConfigurationClass'] = ChannelConfigurationClass;\n \n /**\n * ChannelProperty entity class.\n */\n export class ChannelPropertyClass implements Entities.ChannelProperty {\n public Name: string;\n public Value: string;\n public Channel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPropertyClass'] = ChannelPropertyClass;\n \n /**\n * ChannelLanguage entity class.\n */\n export class ChannelLanguageClass implements Entities.ChannelLanguage {\n public LanguageId: string;\n public IsDefault: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelLanguageClass'] = ChannelLanguageClass;\n \n /**\n * ChannelDeliveryOptionConfiguration entity class.\n */\n export class ChannelDeliveryOptionConfigurationClass implements Entities.ChannelDeliveryOptionConfiguration {\n public PickupDeliveryModeCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PickupDeliveryModeCodes = undefined;\n if (odataObject.PickupDeliveryModeCodes) {\n this.PickupDeliveryModeCodes = [];\n for (var i = 0; i < odataObject.PickupDeliveryModeCodes.length; i++) {\n if (odataObject.PickupDeliveryModeCodes[i] != null) {\n this.PickupDeliveryModeCodes[i] = \n odataObject.PickupDeliveryModeCodes[i];\n } else {\n this.PickupDeliveryModeCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionConfigurationClass'] = ChannelDeliveryOptionConfigurationClass;\n \n /**\n * NonSalesTransaction entity class.\n */\n export class NonSalesTransactionClass\n extends TransactionClass\n implements Entities.NonSalesTransaction {\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Amount: number;\n public ForeignCurrency: string;\n public OpenDrawer: boolean;\n public DenominationDetails: Entities.DenominationDetail[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.NonSalesTransaction\";\n \n }\n }\n entityDictionary['NonSalesTransactionClass'] = NonSalesTransactionClass;\n \n /**\n * DropAndDeclareTransaction entity class.\n */\n export class DropAndDeclareTransactionClass\n extends TransactionClass\n implements Entities.DropAndDeclareTransaction {\n public TenderDetails: Entities.TenderDetail[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public OpenDrawer: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderDetails = undefined;\n if (odataObject.TenderDetails) {\n this.TenderDetails = [];\n for (var i = 0; i < odataObject.TenderDetails.length; i++) {\n if (odataObject.TenderDetails[i] != null) {\n if (odataObject.TenderDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderDetails[i] = new entityDictionary[className](odataObject.TenderDetails[i])\n }\n } else {\n this.TenderDetails[i] = new TenderDetailClass(odataObject.TenderDetails[i]);\n }\n } else {\n this.TenderDetails[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DropAndDeclareTransaction\";\n \n }\n }\n entityDictionary['DropAndDeclareTransactionClass'] = DropAndDeclareTransactionClass;\n \n /**\n * ProductSearchCriteria entity class.\n */\n export class ProductSearchCriteriaClass implements Entities.ProductSearchCriteria {\n public Ids: number[];\n public CategoryIds: number[];\n public IncludeProductsFromDescendantCategories: boolean;\n public SearchCondition: string;\n public SkipVariantExpansion: boolean;\n public IncludeAttributes: boolean;\n public Barcodes: string[];\n public ItemIds: Entities.ProductLookupClause[];\n public Refinement: Entities.ProductRefinerValue[];\n public CustomerAccountNumber: string;\n public RecommendationListId: string;\n public DownloadProductData: boolean;\n public Context: Entities.ProjectionDomain;\n public Language: string;\n public IsOnline: boolean;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n this.Ids[i] = \n parseInt(odataObject.Ids[i], 10);\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.IncludeProductsFromDescendantCategories = \n odataObject.IncludeProductsFromDescendantCategories;\n \n this.SearchCondition = \n odataObject.SearchCondition;\n \n this.SkipVariantExpansion = \n odataObject.SkipVariantExpansion;\n \n this.IncludeAttributes = \n odataObject.IncludeAttributes;\n \n this.Barcodes = undefined;\n if (odataObject.Barcodes) {\n this.Barcodes = [];\n for (var i = 0; i < odataObject.Barcodes.length; i++) {\n if (odataObject.Barcodes[i] != null) {\n this.Barcodes[i] = \n odataObject.Barcodes[i];\n } else {\n this.Barcodes[i] = undefined;\n }\n }\n }\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n if (odataObject.ItemIds[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemIds[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemIds[i] = new entityDictionary[className](odataObject.ItemIds[i])\n }\n } else {\n this.ItemIds[i] = new ProductLookupClauseClass(odataObject.ItemIds[i]);\n }\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ProductRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.RecommendationListId = \n odataObject.RecommendationListId;\n \n this.DownloadProductData = \n odataObject.DownloadProductData;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.Language = \n odataObject.Language;\n \n this.IsOnline = \n odataObject.IsOnline;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ProductSearchCriteriaClass'] = ProductSearchCriteriaClass;\n \n /**\n * ChangedProductsSearchCriteria entity class.\n */\n export class ChangedProductsSearchCriteriaClass implements Entities.ChangedProductsSearchCriteria {\n public SynchronizationToken: string;\n public Context: Entities.ProjectionDomain;\n public AsListings: boolean;\n public Session: Entities.ReadChangedProductsSession;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SynchronizationToken = \n odataObject.SynchronizationToken;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.AsListings = \n odataObject.AsListings;\n \n if (odataObject.Session == null) {\n this.Session = undefined;\n } else if (odataObject.Session['@odata.type'] == null) {\n this.Session = new ReadChangedProductsSessionClass(odataObject.Session);\n } else {\n var className: string = odataObject.Session['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Session = new entityDictionary[className](odataObject.Session)\n }\n }\n\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ChangedProductsSearchCriteriaClass'] = ChangedProductsSearchCriteriaClass;\n \n /**\n * EmployeeActivitySearchCriteria entity class.\n */\n export class EmployeeActivitySearchCriteriaClass implements Entities.EmployeeActivitySearchCriteria {\n public FromDateTimeOffset: Date;\n public ToDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValues: number[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromDateTimeOffset = \n (odataObject.FromDateTimeOffset instanceof Date) ? odataObject.FromDateTimeOffset\n : (odataObject.FromDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.FromDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDateTimeOffset = \n (odataObject.ToDateTimeOffset instanceof Date) ? odataObject.ToDateTimeOffset\n : (odataObject.ToDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ToDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValues = undefined;\n if (odataObject.EmployeeActivityTypeValues) {\n this.EmployeeActivityTypeValues = [];\n for (var i = 0; i < odataObject.EmployeeActivityTypeValues.length; i++) {\n if (odataObject.EmployeeActivityTypeValues[i] != null) {\n this.EmployeeActivityTypeValues[i] = \n odataObject.EmployeeActivityTypeValues[i];\n } else {\n this.EmployeeActivityTypeValues[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['EmployeeActivitySearchCriteriaClass'] = EmployeeActivitySearchCriteriaClass;\n \n /**\n * SearchSuggestionCriteria entity class.\n */\n export class SearchSuggestionCriteriaClass implements Entities.SearchSuggestionCriteria {\n public ProductSearchCriteria: Entities.ProductSearchCriteria;\n public CustomerSearchCriteria: Entities.CustomerSearchCriteria;\n public SuggestionType: string;\n public HitPrefix: string;\n public HitSuffix: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ProductSearchCriteria == null) {\n this.ProductSearchCriteria = undefined;\n } else if (odataObject.ProductSearchCriteria['@odata.type'] == null) {\n this.ProductSearchCriteria = new ProductSearchCriteriaClass(odataObject.ProductSearchCriteria);\n } else {\n var className: string = odataObject.ProductSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSearchCriteria = new entityDictionary[className](odataObject.ProductSearchCriteria)\n }\n }\n\n \n if (odataObject.CustomerSearchCriteria == null) {\n this.CustomerSearchCriteria = undefined;\n } else if (odataObject.CustomerSearchCriteria['@odata.type'] == null) {\n this.CustomerSearchCriteria = new CustomerSearchCriteriaClass(odataObject.CustomerSearchCriteria);\n } else {\n var className: string = odataObject.CustomerSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerSearchCriteria = new entityDictionary[className](odataObject.CustomerSearchCriteria)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.HitPrefix = \n odataObject.HitPrefix;\n \n this.HitSuffix = \n odataObject.HitSuffix;\n \n }\n }\n entityDictionary['SearchSuggestionCriteriaClass'] = SearchSuggestionCriteriaClass;\n \n /**\n * CartLineDeliveryPreference entity class.\n */\n export class CartLineDeliveryPreferenceClass implements Entities.CartLineDeliveryPreference {\n public LineId: string;\n public DeliveryPreferenceTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.DeliveryPreferenceTypeValues = undefined;\n if (odataObject.DeliveryPreferenceTypeValues) {\n this.DeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.DeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.DeliveryPreferenceTypeValues[i] != null) {\n this.DeliveryPreferenceTypeValues[i] = \n odataObject.DeliveryPreferenceTypeValues[i];\n } else {\n this.DeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineDeliveryPreferenceClass'] = CartLineDeliveryPreferenceClass;\n \n /**\n * CartLinePromotion entity class.\n */\n export class CartLinePromotionClass implements Entities.CartLinePromotion {\n public LineId: string;\n public Promotions: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Promotions = undefined;\n if (odataObject.Promotions) {\n this.Promotions = [];\n for (var i = 0; i < odataObject.Promotions.length; i++) {\n if (odataObject.Promotions[i] != null) {\n this.Promotions[i] = \n odataObject.Promotions[i];\n } else {\n this.Promotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLinePromotionClass'] = CartLinePromotionClass;\n \n /**\n * ProductVariant entity class.\n */\n export class ProductVariantClass implements Entities.ProductVariant {\n public ItemId: string;\n public MasterProductId: number;\n public InventoryDimensionId: string;\n public AdjustedPrice: number;\n public BasePrice: number;\n public Price: number;\n public Color: string;\n public Style: string;\n public Size: string;\n public Configuration: string;\n public ColorId: string;\n public StyleId: string;\n public SizeId: string;\n public ConfigId: string;\n public VariantId: string;\n public Images: Entities.RichMediaLocations[];\n public DistinctProductVariantId: number;\n public ProductNumber: string;\n public PropertiesAsList: Entities.ProductPropertyTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.Color = \n odataObject.Color;\n \n this.Style = \n odataObject.Style;\n \n this.Size = \n odataObject.Size;\n \n this.Configuration = \n odataObject.Configuration;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new RichMediaLocationsClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DistinctProductVariantId = \n (odataObject.DistinctProductVariantId != null) ? parseInt(odataObject.DistinctProductVariantId, 10) : undefined;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.PropertiesAsList = undefined;\n if (odataObject.PropertiesAsList) {\n this.PropertiesAsList = [];\n for (var i = 0; i < odataObject.PropertiesAsList.length; i++) {\n if (odataObject.PropertiesAsList[i] != null) {\n if (odataObject.PropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.PropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PropertiesAsList[i] = new entityDictionary[className](odataObject.PropertiesAsList[i])\n }\n } else {\n this.PropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.PropertiesAsList[i]);\n }\n } else {\n this.PropertiesAsList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantClass'] = ProductVariantClass;\n \n /**\n * HardwareProfilePrinter entity class.\n */\n export class HardwareProfilePrinterClass implements Entities.HardwareProfilePrinter {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public DeviceDescription: string;\n public CharacterSet: number;\n public ReceiptProfileId: string;\n public BinaryConversion: boolean;\n public DocInsertRemovalTimeout: number;\n public Logo: string;\n public LogoAlignment: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.CharacterSet = \n odataObject.CharacterSet;\n \n this.ReceiptProfileId = \n odataObject.ReceiptProfileId;\n \n this.BinaryConversion = \n odataObject.BinaryConversion;\n \n this.DocInsertRemovalTimeout = \n odataObject.DocInsertRemovalTimeout;\n \n this.Logo = \n odataObject.Logo;\n \n this.LogoAlignment = \n odataObject.LogoAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfilePrinterClass'] = HardwareProfilePrinterClass;\n \n /**\n * HardwareProfileScanner entity class.\n */\n export class HardwareProfileScannerClass implements Entities.HardwareProfileScanner {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DecodeData: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DecodeData = \n odataObject.DecodeData;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileScannerClass'] = HardwareProfileScannerClass;\n \n /**\n * HardwareProfileCashDrawer entity class.\n */\n export class HardwareProfileCashDrawerClass implements Entities.HardwareProfileCashDrawer {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public IsSharedShiftDrawer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.IsSharedShiftDrawer = \n odataObject.IsSharedShiftDrawer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileCashDrawerClass'] = HardwareProfileCashDrawerClass;\n \n /**\n * TillLayout entity class.\n */\n export class TillLayoutClass implements Entities.TillLayout {\n public CashChangerLayoutXml: string;\n public CustomerLayoutId: string;\n public CustomerLayoutXml: string;\n public Height: number;\n public LayoutId: string;\n public LayoutTypeValue: number;\n public LayoutXml: string;\n public LayoutXmlPortrait: string;\n public Name: string;\n public ReceiptId: string;\n public ReceiptItemsLayoutXml: string;\n public ReceiptPaymentLayoutXml: string;\n public TotalId: string;\n public TotalsLayoutXml: string;\n public Width: number;\n public RecordId: number;\n public StartScreen: number;\n public ButtonGridZones: Entities.ButtonGridZone[];\n public ImageZones: Entities.ImageZone[];\n public ReportZones: Entities.ReportZone[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashChangerLayoutXml = \n odataObject.CashChangerLayoutXml;\n \n this.CustomerLayoutId = \n odataObject.CustomerLayoutId;\n \n this.CustomerLayoutXml = \n odataObject.CustomerLayoutXml;\n \n this.Height = \n odataObject.Height;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.LayoutTypeValue = \n odataObject.LayoutTypeValue;\n \n this.LayoutXml = \n odataObject.LayoutXml;\n \n this.LayoutXmlPortrait = \n odataObject.LayoutXmlPortrait;\n \n this.Name = \n odataObject.Name;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ReceiptItemsLayoutXml = \n odataObject.ReceiptItemsLayoutXml;\n \n this.ReceiptPaymentLayoutXml = \n odataObject.ReceiptPaymentLayoutXml;\n \n this.TotalId = \n odataObject.TotalId;\n \n this.TotalsLayoutXml = \n odataObject.TotalsLayoutXml;\n \n this.Width = \n odataObject.Width;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StartScreen = \n odataObject.StartScreen;\n \n this.ButtonGridZones = undefined;\n if (odataObject.ButtonGridZones) {\n this.ButtonGridZones = [];\n for (var i = 0; i < odataObject.ButtonGridZones.length; i++) {\n if (odataObject.ButtonGridZones[i] != null) {\n if (odataObject.ButtonGridZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ButtonGridZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ButtonGridZones[i] = new entityDictionary[className](odataObject.ButtonGridZones[i])\n }\n } else {\n this.ButtonGridZones[i] = new ButtonGridZoneClass(odataObject.ButtonGridZones[i]);\n }\n } else {\n this.ButtonGridZones[i] = undefined;\n }\n }\n }\n \n this.ImageZones = undefined;\n if (odataObject.ImageZones) {\n this.ImageZones = [];\n for (var i = 0; i < odataObject.ImageZones.length; i++) {\n if (odataObject.ImageZones[i] != null) {\n if (odataObject.ImageZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageZones[i] = new entityDictionary[className](odataObject.ImageZones[i])\n }\n } else {\n this.ImageZones[i] = new ImageZoneClass(odataObject.ImageZones[i]);\n }\n } else {\n this.ImageZones[i] = undefined;\n }\n }\n }\n \n this.ReportZones = undefined;\n if (odataObject.ReportZones) {\n this.ReportZones = [];\n for (var i = 0; i < odataObject.ReportZones.length; i++) {\n if (odataObject.ReportZones[i] != null) {\n if (odataObject.ReportZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ReportZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReportZones[i] = new entityDictionary[className](odataObject.ReportZones[i])\n }\n } else {\n this.ReportZones[i] = new ReportZoneClass(odataObject.ReportZones[i]);\n }\n } else {\n this.ReportZones[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TillLayoutClass'] = TillLayoutClass;\n \n /**\n * SalesInvoice entity class.\n */\n export class SalesInvoiceClass implements Entities.SalesInvoice {\n public RecordId: number;\n public ChannelId: number;\n public Id: string;\n public SalesId: string;\n public SalesType: string;\n public InvoiceDate: Date;\n public DueDate: Date;\n public CurrencyCode: string;\n public InvoiceSubtotal: number;\n public TotalCharges: number;\n public TotalTaxAmount: number;\n public TotalLineDiscount: number;\n public TotalDiscount: number;\n public Amount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public Account: string;\n public Name: string;\n public TotalManualDiscountPercentage: number;\n public TotalManualDiscountAmount: number;\n public SalesInvoiceLine: Entities.SalesInvoiceLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TenderLines: Entities.TenderLine[];\n public DeliveryModeChargeAmount: number;\n public OrderAccount: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Id = \n odataObject.Id;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesType = \n odataObject.SalesType;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDate = \n (odataObject.DueDate instanceof Date) ? odataObject.DueDate\n : (odataObject.DueDate != null) ? jsonLightReadStringPropertyValue(odataObject.DueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceSubtotal = \n (odataObject.InvoiceSubtotal != null) ? parseFloat(odataObject.InvoiceSubtotal) : undefined;\n \n this.TotalCharges = \n (odataObject.TotalCharges != null) ? parseFloat(odataObject.TotalCharges) : undefined;\n \n this.TotalTaxAmount = \n (odataObject.TotalTaxAmount != null) ? parseFloat(odataObject.TotalTaxAmount) : undefined;\n \n this.TotalLineDiscount = \n (odataObject.TotalLineDiscount != null) ? parseFloat(odataObject.TotalLineDiscount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.Account = \n odataObject.Account;\n \n this.Name = \n odataObject.Name;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.SalesInvoiceLine = undefined;\n if (odataObject.SalesInvoiceLine) {\n this.SalesInvoiceLine = [];\n for (var i = 0; i < odataObject.SalesInvoiceLine.length; i++) {\n if (odataObject.SalesInvoiceLine[i] != null) {\n if (odataObject.SalesInvoiceLine[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesInvoiceLine[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesInvoiceLine[i] = new entityDictionary[className](odataObject.SalesInvoiceLine[i])\n }\n } else {\n this.SalesInvoiceLine[i] = new SalesInvoiceLineClass(odataObject.SalesInvoiceLine[i]);\n }\n } else {\n this.SalesInvoiceLine[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.OrderAccount = \n odataObject.OrderAccount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceClass'] = SalesInvoiceClass;\n \n /**\n * OrderInvoice entity class.\n */\n export class OrderInvoiceClass implements Entities.OrderInvoice {\n public Id: string;\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public InvoiceDate: Date;\n public TotalAmount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public InvoiceTypeValue: number;\n public CurrencyCode: string;\n public InvoiceDueDate: Date;\n public InvoicePaidStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceDueDate = \n (odataObject.InvoiceDueDate instanceof Date) ? odataObject.InvoiceDueDate\n : (odataObject.InvoiceDueDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InvoicePaidStatusValue = \n odataObject.InvoicePaidStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderInvoiceClass'] = OrderInvoiceClass;\n \n /**\n * TaxOverride entity class.\n */\n export class TaxOverrideClass implements Entities.TaxOverride {\n public Code: string;\n public SourceTaxGroup: string;\n public DestinationTaxGroup: string;\n public SourceItemTaxGroup: string;\n public DestinationItemTaxGroup: string;\n public ChannelId: number;\n public AdditionalDescription: string;\n public Status: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.SourceTaxGroup = \n odataObject.SourceTaxGroup;\n \n this.DestinationTaxGroup = \n odataObject.DestinationTaxGroup;\n \n this.SourceItemTaxGroup = \n odataObject.SourceItemTaxGroup;\n \n this.DestinationItemTaxGroup = \n odataObject.DestinationItemTaxGroup;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.AdditionalDescription = \n odataObject.AdditionalDescription;\n \n this.Status = \n odataObject.Status;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxOverrideClass'] = TaxOverrideClass;\n \n /**\n * TenderType entity class.\n */\n export class TenderTypeClass implements Entities.TenderType {\n public Function: number;\n public TenderTypeId: string;\n public Name: string;\n public OperationId: number;\n public OperationName: string;\n public ChangeTenderTypeId: string;\n public AboveMinimumChangeAmount: number;\n public AboveMinimumChangeTenderTypeId: string;\n public OpenDrawer: boolean;\n public UseSignatureCaptureDevice: boolean;\n public MinimumSignatureCaptureAmount: number;\n public IsOvertenderAllowed: boolean;\n public IsUndertenderAllowed: boolean;\n public MaximumOvertenderAmount: number;\n public MaximumUndertenderAmount: number;\n public MaximumAmountPerTransaction: number;\n public MaximumAmountPerLine: number;\n public MinimumAmountPerTransaction: number;\n public MinimumAmountPerLine: number;\n public RoundOff: number;\n public CountingRequired: number;\n public TakenToBank: number;\n public TakenToSafe: number;\n public ConnectorId: string;\n public GiftCardItem: string;\n public GiftCardCashoutOutThreshold: number;\n public ChangeLineOnReceipt: string;\n public HideCardInputDetails: boolean;\n public CashDrawerLimitEnabled: boolean;\n public CashDrawerLimit: number;\n public RestrictReturnsWithoutReceipt: boolean;\n public HasTenderDiscount: boolean;\n public DefaultCardTypeId: string;\n public UseForDeclareStartAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Function = \n odataObject.Function;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Name = \n odataObject.Name;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.OperationName = \n odataObject.OperationName;\n \n this.ChangeTenderTypeId = \n odataObject.ChangeTenderTypeId;\n \n this.AboveMinimumChangeAmount = \n (odataObject.AboveMinimumChangeAmount != null) ? parseFloat(odataObject.AboveMinimumChangeAmount) : undefined;\n \n this.AboveMinimumChangeTenderTypeId = \n odataObject.AboveMinimumChangeTenderTypeId;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.UseSignatureCaptureDevice = \n odataObject.UseSignatureCaptureDevice;\n \n this.MinimumSignatureCaptureAmount = \n (odataObject.MinimumSignatureCaptureAmount != null) ? parseFloat(odataObject.MinimumSignatureCaptureAmount) : undefined;\n \n this.IsOvertenderAllowed = \n odataObject.IsOvertenderAllowed;\n \n this.IsUndertenderAllowed = \n odataObject.IsUndertenderAllowed;\n \n this.MaximumOvertenderAmount = \n (odataObject.MaximumOvertenderAmount != null) ? parseFloat(odataObject.MaximumOvertenderAmount) : undefined;\n \n this.MaximumUndertenderAmount = \n (odataObject.MaximumUndertenderAmount != null) ? parseFloat(odataObject.MaximumUndertenderAmount) : undefined;\n \n this.MaximumAmountPerTransaction = \n (odataObject.MaximumAmountPerTransaction != null) ? parseFloat(odataObject.MaximumAmountPerTransaction) : undefined;\n \n this.MaximumAmountPerLine = \n (odataObject.MaximumAmountPerLine != null) ? parseFloat(odataObject.MaximumAmountPerLine) : undefined;\n \n this.MinimumAmountPerTransaction = \n (odataObject.MinimumAmountPerTransaction != null) ? parseFloat(odataObject.MinimumAmountPerTransaction) : undefined;\n \n this.MinimumAmountPerLine = \n (odataObject.MinimumAmountPerLine != null) ? parseFloat(odataObject.MinimumAmountPerLine) : undefined;\n \n this.RoundOff = \n (odataObject.RoundOff != null) ? parseFloat(odataObject.RoundOff) : undefined;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.TakenToBank = \n odataObject.TakenToBank;\n \n this.TakenToSafe = \n odataObject.TakenToSafe;\n \n this.ConnectorId = \n odataObject.ConnectorId;\n \n this.GiftCardItem = \n odataObject.GiftCardItem;\n \n this.GiftCardCashoutOutThreshold = \n (odataObject.GiftCardCashoutOutThreshold != null) ? parseFloat(odataObject.GiftCardCashoutOutThreshold) : undefined;\n \n this.ChangeLineOnReceipt = \n odataObject.ChangeLineOnReceipt;\n \n this.HideCardInputDetails = \n odataObject.HideCardInputDetails;\n \n this.CashDrawerLimitEnabled = \n odataObject.CashDrawerLimitEnabled;\n \n this.CashDrawerLimit = \n (odataObject.CashDrawerLimit != null) ? parseFloat(odataObject.CashDrawerLimit) : undefined;\n \n this.RestrictReturnsWithoutReceipt = \n odataObject.RestrictReturnsWithoutReceipt;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.DefaultCardTypeId = \n odataObject.DefaultCardTypeId;\n \n this.UseForDeclareStartAmount = \n odataObject.UseForDeclareStartAmount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeClass'] = TenderTypeClass;\n \n /**\n * ReasonCode entity class.\n */\n export class ReasonCodeClass implements Entities.ReasonCode {\n public InputRequired: boolean;\n public LinkedReasonCodeId: string;\n public MaximumLength: number;\n public MaximumValue: number;\n public MinimumLength: number;\n public MinimumValue: number;\n public OncePerTransaction: boolean;\n public PrintInputNameOnReceipt: boolean;\n public PrintInputToReceipt: boolean;\n public PrintPromptToReceipt: boolean;\n public Prompt: string;\n public RandomFactor: number;\n public RetailUseReasonCode: boolean;\n public ReasonCodeId: string;\n public Description: string;\n public InputTypeValue: number;\n public ActivityValue: number;\n public IsMultiLineText: boolean;\n public ReasonSubCodes: Entities.ReasonSubCode[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InputRequired = \n odataObject.InputRequired;\n \n this.LinkedReasonCodeId = \n odataObject.LinkedReasonCodeId;\n \n this.MaximumLength = \n odataObject.MaximumLength;\n \n this.MaximumValue = \n (odataObject.MaximumValue != null) ? parseFloat(odataObject.MaximumValue) : undefined;\n \n this.MinimumLength = \n odataObject.MinimumLength;\n \n this.MinimumValue = \n (odataObject.MinimumValue != null) ? parseFloat(odataObject.MinimumValue) : undefined;\n \n this.OncePerTransaction = \n odataObject.OncePerTransaction;\n \n this.PrintInputNameOnReceipt = \n odataObject.PrintInputNameOnReceipt;\n \n this.PrintInputToReceipt = \n odataObject.PrintInputToReceipt;\n \n this.PrintPromptToReceipt = \n odataObject.PrintPromptToReceipt;\n \n this.Prompt = \n odataObject.Prompt;\n \n this.RandomFactor = \n (odataObject.RandomFactor != null) ? parseFloat(odataObject.RandomFactor) : undefined;\n \n this.RetailUseReasonCode = \n odataObject.RetailUseReasonCode;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ActivityValue = \n odataObject.ActivityValue;\n \n this.IsMultiLineText = \n odataObject.IsMultiLineText;\n \n this.ReasonSubCodes = undefined;\n if (odataObject.ReasonSubCodes) {\n this.ReasonSubCodes = [];\n for (var i = 0; i < odataObject.ReasonSubCodes.length; i++) {\n if (odataObject.ReasonSubCodes[i] != null) {\n if (odataObject.ReasonSubCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonSubCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonSubCodes[i] = new entityDictionary[className](odataObject.ReasonSubCodes[i])\n }\n } else {\n this.ReasonSubCodes[i] = new ReasonSubCodeClass(odataObject.ReasonSubCodes[i]);\n }\n } else {\n this.ReasonSubCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeClass'] = ReasonCodeClass;\n \n /**\n * ReportDataSet entity class.\n */\n export class ReportDataSetClass implements Entities.ReportDataSet {\n public ReportId: string;\n public Parameters: Entities.CommerceProperty[];\n public Locale: string;\n public Output: Entities.ReportRow[];\n public HasTotalRow: boolean;\n public HasDisclaimer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportId = \n odataObject.ReportId;\n \n this.Parameters = undefined;\n if (odataObject.Parameters) {\n this.Parameters = [];\n for (var i = 0; i < odataObject.Parameters.length; i++) {\n if (odataObject.Parameters[i] != null) {\n if (odataObject.Parameters[i]['@odata.type'] != null) {\n var className: string = odataObject.Parameters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Parameters[i] = new entityDictionary[className](odataObject.Parameters[i])\n }\n } else {\n this.Parameters[i] = new CommercePropertyClass(odataObject.Parameters[i]);\n }\n } else {\n this.Parameters[i] = undefined;\n }\n }\n }\n \n this.Locale = \n odataObject.Locale;\n \n this.Output = undefined;\n if (odataObject.Output) {\n this.Output = [];\n for (var i = 0; i < odataObject.Output.length; i++) {\n if (odataObject.Output[i] != null) {\n if (odataObject.Output[i]['@odata.type'] != null) {\n var className: string = odataObject.Output[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Output[i] = new entityDictionary[className](odataObject.Output[i])\n }\n } else {\n this.Output[i] = new ReportRowClass(odataObject.Output[i]);\n }\n } else {\n this.Output[i] = undefined;\n }\n }\n }\n \n this.HasTotalRow = \n odataObject.HasTotalRow;\n \n this.HasDisclaimer = \n odataObject.HasDisclaimer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportDataSetClass'] = ReportDataSetClass;\n \n /**\n * ZipCodeInfo entity class.\n */\n export class ZipCodeInfoClass implements Entities.ZipCodeInfo {\n public ZipPostalCode: string;\n public StreetName: string;\n public TimeZone: number;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public CityAlias: string;\n public District: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ZipPostalCode = \n odataObject.ZipPostalCode;\n \n this.StreetName = \n odataObject.StreetName;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.CityAlias = \n odataObject.CityAlias;\n \n this.District = \n odataObject.District;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ZipCodeInfoClass'] = ZipCodeInfoClass;\n \n /**\n * ReasonCodeRequirement entity class.\n */\n export class ReasonCodeRequirementClass implements Entities.ReasonCodeRequirement {\n public ReasonCodeId: string;\n public SourceId: string;\n public TableRefTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SourceId = \n odataObject.SourceId;\n \n this.TableRefTypeValue = \n odataObject.TableRefTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeRequirementClass'] = ReasonCodeRequirementClass;\n \n /**\n * QueryResultSettings entity class.\n */\n export class QueryResultSettingsClass implements Entities.QueryResultSettings {\n public Paging: Entities.PagingInfo;\n public Sorting: Entities.SortingInfo;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Paging == null) {\n this.Paging = undefined;\n } else if (odataObject.Paging['@odata.type'] == null) {\n this.Paging = new PagingInfoClass(odataObject.Paging);\n } else {\n var className: string = odataObject.Paging['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Paging = new entityDictionary[className](odataObject.Paging)\n }\n }\n\n \n if (odataObject.Sorting == null) {\n this.Sorting = undefined;\n } else if (odataObject.Sorting['@odata.type'] == null) {\n this.Sorting = new SortingInfoClass(odataObject.Sorting);\n } else {\n var className: string = odataObject.Sorting['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Sorting = new entityDictionary[className](odataObject.Sorting)\n }\n }\n\n \n }\n }\n entityDictionary['QueryResultSettingsClass'] = QueryResultSettingsClass;\n \n /**\n * SortingInfo entity class.\n */\n export class SortingInfoClass implements Entities.SortingInfo {\n public Columns: Entities.SortColumn[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Columns = undefined;\n if (odataObject.Columns) {\n this.Columns = [];\n for (var i = 0; i < odataObject.Columns.length; i++) {\n if (odataObject.Columns[i] != null) {\n if (odataObject.Columns[i]['@odata.type'] != null) {\n var className: string = odataObject.Columns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Columns[i] = new entityDictionary[className](odataObject.Columns[i])\n }\n } else {\n this.Columns[i] = new SortColumnClass(odataObject.Columns[i]);\n }\n } else {\n this.Columns[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SortingInfoClass'] = SortingInfoClass;\n \n /**\n * SortColumn entity class.\n */\n export class SortColumnClass implements Entities.SortColumn {\n public ColumnName: string;\n public IsDescending: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ColumnName = \n odataObject.ColumnName;\n \n this.IsDescending = \n odataObject.IsDescending;\n \n }\n }\n entityDictionary['SortColumnClass'] = SortColumnClass;\n \n /**\n * PagingInfo entity class.\n */\n export class PagingInfoClass implements Entities.PagingInfo {\n public NextPageToken: string;\n public Top: number;\n public Skip: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.NextPageToken = \n odataObject.NextPageToken;\n \n this.Top = \n (odataObject.Top != null) ? parseInt(odataObject.Top, 10) : undefined;\n \n this.Skip = \n (odataObject.Skip != null) ? parseInt(odataObject.Skip, 10) : undefined;\n \n }\n }\n entityDictionary['PagingInfoClass'] = PagingInfoClass;\n \n /**\n * ProductPropertyTranslation entity class.\n */\n export class ProductPropertyTranslationClass implements Entities.ProductPropertyTranslation {\n public TranslationLanguage: string;\n public TranslatedProperties: Entities.ProductProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TranslationLanguage = \n odataObject.TranslationLanguage;\n \n this.TranslatedProperties = undefined;\n if (odataObject.TranslatedProperties) {\n this.TranslatedProperties = [];\n for (var i = 0; i < odataObject.TranslatedProperties.length; i++) {\n if (odataObject.TranslatedProperties[i] != null) {\n if (odataObject.TranslatedProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslatedProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslatedProperties[i] = new entityDictionary[className](odataObject.TranslatedProperties[i])\n }\n } else {\n this.TranslatedProperties[i] = new ProductPropertyClass(odataObject.TranslatedProperties[i]);\n }\n } else {\n this.TranslatedProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPropertyTranslationClass'] = ProductPropertyTranslationClass;\n \n /**\n * NumberSequenceSeedData entity class.\n */\n export class NumberSequenceSeedDataClass implements Entities.NumberSequenceSeedData {\n public DataTypeValue: number;\n public DataValue: number;\n public LastTransactionDataValue: number;\n public LastTransactionCreatedDateTime: Date;\n public LastTransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.DataValue = \n (odataObject.DataValue != null) ? parseInt(odataObject.DataValue, 10) : undefined;\n \n this.LastTransactionDataValue = \n (odataObject.LastTransactionDataValue != null) ? parseInt(odataObject.LastTransactionDataValue, 10) : undefined;\n \n this.LastTransactionCreatedDateTime = \n (odataObject.LastTransactionCreatedDateTime instanceof Date) ? odataObject.LastTransactionCreatedDateTime\n : (odataObject.LastTransactionCreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastTransactionCreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastTransactionId = \n odataObject.LastTransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NumberSequenceSeedDataClass'] = NumberSequenceSeedDataClass;\n \n /**\n * ReceiptNumberResetInfo entity class.\n */\n export class ReceiptNumberResetInfoClass implements Entities.ReceiptNumberResetInfo {\n public ValidFrom: Date;\n public ValidTo: Date;\n public ResetDate: Date;\n public TypeValue: number;\n public Enabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResetDate = \n (odataObject.ResetDate instanceof Date) ? odataObject.ResetDate\n : (odataObject.ResetDate != null) ? jsonLightReadStringPropertyValue(odataObject.ResetDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Enabled = \n odataObject.Enabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptNumberResetInfoClass'] = ReceiptNumberResetInfoClass;\n \n /**\n * DeviceActivationResult entity class.\n */\n export class DeviceActivationResultClass implements Entities.DeviceActivationResult {\n public Device: Entities.Device;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Device == null) {\n this.Device = undefined;\n } else if (odataObject.Device['@odata.type'] == null) {\n this.Device = new DeviceClass(odataObject.Device);\n } else {\n var className: string = odataObject.Device['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Device = new entityDictionary[className](odataObject.Device)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceActivationResultClass'] = DeviceActivationResultClass;\n \n /**\n * PurchaseHistory entity class.\n */\n export class PurchaseHistoryClass implements Entities.PurchaseHistory {\n public DatePurchased: Date;\n public ImageUrl: string;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public ReceiptId: string;\n public SalesId: string;\n public ChannelId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DatePurchased = \n (odataObject.DatePurchased instanceof Date) ? odataObject.DatePurchased\n : (odataObject.DatePurchased != null) ? jsonLightReadStringPropertyValue(odataObject.DatePurchased, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseHistoryClass'] = PurchaseHistoryClass;\n \n /**\n * Node entity class.\n */\n export class NodeClass implements Entities.Node {\n public ParentScopeId: string;\n public ParentSequence: number;\n public Id: string;\n public Sequence: number;\n public Description: string;\n public ScreenshotUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ParentScopeId = \n odataObject.ParentScopeId;\n \n this.ParentSequence = \n odataObject.ParentSequence;\n \n this.Id = \n odataObject.Id;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Description = \n odataObject.Description;\n \n this.ScreenshotUri = \n odataObject.ScreenshotUri;\n \n }\n }\n entityDictionary['NodeClass'] = NodeClass;\n \n /**\n * Line entity class.\n */\n export class LineClass implements Entities.Line {\n public ChildrenIds: number[];\n public Id: number;\n public Name: string;\n public Description: string;\n public IsLinked: boolean;\n public LineMetadataId: number;\n public Artifacts: Entities.ArtifactSummary[];\n public MetadataPropertyValues: Entities.MetadataPropertyValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChildrenIds = undefined;\n if (odataObject.ChildrenIds) {\n this.ChildrenIds = [];\n for (var i = 0; i < odataObject.ChildrenIds.length; i++) {\n if (odataObject.ChildrenIds[i] != null) {\n this.ChildrenIds[i] = \n parseInt(odataObject.ChildrenIds[i], 10);\n } else {\n this.ChildrenIds[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.IsLinked = \n odataObject.IsLinked;\n \n this.LineMetadataId = \n (odataObject.LineMetadataId != null) ? parseInt(odataObject.LineMetadataId, 10) : undefined;\n \n this.Artifacts = undefined;\n if (odataObject.Artifacts) {\n this.Artifacts = [];\n for (var i = 0; i < odataObject.Artifacts.length; i++) {\n if (odataObject.Artifacts[i] != null) {\n if (odataObject.Artifacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Artifacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Artifacts[i] = new entityDictionary[className](odataObject.Artifacts[i])\n }\n } else {\n this.Artifacts[i] = new ArtifactSummaryClass(odataObject.Artifacts[i]);\n }\n } else {\n this.Artifacts[i] = undefined;\n }\n }\n }\n \n this.MetadataPropertyValues = undefined;\n if (odataObject.MetadataPropertyValues) {\n this.MetadataPropertyValues = [];\n for (var i = 0; i < odataObject.MetadataPropertyValues.length; i++) {\n if (odataObject.MetadataPropertyValues[i] != null) {\n if (odataObject.MetadataPropertyValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MetadataPropertyValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataPropertyValues[i] = new entityDictionary[className](odataObject.MetadataPropertyValues[i])\n }\n } else {\n this.MetadataPropertyValues[i] = new MetadataPropertyValueClass(odataObject.MetadataPropertyValues[i]);\n }\n } else {\n this.MetadataPropertyValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineClass'] = LineClass;\n \n /**\n * MetadataText entity class.\n */\n export class MetadataTextClass implements Entities.MetadataText {\n public Id: string;\n public Text: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Text = \n odataObject.Text;\n \n }\n }\n entityDictionary['MetadataTextClass'] = MetadataTextClass;\n \n /**\n * MetadataHypertextLink entity class.\n */\n export class MetadataHypertextLinkClass implements Entities.MetadataHypertextLink {\n public Id: string;\n public DisplayName: string;\n public Url: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.Url = \n odataObject.Url;\n \n }\n }\n entityDictionary['MetadataHypertextLinkClass'] = MetadataHypertextLinkClass;\n \n /**\n * Scope entity class.\n */\n export class ScopeClass\n extends NodeClass\n implements Entities.Scope {\n public Name: string;\n public ScopeTypeValue: number;\n public Children: Entities.Node[];\n public ActiveCount: number;\n public IsForm: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ScopeTypeValue = \n odataObject.ScopeTypeValue;\n \n this.Children = undefined;\n if (odataObject.Children) {\n this.Children = [];\n for (var i = 0; i < odataObject.Children.length; i++) {\n if (odataObject.Children[i] != null) {\n if (odataObject.Children[i]['@odata.type'] != null) {\n var className: string = odataObject.Children[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Children[i] = new entityDictionary[className](odataObject.Children[i])\n }\n } else {\n this.Children[i] = new NodeClass(odataObject.Children[i]);\n }\n } else {\n this.Children[i] = undefined;\n }\n }\n }\n \n this.ActiveCount = \n odataObject.ActiveCount;\n \n this.IsForm = \n odataObject.IsForm;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Scope\";\n \n }\n }\n entityDictionary['ScopeClass'] = ScopeClass;\n \n /**\n * Framework entity class.\n */\n export class FrameworkClass implements Entities.Framework {\n public Lines: Entities.Line[];\n public Id: number;\n public Name: string;\n public Access: string;\n public Hierarchy: Entities.Line[];\n public Publisher: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Access = \n odataObject.Access;\n \n this.Hierarchy = undefined;\n if (odataObject.Hierarchy) {\n this.Hierarchy = [];\n for (var i = 0; i < odataObject.Hierarchy.length; i++) {\n if (odataObject.Hierarchy[i] != null) {\n if (odataObject.Hierarchy[i]['@odata.type'] != null) {\n var className: string = odataObject.Hierarchy[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Hierarchy[i] = new entityDictionary[className](odataObject.Hierarchy[i])\n }\n } else {\n this.Hierarchy[i] = new LineClass(odataObject.Hierarchy[i]);\n }\n } else {\n this.Hierarchy[i] = undefined;\n }\n }\n }\n \n this.Publisher = \n odataObject.Publisher;\n \n }\n }\n entityDictionary['FrameworkClass'] = FrameworkClass;\n \n /**\n * UserAction entity class.\n */\n export class UserActionClass\n extends NodeClass\n implements Entities.UserAction {\n public SystemGenerated: boolean;\n public GlobalId: string;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SystemGenerated = \n odataObject.SystemGenerated;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAction\";\n \n }\n }\n entityDictionary['UserActionClass'] = UserActionClass;\n \n /**\n * TaskUserAction entity class.\n */\n export class TaskUserActionClass\n extends UserActionClass\n implements Entities.TaskUserAction {\n public UserActionTypeValue: number;\n public Name: string;\n public Comment: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.UserActionTypeValue = \n odataObject.UserActionTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this.TaskId = \n odataObject.TaskId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskUserAction\";\n \n }\n }\n entityDictionary['TaskUserActionClass'] = TaskUserActionClass;\n \n /**\n * FormUserAction entity class.\n */\n export class FormUserActionClass\n extends UserActionClass\n implements Entities.FormUserAction {\n public FormId: string;\n public ControlLabel: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormUserAction\";\n \n }\n }\n entityDictionary['FormUserActionClass'] = FormUserActionClass;\n \n /**\n * CommandUserAction entity class.\n */\n export class CommandUserActionClass\n extends FormUserActionClass\n implements Entities.CommandUserAction {\n public ReturnTypeValue: number;\n public CommandName: string;\n public ControlName: string;\n public ControlType: string;\n public Arguments: Entities.CommandArgument[];\n public LabelId: string;\n public ReturnValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReturnTypeValue = \n odataObject.ReturnTypeValue;\n \n this.CommandName = \n odataObject.CommandName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.Arguments = undefined;\n if (odataObject.Arguments) {\n this.Arguments = [];\n for (var i = 0; i < odataObject.Arguments.length; i++) {\n if (odataObject.Arguments[i] != null) {\n if (odataObject.Arguments[i]['@odata.type'] != null) {\n var className: string = odataObject.Arguments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Arguments[i] = new entityDictionary[className](odataObject.Arguments[i])\n }\n } else {\n this.Arguments[i] = new CommandArgumentClass(odataObject.Arguments[i]);\n }\n } else {\n this.Arguments[i] = undefined;\n }\n }\n }\n \n this.LabelId = \n odataObject.LabelId;\n \n this.ReturnValue = \n odataObject.ReturnValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommandUserAction\";\n \n }\n }\n entityDictionary['CommandUserActionClass'] = CommandUserActionClass;\n \n /**\n * Annotation entity class.\n */\n export class AnnotationClass implements Entities.Annotation {\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['AnnotationClass'] = AnnotationClass;\n \n /**\n * Recording entity class.\n */\n export class RecordingClass implements Entities.Recording {\n public Scopes: Entities.Scope[];\n public FormContextEntries: Entities.FormContextDictionaryEntry[];\n public RootScope: Entities.Scope;\n public Name: string;\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Scopes = undefined;\n if (odataObject.Scopes) {\n this.Scopes = [];\n for (var i = 0; i < odataObject.Scopes.length; i++) {\n if (odataObject.Scopes[i] != null) {\n if (odataObject.Scopes[i]['@odata.type'] != null) {\n var className: string = odataObject.Scopes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scopes[i] = new entityDictionary[className](odataObject.Scopes[i])\n }\n } else {\n this.Scopes[i] = new ScopeClass(odataObject.Scopes[i]);\n }\n } else {\n this.Scopes[i] = undefined;\n }\n }\n }\n \n this.FormContextEntries = undefined;\n if (odataObject.FormContextEntries) {\n this.FormContextEntries = [];\n for (var i = 0; i < odataObject.FormContextEntries.length; i++) {\n if (odataObject.FormContextEntries[i] != null) {\n if (odataObject.FormContextEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.FormContextEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContextEntries[i] = new entityDictionary[className](odataObject.FormContextEntries[i])\n }\n } else {\n this.FormContextEntries[i] = new FormContextDictionaryEntryClass(odataObject.FormContextEntries[i]);\n }\n } else {\n this.FormContextEntries[i] = undefined;\n }\n }\n }\n \n if (odataObject.RootScope == null) {\n this.RootScope = undefined;\n } else if (odataObject.RootScope['@odata.type'] == null) {\n this.RootScope = new ScopeClass(odataObject.RootScope);\n } else {\n var className: string = odataObject.RootScope['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RootScope = new entityDictionary[className](odataObject.RootScope)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['RecordingClass'] = RecordingClass;\n \n /**\n * FormContextDictionaryEntry entity class.\n */\n export class FormContextDictionaryEntryClass implements Entities.FormContextDictionaryEntry {\n public FormId: string;\n public FormContext: Entities.FormContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n if (odataObject.FormContext == null) {\n this.FormContext = undefined;\n } else if (odataObject.FormContext['@odata.type'] == null) {\n this.FormContext = new FormContextClass(odataObject.FormContext);\n } else {\n var className: string = odataObject.FormContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContext = new entityDictionary[className](odataObject.FormContext)\n }\n }\n\n \n }\n }\n entityDictionary['FormContextDictionaryEntryClass'] = FormContextDictionaryEntryClass;\n \n /**\n * ProductVariantResolutionContext entity class.\n */\n export class ProductVariantResolutionContextClass implements Entities.ProductVariantResolutionContext {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ProductVariantResolutionContextClass'] = ProductVariantResolutionContextClass;\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity class.\n */\n export class ProductVariantResolutionOnKitSelectionContextClass\n extends ProductVariantResolutionContextClass\n implements Entities.ProductVariantResolutionOnKitSelectionContext {\n public SelectedComponents: Entities.ComponentInSlotRelation[];\n public SlotId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SelectedComponents = undefined;\n if (odataObject.SelectedComponents) {\n this.SelectedComponents = [];\n for (var i = 0; i < odataObject.SelectedComponents.length; i++) {\n if (odataObject.SelectedComponents[i] != null) {\n if (odataObject.SelectedComponents[i]['@odata.type'] != null) {\n var className: string = odataObject.SelectedComponents[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SelectedComponents[i] = new entityDictionary[className](odataObject.SelectedComponents[i])\n }\n } else {\n this.SelectedComponents[i] = new ComponentInSlotRelationClass(odataObject.SelectedComponents[i]);\n }\n } else {\n this.SelectedComponents[i] = undefined;\n }\n }\n }\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductVariantResolutionOnKitSelectionContext\";\n \n }\n }\n entityDictionary['ProductVariantResolutionOnKitSelectionContextClass'] = ProductVariantResolutionOnKitSelectionContextClass;\n \n /**\n * WarehouseLocation entity class.\n */\n export class WarehouseLocationClass implements Entities.WarehouseLocation {\n public LocationId: string;\n public IsLicensePlateControlled: boolean;\n public ProfileId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocationId = \n odataObject.LocationId;\n \n this.IsLicensePlateControlled = \n odataObject.IsLicensePlateControlled;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseLocationClass'] = WarehouseLocationClass;\n \n /**\n * FiscalTransaction entity class.\n */\n export class FiscalTransactionClass implements Entities.FiscalTransaction {\n public CreatedDateTime: Date;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TransDateTime: Date;\n public LineNumber: number;\n public RegisterResponse: string;\n public ReceiptCopy: boolean;\n public RecordGUID: string;\n public RegisterStoreId: string;\n public RegisterTerminalId: string;\n public StaffId: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public DocumentNumber: string;\n public RegistrationTypeValue: number;\n public ServiceName: string;\n public CountryRegionIsoCode: string;\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.ReceiptCopy = \n odataObject.ReceiptCopy;\n \n this.RecordGUID = \n odataObject.RecordGUID;\n \n this.RegisterStoreId = \n odataObject.RegisterStoreId;\n \n this.RegisterTerminalId = \n odataObject.RegisterTerminalId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.DocumentNumber = \n odataObject.DocumentNumber;\n \n this.RegistrationTypeValue = \n odataObject.RegistrationTypeValue;\n \n this.ServiceName = \n odataObject.ServiceName;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionClass'] = FiscalTransactionClass;\n \n /**\n * FulfillmentLine entity class.\n */\n export class FulfillmentLineClass implements Entities.FulfillmentLine {\n public SalesId: string;\n public SalesPersonStoreId: string;\n public SalesPersonId: string;\n public SalesPersonFirstName: string;\n public SalesPersonLastName: string;\n public SalesLineNumber: number;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public DeliveryModeCode: string;\n public DocumentStatusValue: number;\n public FulfillmentDeliveryType: Entities.FulfillmentLineDeliveryType;\n public DeliveryTypeValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public StoreInventoryTotalQuantity: number;\n public StoreInventoryReservedQuantity: number;\n public StoreInventoryOrderedQuantity: number;\n public ItemId: string;\n public ProductId: number;\n public ProductVariant: string;\n public ItemName: string;\n public SerialNumber: string;\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public UnitOfMeasureSymbol: string;\n public RequestedShipDate: Date;\n public RequestedDeliveryDate: Date;\n public RequestedReceiptDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public CreatedDate: Date;\n public TotalAmount: number;\n public Balance: number;\n public ShippingAddress: Entities.Address;\n public DetailedOrderStatusValue: number;\n public DetailedLineStatusValue: number;\n public ChannelTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPersonStoreId = \n odataObject.SalesPersonStoreId;\n \n this.SalesPersonId = \n odataObject.SalesPersonId;\n \n this.SalesPersonFirstName = \n odataObject.SalesPersonFirstName;\n \n this.SalesPersonLastName = \n odataObject.SalesPersonLastName;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n if (odataObject.FulfillmentDeliveryType == null) {\n this.FulfillmentDeliveryType = undefined;\n } else if (odataObject.FulfillmentDeliveryType['@odata.type'] == null) {\n this.FulfillmentDeliveryType = new FulfillmentLineDeliveryTypeClass(odataObject.FulfillmentDeliveryType);\n } else {\n var className: string = odataObject.FulfillmentDeliveryType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentDeliveryType = new entityDictionary[className](odataObject.FulfillmentDeliveryType)\n }\n }\n\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.StoreInventoryTotalQuantity = \n (odataObject.StoreInventoryTotalQuantity != null) ? parseFloat(odataObject.StoreInventoryTotalQuantity) : undefined;\n \n this.StoreInventoryReservedQuantity = \n (odataObject.StoreInventoryReservedQuantity != null) ? parseFloat(odataObject.StoreInventoryReservedQuantity) : undefined;\n \n this.StoreInventoryOrderedQuantity = \n (odataObject.StoreInventoryOrderedQuantity != null) ? parseFloat(odataObject.StoreInventoryOrderedQuantity) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductVariant = \n odataObject.ProductVariant;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.RequestedShipDate = \n (odataObject.RequestedShipDate instanceof Date) ? odataObject.RequestedShipDate\n : (odataObject.RequestedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptDate = \n (odataObject.RequestedReceiptDate instanceof Date) ? odataObject.RequestedReceiptDate\n : (odataObject.RequestedReceiptDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDate = \n (odataObject.CreatedDate instanceof Date) ? odataObject.CreatedDate\n : (odataObject.CreatedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.ChannelTypeValue = \n odataObject.ChannelTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineClass'] = FulfillmentLineClass;\n \n /**\n * FulfillmentLineSearchCriteria entity class.\n */\n export class FulfillmentLineSearchCriteriaClass implements Entities.FulfillmentLineSearchCriteria {\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public SalesId: string;\n public OrderCreatedStartDate: Date;\n public OrderCreatedEndDate: Date;\n public ReceiptId: string;\n public StoreId: string;\n public ChannelReferenceId: string;\n public RequestedReceiptStartDate: Date;\n public RequestedReceiptEndDate: Date;\n public RequestedDeliveryStartDate: Date;\n public RequestedDeliveryEndDate: Date;\n public FulfillmentStatusValues: number[];\n public DeliveryModeCode: string;\n public WarehouseId: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public DeliveryTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.OrderCreatedStartDate = \n (odataObject.OrderCreatedStartDate instanceof Date) ? odataObject.OrderCreatedStartDate\n : (odataObject.OrderCreatedStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OrderCreatedEndDate = \n (odataObject.OrderCreatedEndDate instanceof Date) ? odataObject.OrderCreatedEndDate\n : (odataObject.OrderCreatedEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.RequestedReceiptStartDate = \n (odataObject.RequestedReceiptStartDate instanceof Date) ? odataObject.RequestedReceiptStartDate\n : (odataObject.RequestedReceiptStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptEndDate = \n (odataObject.RequestedReceiptEndDate instanceof Date) ? odataObject.RequestedReceiptEndDate\n : (odataObject.RequestedReceiptEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryStartDate = \n (odataObject.RequestedDeliveryStartDate instanceof Date) ? odataObject.RequestedDeliveryStartDate\n : (odataObject.RequestedDeliveryStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryEndDate = \n (odataObject.RequestedDeliveryEndDate instanceof Date) ? odataObject.RequestedDeliveryEndDate\n : (odataObject.RequestedDeliveryEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FulfillmentStatusValues = undefined;\n if (odataObject.FulfillmentStatusValues) {\n this.FulfillmentStatusValues = [];\n for (var i = 0; i < odataObject.FulfillmentStatusValues.length; i++) {\n if (odataObject.FulfillmentStatusValues[i] != null) {\n this.FulfillmentStatusValues[i] = \n odataObject.FulfillmentStatusValues[i];\n } else {\n this.FulfillmentStatusValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineSearchCriteriaClass'] = FulfillmentLineSearchCriteriaClass;\n \n /**\n * Comment entity class.\n */\n export class CommentClass implements Entities.Comment {\n public RecordId: number;\n public AuthorStaffId: string;\n public AuthorName: string;\n public Text: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AuthorStaffId = \n odataObject.AuthorStaffId;\n \n this.AuthorName = \n odataObject.AuthorName;\n \n this.Text = \n odataObject.Text;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommentClass'] = CommentClass;\n \n /**\n * AddressPurpose entity class.\n */\n export class AddressPurposeClass implements Entities.AddressPurpose {\n public RecordId: number;\n public AddressType: number;\n public Name: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AddressType = \n odataObject.AddressType;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressPurposeClass'] = AddressPurposeClass;\n \n /**\n * DeliveryChargeLine entity class.\n */\n export class DeliveryChargeLineClass implements Entities.DeliveryChargeLine {\n public ChargeCode: string;\n public CurrencyCode: string;\n public CalculatedAmount: number;\n public Description: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryChargeLineClass'] = DeliveryChargeLineClass;\n \n /**\n * ExtensionPackageDefinition entity class.\n */\n export class ExtensionPackageDefinitionClass implements Entities.ExtensionPackageDefinition {\n public Name: string;\n public Publisher: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Publisher = \n odataObject.Publisher;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionPackageDefinitionClass'] = ExtensionPackageDefinitionClass;\n \n /**\n * ReturnPolicy entity class.\n */\n export class ReturnPolicyClass implements Entities.ReturnPolicy {\n public RecordId: number;\n public TenderTypePolicies: Entities.TenderTypePolicy[];\n public IsManagerOverrideEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TenderTypePolicies = undefined;\n if (odataObject.TenderTypePolicies) {\n this.TenderTypePolicies = [];\n for (var i = 0; i < odataObject.TenderTypePolicies.length; i++) {\n if (odataObject.TenderTypePolicies[i] != null) {\n if (odataObject.TenderTypePolicies[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderTypePolicies[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderTypePolicies[i] = new entityDictionary[className](odataObject.TenderTypePolicies[i])\n }\n } else {\n this.TenderTypePolicies[i] = new TenderTypePolicyClass(odataObject.TenderTypePolicies[i]);\n }\n } else {\n this.TenderTypePolicies[i] = undefined;\n }\n }\n }\n \n this.IsManagerOverrideEnabled = \n odataObject.IsManagerOverrideEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnPolicyClass'] = ReturnPolicyClass;\n \n /**\n * TenderTypeAmount entity class.\n */\n export class TenderTypeAmountClass implements Entities.TenderTypeAmount {\n public TenderTypeId: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeAmountClass'] = TenderTypeAmountClass;\n \n /**\n * FeatureState entity class.\n */\n export class FeatureStateClass implements Entities.FeatureState {\n public Name: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FeatureStateClass'] = FeatureStateClass;\n \n /**\n * Warranty entity class.\n */\n export class WarrantyClass\n extends SimpleProductClass\n implements Entities.Warranty {\n public DurationUnitValue: number;\n public Duration: number;\n public ApplicablePriceRangeBaseTypeValue: number;\n public ApplicablePriceRangeMin: number;\n public ApplicablePriceRangeMax: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.DurationUnitValue = \n odataObject.DurationUnitValue;\n \n this.Duration = \n odataObject.Duration;\n \n this.ApplicablePriceRangeBaseTypeValue = \n odataObject.ApplicablePriceRangeBaseTypeValue;\n \n this.ApplicablePriceRangeMin = \n (odataObject.ApplicablePriceRangeMin != null) ? parseFloat(odataObject.ApplicablePriceRangeMin) : undefined;\n \n this.ApplicablePriceRangeMax = \n (odataObject.ApplicablePriceRangeMax != null) ? parseFloat(odataObject.ApplicablePriceRangeMax) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Warranty\";\n \n }\n }\n entityDictionary['WarrantyClass'] = WarrantyClass;\n \n /**\n * RecallInvoicedSalesLineLookup entity class.\n */\n export class RecallInvoicedSalesLineLookupClass implements Entities.RecallInvoicedSalesLineLookup {\n public InvoicedLineId: number;\n public Quantity: number;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoicedLineId = \n (odataObject.InvoicedLineId != null) ? parseInt(odataObject.InvoicedLineId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecallInvoicedSalesLineLookupClass'] = RecallInvoicedSalesLineLookupClass;\n \n /**\n * WarrantyGroup entity class.\n */\n export class WarrantyGroupClass implements Entities.WarrantyGroup {\n public Warranties: Entities.Warranty[];\n public RecordId: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Warranties = undefined;\n if (odataObject.Warranties) {\n this.Warranties = [];\n for (var i = 0; i < odataObject.Warranties.length; i++) {\n if (odataObject.Warranties[i] != null) {\n if (odataObject.Warranties[i]['@odata.type'] != null) {\n var className: string = odataObject.Warranties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Warranties[i] = new entityDictionary[className](odataObject.Warranties[i])\n }\n } else {\n this.Warranties[i] = new WarrantyClass(odataObject.Warranties[i]);\n }\n } else {\n this.Warranties[i] = undefined;\n }\n }\n }\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarrantyGroupClass'] = WarrantyGroupClass;\n \n /**\n * ProductWarrantiesMapping entity class.\n */\n export class ProductWarrantiesMappingClass implements Entities.ProductWarrantiesMapping {\n public WarrantyGroups: Entities.WarrantyGroup[];\n public WarrantableProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarrantyGroups = undefined;\n if (odataObject.WarrantyGroups) {\n this.WarrantyGroups = [];\n for (var i = 0; i < odataObject.WarrantyGroups.length; i++) {\n if (odataObject.WarrantyGroups[i] != null) {\n if (odataObject.WarrantyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.WarrantyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.WarrantyGroups[i] = new entityDictionary[className](odataObject.WarrantyGroups[i])\n }\n } else {\n this.WarrantyGroups[i] = new WarrantyGroupClass(odataObject.WarrantyGroups[i]);\n }\n } else {\n this.WarrantyGroups[i] = undefined;\n }\n }\n }\n \n this.WarrantableProductId = \n (odataObject.WarrantableProductId != null) ? parseInt(odataObject.WarrantableProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarrantiesMappingClass'] = ProductWarrantiesMappingClass;\n \n /**\n * FulfillmentLineContextualOperationsMap entity class.\n */\n export class FulfillmentLineContextualOperationsMapClass implements Entities.FulfillmentLineContextualOperationsMap {\n public FulfillmentLine: Entities.FulfillmentLine;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.FulfillmentLine == null) {\n this.FulfillmentLine = undefined;\n } else if (odataObject.FulfillmentLine['@odata.type'] == null) {\n this.FulfillmentLine = new FulfillmentLineClass(odataObject.FulfillmentLine);\n } else {\n var className: string = odataObject.FulfillmentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentLine = new entityDictionary[className](odataObject.FulfillmentLine)\n }\n }\n\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineContextualOperationsMapClass'] = FulfillmentLineContextualOperationsMapClass;\n \n /**\n * UserAlert entity class.\n */\n export class UserAlertClass implements Entities.UserAlert {\n public AlertSourceIdValue: number;\n public LocalizedMessage: string;\n public IsBlocking: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AlertSourceIdValue = \n odataObject.AlertSourceIdValue;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.IsBlocking = \n odataObject.IsBlocking;\n \n }\n }\n entityDictionary['UserAlertClass'] = UserAlertClass;\n \n /**\n * CartLineUserAlerts entity class.\n */\n export class CartLineUserAlertsClass implements Entities.CartLineUserAlerts {\n public LineIndex: number;\n public LineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIndex = \n odataObject.LineIndex;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineUserAlertsClass'] = CartLineUserAlertsClass;\n \n /**\n * FulfillmentLineUserAlerts entity class.\n */\n export class FulfillmentLineUserAlertsClass implements Entities.FulfillmentLineUserAlerts {\n public SalesId: string;\n public SalesLineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineUserAlertsClass'] = FulfillmentLineUserAlertsClass;\n \n /**\n * BusinessPartnerProspect entity class.\n */\n export class BusinessPartnerProspectClass implements Entities.BusinessPartnerProspect {\n public FirstName: string;\n public LastName: string;\n public CompanyName: string;\n public Address: Entities.Address;\n public JobTitle: string;\n public Department: string;\n public CompanySize: number;\n public Comments: string;\n public LastOperationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.CompanyName = \n odataObject.CompanyName;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.JobTitle = \n odataObject.JobTitle;\n \n this.Department = \n odataObject.Department;\n \n this.CompanySize = \n odataObject.CompanySize;\n \n this.Comments = \n odataObject.Comments;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerProspectClass'] = BusinessPartnerProspectClass;\n \n /**\n * ChannelSearchCriteria entity class.\n */\n export class ChannelSearchCriteriaClass implements Entities.ChannelSearchCriteria {\n public SearchLocationValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelSearchCriteriaClass'] = ChannelSearchCriteriaClass;\n \n /**\n * BusinessPartnerOperation entity class.\n */\n export class BusinessPartnerOperationClass implements Entities.BusinessPartnerOperation {\n public TypeValue: number;\n public StatusValue: number;\n public Value: string;\n public Description: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Value = \n odataObject.Value;\n \n this.Description = \n odataObject.Description;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationClass'] = BusinessPartnerOperationClass;\n \n /**\n * BusinessPartnerOperationRequest entity class.\n */\n export class BusinessPartnerOperationRequestClass implements Entities.BusinessPartnerOperationRequest {\n public TypeValue: number;\n public StatusValue: number;\n public CreatedDateTime: Date;\n public Details: Entities.BusinessPartnerOperationRequestDetails;\n public UserId: string;\n public UserFirstName: string;\n public UserLastName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.Details == null) {\n this.Details = undefined;\n } else if (odataObject.Details['@odata.type'] == null) {\n this.Details = new BusinessPartnerOperationRequestDetailsClass(odataObject.Details);\n } else {\n var className: string = odataObject.Details['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Details = new entityDictionary[className](odataObject.Details)\n }\n }\n\n \n this.UserId = \n odataObject.UserId;\n \n this.UserFirstName = \n odataObject.UserFirstName;\n \n this.UserLastName = \n odataObject.UserLastName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestClass'] = BusinessPartnerOperationRequestClass;\n \n /**\n * ReceiptTypesByFormatType entity class.\n */\n export class ReceiptTypesByFormatTypeClass implements Entities.ReceiptTypesByFormatType {\n public ReceiptOutputFormatType: Entities.ReceiptOutputFormatType;\n public ReceiptTypesValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ReceiptOutputFormatType == null) {\n this.ReceiptOutputFormatType = undefined;\n } else if (odataObject.ReceiptOutputFormatType['@odata.type'] == null) {\n this.ReceiptOutputFormatType = new ReceiptOutputFormatTypeClass(odataObject.ReceiptOutputFormatType);\n } else {\n var className: string = odataObject.ReceiptOutputFormatType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptOutputFormatType = new entityDictionary[className](odataObject.ReceiptOutputFormatType)\n }\n }\n\n \n this.ReceiptTypesValues = undefined;\n if (odataObject.ReceiptTypesValues) {\n this.ReceiptTypesValues = [];\n for (var i = 0; i < odataObject.ReceiptTypesValues.length; i++) {\n if (odataObject.ReceiptTypesValues[i] != null) {\n this.ReceiptTypesValues[i] = \n odataObject.ReceiptTypesValues[i];\n } else {\n this.ReceiptTypesValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptTypesByFormatTypeClass'] = ReceiptTypesByFormatTypeClass;\n \n /**\n * InventoryJournalNameSearchCriteria entity class.\n */\n export class InventoryJournalNameSearchCriteriaClass implements Entities.InventoryJournalNameSearchCriteria {\n public JournalNameIds: string[];\n public DocumentTypeValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalNameIds = undefined;\n if (odataObject.JournalNameIds) {\n this.JournalNameIds = [];\n for (var i = 0; i < odataObject.JournalNameIds.length; i++) {\n if (odataObject.JournalNameIds[i] != null) {\n this.JournalNameIds[i] = \n odataObject.JournalNameIds[i];\n } else {\n this.JournalNameIds[i] = undefined;\n }\n }\n }\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameSearchCriteriaClass'] = InventoryJournalNameSearchCriteriaClass;\n \n /**\n * AssortedProductIdentity entity class.\n */\n export class AssortedProductIdentityClass implements Entities.AssortedProductIdentity {\n public ProductId: number;\n public IsRemoteProduct: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.IsRemoteProduct = \n odataObject.IsRemoteProduct;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AssortedProductIdentityClass'] = AssortedProductIdentityClass;\n \n /**\n * ProductExistenceId entity class.\n */\n export class ProductExistenceIdClass implements Entities.ProductExistenceId {\n public ProductId: number;\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceIdClass'] = ProductExistenceIdClass;\n \n /**\n * ProductExistenceCriteria entity class.\n */\n export class ProductExistenceCriteriaClass implements Entities.ProductExistenceCriteria {\n public ChannelId: number;\n public CatalogId: number;\n public Ids: Entities.ProductExistenceId[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n if (odataObject.Ids[i]['@odata.type'] != null) {\n var className: string = odataObject.Ids[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Ids[i] = new entityDictionary[className](odataObject.Ids[i])\n }\n } else {\n this.Ids[i] = new ProductExistenceIdClass(odataObject.Ids[i]);\n }\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceCriteriaClass'] = ProductExistenceCriteriaClass;\n \n /**\n * ChecklistTask entity class.\n */\n export class ChecklistTaskClass implements Entities.ChecklistTask {\n public Version: string;\n public InstructionsVersion: string;\n public AssignedToPersonnelNumbers: string[];\n public AssignedToExternalSubId: string;\n public Id: string;\n public Name: string;\n public Description: string;\n public DueDateTime: Date;\n public DeepLinkTypeValue: number;\n public DeepLink: string;\n public DeepLinkPosOperationName: string;\n public ContactPersonPersonnelNumber: string;\n public Instructions: string;\n public StatusValue: number;\n public CompletionDateTime: Date;\n public ResolvedByPersonnelNumber: string;\n public ChecklistId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Version = \n odataObject.Version;\n \n this.InstructionsVersion = \n odataObject.InstructionsVersion;\n \n this.AssignedToPersonnelNumbers = undefined;\n if (odataObject.AssignedToPersonnelNumbers) {\n this.AssignedToPersonnelNumbers = [];\n for (var i = 0; i < odataObject.AssignedToPersonnelNumbers.length; i++) {\n if (odataObject.AssignedToPersonnelNumbers[i] != null) {\n this.AssignedToPersonnelNumbers[i] = \n odataObject.AssignedToPersonnelNumbers[i];\n } else {\n this.AssignedToPersonnelNumbers[i] = undefined;\n }\n }\n }\n \n this.AssignedToExternalSubId = \n odataObject.AssignedToExternalSubId;\n \n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeepLinkTypeValue = \n odataObject.DeepLinkTypeValue;\n \n this.DeepLink = \n odataObject.DeepLink;\n \n this.DeepLinkPosOperationName = \n odataObject.DeepLinkPosOperationName;\n \n this.ContactPersonPersonnelNumber = \n odataObject.ContactPersonPersonnelNumber;\n \n this.Instructions = \n odataObject.Instructions;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CompletionDateTime = \n (odataObject.CompletionDateTime instanceof Date) ? odataObject.CompletionDateTime\n : (odataObject.CompletionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CompletionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResolvedByPersonnelNumber = \n odataObject.ResolvedByPersonnelNumber;\n \n this.ChecklistId = \n odataObject.ChecklistId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskClass'] = ChecklistTaskClass;\n \n /**\n * MediaLocation entity class.\n */\n export class MediaLocationClass implements Entities.MediaLocation {\n public Uri: string;\n public AltText: string;\n public IsDefault: boolean;\n public IsSelfHosted: boolean;\n public Priority: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Uri = \n odataObject.Uri;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.Priority = \n odataObject.Priority;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaLocationClass'] = MediaLocationClass;\n \n /**\n * EmployeeActivity entity class.\n */\n export class EmployeeActivityClass implements Entities.EmployeeActivity {\n public StaffId: string;\n public StaffName: string;\n public Activity: string;\n public ActivityDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValue: number;\n public BreakCategory: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.StaffName = \n odataObject.StaffName;\n \n this.Activity = \n odataObject.Activity;\n \n this.ActivityDateTimeOffset = \n (odataObject.ActivityDateTimeOffset instanceof Date) ? odataObject.ActivityDateTimeOffset\n : (odataObject.ActivityDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValue = \n odataObject.EmployeeActivityTypeValue;\n \n this.BreakCategory = \n odataObject.BreakCategory;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeActivityClass'] = EmployeeActivityClass;\n \n /**\n * CustomerRefiner entity class.\n */\n export class CustomerRefinerClass\n extends SearchRefinerClass\n implements Entities.CustomerRefiner {\n public SourceValue: number;\n public Values: Entities.CustomerRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new CustomerRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefiner\";\n \n }\n }\n entityDictionary['CustomerRefinerClass'] = CustomerRefinerClass;\n \n /**\n * TokenizedPaymentCard entity class.\n */\n export class TokenizedPaymentCardClass implements Entities.TokenizedPaymentCard {\n public IsSwipe: boolean;\n public TenderType: string;\n public CardTokenInfo: Entities.CardTokenInfo;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.TenderType = \n odataObject.TenderType;\n \n if (odataObject.CardTokenInfo == null) {\n this.CardTokenInfo = undefined;\n } else if (odataObject.CardTokenInfo['@odata.type'] == null) {\n this.CardTokenInfo = new CardTokenInfoClass(odataObject.CardTokenInfo);\n } else {\n var className: string = odataObject.CardTokenInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardTokenInfo = new entityDictionary[className](odataObject.CardTokenInfo)\n }\n }\n\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TokenizedPaymentCardClass'] = TokenizedPaymentCardClass;\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity class.\n */\n export class ProductDimensionAvailabilitySearchCriteriaClass implements Entities.ProductDimensionAvailabilitySearchCriteria {\n public RequestedDimensionTypeValue: number;\n public MatchingDimensionValues: Entities.ProductDimension[];\n public DefaultWarehouseOnly: boolean;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedDimensionTypeValue = \n odataObject.RequestedDimensionTypeValue;\n \n this.MatchingDimensionValues = undefined;\n if (odataObject.MatchingDimensionValues) {\n this.MatchingDimensionValues = [];\n for (var i = 0; i < odataObject.MatchingDimensionValues.length; i++) {\n if (odataObject.MatchingDimensionValues[i] != null) {\n if (odataObject.MatchingDimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MatchingDimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MatchingDimensionValues[i] = new entityDictionary[className](odataObject.MatchingDimensionValues[i])\n }\n } else {\n this.MatchingDimensionValues[i] = new ProductDimensionClass(odataObject.MatchingDimensionValues[i]);\n }\n } else {\n this.MatchingDimensionValues[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductDimensionAvailabilitySearchCriteriaClass'] = ProductDimensionAvailabilitySearchCriteriaClass;\n \n /**\n * LineShippingAddress entity class.\n */\n export class LineShippingAddressClass implements Entities.LineShippingAddress {\n public LineId: string;\n public ShippingAddress: Entities.Address;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n }\n }\n entityDictionary['LineShippingAddressClass'] = LineShippingAddressClass;\n \n /**\n * CartDeliveryPreferences entity class.\n */\n export class CartDeliveryPreferencesClass implements Entities.CartDeliveryPreferences {\n public HeaderDeliveryPreferenceTypeValues: number[];\n public CartLineDeliveryPreferences: Entities.CartLineDeliveryPreference[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderDeliveryPreferenceTypeValues = undefined;\n if (odataObject.HeaderDeliveryPreferenceTypeValues) {\n this.HeaderDeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.HeaderDeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.HeaderDeliveryPreferenceTypeValues[i] != null) {\n this.HeaderDeliveryPreferenceTypeValues[i] = \n odataObject.HeaderDeliveryPreferenceTypeValues[i];\n } else {\n this.HeaderDeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n this.CartLineDeliveryPreferences = undefined;\n if (odataObject.CartLineDeliveryPreferences) {\n this.CartLineDeliveryPreferences = [];\n for (var i = 0; i < odataObject.CartLineDeliveryPreferences.length; i++) {\n if (odataObject.CartLineDeliveryPreferences[i] != null) {\n if (odataObject.CartLineDeliveryPreferences[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLineDeliveryPreferences[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLineDeliveryPreferences[i] = new entityDictionary[className](odataObject.CartLineDeliveryPreferences[i])\n }\n } else {\n this.CartLineDeliveryPreferences[i] = new CartLineDeliveryPreferenceClass(odataObject.CartLineDeliveryPreferences[i]);\n }\n } else {\n this.CartLineDeliveryPreferences[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartDeliveryPreferencesClass'] = CartDeliveryPreferencesClass;\n \n /**\n * LineDeliverySpecification entity class.\n */\n export class LineDeliverySpecificationClass implements Entities.LineDeliverySpecification {\n public LineId: string;\n public DeliverySpecification: Entities.DeliverySpecification;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.DeliverySpecification == null) {\n this.DeliverySpecification = undefined;\n } else if (odataObject.DeliverySpecification['@odata.type'] == null) {\n this.DeliverySpecification = new DeliverySpecificationClass(odataObject.DeliverySpecification);\n } else {\n var className: string = odataObject.DeliverySpecification['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliverySpecification = new entityDictionary[className](odataObject.DeliverySpecification)\n }\n }\n\n \n }\n }\n entityDictionary['LineDeliverySpecificationClass'] = LineDeliverySpecificationClass;\n \n /**\n * DeliverySpecification entity class.\n */\n export class DeliverySpecificationClass implements Entities.DeliverySpecification {\n public DeliveryModeId: string;\n public DeliveryPreferenceTypeValue: number;\n public DeliveryAddress: Entities.Address;\n public RequestedDeliveryDate: Date;\n public PickUpStoreId: string;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public ShipFromStoreId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.DeliveryPreferenceTypeValue = \n odataObject.DeliveryPreferenceTypeValue;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickUpStoreId = \n odataObject.PickUpStoreId;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.ShipFromStoreId = \n odataObject.ShipFromStoreId;\n \n }\n }\n entityDictionary['DeliverySpecificationClass'] = DeliverySpecificationClass;\n \n /**\n * OrderSearchCriteria entity class.\n */\n export class OrderSearchCriteriaClass implements Entities.OrderSearchCriteria {\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public EmailAddress: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public SalesId: string;\n public ReceiptId: string;\n public OrderStatusValues: number[];\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ChannelReferenceId: string;\n public StoreId: string;\n public OrderType: number;\n public CustomFilters: Entities.SearchFilter[];\n public FulfillmentTypeValues: number[];\n public DeliveryMode: string;\n public PickupStartDate: Date;\n public PickupEndDate: Date;\n public PickupTimeslotStartTime: number;\n public PickupTimeslotEndTime: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.OrderStatusValues = undefined;\n if (odataObject.OrderStatusValues) {\n this.OrderStatusValues = [];\n for (var i = 0; i < odataObject.OrderStatusValues.length; i++) {\n if (odataObject.OrderStatusValues[i] != null) {\n this.OrderStatusValues[i] = \n odataObject.OrderStatusValues[i];\n } else {\n this.OrderStatusValues[i] = undefined;\n }\n }\n }\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.OrderType = \n odataObject.OrderType;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.FulfillmentTypeValues = undefined;\n if (odataObject.FulfillmentTypeValues) {\n this.FulfillmentTypeValues = [];\n for (var i = 0; i < odataObject.FulfillmentTypeValues.length; i++) {\n if (odataObject.FulfillmentTypeValues[i] != null) {\n this.FulfillmentTypeValues[i] = \n odataObject.FulfillmentTypeValues[i];\n } else {\n this.FulfillmentTypeValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.PickupStartDate = \n (odataObject.PickupStartDate instanceof Date) ? odataObject.PickupStartDate\n : (odataObject.PickupStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupEndDate = \n (odataObject.PickupEndDate instanceof Date) ? odataObject.PickupEndDate\n : (odataObject.PickupEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartTime = \n odataObject.PickupTimeslotStartTime;\n \n this.PickupTimeslotEndTime = \n odataObject.PickupTimeslotEndTime;\n \n }\n }\n entityDictionary['OrderSearchCriteriaClass'] = OrderSearchCriteriaClass;\n \n /**\n * ChecklistSearchCriteria entity class.\n */\n export class ChecklistSearchCriteriaClass implements Entities.ChecklistSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public ChecklistIds: string[];\n public StatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.ChecklistIds = undefined;\n if (odataObject.ChecklistIds) {\n this.ChecklistIds = [];\n for (var i = 0; i < odataObject.ChecklistIds.length; i++) {\n if (odataObject.ChecklistIds[i] != null) {\n this.ChecklistIds[i] = \n odataObject.ChecklistIds[i];\n } else {\n this.ChecklistIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistSearchCriteriaClass'] = ChecklistSearchCriteriaClass;\n \n /**\n * TaskSearchCriteria entity class.\n */\n export class TaskSearchCriteriaClass implements Entities.TaskSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public TaskIds: string[];\n public StatusValues: number[];\n public FilterMyTasks: boolean;\n public FilterOverdueTasks: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.TaskIds = undefined;\n if (odataObject.TaskIds) {\n this.TaskIds = [];\n for (var i = 0; i < odataObject.TaskIds.length; i++) {\n if (odataObject.TaskIds[i] != null) {\n this.TaskIds[i] = \n odataObject.TaskIds[i];\n } else {\n this.TaskIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.FilterMyTasks = \n odataObject.FilterMyTasks;\n \n this.FilterOverdueTasks = \n odataObject.FilterOverdueTasks;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaskSearchCriteriaClass'] = TaskSearchCriteriaClass;\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity class.\n */\n export class ChecklistTaskTeamsIntegrationConfigurationClass implements Entities.ChecklistTaskTeamsIntegrationConfiguration {\n public IsEnabled: boolean;\n public MicrosoftGraphResource: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.MicrosoftGraphResource = \n odataObject.MicrosoftGraphResource;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskTeamsIntegrationConfigurationClass'] = ChecklistTaskTeamsIntegrationConfigurationClass;\n \n /**\n * ReturnCartLine entity class.\n */\n export class ReturnCartLineClass implements Entities.ReturnCartLine {\n public Description: string;\n public ItemId: string;\n public ProductId: number;\n public Quantity: number;\n public ReturnLineNumber: number;\n public ReturnTransactionId: string;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Price: number;\n public IsPriceKeyedIn: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n }\n }\n entityDictionary['ReturnCartLineClass'] = ReturnCartLineClass;\n \n /**\n * TenderDiscountLine entity class.\n */\n export class TenderDiscountLineClass implements Entities.TenderDiscountLine {\n public DiscountAmount: number;\n public PaymentAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDiscountLineClass'] = TenderDiscountLineClass;\n \n /**\n * ReceiptRetrievalCriteria entity class.\n */\n export class ReceiptRetrievalCriteriaClass implements Entities.ReceiptRetrievalCriteria {\n public IsCopy: boolean;\n public IsRemoteTransaction: boolean;\n public IsPreview: boolean;\n public QueryBySalesId: boolean;\n public ReceiptTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public HardwareProfileId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsCopy = \n odataObject.IsCopy;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.IsPreview = \n odataObject.IsPreview;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n }\n }\n entityDictionary['ReceiptRetrievalCriteriaClass'] = ReceiptRetrievalCriteriaClass;\n \n /**\n * CartSearchCriteria entity class.\n */\n export class CartSearchCriteriaClass implements Entities.CartSearchCriteria {\n public CartId: string;\n public ExpectedCartVersion: number;\n public CustomerAccountNumber: string;\n public IncludeAnonymous: boolean;\n public SuspendedOnly: boolean;\n public CartTypeValue: number;\n public LastModifiedDateTimeFrom: Date;\n public LastModifiedDateTimeTo: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CartId = \n odataObject.CartId;\n \n this.ExpectedCartVersion = \n (odataObject.ExpectedCartVersion != null) ? parseInt(odataObject.ExpectedCartVersion, 10) : undefined;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.IncludeAnonymous = \n odataObject.IncludeAnonymous;\n \n this.SuspendedOnly = \n odataObject.SuspendedOnly;\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.LastModifiedDateTimeFrom = \n (odataObject.LastModifiedDateTimeFrom instanceof Date) ? odataObject.LastModifiedDateTimeFrom\n : (odataObject.LastModifiedDateTimeFrom != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastModifiedDateTimeTo = \n (odataObject.LastModifiedDateTimeTo instanceof Date) ? odataObject.LastModifiedDateTimeTo\n : (odataObject.LastModifiedDateTimeTo != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['CartSearchCriteriaClass'] = CartSearchCriteriaClass;\n \n /**\n * RetrievePaymentResultSettings entity class.\n */\n export class RetrievePaymentResultSettingsClass implements Entities.RetrievePaymentResultSettings {\n public ReturnUrl: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnUrl = \n odataObject.ReturnUrl;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['RetrievePaymentResultSettingsClass'] = RetrievePaymentResultSettingsClass;\n \n /**\n * SearchReceiptCriteria entity class.\n */\n export class SearchReceiptCriteriaClass implements Entities.SearchReceiptCriteria {\n public TransactionId: string;\n public ReceiptTypeValue: number;\n public ReceiptTypesByFormatTypeCollection: Entities.ReceiptTypesByFormatType[];\n public IsCopy: boolean;\n public GiftReceiptLineNumbers: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypesByFormatTypeCollection = undefined;\n if (odataObject.ReceiptTypesByFormatTypeCollection) {\n this.ReceiptTypesByFormatTypeCollection = [];\n for (var i = 0; i < odataObject.ReceiptTypesByFormatTypeCollection.length; i++) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i] != null) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptTypesByFormatTypeCollection[i] = new entityDictionary[className](odataObject.ReceiptTypesByFormatTypeCollection[i])\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = new ReceiptTypesByFormatTypeClass(odataObject.ReceiptTypesByFormatTypeCollection[i]);\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = undefined;\n }\n }\n }\n \n this.IsCopy = \n odataObject.IsCopy;\n \n this.GiftReceiptLineNumbers = undefined;\n if (odataObject.GiftReceiptLineNumbers) {\n this.GiftReceiptLineNumbers = [];\n for (var i = 0; i < odataObject.GiftReceiptLineNumbers.length; i++) {\n if (odataObject.GiftReceiptLineNumbers[i] != null) {\n this.GiftReceiptLineNumbers[i] = \n parseFloat(odataObject.GiftReceiptLineNumbers[i]);\n } else {\n this.GiftReceiptLineNumbers[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchReceiptCriteriaClass'] = SearchReceiptCriteriaClass;\n \n /**\n * ElectronicAddress entity class.\n */\n export class ElectronicAddressClass implements Entities.ElectronicAddress {\n public AddressTypeValue: number;\n public ExtensibleEAddressType: Entities.ExtensibleElectronicAddressType;\n public Address: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n if (odataObject.ExtensibleEAddressType == null) {\n this.ExtensibleEAddressType = undefined;\n } else if (odataObject.ExtensibleEAddressType['@odata.type'] == null) {\n this.ExtensibleEAddressType = new ExtensibleElectronicAddressTypeClass(odataObject.ExtensibleEAddressType);\n } else {\n var className: string = odataObject.ExtensibleEAddressType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEAddressType = new entityDictionary[className](odataObject.ExtensibleEAddressType)\n }\n }\n\n \n this.Address = \n odataObject.Address;\n \n }\n }\n entityDictionary['ElectronicAddressClass'] = ElectronicAddressClass;\n \n /**\n * ChannelReferenceLookupCriteria entity class.\n */\n export class ChannelReferenceLookupCriteriaClass implements Entities.ChannelReferenceLookupCriteria {\n public ChannelReferenceId: string;\n public SearchLocationValue: number;\n public ChannelReferenceAdditionalLookupCriteria: Entities.ChannelReferenceAdditionalLookupCriteria[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ChannelReferenceAdditionalLookupCriteria = undefined;\n if (odataObject.ChannelReferenceAdditionalLookupCriteria) {\n this.ChannelReferenceAdditionalLookupCriteria = [];\n for (var i = 0; i < odataObject.ChannelReferenceAdditionalLookupCriteria.length; i++) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i] != null) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new entityDictionary[className](odataObject.ChannelReferenceAdditionalLookupCriteria[i])\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new ChannelReferenceAdditionalLookupCriteriaClass(odataObject.ChannelReferenceAdditionalLookupCriteria[i]);\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelReferenceLookupCriteriaClass'] = ChannelReferenceLookupCriteriaClass;\n \n /**\n * FulfillmentLineParameter entity class.\n */\n export class FulfillmentLineParameterClass implements Entities.FulfillmentLineParameter {\n public SalesId: string;\n public SalesLineNumber: number;\n public Quantity: number;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineParameterClass'] = FulfillmentLineParameterClass;\n \n /**\n * ShipFulfillmentLine entity class.\n */\n export class ShipFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.ShipFulfillmentLine {\n public ProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShipFulfillmentLine\";\n \n }\n }\n entityDictionary['ShipFulfillmentLineClass'] = ShipFulfillmentLineClass;\n \n /**\n * RejectFulfillmentLine entity class.\n */\n export class RejectFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.RejectFulfillmentLine {\n public RejectedQuantity: number;\n public InfoCodeId: string;\n public SubInfoCodeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RejectedQuantity = \n (odataObject.RejectedQuantity != null) ? parseFloat(odataObject.RejectedQuantity) : undefined;\n \n this.InfoCodeId = \n odataObject.InfoCodeId;\n \n this.SubInfoCodeId = \n odataObject.SubInfoCodeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.RejectFulfillmentLine\";\n \n }\n }\n entityDictionary['RejectFulfillmentLineClass'] = RejectFulfillmentLineClass;\n \n /**\n * ReadChangedProductsSession entity class.\n */\n export class ReadChangedProductsSessionClass implements Entities.ReadChangedProductsSession {\n public Id: string;\n public TotalNumberOfProducts: number;\n public NumberOfProductsRead: number;\n public NumberOfProductsReadInCurrentPage: number;\n public NextSynchronizationToken: string;\n public IsInitialSync: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.TotalNumberOfProducts = \n odataObject.TotalNumberOfProducts;\n \n this.NumberOfProductsRead = \n odataObject.NumberOfProductsRead;\n \n this.NumberOfProductsReadInCurrentPage = \n odataObject.NumberOfProductsReadInCurrentPage;\n \n this.NextSynchronizationToken = \n odataObject.NextSynchronizationToken;\n \n this.IsInitialSync = \n odataObject.IsInitialSync;\n \n }\n }\n entityDictionary['ReadChangedProductsSessionClass'] = ReadChangedProductsSessionClass;\n \n /**\n * DeletedListingsResult entity class.\n */\n export class DeletedListingsResultClass implements Entities.DeletedListingsResult {\n public HasMorePublishedListings: boolean;\n public DeletedListings: Entities.ListingIdentity[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasMorePublishedListings = \n odataObject.HasMorePublishedListings;\n \n this.DeletedListings = undefined;\n if (odataObject.DeletedListings) {\n this.DeletedListings = [];\n for (var i = 0; i < odataObject.DeletedListings.length; i++) {\n if (odataObject.DeletedListings[i] != null) {\n if (odataObject.DeletedListings[i]['@odata.type'] != null) {\n var className: string = odataObject.DeletedListings[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeletedListings[i] = new entityDictionary[className](odataObject.DeletedListings[i])\n }\n } else {\n this.DeletedListings[i] = new ListingIdentityClass(odataObject.DeletedListings[i]);\n }\n } else {\n this.DeletedListings[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeletedListingsResultClass'] = DeletedListingsResultClass;\n \n /**\n * ProductRating entity class.\n */\n export class ProductRatingClass implements Entities.ProductRating {\n public ProductId: number;\n public AverageRating: number;\n public TotalRatings: number;\n public RatingDistribution: Entities.ProductRatingCount[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.RatingDistribution = undefined;\n if (odataObject.RatingDistribution) {\n this.RatingDistribution = [];\n for (var i = 0; i < odataObject.RatingDistribution.length; i++) {\n if (odataObject.RatingDistribution[i] != null) {\n if (odataObject.RatingDistribution[i]['@odata.type'] != null) {\n var className: string = odataObject.RatingDistribution[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RatingDistribution[i] = new entityDictionary[className](odataObject.RatingDistribution[i])\n }\n } else {\n this.RatingDistribution[i] = new ProductRatingCountClass(odataObject.RatingDistribution[i]);\n }\n } else {\n this.RatingDistribution[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingClass'] = ProductRatingClass;\n \n /**\n * ProductDeliveryOptions entity class.\n */\n export class ProductDeliveryOptionsClass implements Entities.ProductDeliveryOptions {\n public ProductId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDeliveryOptionsClass'] = ProductDeliveryOptionsClass;\n \n /**\n * ListingPublishStatus entity class.\n */\n export class ListingPublishStatusClass implements Entities.ListingPublishStatus {\n public PublishStatusValue: number;\n public ListingModifiedDateTime: Date;\n public ChannelListingId: string;\n public ChannelId: number;\n public CatalogId: number;\n public ProductId: number;\n public LanguageId: string;\n public AppliedActionValue: number;\n public StatusMessage: string;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PublishStatusValue = \n odataObject.PublishStatusValue;\n \n this.ListingModifiedDateTime = \n (odataObject.ListingModifiedDateTime instanceof Date) ? odataObject.ListingModifiedDateTime\n : (odataObject.ListingModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ListingModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelListingId = \n odataObject.ChannelListingId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AppliedActionValue = \n odataObject.AppliedActionValue;\n \n this.StatusMessage = \n odataObject.StatusMessage;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingPublishStatusClass'] = ListingPublishStatusClass;\n \n /**\n * OrgUnitLocationSearchCriteria entity class.\n */\n export class OrgUnitLocationSearchCriteriaClass implements Entities.OrgUnitLocationSearchCriteria {\n public OrgUnitNumber: string;\n public OrgUnitName: string;\n public InventoryLocationIds: string[];\n public DeliveryModeTypeFilterValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.InventoryLocationIds = undefined;\n if (odataObject.InventoryLocationIds) {\n this.InventoryLocationIds = [];\n for (var i = 0; i < odataObject.InventoryLocationIds.length; i++) {\n if (odataObject.InventoryLocationIds[i] != null) {\n this.InventoryLocationIds[i] = \n odataObject.InventoryLocationIds[i];\n } else {\n this.InventoryLocationIds[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n }\n }\n entityDictionary['OrgUnitLocationSearchCriteriaClass'] = OrgUnitLocationSearchCriteriaClass;\n \n /**\n * StoreHours entity class.\n */\n export class StoreHoursClass implements Entities.StoreHours {\n public RegularStoreHours: Entities.RegularStoreHours;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegularStoreHours == null) {\n this.RegularStoreHours = undefined;\n } else if (odataObject.RegularStoreHours['@odata.type'] == null) {\n this.RegularStoreHours = new RegularStoreHoursClass(odataObject.RegularStoreHours);\n } else {\n var className: string = odataObject.RegularStoreHours['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegularStoreHours = new entityDictionary[className](odataObject.RegularStoreHours)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreHoursClass'] = StoreHoursClass;\n \n /**\n * CartPromotions entity class.\n */\n export class CartPromotionsClass implements Entities.CartPromotions {\n public HeaderPromotions: string[];\n public CartLinePromotions: Entities.CartLinePromotion[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderPromotions = undefined;\n if (odataObject.HeaderPromotions) {\n this.HeaderPromotions = [];\n for (var i = 0; i < odataObject.HeaderPromotions.length; i++) {\n if (odataObject.HeaderPromotions[i] != null) {\n this.HeaderPromotions[i] = \n odataObject.HeaderPromotions[i];\n } else {\n this.HeaderPromotions[i] = undefined;\n }\n }\n }\n \n this.CartLinePromotions = undefined;\n if (odataObject.CartLinePromotions) {\n this.CartLinePromotions = [];\n for (var i = 0; i < odataObject.CartLinePromotions.length; i++) {\n if (odataObject.CartLinePromotions[i] != null) {\n if (odataObject.CartLinePromotions[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLinePromotions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLinePromotions[i] = new entityDictionary[className](odataObject.CartLinePromotions[i])\n }\n } else {\n this.CartLinePromotions[i] = new CartLinePromotionClass(odataObject.CartLinePromotions[i]);\n }\n } else {\n this.CartLinePromotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionsClass'] = CartPromotionsClass;\n \n /**\n * CartPromotionLine entity class.\n */\n export class CartPromotionLineClass implements Entities.CartPromotionLine {\n public LineId: string;\n public Promotion: Entities.Promotion;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.Promotion == null) {\n this.Promotion = undefined;\n } else if (odataObject.Promotion['@odata.type'] == null) {\n this.Promotion = new PromotionClass(odataObject.Promotion);\n } else {\n var className: string = odataObject.Promotion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Promotion = new entityDictionary[className](odataObject.Promotion)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionLineClass'] = CartPromotionLineClass;\n \n /**\n * ItemUnit entity class.\n */\n export class ItemUnitClass implements Entities.ItemUnit {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public Product: number;\n public DistinctProductVariant: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.Product = \n (odataObject.Product != null) ? parseInt(odataObject.Product, 10) : undefined;\n \n this.DistinctProductVariant = \n (odataObject.DistinctProductVariant != null) ? parseInt(odataObject.DistinctProductVariant, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemUnitClass'] = ItemUnitClass;\n \n /**\n * ProductAvailableQuantity entity class.\n */\n export class ProductAvailableQuantityClass implements Entities.ProductAvailableQuantity {\n public ProductId: number;\n public AvailableQuantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAvailableQuantityClass'] = ProductAvailableQuantityClass;\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity class.\n */\n export class OrgUnitAvailabilitySearchCriteriaClass implements Entities.OrgUnitAvailabilitySearchCriteria {\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n }\n }\n entityDictionary['OrgUnitAvailabilitySearchCriteriaClass'] = OrgUnitAvailabilitySearchCriteriaClass;\n \n /**\n * InvoiceSearchCriteria entity class.\n */\n export class InvoiceSearchCriteriaClass implements Entities.InvoiceSearchCriteria {\n public BusinessPartnerId: string;\n public CustomerId: string;\n public InvoiceIds: string[];\n public InvoiceTypeValues: number[];\n public InvoicePaidStatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.InvoiceIds = undefined;\n if (odataObject.InvoiceIds) {\n this.InvoiceIds = [];\n for (var i = 0; i < odataObject.InvoiceIds.length; i++) {\n if (odataObject.InvoiceIds[i] != null) {\n this.InvoiceIds[i] = \n odataObject.InvoiceIds[i];\n } else {\n this.InvoiceIds[i] = undefined;\n }\n }\n }\n \n this.InvoiceTypeValues = undefined;\n if (odataObject.InvoiceTypeValues) {\n this.InvoiceTypeValues = [];\n for (var i = 0; i < odataObject.InvoiceTypeValues.length; i++) {\n if (odataObject.InvoiceTypeValues[i] != null) {\n this.InvoiceTypeValues[i] = \n odataObject.InvoiceTypeValues[i];\n } else {\n this.InvoiceTypeValues[i] = undefined;\n }\n }\n }\n \n this.InvoicePaidStatusValues = undefined;\n if (odataObject.InvoicePaidStatusValues) {\n this.InvoicePaidStatusValues = [];\n for (var i = 0; i < odataObject.InvoicePaidStatusValues.length; i++) {\n if (odataObject.InvoicePaidStatusValues[i] != null) {\n this.InvoicePaidStatusValues[i] = \n odataObject.InvoicePaidStatusValues[i];\n } else {\n this.InvoicePaidStatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceSearchCriteriaClass'] = InvoiceSearchCriteriaClass;\n \n /**\n * InvoiceDetailsSearchCriteria entity class.\n */\n export class InvoiceDetailsSearchCriteriaClass implements Entities.InvoiceDetailsSearchCriteria {\n public InvoiceId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceDetailsSearchCriteriaClass'] = InvoiceDetailsSearchCriteriaClass;\n \n /**\n * PickAndPackSalesLineParameter entity class.\n */\n export class PickAndPackSalesLineParameterClass implements Entities.PickAndPackSalesLineParameter {\n public SalesLineNumber: number;\n public Quantity: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n }\n }\n entityDictionary['PickAndPackSalesLineParameterClass'] = PickAndPackSalesLineParameterClass;\n \n /**\n * ProductListSearchCriteria entity class.\n */\n export class ProductListSearchCriteriaClass implements Entities.ProductListSearchCriteria {\n public CustomerId: string;\n public ProductListId: string;\n public ProductListType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.ProductListId = \n odataObject.ProductListId;\n \n this.ProductListType = \n odataObject.ProductListType;\n \n }\n }\n entityDictionary['ProductListSearchCriteriaClass'] = ProductListSearchCriteriaClass;\n \n /**\n * ProjectionDomain entity class.\n */\n export class ProjectionDomainClass implements Entities.ProjectionDomain {\n public ChannelId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProjectionDomainClass'] = ProjectionDomainClass;\n \n /**\n * AffiliationLoyaltyTier entity class.\n */\n export class AffiliationLoyaltyTierClass implements Entities.AffiliationLoyaltyTier {\n public AffiliationId: number;\n public LoyaltyTierId: number;\n public AffiliationTypeValue: number;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public CustomerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationId = \n (odataObject.AffiliationId != null) ? parseInt(odataObject.AffiliationId, 10) : undefined;\n \n this.LoyaltyTierId = \n (odataObject.LoyaltyTierId != null) ? parseInt(odataObject.LoyaltyTierId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationLoyaltyTierClass'] = AffiliationLoyaltyTierClass;\n \n /**\n * ClientBookCustomerSearchCriteria entity class.\n */\n export class ClientBookCustomerSearchCriteriaClass implements Entities.ClientBookCustomerSearchCriteria {\n public FilterByCurrentEmployee: boolean;\n public Refinement: Entities.ClientBookRefinerValue[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FilterByCurrentEmployee = \n odataObject.FilterByCurrentEmployee;\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ClientBookRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerSearchCriteriaClass'] = ClientBookCustomerSearchCriteriaClass;\n \n /**\n * ClientBookCustomer entity class.\n */\n export class ClientBookCustomerClass implements Entities.ClientBookCustomer {\n public CustomerId: string;\n public Name: string;\n public Phone: string;\n public Email: string;\n public StaffId: string;\n public ImageUris: Entities.MediaLocation[];\n public Attributes: Entities.CustomerAttribute[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Name = \n odataObject.Name;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ImageUris = undefined;\n if (odataObject.ImageUris) {\n this.ImageUris = [];\n for (var i = 0; i < odataObject.ImageUris.length; i++) {\n if (odataObject.ImageUris[i] != null) {\n if (odataObject.ImageUris[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageUris[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageUris[i] = new entityDictionary[className](odataObject.ImageUris[i])\n }\n } else {\n this.ImageUris[i] = new MediaLocationClass(odataObject.ImageUris[i]);\n }\n } else {\n this.ImageUris[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerClass'] = ClientBookCustomerClass;\n \n /**\n * ClientBookChanges entity class.\n */\n export class ClientBookChangesClass implements Entities.ClientBookChanges {\n public Changes: Entities.ClientBookChange[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Changes = undefined;\n if (odataObject.Changes) {\n this.Changes = [];\n for (var i = 0; i < odataObject.Changes.length; i++) {\n if (odataObject.Changes[i] != null) {\n if (odataObject.Changes[i]['@odata.type'] != null) {\n var className: string = odataObject.Changes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Changes[i] = new entityDictionary[className](odataObject.Changes[i])\n }\n } else {\n this.Changes[i] = new ClientBookChangeClass(odataObject.Changes[i]);\n }\n } else {\n this.Changes[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookChangesClass'] = ClientBookChangesClass;\n \n /**\n * ChargeCode entity class.\n */\n export class ChargeCodeClass implements Entities.ChargeCode {\n public Code: string;\n public ModuleTypeValue: number;\n public Description: string;\n public ItemTaxGroupId: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeCodeClass'] = ChargeCodeClass;\n \n /**\n * PaymentMerchantInformation entity class.\n */\n export class PaymentMerchantInformationClass implements Entities.PaymentMerchantInformation {\n public PaymentConnectorPropertiesXml: string;\n public MerchantPropertiesHashValue: string;\n public ServiceAccountId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PaymentConnectorPropertiesXml = \n odataObject.PaymentConnectorPropertiesXml;\n \n this.MerchantPropertiesHashValue = \n odataObject.MerchantPropertiesHashValue;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentMerchantInformationClass'] = PaymentMerchantInformationClass;\n \n /**\n * StoreSafe entity class.\n */\n export class StoreSafeClass implements Entities.StoreSafe {\n public SafeNumber: string;\n public Name: string;\n public StoreNumber: string;\n public SafeBalance: number;\n public LastUpdatedTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SafeNumber = \n odataObject.SafeNumber;\n \n this.Name = \n odataObject.Name;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.SafeBalance = \n (odataObject.SafeBalance != null) ? parseFloat(odataObject.SafeBalance) : undefined;\n \n this.LastUpdatedTime = \n (odataObject.LastUpdatedTime instanceof Date) ? odataObject.LastUpdatedTime\n : (odataObject.LastUpdatedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdatedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreSafeClass'] = StoreSafeClass;\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity class.\n */\n export class InventoryDocumentReceiptSearchCriteriaClass implements Entities.InventoryDocumentReceiptSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentReceiptSearchCriteriaClass'] = InventoryDocumentReceiptSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass'] = InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecord {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public StaffId: string;\n public UpdateNowQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.UpdateNowQuantity = \n (odataObject.UpdateNowQuantity != null) ? parseFloat(odataObject.UpdateNowQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordClass'] = InventoryDocumentSourceDocumentLineCommitRecordClass;\n \n /**\n * CreateHardwareStationTokenResult entity class.\n */\n export class CreateHardwareStationTokenResultClass implements Entities.CreateHardwareStationTokenResult {\n public HardwareStationToken: string;\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HardwareStationToken = \n odataObject.HardwareStationToken;\n \n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreateHardwareStationTokenResultClass'] = CreateHardwareStationTokenResultClass;\n \n /**\n * ValidateHardwareStationTokenResult entity class.\n */\n export class ValidateHardwareStationTokenResultClass implements Entities.ValidateHardwareStationTokenResult {\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidateHardwareStationTokenResultClass'] = ValidateHardwareStationTokenResultClass;\n \n /**\n * MediaBlob entity class.\n */\n export class MediaBlobClass implements Entities.MediaBlob {\n public MediaType: string;\n public Content: string;\n public IsDefault: boolean;\n public AltText: string;\n public PictureId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MediaType = \n odataObject.MediaType;\n \n this.Content = \n odataObject.Content;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.AltText = \n odataObject.AltText;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaBlobClass'] = MediaBlobClass;\n \n /**\n * OnlineChannel entity class.\n */\n export class OnlineChannelClass implements Entities.OnlineChannel {\n public OnlineChannelName: string;\n public CurrencyCode: string;\n public EventNotificationProfileId: string;\n public RecordId: number;\n public OrgUnitTypeValue: number;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public InventoryLocationId: string;\n public ChannelProfile: Entities.ChannelProfile;\n public ChannelProperties: Entities.ChannelProperty[];\n public ChannelLanguages: Entities.ChannelLanguage[];\n public Contacts: Entities.OrgUnitContact[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public CountryRegions: Entities.CountryRegion[];\n \n // Navigation properties names\n public static countryRegionsPropertyName: string = \"CountryRegions\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OnlineChannelName = \n odataObject.OnlineChannelName;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrgUnitTypeValue = \n odataObject.OrgUnitTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n if (odataObject.ChannelProfile == null) {\n this.ChannelProfile = undefined;\n } else if (odataObject.ChannelProfile['@odata.type'] == null) {\n this.ChannelProfile = new ChannelProfileClass(odataObject.ChannelProfile);\n } else {\n var className: string = odataObject.ChannelProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProfile = new entityDictionary[className](odataObject.ChannelProfile)\n }\n }\n\n \n this.ChannelProperties = undefined;\n if (odataObject.ChannelProperties) {\n this.ChannelProperties = [];\n for (var i = 0; i < odataObject.ChannelProperties.length; i++) {\n if (odataObject.ChannelProperties[i] != null) {\n if (odataObject.ChannelProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProperties[i] = new entityDictionary[className](odataObject.ChannelProperties[i])\n }\n } else {\n this.ChannelProperties[i] = new ChannelPropertyClass(odataObject.ChannelProperties[i]);\n }\n } else {\n this.ChannelProperties[i] = undefined;\n }\n }\n }\n \n this.ChannelLanguages = undefined;\n if (odataObject.ChannelLanguages) {\n this.ChannelLanguages = [];\n for (var i = 0; i < odataObject.ChannelLanguages.length; i++) {\n if (odataObject.ChannelLanguages[i] != null) {\n if (odataObject.ChannelLanguages[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelLanguages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelLanguages[i] = new entityDictionary[className](odataObject.ChannelLanguages[i])\n }\n } else {\n this.ChannelLanguages[i] = new ChannelLanguageClass(odataObject.ChannelLanguages[i]);\n }\n } else {\n this.ChannelLanguages[i] = undefined;\n }\n }\n }\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.CountryRegions = undefined;\n if (odataObject.CountryRegions) {\n this.CountryRegions = [];\n for (var i = 0; i < odataObject.CountryRegions.length; i++) {\n if (odataObject.CountryRegions[i] != null) {\n if (odataObject.CountryRegions[i]['@odata.type'] != null) {\n var className: string = odataObject.CountryRegions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CountryRegions[i] = new entityDictionary[className](odataObject.CountryRegions[i])\n }\n } else {\n this.CountryRegions[i] = new CountryRegionClass(odataObject.CountryRegions[i]);\n }\n } else {\n this.CountryRegions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OnlineChannelClass'] = OnlineChannelClass;\n \n /**\n * TerminalDataDownloadRequestInfo entity class.\n */\n export class TerminalDataDownloadRequestInfoClass implements Entities.TerminalDataDownloadRequestInfo {\n public TerminalId: string;\n public RequiresDataInitialization: boolean;\n public HasBeenInitializedBefore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.RequiresDataInitialization = \n odataObject.RequiresDataInitialization;\n \n this.HasBeenInitializedBefore = \n odataObject.HasBeenInitializedBefore;\n \n }\n }\n entityDictionary['TerminalDataDownloadRequestInfoClass'] = TerminalDataDownloadRequestInfoClass;\n \n /**\n * DataDownloadParameters entity class.\n */\n export class DataDownloadParametersClass implements Entities.DataDownloadParameters {\n public DownloadInterval: number;\n public DownloadSessions: Entities.DownloadSession[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DownloadInterval = \n odataObject.DownloadInterval;\n \n this.DownloadSessions = undefined;\n if (odataObject.DownloadSessions) {\n this.DownloadSessions = [];\n for (var i = 0; i < odataObject.DownloadSessions.length; i++) {\n if (odataObject.DownloadSessions[i] != null) {\n if (odataObject.DownloadSessions[i]['@odata.type'] != null) {\n var className: string = odataObject.DownloadSessions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DownloadSessions[i] = new entityDictionary[className](odataObject.DownloadSessions[i])\n }\n } else {\n this.DownloadSessions[i] = new DownloadSessionClass(odataObject.DownloadSessions[i]);\n }\n } else {\n this.DownloadSessions[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataDownloadParametersClass'] = DataDownloadParametersClass;\n \n /**\n * TerminalDataUploadRequestInfo entity class.\n */\n export class TerminalDataUploadRequestInfoClass implements Entities.TerminalDataUploadRequestInfo {\n public TerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n }\n }\n entityDictionary['TerminalDataUploadRequestInfoClass'] = TerminalDataUploadRequestInfoClass;\n \n /**\n * DataUploadParameters entity class.\n */\n export class DataUploadParametersClass implements Entities.DataUploadParameters {\n public UploadInterval: number;\n public UploadJobPackageRequests: Entities.UploadJobPackageRequest[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UploadInterval = \n odataObject.UploadInterval;\n \n this.UploadJobPackageRequests = undefined;\n if (odataObject.UploadJobPackageRequests) {\n this.UploadJobPackageRequests = [];\n for (var i = 0; i < odataObject.UploadJobPackageRequests.length; i++) {\n if (odataObject.UploadJobPackageRequests[i] != null) {\n if (odataObject.UploadJobPackageRequests[i]['@odata.type'] != null) {\n var className: string = odataObject.UploadJobPackageRequests[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UploadJobPackageRequests[i] = new entityDictionary[className](odataObject.UploadJobPackageRequests[i])\n }\n } else {\n this.UploadJobPackageRequests[i] = new UploadJobPackageRequestClass(odataObject.UploadJobPackageRequests[i]);\n }\n } else {\n this.UploadJobPackageRequests[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataUploadParametersClass'] = DataUploadParametersClass;\n \n /**\n * DownloadSession entity class.\n */\n export class DownloadSessionClass implements Entities.DownloadSession {\n public Id: number;\n public JobId: string;\n public JobDescription: string;\n public FileSize: number;\n public RowsAffected: number;\n public Checksum: string;\n public DateDownloaded: string;\n public DateRequested: string;\n public DataStoreName: string;\n public StatusValue: number;\n public Message: string;\n public DownloadLink: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.JobId = \n odataObject.JobId;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.FileSize = \n (odataObject.FileSize != null) ? parseInt(odataObject.FileSize, 10) : undefined;\n \n this.RowsAffected = \n odataObject.RowsAffected;\n \n this.Checksum = \n odataObject.Checksum;\n \n this.DateDownloaded = \n odataObject.DateDownloaded;\n \n this.DateRequested = \n odataObject.DateRequested;\n \n this.DataStoreName = \n odataObject.DataStoreName;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Message = \n odataObject.Message;\n \n this.DownloadLink = \n odataObject.DownloadLink;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DownloadSessionClass'] = DownloadSessionClass;\n \n /**\n * OfflineTerminalState entity class.\n */\n export class OfflineTerminalStateClass implements Entities.OfflineTerminalState {\n public TerminalId: string;\n public State: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.State = \n odataObject.State;\n \n }\n }\n entityDictionary['OfflineTerminalStateClass'] = OfflineTerminalStateClass;\n \n /**\n * LoyaltyRewardPointActivity entity class.\n */\n export class LoyaltyRewardPointActivityClass implements Entities.LoyaltyRewardPointActivity {\n public ActivityDate: Date;\n public LoyaltyRewardPointTimelineEntryType: string;\n public ExtensibleLoyaltyRewardPointActivityEntryTypeValue: number;\n public LoyaltyPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActivityDate = \n (odataObject.ActivityDate instanceof Date) ? odataObject.ActivityDate\n : (odataObject.ActivityDate != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyRewardPointTimelineEntryType = \n odataObject.LoyaltyRewardPointTimelineEntryType;\n \n this.ExtensibleLoyaltyRewardPointActivityEntryTypeValue = \n odataObject.ExtensibleLoyaltyRewardPointActivityEntryTypeValue;\n \n this.LoyaltyPoints = \n (odataObject.LoyaltyPoints != null) ? parseFloat(odataObject.LoyaltyPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointActivityClass'] = LoyaltyRewardPointActivityClass;\n \n /**\n * CurrencyRequest entity class.\n */\n export class CurrencyRequestClass implements Entities.CurrencyRequest {\n public AmountToConvert: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AmountToConvert = \n (odataObject.AmountToConvert != null) ? parseFloat(odataObject.AmountToConvert) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyRequestClass'] = CurrencyRequestClass;\n \n /**\n * HardwareStationProfile entity class.\n */\n export class HardwareStationProfileClass implements Entities.HardwareStationProfile {\n public RecordId: number;\n public HardwareStationId: string;\n public HardwareStationTypeValue: number;\n public HardwareProfileId: string;\n public HardwareStationName: string;\n public HardwareStationDescription: string;\n public HardwareStationUrl: string;\n public HardwareStationHostName: string;\n public HardwareStationEftTerminalId: string;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationId = \n odataObject.HardwareStationId;\n \n this.HardwareStationTypeValue = \n odataObject.HardwareStationTypeValue;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.HardwareStationName = \n odataObject.HardwareStationName;\n \n this.HardwareStationDescription = \n odataObject.HardwareStationDescription;\n \n this.HardwareStationUrl = \n odataObject.HardwareStationUrl;\n \n this.HardwareStationHostName = \n odataObject.HardwareStationHostName;\n \n this.HardwareStationEftTerminalId = \n odataObject.HardwareStationEftTerminalId;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareStationProfileClass'] = HardwareStationProfileClass;\n \n /**\n * NameValuePair entity class.\n */\n export class NameValuePairClass implements Entities.NameValuePair {\n public Name: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['NameValuePairClass'] = NameValuePairClass;\n \n /**\n * LinkToExistingCustomerResult entity class.\n */\n export class LinkToExistingCustomerResultClass implements Entities.LinkToExistingCustomerResult {\n public EmailAddress: string;\n public ExternalIdentityProvider: string;\n public ExternalIdentityLinkRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.ExternalIdentityProvider = \n odataObject.ExternalIdentityProvider;\n \n this.ExternalIdentityLinkRecordId = \n (odataObject.ExternalIdentityLinkRecordId != null) ? parseInt(odataObject.ExternalIdentityLinkRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['LinkToExistingCustomerResultClass'] = LinkToExistingCustomerResultClass;\n \n /**\n * OfflineSyncStatsLine entity class.\n */\n export class OfflineSyncStatsLineClass implements Entities.OfflineSyncStatsLine {\n public IsUploadJob: boolean;\n public JobDescription: string;\n public LastSyncDateTime: Date;\n public Status: string;\n public FileSize: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsUploadJob = \n odataObject.IsUploadJob;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.LastSyncDateTime = \n (odataObject.LastSyncDateTime instanceof Date) ? odataObject.LastSyncDateTime\n : (odataObject.LastSyncDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSyncDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.FileSize = \n odataObject.FileSize;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OfflineSyncStatsLineClass'] = OfflineSyncStatsLineClass;\n \n /**\n * StorageAccessToken entity class.\n */\n export class StorageAccessTokenClass implements Entities.StorageAccessToken {\n public Url: string;\n public SasKey: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.SasKey = \n odataObject.SasKey;\n \n }\n }\n entityDictionary['StorageAccessTokenClass'] = StorageAccessTokenClass;\n \n /**\n * TaskGuidesSearchResult entity class.\n */\n export class TaskGuidesSearchResultClass implements Entities.TaskGuidesSearchResult {\n public Lines: Entities.Line[];\n public FrameworkPublisherName: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.FrameworkPublisherName = \n odataObject.FrameworkPublisherName;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['TaskGuidesSearchResultClass'] = TaskGuidesSearchResultClass;\n \n /**\n * AuditEvent entity class.\n */\n export class AuditEventClass implements Entities.AuditEvent {\n public EventId: number;\n public EventIdString: string;\n public Channel: number;\n public Store: string;\n public Terminal: string;\n public UploadType: string;\n public EventType: string;\n public EventDateTime: Date;\n public DurationInMilliseconds: number;\n public Source: string;\n public EventMessage: string;\n public LogLevel: string;\n public Staff: string;\n public ShiftId: number;\n public ClosedShiftId: number;\n public ReferenceId: number;\n public RefChannel: number;\n public RefStore: string;\n public RefTerminal: string;\n public RefTransactionId: string;\n public AuditEventTypeValue: number;\n public FiscalTransactions: Entities.AuditEventFiscalTransaction[];\n public FiscalRegistrationLines: Entities.AuditEventFiscalRegistrationLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.EventIdString = \n odataObject.EventIdString;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.EventType = \n odataObject.EventType;\n \n this.EventDateTime = \n (odataObject.EventDateTime instanceof Date) ? odataObject.EventDateTime\n : (odataObject.EventDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EventDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DurationInMilliseconds = \n odataObject.DurationInMilliseconds;\n \n this.Source = \n odataObject.Source;\n \n this.EventMessage = \n odataObject.EventMessage;\n \n this.LogLevel = \n odataObject.LogLevel;\n \n this.Staff = \n odataObject.Staff;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ClosedShiftId = \n (odataObject.ClosedShiftId != null) ? parseInt(odataObject.ClosedShiftId, 10) : undefined;\n \n this.ReferenceId = \n (odataObject.ReferenceId != null) ? parseInt(odataObject.ReferenceId, 10) : undefined;\n \n this.RefChannel = \n (odataObject.RefChannel != null) ? parseInt(odataObject.RefChannel, 10) : undefined;\n \n this.RefStore = \n odataObject.RefStore;\n \n this.RefTerminal = \n odataObject.RefTerminal;\n \n this.RefTransactionId = \n odataObject.RefTransactionId;\n \n this.AuditEventTypeValue = \n odataObject.AuditEventTypeValue;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new AuditEventFiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.FiscalRegistrationLines = undefined;\n if (odataObject.FiscalRegistrationLines) {\n this.FiscalRegistrationLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationLines.length; i++) {\n if (odataObject.FiscalRegistrationLines[i] != null) {\n if (odataObject.FiscalRegistrationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationLines[i])\n }\n } else {\n this.FiscalRegistrationLines[i] = new AuditEventFiscalRegistrationLineClass(odataObject.FiscalRegistrationLines[i]);\n }\n } else {\n this.FiscalRegistrationLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventClass'] = AuditEventClass;\n \n /**\n * ItemAvailability entity class.\n */\n export class ItemAvailabilityClass implements Entities.ItemAvailability {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public InventoryLocationId: string;\n public ProductId: number;\n public AvailableQuantity: number;\n public OrderedSum: number;\n public PhysicalReserved: number;\n public UnitOfMeasure: string;\n public InventoryUnitOfMeasure: string;\n public InventoryUnitOfMeasureDescription: string;\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.OrderedSum = \n (odataObject.OrderedSum != null) ? parseFloat(odataObject.OrderedSum) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.InventoryUnitOfMeasure = \n odataObject.InventoryUnitOfMeasure;\n \n this.InventoryUnitOfMeasureDescription = \n odataObject.InventoryUnitOfMeasureDescription;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemAvailabilityClass'] = ItemAvailabilityClass;\n \n /**\n * InventoryAvailableToPromise entity class.\n */\n export class InventoryAvailableToPromiseClass\n extends ItemAvailabilityClass\n implements Entities.InventoryAvailableToPromise {\n public Date: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Date = \n odataObject.Date;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InventoryAvailableToPromise\";\n \n }\n }\n entityDictionary['InventoryAvailableToPromiseClass'] = InventoryAvailableToPromiseClass;\n \n /**\n * NotificationItem entity class.\n */\n export class NotificationItemClass implements Entities.NotificationItem {\n public Action: number;\n public ActionName: string;\n public NotificationDetails: Entities.NotificationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionName = \n odataObject.ActionName;\n \n this.NotificationDetails = undefined;\n if (odataObject.NotificationDetails) {\n this.NotificationDetails = [];\n for (var i = 0; i < odataObject.NotificationDetails.length; i++) {\n if (odataObject.NotificationDetails[i] != null) {\n if (odataObject.NotificationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.NotificationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NotificationDetails[i] = new entityDictionary[className](odataObject.NotificationDetails[i])\n }\n } else {\n this.NotificationDetails[i] = new NotificationDetailClass(odataObject.NotificationDetails[i]);\n }\n } else {\n this.NotificationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationItemClass'] = NotificationItemClass;\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity class.\n */\n export class FiscalIntegrationDocumentRetrievalCriteriaClass implements Entities.FiscalIntegrationDocumentRetrievalCriteria {\n public TransactionId: string;\n public IsRemoteTransaction: boolean;\n public QueryBySalesId: boolean;\n public FiscalRegistrationEventTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public DocumentContext: Entities.FiscalIntegrationDocumentContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.DocumentContext == null) {\n this.DocumentContext = undefined;\n } else if (odataObject.DocumentContext['@odata.type'] == null) {\n this.DocumentContext = new FiscalIntegrationDocumentContextClass(odataObject.DocumentContext);\n } else {\n var className: string = odataObject.DocumentContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentContext = new entityDictionary[className](odataObject.DocumentContext)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentRetrievalCriteriaClass'] = FiscalIntegrationDocumentRetrievalCriteriaClass;\n \n /**\n * FiscalIntegrationDocument entity class.\n */\n export class FiscalIntegrationDocumentClass implements Entities.FiscalIntegrationDocument {\n public Document: string;\n public DocumentGenerationResultTypeValue: number;\n public FiscalConnectorTechnicalProfile: Entities.FiscalIntegrationTechnicalProfile;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public SequentialSignatureDataContext: Entities.FiscalIntegrationSignatureDataContext;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Document = \n odataObject.Document;\n \n this.DocumentGenerationResultTypeValue = \n odataObject.DocumentGenerationResultTypeValue;\n \n if (odataObject.FiscalConnectorTechnicalProfile == null) {\n this.FiscalConnectorTechnicalProfile = undefined;\n } else if (odataObject.FiscalConnectorTechnicalProfile['@odata.type'] == null) {\n this.FiscalConnectorTechnicalProfile = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalConnectorTechnicalProfile);\n } else {\n var className: string = odataObject.FiscalConnectorTechnicalProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalConnectorTechnicalProfile = new entityDictionary[className](odataObject.FiscalConnectorTechnicalProfile)\n }\n }\n\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n if (odataObject.SequentialSignatureDataContext == null) {\n this.SequentialSignatureDataContext = undefined;\n } else if (odataObject.SequentialSignatureDataContext['@odata.type'] == null) {\n this.SequentialSignatureDataContext = new FiscalIntegrationSignatureDataContextClass(odataObject.SequentialSignatureDataContext);\n } else {\n var className: string = odataObject.SequentialSignatureDataContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureDataContext = new entityDictionary[className](odataObject.SequentialSignatureDataContext)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentClass'] = FiscalIntegrationDocumentClass;\n \n /**\n * FiscalIntegrationRegistrationResult entity class.\n */\n export class FiscalIntegrationRegistrationResultClass implements Entities.FiscalIntegrationRegistrationResult {\n public TransactionID: string;\n public AuditEventId: string;\n public Response: string;\n public SubmittedDocument: string;\n public RegisterInfo: string;\n public RegistrationStatusValue: number;\n public FiscalRegistrationEventTypeValue: number;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public SequentialSignatureData: Entities.FiscalIntegrationSequentialSignatureData;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionID = \n odataObject.TransactionID;\n \n this.AuditEventId = \n odataObject.AuditEventId;\n \n this.Response = \n odataObject.Response;\n \n this.SubmittedDocument = \n odataObject.SubmittedDocument;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.SequentialSignatureData == null) {\n this.SequentialSignatureData = undefined;\n } else if (odataObject.SequentialSignatureData['@odata.type'] == null) {\n this.SequentialSignatureData = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SequentialSignatureData);\n } else {\n var className: string = odataObject.SequentialSignatureData['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureData = new entityDictionary[className](odataObject.SequentialSignatureData)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationResultClass'] = FiscalIntegrationRegistrationResultClass;\n \n /**\n * FiscalIntegrationRegistrationProcess entity class.\n */\n export class FiscalIntegrationRegistrationProcessClass implements Entities.FiscalIntegrationRegistrationProcess {\n public RecordId: number;\n public RegistrationProcessId: string;\n public Description: string;\n public ModeValue: number;\n public RegistrationProcessLines: Entities.FiscalIntegrationRegistrationProcessLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.Description = \n odataObject.Description;\n \n this.ModeValue = \n odataObject.ModeValue;\n \n this.RegistrationProcessLines = undefined;\n if (odataObject.RegistrationProcessLines) {\n this.RegistrationProcessLines = [];\n for (var i = 0; i < odataObject.RegistrationProcessLines.length; i++) {\n if (odataObject.RegistrationProcessLines[i] != null) {\n if (odataObject.RegistrationProcessLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RegistrationProcessLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLines[i] = new entityDictionary[className](odataObject.RegistrationProcessLines[i])\n }\n } else {\n this.RegistrationProcessLines[i] = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLines[i]);\n }\n } else {\n this.RegistrationProcessLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessClass'] = FiscalIntegrationRegistrationProcessClass;\n \n /**\n * FiscalIntegrationSupportedEvents entity class.\n */\n export class FiscalIntegrationSupportedEventsClass implements Entities.FiscalIntegrationSupportedEvents {\n public FunctionalityProfileGroupId: string;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSupportedEventsClass'] = FiscalIntegrationSupportedEventsClass;\n \n /**\n * FiscalIntegrationTechnicalProfile entity class.\n */\n export class FiscalIntegrationTechnicalProfileClass implements Entities.FiscalIntegrationTechnicalProfile {\n public ProfileId: string;\n public Description: string;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public TechnicalProfile: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.Description = \n odataObject.Description;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.TechnicalProfile = \n odataObject.TechnicalProfile;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileClass'] = FiscalIntegrationTechnicalProfileClass;\n \n /**\n * 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 * PriceLine entity class.\n */\n export class PriceLineClass implements Entities.PriceLine {\n public RecordId: number;\n public Value: number;\n public PriceMethod: string;\n public OriginId: string;\n public PriceChangedByExtensions: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.PriceMethod = \n odataObject.PriceMethod;\n \n this.OriginId = \n odataObject.OriginId;\n \n this.PriceChangedByExtensions = \n odataObject.PriceChangedByExtensions;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PriceLineClass'] = PriceLineClass;\n \n /**\n * TradeAgreementPriceLine entity class.\n */\n export class TradeAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.TradeAgreementPriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['TradeAgreementPriceLineClass'] = TradeAgreementPriceLineClass;\n \n /**\n * AttributePricingTradeAgreementPriceLine entity class.\n */\n export class AttributePricingTradeAgreementPriceLineClass\n extends TradeAgreementPriceLineClass\n implements Entities.AttributePricingTradeAgreementPriceLine {\n public CanApplyPriceAdjustments: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanApplyPriceAdjustments = \n odataObject.CanApplyPriceAdjustments;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingTradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingTradeAgreementPriceLineClass'] = AttributePricingTradeAgreementPriceLineClass;\n \n /**\n * SalesAgreementPriceLine entity class.\n */\n export class SalesAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.SalesAgreementPriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object 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.SalesAgreementPriceLine\";\n \n }\n }\n entityDictionary['SalesAgreementPriceLineClass'] = SalesAgreementPriceLineClass;\n \n /**\n * PriceAdjustmentPriceLine entity class.\n */\n export class PriceAdjustmentPriceLineClass\n extends PriceLineClass\n implements Entities.PriceAdjustmentPriceLine {\n public IsCompoundable: boolean;\n public Concurrency: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.Concurrency = \n odataObject.Concurrency;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PriceAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['PriceAdjustmentPriceLineClass'] = PriceAdjustmentPriceLineClass;\n \n /**\n * AttributePricingAdjustmentPriceLine entity class.\n */\n export class AttributePricingAdjustmentPriceLineClass\n extends PriceAdjustmentPriceLineClass\n implements Entities.AttributePricingAdjustmentPriceLine {\n public CanCompoundOnAdjustedPrice: boolean;\n public PricingPriorityNumber: number;\n public AdjustedAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanCompoundOnAdjustedPrice = \n odataObject.CanCompoundOnAdjustedPrice;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.AdjustedAmount = \n (odataObject.AdjustedAmount != null) ? parseFloat(odataObject.AdjustedAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingAdjustmentPriceLineClass'] = AttributePricingAdjustmentPriceLineClass;\n \n /**\n * BasePriceLine entity class.\n */\n export class BasePriceLineClass\n extends PriceLineClass\n implements Entities.BasePriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.BasePriceLine\";\n \n }\n }\n entityDictionary['BasePriceLineClass'] = BasePriceLineClass;\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity class.\n */\n export class ExtensiblePeriodicDiscountOfferTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensiblePeriodicDiscountOfferType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensiblePeriodicDiscountOfferType\";\n \n }\n }\n entityDictionary['ExtensiblePeriodicDiscountOfferTypeClass'] = ExtensiblePeriodicDiscountOfferTypeClass;\n \n /**\n * ChargeLineOverride entity class.\n */\n export class ChargeLineOverrideClass implements Entities.ChargeLineOverride {\n public OriginalAmount: number;\n public OverrideAmount: number;\n public OverrideReasonDescription: string;\n public OverrideDateTime: Date;\n public UserId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalAmount = \n (odataObject.OriginalAmount != null) ? parseFloat(odataObject.OriginalAmount) : undefined;\n \n this.OverrideAmount = \n (odataObject.OverrideAmount != null) ? parseFloat(odataObject.OverrideAmount) : undefined;\n \n this.OverrideReasonDescription = \n odataObject.OverrideReasonDescription;\n \n this.OverrideDateTime = \n (odataObject.OverrideDateTime instanceof Date) ? odataObject.OverrideDateTime\n : (odataObject.OverrideDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OverrideDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.UserId = \n odataObject.UserId;\n \n }\n }\n entityDictionary['ChargeLineOverrideClass'] = ChargeLineOverrideClass;\n \n /**\n * TaxLineGTE entity class.\n */\n export class TaxLineGTEClass\n extends TaxLineClass\n implements Entities.TaxLineGTE {\n public TaxComponent: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaxComponent = \n odataObject.TaxComponent;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaxLineGTE\";\n \n }\n }\n entityDictionary['TaxLineGTEClass'] = TaxLineGTEClass;\n \n /**\n * TaxMeasure entity class.\n */\n export class TaxMeasureClass implements Entities.TaxMeasure {\n public Path: string;\n public Value: number;\n public DataAreaId: string;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Path = \n odataObject.Path;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxMeasureClass'] = TaxMeasureClass;\n \n /**\n * DetailedLineStatus entity class.\n */\n export class DetailedLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedLineStatus\";\n \n }\n }\n entityDictionary['DetailedLineStatusClass'] = DetailedLineStatusClass;\n \n /**\n * CardTokenInfo entity class.\n */\n export class CardTokenInfoClass implements Entities.CardTokenInfo {\n public CardToken: string;\n public UniqueCardId: string;\n public ServiceAccountId: string;\n public MaskedCardNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardToken = \n odataObject.CardToken;\n \n this.UniqueCardId = \n odataObject.UniqueCardId;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n }\n }\n entityDictionary['CardTokenInfoClass'] = CardTokenInfoClass;\n \n /**\n * DataverseTenderLine entity class.\n */\n export class DataverseTenderLineClass\n extends TenderLineClass\n implements Entities.DataverseTenderLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DataverseTenderLine\";\n \n }\n }\n entityDictionary['DataverseTenderLineClass'] = DataverseTenderLineClass;\n \n /**\n * PaymentError entity class.\n */\n export class PaymentErrorClass implements Entities.PaymentError {\n public Code: string;\n public Message: string;\n public IsLocalized: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.Message = \n odataObject.Message;\n \n this.IsLocalized = \n odataObject.IsLocalized;\n \n }\n }\n entityDictionary['PaymentErrorClass'] = PaymentErrorClass;\n \n /**\n * ProductAttributeMetadataFlags entity class.\n */\n export class ProductAttributeMetadataFlagsClass implements Entities.ProductAttributeMetadataFlags {\n public IsSearchable: boolean;\n public IsRetrievable: boolean;\n public IsQueryable: boolean;\n public IsRefinable: boolean;\n public IsSortable: boolean;\n public IsMultiValue: boolean;\n public IsTokenNormalization: boolean;\n public IsCompleteMatch: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSearchable = \n odataObject.IsSearchable;\n \n this.IsRetrievable = \n odataObject.IsRetrievable;\n \n this.IsQueryable = \n odataObject.IsQueryable;\n \n this.IsRefinable = \n odataObject.IsRefinable;\n \n this.IsSortable = \n odataObject.IsSortable;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsTokenNormalization = \n odataObject.IsTokenNormalization;\n \n this.IsCompleteMatch = \n odataObject.IsCompleteMatch;\n \n }\n }\n entityDictionary['ProductAttributeMetadataFlagsClass'] = ProductAttributeMetadataFlagsClass;\n \n /**\n * UnitOfMeasureConversion entity class.\n */\n export class UnitOfMeasureConversionClass implements Entities.UnitOfMeasureConversion {\n public ItemId: string;\n public FromUnitOfMeasureId: string;\n public ToUnitOfMeasureId: string;\n public FromUnitOfMeasureSymbol: string;\n public ToUnitOfMeasureSymbol: string;\n public IsBackward: boolean;\n public RecordId: number;\n public ProductRecordId: number;\n public Factor: number;\n public Numerator: number;\n public Denominator: number;\n public InnerOffset: number;\n public OuterOffset: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.FromUnitOfMeasureId = \n odataObject.FromUnitOfMeasureId;\n \n this.ToUnitOfMeasureId = \n odataObject.ToUnitOfMeasureId;\n \n this.FromUnitOfMeasureSymbol = \n odataObject.FromUnitOfMeasureSymbol;\n \n this.ToUnitOfMeasureSymbol = \n odataObject.ToUnitOfMeasureSymbol;\n \n this.IsBackward = \n odataObject.IsBackward;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.Factor = \n (odataObject.Factor != null) ? parseFloat(odataObject.Factor) : undefined;\n \n this.Numerator = \n odataObject.Numerator;\n \n this.Denominator = \n odataObject.Denominator;\n \n this.InnerOffset = \n (odataObject.InnerOffset != null) ? parseFloat(odataObject.InnerOffset) : undefined;\n \n this.OuterOffset = \n (odataObject.OuterOffset != null) ? parseFloat(odataObject.OuterOffset) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureConversionClass'] = UnitOfMeasureConversionClass;\n \n /**\n * ReturnLabelContent entity class.\n */\n export class ReturnLabelContentClass implements Entities.ReturnLabelContent {\n public ReturnLocationText: string;\n public ReturnWarehouseText: string;\n public ReturnReasonText: string;\n public ReturnPalleteText: string;\n public ItemId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnLocationText = \n odataObject.ReturnLocationText;\n \n this.ReturnWarehouseText = \n odataObject.ReturnWarehouseText;\n \n this.ReturnReasonText = \n odataObject.ReturnReasonText;\n \n this.ReturnPalleteText = \n odataObject.ReturnPalleteText;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnLabelContentClass'] = ReturnLabelContentClass;\n \n /**\n * LoyaltyRewardPointLine entity class.\n */\n export class LoyaltyRewardPointLineClass implements Entities.LoyaltyRewardPointLine {\n public TransactionId: string;\n public SaleLineNumber: number;\n public LoyaltyGroupRecordId: number;\n public LoyaltyCardNumber: string;\n public CustomerAccount: string;\n public EntryDate: Date;\n public EntryTime: number;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public LineNumber: number;\n public LoyaltyTierRecordId: number;\n public RewardPointRecordId: number;\n public RewardPointAmountQuantity: number;\n public RewardPointId: string;\n public RewardPointIsRedeemable: boolean;\n public RewardPointType: string;\n public RewardPointCurrency: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.LoyaltyGroupRecordId = \n (odataObject.LoyaltyGroupRecordId != null) ? parseInt(odataObject.LoyaltyGroupRecordId, 10) : undefined;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.EntryDate = \n (odataObject.EntryDate instanceof Date) ? odataObject.EntryDate\n : (odataObject.EntryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTime = \n odataObject.EntryTime;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.RewardPointRecordId = \n (odataObject.RewardPointRecordId != null) ? parseInt(odataObject.RewardPointRecordId, 10) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.RewardPointIsRedeemable = \n odataObject.RewardPointIsRedeemable;\n \n this.RewardPointType = \n odataObject.RewardPointType;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointLineClass'] = LoyaltyRewardPointLineClass;\n \n /**\n * TrackingInfo entity class.\n */\n export class TrackingInfoClass implements Entities.TrackingInfo {\n public TrackingNumber: string;\n public ServiceType: string;\n public PackageWeight: Entities.Weight;\n public ShippedOnDate: Date;\n public Status: string;\n public DeliveredOnDate: Date;\n public EstimatedDeliveryDate: Date;\n public TrackingUrl: string;\n public PackagingType: string;\n public DestinationAddress: Entities.Address;\n public OriginAddress: Entities.Address;\n public ShipmentProgress: Entities.ShipmentProgress[];\n public ShippingCharge: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.ServiceType = \n odataObject.ServiceType;\n \n if (odataObject.PackageWeight == null) {\n this.PackageWeight = undefined;\n } else if (odataObject.PackageWeight['@odata.type'] == null) {\n this.PackageWeight = new WeightClass(odataObject.PackageWeight);\n } else {\n var className: string = odataObject.PackageWeight['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PackageWeight = new entityDictionary[className](odataObject.PackageWeight)\n }\n }\n\n \n this.ShippedOnDate = \n (odataObject.ShippedOnDate instanceof Date) ? odataObject.ShippedOnDate\n : (odataObject.ShippedOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShippedOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.DeliveredOnDate = \n (odataObject.DeliveredOnDate instanceof Date) ? odataObject.DeliveredOnDate\n : (odataObject.DeliveredOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveredOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EstimatedDeliveryDate = \n (odataObject.EstimatedDeliveryDate instanceof Date) ? odataObject.EstimatedDeliveryDate\n : (odataObject.EstimatedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EstimatedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n this.PackagingType = \n odataObject.PackagingType;\n \n if (odataObject.DestinationAddress == null) {\n this.DestinationAddress = undefined;\n } else if (odataObject.DestinationAddress['@odata.type'] == null) {\n this.DestinationAddress = new AddressClass(odataObject.DestinationAddress);\n } else {\n var className: string = odataObject.DestinationAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationAddress = new entityDictionary[className](odataObject.DestinationAddress)\n }\n }\n\n \n if (odataObject.OriginAddress == null) {\n this.OriginAddress = undefined;\n } else if (odataObject.OriginAddress['@odata.type'] == null) {\n this.OriginAddress = new AddressClass(odataObject.OriginAddress);\n } else {\n var className: string = odataObject.OriginAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OriginAddress = new entityDictionary[className](odataObject.OriginAddress)\n }\n }\n\n \n this.ShipmentProgress = undefined;\n if (odataObject.ShipmentProgress) {\n this.ShipmentProgress = [];\n for (var i = 0; i < odataObject.ShipmentProgress.length; i++) {\n if (odataObject.ShipmentProgress[i] != null) {\n if (odataObject.ShipmentProgress[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentProgress[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentProgress[i] = new entityDictionary[className](odataObject.ShipmentProgress[i])\n }\n } else {\n this.ShipmentProgress[i] = new ShipmentProgressClass(odataObject.ShipmentProgress[i]);\n }\n } else {\n this.ShipmentProgress[i] = undefined;\n }\n }\n }\n \n this.ShippingCharge = \n (odataObject.ShippingCharge != null) ? parseFloat(odataObject.ShippingCharge) : undefined;\n \n }\n }\n entityDictionary['TrackingInfoClass'] = TrackingInfoClass;\n \n /**\n * Weight entity class.\n */\n export class WeightClass implements Entities.Weight {\n public Value: number;\n public Unit: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n }\n }\n entityDictionary['WeightClass'] = WeightClass;\n \n /**\n * ShipmentProgress entity class.\n */\n export class ShipmentProgressClass implements Entities.ShipmentProgress {\n public Location: Entities.Address;\n public DateTime: Date;\n public Activity: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Location == null) {\n this.Location = undefined;\n } else if (odataObject.Location['@odata.type'] == null) {\n this.Location = new AddressClass(odataObject.Location);\n } else {\n var className: string = odataObject.Location['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Location = new entityDictionary[className](odataObject.Location)\n }\n }\n\n \n this.DateTime = \n (odataObject.DateTime instanceof Date) ? odataObject.DateTime\n : (odataObject.DateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Activity = \n odataObject.Activity;\n \n }\n }\n entityDictionary['ShipmentProgressClass'] = ShipmentProgressClass;\n \n /**\n * ShiftKey entity class.\n */\n export class ShiftKeyClass implements Entities.ShiftKey {\n public ShiftTerminalId: string;\n public ShiftId: number;\n public Store: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftKeyClass'] = ShiftKeyClass;\n \n /**\n * LocalizedText entity class.\n */\n export class LocalizedTextClass implements Entities.LocalizedText {\n public RecordId: number;\n public LanguageId: string;\n public TextId: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedTextClass'] = LocalizedTextClass;\n \n /**\n * AddressFormattingInfo entity class.\n */\n export class AddressFormattingInfoClass implements Entities.AddressFormattingInfo {\n public AddressComponentNameValue: number;\n public LineNumber: number;\n public IsDataEntryOnly: boolean;\n public NewLine: boolean;\n public Expand: boolean;\n public Inactive: boolean;\n public Special: boolean;\n public NumberOfSpaces: number;\n public Separator: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressComponentNameValue = \n odataObject.AddressComponentNameValue;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.IsDataEntryOnly = \n odataObject.IsDataEntryOnly;\n \n this.NewLine = \n odataObject.NewLine;\n \n this.Expand = \n odataObject.Expand;\n \n this.Inactive = \n odataObject.Inactive;\n \n this.Special = \n odataObject.Special;\n \n this.NumberOfSpaces = \n odataObject.NumberOfSpaces;\n \n this.Separator = \n odataObject.Separator;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressFormattingInfoClass'] = AddressFormattingInfoClass;\n \n /**\n * HardwareConfigurations entity class.\n */\n export class HardwareConfigurationsClass implements Entities.HardwareConfigurations {\n public CashDrawerConfigurations: Entities.HardwareConfiguration[];\n public PrinterConfigurations: Entities.HardwareConfiguration[];\n public PinPadConfiguration: Entities.HardwareConfiguration;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashDrawerConfigurations = undefined;\n if (odataObject.CashDrawerConfigurations) {\n this.CashDrawerConfigurations = [];\n for (var i = 0; i < odataObject.CashDrawerConfigurations.length; i++) {\n if (odataObject.CashDrawerConfigurations[i] != null) {\n if (odataObject.CashDrawerConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawerConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawerConfigurations[i] = new entityDictionary[className](odataObject.CashDrawerConfigurations[i])\n }\n } else {\n this.CashDrawerConfigurations[i] = new HardwareConfigurationClass(odataObject.CashDrawerConfigurations[i]);\n }\n } else {\n this.CashDrawerConfigurations[i] = undefined;\n }\n }\n }\n \n this.PrinterConfigurations = undefined;\n if (odataObject.PrinterConfigurations) {\n this.PrinterConfigurations = [];\n for (var i = 0; i < odataObject.PrinterConfigurations.length; i++) {\n if (odataObject.PrinterConfigurations[i] != null) {\n if (odataObject.PrinterConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.PrinterConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PrinterConfigurations[i] = new entityDictionary[className](odataObject.PrinterConfigurations[i])\n }\n } else {\n this.PrinterConfigurations[i] = new HardwareConfigurationClass(odataObject.PrinterConfigurations[i]);\n }\n } else {\n this.PrinterConfigurations[i] = undefined;\n }\n }\n }\n \n if (odataObject.PinPadConfiguration == null) {\n this.PinPadConfiguration = undefined;\n } else if (odataObject.PinPadConfiguration['@odata.type'] == null) {\n this.PinPadConfiguration = new HardwareConfigurationClass(odataObject.PinPadConfiguration);\n } else {\n var className: string = odataObject.PinPadConfiguration['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PinPadConfiguration = new entityDictionary[className](odataObject.PinPadConfiguration)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationsClass'] = HardwareConfigurationsClass;\n \n /**\n * HardwareConfiguration entity class.\n */\n export class HardwareConfigurationClass implements Entities.HardwareConfiguration {\n public RecordId: number;\n public HardwareStationRecordId: number;\n public TerminalId: string;\n public DeviceName: string;\n public IPAddress: string;\n public Port: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationRecordId = \n (odataObject.HardwareStationRecordId != null) ? parseInt(odataObject.HardwareStationRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.IPAddress = \n odataObject.IPAddress;\n \n this.Port = \n odataObject.Port;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationClass'] = HardwareConfigurationClass;\n \n /**\n * Printer entity class.\n */\n export class PrinterClass implements Entities.Printer {\n public Name: string;\n public PrinterType: number;\n public Terminal: number;\n public PrintBehaviorValue: number;\n public ReceiptLayoutId: string;\n public HardwareProfileId: string;\n public ReceiptType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.PrinterType = \n odataObject.PrinterType;\n \n this.Terminal = \n (odataObject.Terminal != null) ? parseInt(odataObject.Terminal, 10) : undefined;\n \n this.PrintBehaviorValue = \n odataObject.PrintBehaviorValue;\n \n this.ReceiptLayoutId = \n odataObject.ReceiptLayoutId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.ReceiptType = \n odataObject.ReceiptType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PrinterClass'] = PrinterClass;\n \n /**\n * CustomerRefinerValue entity class.\n */\n export class CustomerRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.CustomerRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefinerValue\";\n \n }\n }\n entityDictionary['CustomerRefinerValueClass'] = CustomerRefinerValueClass;\n \n /**\n * TransferOrderJournalLine entity class.\n */\n export class TransferOrderJournalLineClass implements Entities.TransferOrderJournalLine {\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public TotalQuantityShipped: number;\n public QuantityShipped: number;\n public TransferQuantity: number;\n public UnitId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public DeliveryMethod: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.TransferQuantity = \n (odataObject.TransferQuantity != null) ? parseFloat(odataObject.TransferQuantity) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalLineClass'] = TransferOrderJournalLineClass;\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity class.\n */\n export class InventoryDocumentSourceSerialNumberLineClass implements Entities.InventoryDocumentSourceSerialNumberLine {\n public SourceDocumentTypeValue: number;\n public SourceDocumentId: string;\n public DocumentLineRecordId: number;\n public InventTransRecordId: number;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.DocumentLineRecordId = \n (odataObject.DocumentLineRecordId != null) ? parseInt(odataObject.DocumentLineRecordId, 10) : undefined;\n \n this.InventTransRecordId = \n (odataObject.InventTransRecordId != null) ? parseInt(odataObject.InventTransRecordId, 10) : undefined;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceSerialNumberLineClass'] = InventoryDocumentSourceSerialNumberLineClass;\n \n /**\n * KitTransactionLine entity class.\n */\n export class KitTransactionLineClass implements Entities.KitTransactionLine {\n public ItemId: string;\n public Quantity: number;\n public InventoryDimensionId: string;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitTransactionLineClass'] = KitTransactionLineClass;\n \n /**\n * StoreAddressBook entity class.\n */\n export class StoreAddressBookClass implements Entities.StoreAddressBook {\n public AddressBookId: number;\n public StoreId: number;\n public AddressBookTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressBookId = \n (odataObject.AddressBookId != null) ? parseInt(odataObject.AddressBookId, 10) : undefined;\n \n this.StoreId = \n (odataObject.StoreId != null) ? parseInt(odataObject.StoreId, 10) : undefined;\n \n this.AddressBookTypeValue = \n odataObject.AddressBookTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreAddressBookClass'] = StoreAddressBookClass;\n \n /**\n * TenderDetail entity class.\n */\n export class TenderDetailClass implements Entities.TenderDetail {\n public LineNumber: number;\n public Amount: number;\n public AmountInForeignCurrency: number;\n public ForeignCurrencyExchangeRate: number;\n public ForeignCurrency: string;\n public BankBagNumber: string;\n public TenderTypeId: string;\n public TenderRecount: number;\n public DenominationDetails: Entities.DenominationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountInForeignCurrency = \n (odataObject.AmountInForeignCurrency != null) ? parseFloat(odataObject.AmountInForeignCurrency) : undefined;\n \n this.ForeignCurrencyExchangeRate = \n (odataObject.ForeignCurrencyExchangeRate != null) ? parseFloat(odataObject.ForeignCurrencyExchangeRate) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.BankBagNumber = \n odataObject.BankBagNumber;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderRecount = \n odataObject.TenderRecount;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDetailClass'] = TenderDetailClass;\n \n /**\n * DenominationDetail entity class.\n */\n export class DenominationDetailClass implements Entities.DenominationDetail {\n public Type: number;\n public Currency: string;\n public DenominationAmount: number;\n public QuantityDeclared: number;\n public AmountDeclared: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Type = \n odataObject.Type;\n \n this.Currency = \n odataObject.Currency;\n \n this.DenominationAmount = \n (odataObject.DenominationAmount != null) ? parseFloat(odataObject.DenominationAmount) : undefined;\n \n this.QuantityDeclared = \n odataObject.QuantityDeclared;\n \n this.AmountDeclared = \n (odataObject.AmountDeclared != null) ? parseFloat(odataObject.AmountDeclared) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DenominationDetailClass'] = DenominationDetailClass;\n \n /**\n * ButtonGridZone entity class.\n */\n export class ButtonGridZoneClass implements Entities.ButtonGridZone {\n public ButtonGridId: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridId = \n odataObject.ButtonGridId;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridZoneClass'] = ButtonGridZoneClass;\n \n /**\n * ImageZone entity class.\n */\n export class ImageZoneClass implements Entities.ImageZone {\n public PictureId: number;\n public PictureAsBase64: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ImageZoneClass'] = ImageZoneClass;\n \n /**\n * ReportZone entity class.\n */\n export class ReportZoneClass implements Entities.ReportZone {\n public ReportRecordId: number;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportRecordId = \n (odataObject.ReportRecordId != null) ? parseInt(odataObject.ReportRecordId, 10) : undefined;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportZoneClass'] = ReportZoneClass;\n \n /**\n * SalesInvoiceLine entity class.\n */\n export class SalesInvoiceLineClass implements Entities.SalesInvoiceLine {\n public RecordId: number;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public InventDimensionId: string;\n public InventTransactionId: string;\n public Quantity: number;\n public Price: number;\n public DiscountPercent: number;\n public DiscountAmount: number;\n public BatchId: string;\n public NetAmount: number;\n public Site: string;\n public Warehouse: string;\n public SerialId: string;\n public ColorId: string;\n public SizeId: string;\n public StyleId: string;\n public ConfigId: string;\n public ColorName: string;\n public SizeName: string;\n public StyleName: string;\n public ConfigName: string;\n public SalesTaxGroup: string;\n public ItemTaxGroup: string;\n public SalesMarkup: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public PeriodicPercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.InventTransactionId = \n odataObject.InventTransactionId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.Site = \n odataObject.Site;\n \n this.Warehouse = \n odataObject.Warehouse;\n \n this.SerialId = \n odataObject.SerialId;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.ColorName = \n odataObject.ColorName;\n \n this.SizeName = \n odataObject.SizeName;\n \n this.StyleName = \n odataObject.StyleName;\n \n this.ConfigName = \n odataObject.ConfigName;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.ItemTaxGroup = \n odataObject.ItemTaxGroup;\n \n this.SalesMarkup = \n (odataObject.SalesMarkup != null) ? parseFloat(odataObject.SalesMarkup) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceLineClass'] = SalesInvoiceLineClass;\n \n /**\n * ReportRow entity class.\n */\n export class ReportRowClass implements Entities.ReportRow {\n public RowData: Entities.CommerceProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RowData = undefined;\n if (odataObject.RowData) {\n this.RowData = [];\n for (var i = 0; i < odataObject.RowData.length; i++) {\n if (odataObject.RowData[i] != null) {\n if (odataObject.RowData[i]['@odata.type'] != null) {\n var className: string = odataObject.RowData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RowData[i] = new entityDictionary[className](odataObject.RowData[i])\n }\n } else {\n this.RowData[i] = new CommercePropertyClass(odataObject.RowData[i]);\n }\n } else {\n this.RowData[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportRowClass'] = ReportRowClass;\n \n /**\n * FormAnnotation entity class.\n */\n export class FormAnnotationClass\n extends AnnotationClass\n implements Entities.FormAnnotation {\n public MenuItemLabel: string;\n public MenuItemName: string;\n public MenuItemType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemLabel = \n odataObject.MenuItemLabel;\n \n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormAnnotation\";\n \n }\n }\n entityDictionary['FormAnnotationClass'] = FormAnnotationClass;\n \n /**\n * TaskGuideAnnotation entity class.\n */\n export class TaskGuideAnnotationClass\n extends AnnotationClass\n implements Entities.TaskGuideAnnotation {\n public RecordingValueType: string;\n public Title: string;\n public ExampleText: string;\n public Hidden: boolean;\n public GlobalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RecordingValueType = \n odataObject.RecordingValueType;\n \n this.Title = \n odataObject.Title;\n \n this.ExampleText = \n odataObject.ExampleText;\n \n this.Hidden = \n odataObject.Hidden;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskGuideAnnotation\";\n \n }\n }\n entityDictionary['TaskGuideAnnotationClass'] = TaskGuideAnnotationClass;\n \n /**\n * CommandArgument entity class.\n */\n export class CommandArgumentClass implements Entities.CommandArgument {\n public Value: string;\n public IsReference: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.IsReference = \n odataObject.IsReference;\n \n }\n }\n entityDictionary['CommandArgumentClass'] = CommandArgumentClass;\n \n /**\n * PropertyUserAction entity class.\n */\n export class PropertyUserActionClass\n extends FormUserActionClass\n implements Entities.PropertyUserAction {\n public Value: string;\n public ValueLabel: string;\n public PropertyName: string;\n public ControlName: string;\n public ControlType: string;\n public UserActionType: string;\n public IsReference: boolean;\n public LabelId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ValueLabel = \n odataObject.ValueLabel;\n \n this.PropertyName = \n odataObject.PropertyName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.UserActionType = \n odataObject.UserActionType;\n \n this.IsReference = \n odataObject.IsReference;\n \n this.LabelId = \n odataObject.LabelId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PropertyUserAction\";\n \n }\n }\n entityDictionary['PropertyUserActionClass'] = PropertyUserActionClass;\n \n /**\n * InfoUserAction entity class.\n */\n export class InfoUserActionClass\n extends UserActionClass\n implements Entities.InfoUserAction {\n public FormId: string;\n public ControlLabel: string;\n public ControlLabelId: string;\n public ControlName: string;\n public Text: string;\n public Notes: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this.ControlLabelId = \n odataObject.ControlLabelId;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.Text = \n odataObject.Text;\n \n this.Notes = \n odataObject.Notes;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InfoUserAction\";\n \n }\n }\n entityDictionary['InfoUserActionClass'] = InfoUserActionClass;\n \n /**\n * MenuItemUserAction entity class.\n */\n export class MenuItemUserActionClass\n extends UserActionClass\n implements Entities.MenuItemUserAction {\n public MenuItemName: string;\n public MenuItemType: string;\n public NavigationPath: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this.NavigationPath = undefined;\n if (odataObject.NavigationPath) {\n this.NavigationPath = [];\n for (var i = 0; i < odataObject.NavigationPath.length; i++) {\n if (odataObject.NavigationPath[i] != null) {\n this.NavigationPath[i] = \n odataObject.NavigationPath[i];\n } else {\n this.NavigationPath[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.MenuItemUserAction\";\n \n }\n }\n entityDictionary['MenuItemUserActionClass'] = MenuItemUserActionClass;\n \n /**\n * ValidationUserAction entity class.\n */\n export class ValidationUserActionClass\n extends UserActionClass\n implements Entities.ValidationUserAction {\n public Name: string;\n public Comment: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ValidationUserAction\";\n \n }\n }\n entityDictionary['ValidationUserActionClass'] = ValidationUserActionClass;\n \n /**\n * ArtifactSummary entity class.\n */\n export class ArtifactSummaryClass implements Entities.ArtifactSummary {\n public ArtifactType: string;\n public LanguageTags: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ArtifactType = \n odataObject.ArtifactType;\n \n this.LanguageTags = undefined;\n if (odataObject.LanguageTags) {\n this.LanguageTags = [];\n for (var i = 0; i < odataObject.LanguageTags.length; i++) {\n if (odataObject.LanguageTags[i] != null) {\n this.LanguageTags[i] = \n odataObject.LanguageTags[i];\n } else {\n this.LanguageTags[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ArtifactSummaryClass'] = ArtifactSummaryClass;\n \n /**\n * MetadataPropertyValue entity class.\n */\n export class MetadataPropertyValueClass implements Entities.MetadataPropertyValue {\n public PropertyId: string;\n public SingleValue: string;\n public MultiValue: Entities.MetadataText[];\n public Tags: string[];\n public ComboBox: string;\n public MultiSelect: string[];\n public Links: Entities.MetadataHypertextLink[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PropertyId = \n odataObject.PropertyId;\n \n this.SingleValue = \n odataObject.SingleValue;\n \n this.MultiValue = undefined;\n if (odataObject.MultiValue) {\n this.MultiValue = [];\n for (var i = 0; i < odataObject.MultiValue.length; i++) {\n if (odataObject.MultiValue[i] != null) {\n if (odataObject.MultiValue[i]['@odata.type'] != null) {\n var className: string = odataObject.MultiValue[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MultiValue[i] = new entityDictionary[className](odataObject.MultiValue[i])\n }\n } else {\n this.MultiValue[i] = new MetadataTextClass(odataObject.MultiValue[i]);\n }\n } else {\n this.MultiValue[i] = undefined;\n }\n }\n }\n \n this.Tags = undefined;\n if (odataObject.Tags) {\n this.Tags = [];\n for (var i = 0; i < odataObject.Tags.length; i++) {\n if (odataObject.Tags[i] != null) {\n this.Tags[i] = \n odataObject.Tags[i];\n } else {\n this.Tags[i] = undefined;\n }\n }\n }\n \n this.ComboBox = \n odataObject.ComboBox;\n \n this.MultiSelect = undefined;\n if (odataObject.MultiSelect) {\n this.MultiSelect = [];\n for (var i = 0; i < odataObject.MultiSelect.length; i++) {\n if (odataObject.MultiSelect[i] != null) {\n this.MultiSelect[i] = \n odataObject.MultiSelect[i];\n } else {\n this.MultiSelect[i] = undefined;\n }\n }\n }\n \n this.Links = undefined;\n if (odataObject.Links) {\n this.Links = [];\n for (var i = 0; i < odataObject.Links.length; i++) {\n if (odataObject.Links[i] != null) {\n if (odataObject.Links[i]['@odata.type'] != null) {\n var className: string = odataObject.Links[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Links[i] = new entityDictionary[className](odataObject.Links[i])\n }\n } else {\n this.Links[i] = new MetadataHypertextLinkClass(odataObject.Links[i]);\n }\n } else {\n this.Links[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MetadataPropertyValueClass'] = MetadataPropertyValueClass;\n \n /**\n * FormContext entity class.\n */\n export class FormContextClass implements Entities.FormContext {\n public FormID: string;\n public FormName: string;\n public RecordingName: string;\n public HasMetadata: boolean;\n public Sequence: number;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormID = \n odataObject.FormID;\n \n this.FormName = \n odataObject.FormName;\n \n this.RecordingName = \n odataObject.RecordingName;\n \n this.HasMetadata = \n odataObject.HasMetadata;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FormContextClass'] = FormContextClass;\n \n /**\n * ExtensibleFiscalRegistrationType entity class.\n */\n export class ExtensibleFiscalRegistrationTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleFiscalRegistrationType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleFiscalRegistrationType\";\n \n }\n }\n entityDictionary['ExtensibleFiscalRegistrationTypeClass'] = ExtensibleFiscalRegistrationTypeClass;\n \n /**\n * FiscalTransactionTenderLineAdjustment entity class.\n */\n export class FiscalTransactionTenderLineAdjustmentClass implements Entities.FiscalTransactionTenderLineAdjustment {\n public TenderLineNumber: number;\n public AdjustmentAmount: number;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineNumber = \n (odataObject.TenderLineNumber != null) ? parseFloat(odataObject.TenderLineNumber) : undefined;\n \n this.AdjustmentAmount = \n (odataObject.AdjustmentAmount != null) ? parseFloat(odataObject.AdjustmentAmount) : undefined;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionTenderLineAdjustmentClass'] = FiscalTransactionTenderLineAdjustmentClass;\n \n /**\n * FiscalTransactionSalesLineAdjustment entity class.\n */\n export class FiscalTransactionSalesLineAdjustmentClass implements Entities.FiscalTransactionSalesLineAdjustment {\n public SalesLineNumber: number;\n public Exclude: boolean;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Exclude = \n odataObject.Exclude;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionSalesLineAdjustmentClass'] = FiscalTransactionSalesLineAdjustmentClass;\n \n /**\n * DetailedOrderStatus entity class.\n */\n export class DetailedOrderStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedOrderStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedOrderStatus\";\n \n }\n }\n entityDictionary['DetailedOrderStatusClass'] = DetailedOrderStatusClass;\n \n /**\n * LineValidationResult entity class.\n */\n export class LineValidationResultClass implements Entities.LineValidationResult {\n public LineId: string;\n public ValidationFailures: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.ValidationFailures = undefined;\n if (odataObject.ValidationFailures) {\n this.ValidationFailures = [];\n for (var i = 0; i < odataObject.ValidationFailures.length; i++) {\n if (odataObject.ValidationFailures[i] != null) {\n if (odataObject.ValidationFailures[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailures[i] = new entityDictionary[className](odataObject.ValidationFailures[i])\n }\n } else {\n this.ValidationFailures[i] = new DataValidationFailureClass(odataObject.ValidationFailures[i]);\n }\n } else {\n this.ValidationFailures[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineValidationResultClass'] = LineValidationResultClass;\n \n /**\n * SalesAffiliationLoyaltyTier entity class.\n */\n export class SalesAffiliationLoyaltyTierClass\n extends AffiliationLoyaltyTierClass\n implements Entities.SalesAffiliationLoyaltyTier {\n public TransactionId: string;\n public ChannelId: number;\n public TerminalId: string;\n public ReceiptId: string;\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAffiliationLoyaltyTier\";\n \n }\n }\n entityDictionary['SalesAffiliationLoyaltyTierClass'] = SalesAffiliationLoyaltyTierClass;\n \n /**\n * TaxViewLine entity class.\n */\n export class TaxViewLineClass implements Entities.TaxViewLine {\n public TaxId: string;\n public TaxAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxId = \n odataObject.TaxId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n }\n }\n entityDictionary['TaxViewLineClass'] = TaxViewLineClass;\n \n /**\n * Coupon entity class.\n */\n export class CouponClass implements Entities.Coupon {\n public CodeId: string;\n public Code: string;\n public DiscountOfferId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CodeId = \n odataObject.CodeId;\n \n this.Code = \n odataObject.Code;\n \n this.DiscountOfferId = \n odataObject.DiscountOfferId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CouponClass'] = CouponClass;\n \n /**\n * CustomerAccountDepositLine entity class.\n */\n export class CustomerAccountDepositLineClass implements Entities.CustomerAccountDepositLine {\n public Amount: number;\n public CustomerAccount: string;\n public Comment: string;\n public StoreNumber: string;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.Comment = \n odataObject.Comment;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAccountDepositLineClass'] = CustomerAccountDepositLineClass;\n \n /**\n * CustomerAttribute entity class.\n */\n export class CustomerAttributeClass implements Entities.CustomerAttribute {\n public AttributeValue: Entities.CommercePropertyValue;\n public Units: string;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new CommercePropertyValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.Units = \n odataObject.Units;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAttributeClass'] = CustomerAttributeClass;\n \n /**\n * ContactInfo entity class.\n */\n export class ContactInfoClass implements Entities.ContactInfo {\n public AddressTypeValue: number;\n public RecordId: number;\n public PartyLocationRecordId: number;\n public PartyRecordId: number;\n public PartyNumber: string;\n public Description: string;\n public Value: string;\n public ValueExtension: string;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public ParentLocation: number;\n public IsPrimary: boolean;\n public IsMobilePhone: boolean;\n public IsPrivate: boolean;\n public IsOptedInMarketing: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PartyLocationRecordId = \n (odataObject.PartyLocationRecordId != null) ? parseInt(odataObject.PartyLocationRecordId, 10) : undefined;\n \n this.PartyRecordId = \n (odataObject.PartyRecordId != null) ? parseInt(odataObject.PartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.Description = \n odataObject.Description;\n \n this.Value = \n odataObject.Value;\n \n this.ValueExtension = \n odataObject.ValueExtension;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.ParentLocation = \n (odataObject.ParentLocation != null) ? parseInt(odataObject.ParentLocation, 10) : undefined;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsMobilePhone = \n odataObject.IsMobilePhone;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsOptedInMarketing = \n odataObject.IsOptedInMarketing;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInfoClass'] = ContactInfoClass;\n \n /**\n * InventoryQuantities entity class.\n */\n export class InventoryQuantitiesClass implements Entities.InventoryQuantities {\n public UnitOfMeasure: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public QuantityReturned: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.QuantityReturned = \n (odataObject.QuantityReturned != null) ? parseFloat(odataObject.QuantityReturned) : undefined;\n \n }\n }\n entityDictionary['InventoryQuantitiesClass'] = InventoryQuantitiesClass;\n \n /**\n * DeliveryInformation entity class.\n */\n export class DeliveryInformationClass implements Entities.DeliveryInformation {\n public DeliveryMode: string;\n public DeliveryAddress: Entities.Address;\n public DeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['DeliveryInformationClass'] = DeliveryInformationClass;\n \n /**\n * ShiftTaxLine entity class.\n */\n export class ShiftTaxLineClass implements Entities.ShiftTaxLine {\n public TaxCode: string;\n public TaxAmount: number;\n public TaxRate: number;\n public NetAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxCode = \n odataObject.TaxCode;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxRate = \n (odataObject.TaxRate != null) ? parseFloat(odataObject.TaxRate) : undefined;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTaxLineClass'] = ShiftTaxLineClass;\n \n /**\n * TaxRegistration entity class.\n */\n export class TaxRegistrationClass implements Entities.TaxRegistration {\n public RecordId: number;\n public Name: string;\n public CountryRegionId: string;\n public IsRegistrationNumberUnique: boolean;\n public IsPrimaryAddressRestricted: boolean;\n public TypeApplicabilityRuleRecordId: number;\n public TypeValue: number;\n public Description: string;\n public DirPartyLocationRecordId: number;\n public RegistrationNumber: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public Issuer: string;\n public IssueDate: Date;\n public Section: string;\n public DirectoryPartyRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsRegistrationNumberUnique = \n odataObject.IsRegistrationNumberUnique;\n \n this.IsPrimaryAddressRestricted = \n odataObject.IsPrimaryAddressRestricted;\n \n this.TypeApplicabilityRuleRecordId = \n (odataObject.TypeApplicabilityRuleRecordId != null) ? parseInt(odataObject.TypeApplicabilityRuleRecordId, 10) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DirPartyLocationRecordId = \n (odataObject.DirPartyLocationRecordId != null) ? parseInt(odataObject.DirPartyLocationRecordId, 10) : undefined;\n \n this.RegistrationNumber = \n odataObject.RegistrationNumber;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.IssueDate = \n (odataObject.IssueDate instanceof Date) ? odataObject.IssueDate\n : (odataObject.IssueDate != null) ? jsonLightReadStringPropertyValue(odataObject.IssueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Section = \n odataObject.Section;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxRegistrationClass'] = TaxRegistrationClass;\n \n /**\n * ChannelTaxRegistration entity class.\n */\n export class ChannelTaxRegistrationClass\n extends TaxRegistrationClass\n implements Entities.ChannelTaxRegistration {\n public ChannelId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ChannelTaxRegistration\";\n \n }\n }\n entityDictionary['ChannelTaxRegistrationClass'] = ChannelTaxRegistrationClass;\n \n /**\n * LinkedProduct entity class.\n */\n export class LinkedProductClass implements Entities.LinkedProduct {\n public ProductRecordId: number;\n public LinkedProductRecordId: number;\n public Quantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.LinkedProductRecordId = \n (odataObject.LinkedProductRecordId != null) ? parseInt(odataObject.LinkedProductRecordId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LinkedProductClass'] = LinkedProductClass;\n \n /**\n * DisplayOrderInCategory entity class.\n */\n export class DisplayOrderInCategoryClass implements Entities.DisplayOrderInCategory {\n public CategoryRecordId: number;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryRecordId = \n (odataObject.CategoryRecordId != null) ? parseInt(odataObject.CategoryRecordId, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DisplayOrderInCategoryClass'] = DisplayOrderInCategoryClass;\n \n /**\n * RelatedProduct entity class.\n */\n export class RelatedProductClass implements Entities.RelatedProduct {\n public ProductRecordId: number;\n public RelatedProductRecordId: number;\n public CatalogId: number;\n public RelationName: string;\n public IsExcludedRelation: boolean;\n public IsDirectRelation: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.RelatedProductRecordId = \n (odataObject.RelatedProductRecordId != null) ? parseInt(odataObject.RelatedProductRecordId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.RelationName = \n odataObject.RelationName;\n \n this.IsExcludedRelation = \n odataObject.IsExcludedRelation;\n \n this.IsDirectRelation = \n odataObject.IsDirectRelation;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RelatedProductClass'] = RelatedProductClass;\n \n /**\n * KitComponent entity class.\n */\n export class KitComponentClass implements Entities.KitComponent {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitComponentClass'] = KitComponentClass;\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity class.\n */\n export class ChannelReferenceAdditionalLookupCriteriaClass implements Entities.ChannelReferenceAdditionalLookupCriteria {\n public OrderLookupAdditionalCriteriaTypeValue: number;\n public OrderLookupAdditionalCriteriaTypeParameterValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderLookupAdditionalCriteriaTypeValue = \n odataObject.OrderLookupAdditionalCriteriaTypeValue;\n \n this.OrderLookupAdditionalCriteriaTypeParameterValue = \n odataObject.OrderLookupAdditionalCriteriaTypeParameterValue;\n \n }\n }\n entityDictionary['ChannelReferenceAdditionalLookupCriteriaClass'] = ChannelReferenceAdditionalLookupCriteriaClass;\n \n /**\n * UserAlertFulfillmentLineParameter entity class.\n */\n export class UserAlertFulfillmentLineParameterClass\n extends FulfillmentLineParameterClass\n implements Entities.UserAlertFulfillmentLineParameter {\n public ItemId: string;\n public ProductId: number;\n public UnitOfMeasure: string;\n public SerialNumberInLatestFulfillmentTransaction: string;\n public LatestFulfillmentTransactionOperationTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.SerialNumberInLatestFulfillmentTransaction = \n odataObject.SerialNumberInLatestFulfillmentTransaction;\n \n this.LatestFulfillmentTransactionOperationTypeValue = \n odataObject.LatestFulfillmentTransactionOperationTypeValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAlertFulfillmentLineParameter\";\n \n }\n }\n entityDictionary['UserAlertFulfillmentLineParameterClass'] = UserAlertFulfillmentLineParameterClass;\n \n /**\n * ListingIdentity entity class.\n */\n export class ListingIdentityClass implements Entities.ListingIdentity {\n public ProductId: number;\n public LanguageId: string;\n public CatalogId: number;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingIdentityClass'] = ListingIdentityClass;\n \n /**\n * ProductRatingCount entity class.\n */\n export class ProductRatingCountClass implements Entities.ProductRatingCount {\n public Rating: number;\n public Count: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Rating = \n (odataObject.Rating != null) ? parseFloat(odataObject.Rating) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingCountClass'] = ProductRatingCountClass;\n \n /**\n * RegularStoreHours entity class.\n */\n export class RegularStoreHoursClass implements Entities.RegularStoreHours {\n public MondayOpenTime: number;\n public MondayCloseTime: number;\n public IsClosedOnMonday: boolean;\n public TuesdayOpenTime: number;\n public TuesdayCloseTime: number;\n public IsClosedOnTuesday: boolean;\n public WednesdayOpenTime: number;\n public WednesdayCloseTime: number;\n public IsClosedOnWednesday: boolean;\n public ThursdayOpenTime: number;\n public ThursdayCloseTime: number;\n public IsClosedOnThursday: boolean;\n public FridayOpenTime: number;\n public FridayCloseTime: number;\n public IsClosedOnFriday: boolean;\n public SaturdayOpenTime: number;\n public SaturdayCloseTime: number;\n public IsClosedOnSaturday: boolean;\n public SundayOpenTime: number;\n public SundayCloseTime: number;\n public IsClosedOnSunday: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MondayOpenTime = \n odataObject.MondayOpenTime;\n \n this.MondayCloseTime = \n odataObject.MondayCloseTime;\n \n this.IsClosedOnMonday = \n odataObject.IsClosedOnMonday;\n \n this.TuesdayOpenTime = \n odataObject.TuesdayOpenTime;\n \n this.TuesdayCloseTime = \n odataObject.TuesdayCloseTime;\n \n this.IsClosedOnTuesday = \n odataObject.IsClosedOnTuesday;\n \n this.WednesdayOpenTime = \n odataObject.WednesdayOpenTime;\n \n this.WednesdayCloseTime = \n odataObject.WednesdayCloseTime;\n \n this.IsClosedOnWednesday = \n odataObject.IsClosedOnWednesday;\n \n this.ThursdayOpenTime = \n odataObject.ThursdayOpenTime;\n \n this.ThursdayCloseTime = \n odataObject.ThursdayCloseTime;\n \n this.IsClosedOnThursday = \n odataObject.IsClosedOnThursday;\n \n this.FridayOpenTime = \n odataObject.FridayOpenTime;\n \n this.FridayCloseTime = \n odataObject.FridayCloseTime;\n \n this.IsClosedOnFriday = \n odataObject.IsClosedOnFriday;\n \n this.SaturdayOpenTime = \n odataObject.SaturdayOpenTime;\n \n this.SaturdayCloseTime = \n odataObject.SaturdayCloseTime;\n \n this.IsClosedOnSaturday = \n odataObject.IsClosedOnSaturday;\n \n this.SundayOpenTime = \n odataObject.SundayOpenTime;\n \n this.SundayCloseTime = \n odataObject.SundayCloseTime;\n \n this.IsClosedOnSunday = \n odataObject.IsClosedOnSunday;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RegularStoreHoursClass'] = RegularStoreHoursClass;\n \n /**\n * ValidationPeriod entity class.\n */\n export class ValidationPeriodClass implements Entities.ValidationPeriod {\n public RecordId: number;\n public PeriodId: string;\n public Description: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public StartingTime: number;\n public EndingTime: number;\n public IsTimeBounded: number;\n public MondayStartingTime: number;\n public MondayEndingTime: number;\n public IsMondayTimeBounded: number;\n public TuesdayStartingTime: number;\n public TuesdayEndingTime: number;\n public IsTuesdayTimeBounded: number;\n public WednesdayStartingTime: number;\n public WednesdayEndingTime: number;\n public IsWednesdayTimeBounded: number;\n public ThursdayStartingTime: number;\n public ThursdayEndingTime: number;\n public IsThursdayTimeBounded: number;\n public FridayStartingTime: number;\n public FridayEndingTime: number;\n public IsFridayTimeBounded: number;\n public SaturdayStartingTime: number;\n public SaturdayEndingTime: number;\n public IsSaturdayTimeBounded: number;\n public SundayStartingTime: number;\n public SundayEndingTime: number;\n public IsSundayTimeBounded: number;\n public IsEndTimeAfterMidnight: number;\n public IsMondayEndTimeAfterMidnight: number;\n public IsTuesdayEndTimeAfterMidnight: number;\n public IsWednesdayEndTimeAfterMidnight: number;\n public IsThursdayEndTimeAfterMidnight: number;\n public IsFridayEndTimeAfterMidnight: number;\n public IsSaturdayEndTimeAfterMidnight: number;\n public IsSundayEndTimeAfterMidnight: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PeriodId = \n odataObject.PeriodId;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StartingTime = \n odataObject.StartingTime;\n \n this.EndingTime = \n odataObject.EndingTime;\n \n this.IsTimeBounded = \n odataObject.IsTimeBounded;\n \n this.MondayStartingTime = \n odataObject.MondayStartingTime;\n \n this.MondayEndingTime = \n odataObject.MondayEndingTime;\n \n this.IsMondayTimeBounded = \n odataObject.IsMondayTimeBounded;\n \n this.TuesdayStartingTime = \n odataObject.TuesdayStartingTime;\n \n this.TuesdayEndingTime = \n odataObject.TuesdayEndingTime;\n \n this.IsTuesdayTimeBounded = \n odataObject.IsTuesdayTimeBounded;\n \n this.WednesdayStartingTime = \n odataObject.WednesdayStartingTime;\n \n this.WednesdayEndingTime = \n odataObject.WednesdayEndingTime;\n \n this.IsWednesdayTimeBounded = \n odataObject.IsWednesdayTimeBounded;\n \n this.ThursdayStartingTime = \n odataObject.ThursdayStartingTime;\n \n this.ThursdayEndingTime = \n odataObject.ThursdayEndingTime;\n \n this.IsThursdayTimeBounded = \n odataObject.IsThursdayTimeBounded;\n \n this.FridayStartingTime = \n odataObject.FridayStartingTime;\n \n this.FridayEndingTime = \n odataObject.FridayEndingTime;\n \n this.IsFridayTimeBounded = \n odataObject.IsFridayTimeBounded;\n \n this.SaturdayStartingTime = \n odataObject.SaturdayStartingTime;\n \n this.SaturdayEndingTime = \n odataObject.SaturdayEndingTime;\n \n this.IsSaturdayTimeBounded = \n odataObject.IsSaturdayTimeBounded;\n \n this.SundayStartingTime = \n odataObject.SundayStartingTime;\n \n this.SundayEndingTime = \n odataObject.SundayEndingTime;\n \n this.IsSundayTimeBounded = \n odataObject.IsSundayTimeBounded;\n \n this.IsEndTimeAfterMidnight = \n odataObject.IsEndTimeAfterMidnight;\n \n this.IsMondayEndTimeAfterMidnight = \n odataObject.IsMondayEndTimeAfterMidnight;\n \n this.IsTuesdayEndTimeAfterMidnight = \n odataObject.IsTuesdayEndTimeAfterMidnight;\n \n this.IsWednesdayEndTimeAfterMidnight = \n odataObject.IsWednesdayEndTimeAfterMidnight;\n \n this.IsThursdayEndTimeAfterMidnight = \n odataObject.IsThursdayEndTimeAfterMidnight;\n \n this.IsFridayEndTimeAfterMidnight = \n odataObject.IsFridayEndTimeAfterMidnight;\n \n this.IsSaturdayEndTimeAfterMidnight = \n odataObject.IsSaturdayEndTimeAfterMidnight;\n \n this.IsSundayEndTimeAfterMidnight = \n odataObject.IsSundayEndTimeAfterMidnight;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidationPeriodClass'] = ValidationPeriodClass;\n \n /**\n * ClientBookChange entity class.\n */\n export class ClientBookChangeClass implements Entities.ClientBookChange {\n public FromStaffId: string;\n public ToStaffId: string;\n public CustomerId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromStaffId = \n odataObject.FromStaffId;\n \n this.ToStaffId = \n odataObject.ToStaffId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n }\n }\n entityDictionary['ClientBookChangeClass'] = ClientBookChangeClass;\n \n /**\n * ChannelProfile entity class.\n */\n export class ChannelProfileClass implements Entities.ChannelProfile {\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfileClass'] = ChannelProfileClass;\n \n /**\n * RetailSharedConfigurationParameter entity class.\n */\n export class RetailSharedConfigurationParameterClass implements Entities.RetailSharedConfigurationParameter {\n public RecordId: number;\n public Name: string;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RetailSharedConfigurationParameterClass'] = RetailSharedConfigurationParameterClass;\n \n /**\n * CDXDataStore entity class.\n */\n export class CDXDataStoreClass implements Entities.CDXDataStore {\n public Name: string;\n public RecId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CDXDataStoreClass'] = CDXDataStoreClass;\n \n /**\n * UploadJobPackageRequest entity class.\n */\n export class UploadJobPackageRequestClass implements Entities.UploadJobPackageRequest {\n public JobId: string;\n public RerunUploadSessionId: number;\n public TargetStorage: string;\n public UploadJobDefintion: string;\n public UploadUrl: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JobId = \n odataObject.JobId;\n \n this.RerunUploadSessionId = \n (odataObject.RerunUploadSessionId != null) ? parseInt(odataObject.RerunUploadSessionId, 10) : undefined;\n \n this.TargetStorage = \n odataObject.TargetStorage;\n \n this.UploadJobDefintion = \n odataObject.UploadJobDefintion;\n \n this.UploadUrl = \n odataObject.UploadUrl;\n \n }\n }\n entityDictionary['UploadJobPackageRequestClass'] = UploadJobPackageRequestClass;\n \n /**\n * ExtensibleAuditEventType entity class.\n */\n export class ExtensibleAuditEventTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAuditEventType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAuditEventType\";\n \n }\n }\n entityDictionary['ExtensibleAuditEventTypeClass'] = ExtensibleAuditEventTypeClass;\n \n /**\n * AuditEventFiscalTransaction entity class.\n */\n export class AuditEventFiscalTransactionClass implements Entities.AuditEventFiscalTransaction {\n public EventId: number;\n public LineNumber: number;\n public RegisterResponse: string;\n public Store: string;\n public TransDateTime: Date;\n public Terminal: string;\n public UploadType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.Store = \n odataObject.Store;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalTransactionClass'] = AuditEventFiscalTransactionClass;\n \n /**\n * AuditEventFiscalRegistrationLine entity class.\n */\n export class AuditEventFiscalRegistrationLineClass implements Entities.AuditEventFiscalRegistrationLine {\n public EventId: number;\n public RegisterResponse: string;\n public StoreId: string;\n public TransactionDateTime: Date;\n public TerminalId: string;\n public UploadType: string;\n public UploadTypeValue: number;\n public StaffId: string;\n public RecordGuid: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TransactionDateTime = \n (odataObject.TransactionDateTime instanceof Date) ? odataObject.TransactionDateTime\n : (odataObject.TransactionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.UploadTypeValue = \n odataObject.UploadTypeValue;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalRegistrationLineClass'] = AuditEventFiscalRegistrationLineClass;\n \n /**\n * NotificationDetail entity class.\n */\n export class NotificationDetailClass implements Entities.NotificationDetail {\n public ActionProperty: string;\n public ItemCount: number;\n public DisplayText: string;\n public IsNew: boolean;\n public LastUpdatedDateTimeStr: string;\n public IsSuccess: boolean;\n public IsLiveContentOnly: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActionProperty = \n odataObject.ActionProperty;\n \n this.ItemCount = \n (odataObject.ItemCount != null) ? parseInt(odataObject.ItemCount, 10) : undefined;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n this.IsNew = \n odataObject.IsNew;\n \n this.LastUpdatedDateTimeStr = \n odataObject.LastUpdatedDateTimeStr;\n \n this.IsSuccess = \n odataObject.IsSuccess;\n \n this.IsLiveContentOnly = \n odataObject.IsLiveContentOnly;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationDetailClass'] = NotificationDetailClass;\n \n /**\n * FiscalIntegrationDocumentContext entity class.\n */\n export class FiscalIntegrationDocumentContextClass implements Entities.FiscalIntegrationDocumentContext {\n public AuditEvent: Entities.AuditEvent;\n public SignatureData: Entities.FiscalIntegrationSequentialSignatureData[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AuditEvent == null) {\n this.AuditEvent = undefined;\n } else if (odataObject.AuditEvent['@odata.type'] == null) {\n this.AuditEvent = new AuditEventClass(odataObject.AuditEvent);\n } else {\n var className: string = odataObject.AuditEvent['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AuditEvent = new entityDictionary[className](odataObject.AuditEvent)\n }\n }\n\n \n this.SignatureData = undefined;\n if (odataObject.SignatureData) {\n this.SignatureData = [];\n for (var i = 0; i < odataObject.SignatureData.length; i++) {\n if (odataObject.SignatureData[i] != null) {\n if (odataObject.SignatureData[i]['@odata.type'] != null) {\n var className: string = odataObject.SignatureData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SignatureData[i] = new entityDictionary[className](odataObject.SignatureData[i])\n }\n } else {\n this.SignatureData[i] = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SignatureData[i]);\n }\n } else {\n this.SignatureData[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentContextClass'] = FiscalIntegrationDocumentContextClass;\n \n /**\n * FiscalIntegrationDocumentAdjustment entity class.\n */\n export class FiscalIntegrationDocumentAdjustmentClass implements Entities.FiscalIntegrationDocumentAdjustment {\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentAdjustmentClass'] = FiscalIntegrationDocumentAdjustmentClass;\n \n /**\n * FiscalIntegrationSignatureDataContext entity class.\n */\n export class FiscalIntegrationSignatureDataContextClass implements Entities.FiscalIntegrationSignatureDataContext {\n public SequentialSignatureKey: string;\n public SequentialNumber: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SequentialSignatureKey = \n odataObject.SequentialSignatureKey;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n }\n }\n entityDictionary['FiscalIntegrationSignatureDataContextClass'] = FiscalIntegrationSignatureDataContextClass;\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity class.\n */\n export class FiscalIntegrationRegistrationProcessLineClass implements Entities.FiscalIntegrationRegistrationProcessLine {\n public RegistrationProcessId: string;\n public SequenceNumber: number;\n public Priority: number;\n public ConnectorTypeValue: number;\n public FunctionalityProfileGroupId: string;\n public AllowSkip: boolean;\n public AllowMarkAsRegistered: boolean;\n public AllowPostpone: boolean;\n public Optional: boolean;\n public RegistrationSettings: Entities.FiscalIntegrationRegistrationSettings;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public SequentialKeys: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.SequenceNumber = \n odataObject.SequenceNumber;\n \n this.Priority = \n odataObject.Priority;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.AllowSkip = \n odataObject.AllowSkip;\n \n this.AllowMarkAsRegistered = \n odataObject.AllowMarkAsRegistered;\n \n this.AllowPostpone = \n odataObject.AllowPostpone;\n \n this.Optional = \n odataObject.Optional;\n \n if (odataObject.RegistrationSettings == null) {\n this.RegistrationSettings = undefined;\n } else if (odataObject.RegistrationSettings['@odata.type'] == null) {\n this.RegistrationSettings = new FiscalIntegrationRegistrationSettingsClass(odataObject.RegistrationSettings);\n } else {\n var className: string = odataObject.RegistrationSettings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationSettings = new entityDictionary[className](odataObject.RegistrationSettings)\n }\n }\n\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SequentialKeys = undefined;\n if (odataObject.SequentialKeys) {\n this.SequentialKeys = [];\n for (var i = 0; i < odataObject.SequentialKeys.length; i++) {\n if (odataObject.SequentialKeys[i] != null) {\n this.SequentialKeys[i] = \n odataObject.SequentialKeys[i];\n } else {\n this.SequentialKeys[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessLineClass'] = FiscalIntegrationRegistrationProcessLineClass;\n \n /**\n * FiscalIntegrationRegistrationSettings entity class.\n */\n export class FiscalIntegrationRegistrationSettingsClass implements Entities.FiscalIntegrationRegistrationSettings {\n public SkipReasonCode: string;\n public MarkAsRegisteredReasonCode: string;\n public PostponeReasonCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SkipReasonCode = \n odataObject.SkipReasonCode;\n \n this.MarkAsRegisteredReasonCode = \n odataObject.MarkAsRegisteredReasonCode;\n \n this.PostponeReasonCode = \n odataObject.PostponeReasonCode;\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationSettingsClass'] = FiscalIntegrationRegistrationSettingsClass;\n \n /**\n * FiscalIntegrationServiceFailureDetails entity class.\n */\n export class FiscalIntegrationServiceFailureDetailsClass implements Entities.FiscalIntegrationServiceFailureDetails {\n public FailureTypeValue: number;\n public IsRetryAllowed: boolean;\n public ErrorCode: string;\n public ErrorMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FailureTypeValue = \n odataObject.FailureTypeValue;\n \n this.IsRetryAllowed = \n odataObject.IsRetryAllowed;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceFailureDetailsClass'] = FiscalIntegrationServiceFailureDetailsClass;\n \n /**\n * CategoryPath entity class.\n */\n export class CategoryPathClass implements Entities.CategoryPath {\n public Segments: Entities.CategoryPathSegment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Segments = undefined;\n if (odataObject.Segments) {\n this.Segments = [];\n for (var i = 0; i < odataObject.Segments.length; i++) {\n if (odataObject.Segments[i] != null) {\n if (odataObject.Segments[i]['@odata.type'] != null) {\n var className: string = odataObject.Segments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Segments[i] = new entityDictionary[className](odataObject.Segments[i])\n }\n } else {\n this.Segments[i] = new CategoryPathSegmentClass(odataObject.Segments[i]);\n }\n } else {\n this.Segments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathClass'] = CategoryPathClass;\n \n /**\n * CategoryPathSegment entity class.\n */\n export class CategoryPathSegmentClass implements Entities.CategoryPathSegment {\n public CategoryName: string;\n public CategoryId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.CategoryId = \n (odataObject.CategoryId != null) ? parseInt(odataObject.CategoryId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathSegmentClass'] = CategoryPathSegmentClass;\n \n /**\n * AttachedService entity class.\n */\n export class AttachedServiceClass implements Entities.AttachedService {\n public BaseUrl: string;\n public ServiceId: string;\n public StatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BaseUrl = \n odataObject.BaseUrl;\n \n this.ServiceId = \n odataObject.ServiceId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttachedServiceClass'] = AttachedServiceClass;\n \n /**\n * ExtensibleInventoryJournalType entity class.\n */\n export class ExtensibleInventoryJournalTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleInventoryJournalType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleInventoryJournalType\";\n \n }\n }\n entityDictionary['ExtensibleInventoryJournalTypeClass'] = ExtensibleInventoryJournalTypeClass;\n \n /**\n * CustomerTimelineItemType entity class.\n */\n export class CustomerTimelineItemTypeClass implements Entities.CustomerTimelineItemType {\n public Description: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeClass'] = CustomerTimelineItemTypeClass;\n \n /**\n * ProductWarehouseInventoryAvailability entity class.\n */\n export class ProductWarehouseInventoryAvailabilityClass implements Entities.ProductWarehouseInventoryAvailability {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public PhysicalInventory: number;\n public PhysicalReserved: number;\n public TotalAvailable: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public OrderedInTotal: number;\n public PhysicalAvailable: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public LastInventoryTransactionId: number;\n public UnpostedOnlineOrderedQuantity: number;\n public UnpostedFulfilledQuantity: number;\n public IsInventoryAvailabilityQuantityReturned: boolean;\n public UnprocessedQuantity: number;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public SumUncountedTransactions: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.PhysicalInventory = \n (odataObject.PhysicalInventory != null) ? parseFloat(odataObject.PhysicalInventory) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.TotalAvailable = \n (odataObject.TotalAvailable != null) ? parseFloat(odataObject.TotalAvailable) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.OrderedInTotal = \n (odataObject.OrderedInTotal != null) ? parseFloat(odataObject.OrderedInTotal) : undefined;\n \n this.PhysicalAvailable = \n (odataObject.PhysicalAvailable != null) ? parseFloat(odataObject.PhysicalAvailable) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.LastInventoryTransactionId = \n (odataObject.LastInventoryTransactionId != null) ? parseInt(odataObject.LastInventoryTransactionId, 10) : undefined;\n \n this.UnpostedOnlineOrderedQuantity = \n (odataObject.UnpostedOnlineOrderedQuantity != null) ? parseFloat(odataObject.UnpostedOnlineOrderedQuantity) : undefined;\n \n this.UnpostedFulfilledQuantity = \n (odataObject.UnpostedFulfilledQuantity != null) ? parseFloat(odataObject.UnpostedFulfilledQuantity) : undefined;\n \n this.IsInventoryAvailabilityQuantityReturned = \n odataObject.IsInventoryAvailabilityQuantityReturned;\n \n this.UnprocessedQuantity = \n (odataObject.UnprocessedQuantity != null) ? parseFloat(odataObject.UnprocessedQuantity) : undefined;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.SumUncountedTransactions = \n (odataObject.SumUncountedTransactions != null) ? parseFloat(odataObject.SumUncountedTransactions) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryAvailabilityClass'] = ProductWarehouseInventoryAvailabilityClass;\n \n /**\n * QuantityUnitType entity class.\n */\n export class QuantityUnitTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.QuantityUnitType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.QuantityUnitType\";\n \n }\n }\n entityDictionary['QuantityUnitTypeClass'] = QuantityUnitTypeClass;\n \n /**\n * ProductInventoryAvailability entity class.\n */\n export class ProductInventoryAvailabilityClass implements Entities.ProductInventoryAvailability {\n public ProductId: number;\n public DataAreaId: string;\n public TotalAvailableQuantity: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableQuantity: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.TotalAvailableQuantity = \n (odataObject.TotalAvailableQuantity != null) ? parseFloat(odataObject.TotalAvailableQuantity) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableQuantity = \n (odataObject.PhysicalAvailableQuantity != null) ? parseFloat(odataObject.PhysicalAvailableQuantity) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductInventoryAvailabilityClass'] = ProductInventoryAvailabilityClass;\n \n /**\n * ParameterSet entity class.\n */\n export class ParameterSetClass implements Entities.ParameterSet {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ParameterSetClass'] = ParameterSetClass;\n \n /**\n * CartLineValidationResults entity class.\n */\n export class CartLineValidationResultsClass implements Entities.CartLineValidationResults {\n public ValidationResultsByLineId: Entities.CartLineValidationResultsByLineId;\n public ValidationFailuresByCartLines: Entities.LineDataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ValidationResultsByLineId == null) {\n this.ValidationResultsByLineId = undefined;\n } else if (odataObject.ValidationResultsByLineId['@odata.type'] == null) {\n this.ValidationResultsByLineId = new CartLineValidationResultsByLineIdClass(odataObject.ValidationResultsByLineId);\n } else {\n var className: string = odataObject.ValidationResultsByLineId['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsByLineId = new entityDictionary[className](odataObject.ValidationResultsByLineId)\n }\n }\n\n \n this.ValidationFailuresByCartLines = undefined;\n if (odataObject.ValidationFailuresByCartLines) {\n this.ValidationFailuresByCartLines = [];\n for (var i = 0; i < odataObject.ValidationFailuresByCartLines.length; i++) {\n if (odataObject.ValidationFailuresByCartLines[i] != null) {\n if (odataObject.ValidationFailuresByCartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailuresByCartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailuresByCartLines[i] = new entityDictionary[className](odataObject.ValidationFailuresByCartLines[i])\n }\n } else {\n this.ValidationFailuresByCartLines[i] = new LineDataValidationFailureClass(odataObject.ValidationFailuresByCartLines[i]);\n }\n } else {\n this.ValidationFailuresByCartLines[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsClass'] = CartLineValidationResultsClass;\n \n /**\n * CommerceException entity class.\n */\n export class CommerceExceptionClass implements Entities.CommerceException {\n public LocalizedMessage: string;\n public ErrorResourceId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n }\n }\n entityDictionary['CommerceExceptionClass'] = CommerceExceptionClass;\n \n /**\n * DataValidationException entity class.\n */\n export class DataValidationExceptionClass\n extends CommerceExceptionClass\n implements Entities.DataValidationException {\n public ValidationResults: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ValidationResults = undefined;\n if (odataObject.ValidationResults) {\n this.ValidationResults = [];\n for (var i = 0; i < odataObject.ValidationResults.length; i++) {\n if (odataObject.ValidationResults[i] != null) {\n if (odataObject.ValidationResults[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResults[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResults[i] = new entityDictionary[className](odataObject.ValidationResults[i])\n }\n } else {\n this.ValidationResults[i] = new DataValidationFailureClass(odataObject.ValidationResults[i]);\n }\n } else {\n this.ValidationResults[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataValidationException\";\n \n }\n }\n entityDictionary['DataValidationExceptionClass'] = DataValidationExceptionClass;\n \n /**\n * MissingRequiredReasonCodeException entity class.\n */\n export class MissingRequiredReasonCodeExceptionClass\n extends DataValidationExceptionClass\n implements Entities.MissingRequiredReasonCodeException {\n public RequiredReasonCodes: Entities.ReasonCode[];\n public TransactionRequiredReasonCodeIds: string[];\n public ReasonCodeRequirements: Entities.ReasonCodeRequirement[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RequiredReasonCodes = undefined;\n if (odataObject.RequiredReasonCodes) {\n this.RequiredReasonCodes = [];\n for (var i = 0; i < odataObject.RequiredReasonCodes.length; i++) {\n if (odataObject.RequiredReasonCodes[i] != null) {\n if (odataObject.RequiredReasonCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.RequiredReasonCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RequiredReasonCodes[i] = new entityDictionary[className](odataObject.RequiredReasonCodes[i])\n }\n } else {\n this.RequiredReasonCodes[i] = new ReasonCodeClass(odataObject.RequiredReasonCodes[i]);\n }\n } else {\n this.RequiredReasonCodes[i] = undefined;\n }\n }\n }\n \n this.TransactionRequiredReasonCodeIds = undefined;\n if (odataObject.TransactionRequiredReasonCodeIds) {\n this.TransactionRequiredReasonCodeIds = [];\n for (var i = 0; i < odataObject.TransactionRequiredReasonCodeIds.length; i++) {\n if (odataObject.TransactionRequiredReasonCodeIds[i] != null) {\n this.TransactionRequiredReasonCodeIds[i] = \n odataObject.TransactionRequiredReasonCodeIds[i];\n } else {\n this.TransactionRequiredReasonCodeIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeRequirements = undefined;\n if (odataObject.ReasonCodeRequirements) {\n this.ReasonCodeRequirements = [];\n for (var i = 0; i < odataObject.ReasonCodeRequirements.length; i++) {\n if (odataObject.ReasonCodeRequirements[i] != null) {\n if (odataObject.ReasonCodeRequirements[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeRequirements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeRequirements[i] = new entityDictionary[className](odataObject.ReasonCodeRequirements[i])\n }\n } else {\n this.ReasonCodeRequirements[i] = new ReasonCodeRequirementClass(odataObject.ReasonCodeRequirements[i]);\n }\n } else {\n this.ReasonCodeRequirements[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.MissingRequiredReasonCodeException\";\n \n }\n }\n entityDictionary['MissingRequiredReasonCodeExceptionClass'] = MissingRequiredReasonCodeExceptionClass;\n \n /**\n * SecurityException entity class.\n */\n export class SecurityExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecurityException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecurityException\";\n \n }\n }\n entityDictionary['SecurityExceptionClass'] = SecurityExceptionClass;\n \n /**\n * DeviceAuthenticationException entity class.\n */\n export class DeviceAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.DeviceAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DeviceAuthenticationException\";\n \n }\n }\n entityDictionary['DeviceAuthenticationExceptionClass'] = DeviceAuthenticationExceptionClass;\n \n /**\n * HeadquarterTransactionServiceException entity class.\n */\n export class HeadquarterTransactionServiceExceptionClass\n extends CommerceExceptionClass\n implements Entities.HeadquarterTransactionServiceException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.HeadquarterTransactionServiceException\";\n \n }\n }\n entityDictionary['HeadquarterTransactionServiceExceptionClass'] = HeadquarterTransactionServiceExceptionClass;\n \n /**\n * UserAuthenticationException entity class.\n */\n export class UserAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthenticationException\";\n \n }\n }\n entityDictionary['UserAuthenticationExceptionClass'] = UserAuthenticationExceptionClass;\n \n /**\n * UserAuthorizationException entity class.\n */\n export class UserAuthorizationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthorizationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthorizationException\";\n \n }\n }\n entityDictionary['UserAuthorizationExceptionClass'] = UserAuthorizationExceptionClass;\n \n /**\n * FeatureNotSupportedException entity class.\n */\n export class FeatureNotSupportedExceptionClass\n extends CommerceExceptionClass\n implements Entities.FeatureNotSupportedException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.FeatureNotSupportedException\";\n \n }\n }\n entityDictionary['FeatureNotSupportedExceptionClass'] = FeatureNotSupportedExceptionClass;\n \n /**\n * CartValidationException entity class.\n */\n export class CartValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.CartValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CartValidationException\";\n \n }\n }\n entityDictionary['CartValidationExceptionClass'] = CartValidationExceptionClass;\n \n /**\n * TenderValidationException entity class.\n */\n export class TenderValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.TenderValidationException {\n public TenderTypeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TenderValidationException\";\n \n }\n }\n entityDictionary['TenderValidationExceptionClass'] = TenderValidationExceptionClass;\n \n /**\n * CommerceDataExchangeException entity class.\n */\n export class CommerceDataExchangeExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceDataExchangeException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceDataExchangeException\";\n \n }\n }\n entityDictionary['CommerceDataExchangeExceptionClass'] = CommerceDataExchangeExceptionClass;\n \n /**\n * ExtensibleEnumerationException entity class.\n */\n export class ExtensibleEnumerationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationExceptionClass'] = ExtensibleEnumerationExceptionClass;\n \n /**\n * TaskManagementException entity class.\n */\n export class TaskManagementExceptionClass\n extends CommerceExceptionClass\n implements Entities.TaskManagementException {\n public TaskManagementErrors: Entities.TaskManagementError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaskManagementErrors = undefined;\n if (odataObject.TaskManagementErrors) {\n this.TaskManagementErrors = [];\n for (var i = 0; i < odataObject.TaskManagementErrors.length; i++) {\n if (odataObject.TaskManagementErrors[i] != null) {\n if (odataObject.TaskManagementErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.TaskManagementErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaskManagementErrors[i] = new entityDictionary[className](odataObject.TaskManagementErrors[i])\n }\n } else {\n this.TaskManagementErrors[i] = new TaskManagementErrorClass(odataObject.TaskManagementErrors[i]);\n }\n } else {\n this.TaskManagementErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementException\";\n \n }\n }\n entityDictionary['TaskManagementExceptionClass'] = TaskManagementExceptionClass;\n \n /**\n * TaskManagementServerException entity class.\n */\n export class TaskManagementServerExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementServerException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementServerException\";\n \n }\n }\n entityDictionary['TaskManagementServerExceptionClass'] = TaskManagementServerExceptionClass;\n \n /**\n * TaskManagementClientException entity class.\n */\n export class TaskManagementClientExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementClientException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementClientException\";\n \n }\n }\n entityDictionary['TaskManagementClientExceptionClass'] = TaskManagementClientExceptionClass;\n \n /**\n * PaymentException entity class.\n */\n export class PaymentExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentException {\n public AdditionalContext: string;\n public PaymentSdkErrors: Entities.PaymentError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentException\";\n \n }\n }\n entityDictionary['PaymentExceptionClass'] = PaymentExceptionClass;\n \n /**\n * DataValidationFailure entity class.\n */\n export class DataValidationFailureClass implements Entities.DataValidationFailure {\n public ErrorContext: string;\n public ErrorResourceId: string;\n public MemberNames: string[];\n public LocalizedMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorContext = \n odataObject.ErrorContext;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.MemberNames = undefined;\n if (odataObject.MemberNames) {\n this.MemberNames = [];\n for (var i = 0; i < odataObject.MemberNames.length; i++) {\n if (odataObject.MemberNames[i] != null) {\n this.MemberNames[i] = \n odataObject.MemberNames[i];\n } else {\n this.MemberNames[i] = undefined;\n }\n }\n }\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n }\n }\n entityDictionary['DataValidationFailureClass'] = DataValidationFailureClass;\n \n /**\n * ItemDiscontinuedException entity class.\n */\n export class ItemDiscontinuedExceptionClass\n extends CommerceExceptionClass\n implements Entities.ItemDiscontinuedException {\n public RemovedUnavailableItemIds: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RemovedUnavailableItemIds = \n odataObject.RemovedUnavailableItemIds;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ItemDiscontinuedException\";\n \n }\n }\n entityDictionary['ItemDiscontinuedExceptionClass'] = ItemDiscontinuedExceptionClass;\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity class.\n */\n export class InventoryDocumentLockedByOtherTerminalExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentLockedByOtherTerminalException {\n public WorkingTerminalId: string;\n public CurrentTerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.WorkingTerminalId = \n odataObject.WorkingTerminalId;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentLockedByOtherTerminalException\";\n \n }\n }\n entityDictionary['InventoryDocumentLockedByOtherTerminalExceptionClass'] = InventoryDocumentLockedByOtherTerminalExceptionClass;\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity class.\n */\n export class InventoryDocumentExceedMaximumQuantityExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentExceedMaximumQuantityException {\n public MaximumQuantity: number;\n public AllowOverDelivery: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentExceedMaximumQuantityException\";\n \n }\n }\n entityDictionary['InventoryDocumentExceedMaximumQuantityExceptionClass'] = InventoryDocumentExceedMaximumQuantityExceptionClass;\n \n /**\n * CartLineValidationResultsByLineId entity class.\n */\n export class CartLineValidationResultsByLineIdClass implements Entities.CartLineValidationResultsByLineId {\n public LineIdToProductBehaviorMap: Entities.KeyValuePair_2OfString_ProductBehavior[];\n public ValidationResultsPairs: Entities.LineValidationResult[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIdToProductBehaviorMap = undefined;\n if (odataObject.LineIdToProductBehaviorMap) {\n this.LineIdToProductBehaviorMap = [];\n for (var i = 0; i < odataObject.LineIdToProductBehaviorMap.length; i++) {\n if (odataObject.LineIdToProductBehaviorMap[i] != null) {\n if (odataObject.LineIdToProductBehaviorMap[i]['@odata.type'] != null) {\n var className: string = odataObject.LineIdToProductBehaviorMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LineIdToProductBehaviorMap[i] = new entityDictionary[className](odataObject.LineIdToProductBehaviorMap[i])\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = new KeyValuePair_2OfString_ProductBehaviorClass(odataObject.LineIdToProductBehaviorMap[i]);\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = undefined;\n }\n }\n }\n \n this.ValidationResultsPairs = undefined;\n if (odataObject.ValidationResultsPairs) {\n this.ValidationResultsPairs = [];\n for (var i = 0; i < odataObject.ValidationResultsPairs.length; i++) {\n if (odataObject.ValidationResultsPairs[i] != null) {\n if (odataObject.ValidationResultsPairs[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResultsPairs[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsPairs[i] = new entityDictionary[className](odataObject.ValidationResultsPairs[i])\n }\n } else {\n this.ValidationResultsPairs[i] = new LineValidationResultClass(odataObject.ValidationResultsPairs[i]);\n }\n } else {\n this.ValidationResultsPairs[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsByLineIdClass'] = CartLineValidationResultsByLineIdClass;\n \n /**\n * CommerceRuntimeCompositionException entity class.\n */\n export class CommerceRuntimeCompositionExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceRuntimeCompositionException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceRuntimeCompositionException\";\n \n }\n }\n entityDictionary['CommerceRuntimeCompositionExceptionClass'] = CommerceRuntimeCompositionExceptionClass;\n \n /**\n * ChecklistTaskValidationException entity class.\n */\n export class ChecklistTaskValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.ChecklistTaskValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChecklistTaskValidationException\";\n \n }\n }\n entityDictionary['ChecklistTaskValidationExceptionClass'] = ChecklistTaskValidationExceptionClass;\n \n /**\n * InsufficientCredentialLengthException entity class.\n */\n export class InsufficientCredentialLengthExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InsufficientCredentialLengthException {\n public ActualLength: number;\n public MinLength: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ActualLength = \n odataObject.ActualLength;\n \n this.MinLength = \n odataObject.MinLength;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InsufficientCredentialLengthException\";\n \n }\n }\n entityDictionary['InsufficientCredentialLengthExceptionClass'] = InsufficientCredentialLengthExceptionClass;\n \n /**\n * ExtensibleEnumerationCacheException entity class.\n */\n export class ExtensibleEnumerationCacheExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationCacheException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationCacheException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationCacheExceptionClass'] = ExtensibleEnumerationCacheExceptionClass;\n \n /**\n * ExtensionConfigurationException entity class.\n */\n export class ExtensionConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensionConfigurationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensionConfigurationException\";\n \n }\n }\n entityDictionary['ExtensionConfigurationExceptionClass'] = ExtensionConfigurationExceptionClass;\n \n /**\n * StaffPasswordExpiredException entity class.\n */\n export class StaffPasswordExpiredExceptionClass\n extends UserAuthenticationExceptionClass\n implements Entities.StaffPasswordExpiredException {\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.StaffPasswordExpiredException\";\n \n }\n }\n entityDictionary['StaffPasswordExpiredExceptionClass'] = StaffPasswordExpiredExceptionClass;\n \n /**\n * ChannelConfigurationNotFoundException entity class.\n */\n export class ChannelConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.ChannelConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChannelConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['ChannelConfigurationNotFoundExceptionClass'] = ChannelConfigurationNotFoundExceptionClass;\n \n /**\n * PaymentConfigurationException entity class.\n */\n export class PaymentConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentConfigurationException {\n public PaymentConfigurationSdkErrors: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.PaymentConfigurationSdkErrors = undefined;\n if (odataObject.PaymentConfigurationSdkErrors) {\n this.PaymentConfigurationSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentConfigurationSdkErrors.length; i++) {\n if (odataObject.PaymentConfigurationSdkErrors[i] != null) {\n this.PaymentConfigurationSdkErrors[i] = \n odataObject.PaymentConfigurationSdkErrors[i];\n } else {\n this.PaymentConfigurationSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentConfigurationException\";\n \n }\n }\n entityDictionary['PaymentConfigurationExceptionClass'] = PaymentConfigurationExceptionClass;\n \n /**\n * SecretConfigurationNotFoundException entity class.\n */\n export class SecretConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecretConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecretConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['SecretConfigurationNotFoundExceptionClass'] = SecretConfigurationNotFoundExceptionClass;\n \n /**\n * TenderTypePolicy entity class.\n */\n export class TenderTypePolicyClass implements Entities.TenderTypePolicy {\n public OriginalTenderType: string;\n public AllowedReturnTenderTypes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalTenderType = \n odataObject.OriginalTenderType;\n \n this.AllowedReturnTenderTypes = undefined;\n if (odataObject.AllowedReturnTenderTypes) {\n this.AllowedReturnTenderTypes = [];\n for (var i = 0; i < odataObject.AllowedReturnTenderTypes.length; i++) {\n if (odataObject.AllowedReturnTenderTypes[i] != null) {\n this.AllowedReturnTenderTypes[i] = \n odataObject.AllowedReturnTenderTypes[i];\n } else {\n this.AllowedReturnTenderTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypePolicyClass'] = TenderTypePolicyClass;\n \n /**\n * AccountStatementRequest entity class.\n */\n export class AccountStatementRequestClass implements Entities.AccountStatementRequest {\n public RequestedUserId: string;\n public IsForFullOrganization: boolean;\n public FromDate: Date;\n public ToDate: Date;\n public RequestingUserEmail: string;\n public DeliveryTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedUserId = \n odataObject.RequestedUserId;\n \n this.IsForFullOrganization = \n odataObject.IsForFullOrganization;\n \n this.FromDate = \n (odataObject.FromDate instanceof Date) ? odataObject.FromDate\n : (odataObject.FromDate != null) ? jsonLightReadStringPropertyValue(odataObject.FromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDate = \n (odataObject.ToDate instanceof Date) ? odataObject.ToDate\n : (odataObject.ToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestingUserEmail = \n odataObject.RequestingUserEmail;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AccountStatementRequestClass'] = AccountStatementRequestClass;\n \n /**\n * BusinessPartnerOperationRequestDetails entity class.\n */\n export class BusinessPartnerOperationRequestDetailsClass implements Entities.BusinessPartnerOperationRequestDetails {\n public InvoiceId: string;\n public AccountStatementStartDateTime: Date;\n public AccountStatementEndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.AccountStatementStartDateTime = \n (odataObject.AccountStatementStartDateTime instanceof Date) ? odataObject.AccountStatementStartDateTime\n : (odataObject.AccountStatementStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.AccountStatementEndDateTime = \n (odataObject.AccountStatementEndDateTime instanceof Date) ? odataObject.AccountStatementEndDateTime\n : (odataObject.AccountStatementEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestDetailsClass'] = BusinessPartnerOperationRequestDetailsClass;\n \n /**\n * TaskManagementError entity class.\n */\n export class TaskManagementErrorClass implements Entities.TaskManagementError {\n public ErrorResourceId: string;\n public LocalizedMessage: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.TaskId = \n odataObject.TaskId;\n \n }\n }\n entityDictionary['TaskManagementErrorClass'] = TaskManagementErrorClass;\n \n /**\n * LineDataValidationFailure entity class.\n */\n export class LineDataValidationFailureClass implements Entities.LineDataValidationFailure {\n public DataValidationFailure: Entities.DataValidationFailure;\n public LineIndex: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.DataValidationFailure == null) {\n this.DataValidationFailure = undefined;\n } else if (odataObject.DataValidationFailure['@odata.type'] == null) {\n this.DataValidationFailure = new DataValidationFailureClass(odataObject.DataValidationFailure);\n } else {\n var className: string = odataObject.DataValidationFailure['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataValidationFailure = new entityDictionary[className](odataObject.DataValidationFailure)\n }\n }\n\n \n this.LineIndex = \n odataObject.LineIndex;\n \n }\n }\n entityDictionary['LineDataValidationFailureClass'] = LineDataValidationFailureClass;\n \n /**\n * WrongEndpointException entity class.\n */\n export class WrongEndpointExceptionClass\n extends CommerceExceptionClass\n implements Entities.WrongEndpointException {\n public RedirectUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RedirectUri = \n odataObject.RedirectUri;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.WrongEndpointException\";\n \n }\n }\n entityDictionary['WrongEndpointExceptionClass'] = WrongEndpointExceptionClass;\n \n /**\n * BadRequestException entity class.\n */\n export class BadRequestExceptionClass\n extends CommerceExceptionClass\n implements Entities.BadRequestException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.BadRequestException\";\n \n }\n }\n entityDictionary['BadRequestExceptionClass'] = BadRequestExceptionClass;\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity class.\n */\n export class KeyValuePair_2OfString_ProductBehaviorClass implements Entities.KeyValuePair_2OfString_ProductBehavior {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['KeyValuePair_2OfString_ProductBehaviorClass'] = KeyValuePair_2OfString_ProductBehaviorClass;\n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Category, AttributeCategory } from '../Entities/CommerceTypes.g';\n import { CategoryClass, AttributeCategoryClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function categoriesQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Categories\", \"Category\", CategoryClass, key);\n }\n \n export function createCreateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery().create(entity);\n }\n\n export function createCategoryAsync(context: IContext, entity: Category): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Category): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Category): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return categoriesQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return categoriesQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCategoriesInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId?: number | null): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCategories', true, CategoryClass, 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getCategoriesAsync(context: IContext, channelId: number, catalogId?: number | null):AsyncResult {\n const request = createGetCategoriesInput(context.queryResultSettings, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetAttributesInput(queryResultSettings: IQueryResultSettings, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributes', false, AttributeCategoryClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {categoryId: categoryId });\n } \n \n export function getAttributesAsync(context: IContext, categoryId: number):AsyncResult {\n const request = createGetAttributesInput(context.queryResultSettings, categoryId);\n return executeAction(request, context);\n } \n \n export function createGetCatalogAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryIds: number[]): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogAttributes', true, AttributeCategoryClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {catalogId: catalogId, categoryIds: categoryIds });\n } \n \n export function getCatalogAttributesAsync(context: IContext, catalogId: number, categoryIds: number[]):AsyncResult {\n const request = createGetCatalogAttributesInput(context.queryResultSettings, catalogId, categoryIds);\n return executeAction(request, context);\n } \n \n export function createGetChildrenInput(queryResultSettings: IQueryResultSettings, channelId: number, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChildren', true, CategoryClass, 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, categoryId: categoryId });\n } \n \n export function getChildrenAsync(context: IContext, channelId: number, categoryId: number):AsyncResult {\n const request = createGetChildrenInput(context.queryResultSettings, channelId, categoryId);\n return executeAction(request, context);\n } \n \n ","/*!\n * 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 // \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, Cart, OperationalInsightsConfiguration, CashDeclaration, CustomerGroup, ChannelDeliveryOptionConfiguration, ChannelIdentity, ChannelSearchCriteria, EnvironmentConfiguration, SearchConfiguration, ExtensionPackageDefinition, ExtensionProfile, DeviceConfiguration, VisualProfile, SupportedLanguage, SalesTaxGroup, TenderType, UnitOfMeasure, Currency, CommissionSalesGroup, ChannelInventoryConfiguration, ChannelPurchaseConfiguration, InventoryJournalNameSearchCriteria, InventoryJournalName, Device, UserDefinedSecretCertificateResult, ExtensibleEnumerationContainer, AddressPurpose, ReturnPolicy, EmailReceiptSettings, } from '../Entities/CommerceTypes.g';\n import { ReceiptMaskClass, DeliveryOptionClass, AffiliationClass, PromotionClass, PaymentMerchantInformationClass, StoreSafeClass, ShiftReconciliationLineClass, SearchSuggestionClass, DeviceActivationResultClass, CreateHardwareStationTokenResultClass, ValidateHardwareStationTokenResultClass, BarcodeClass, ButtonGridClass, MediaBlobClass, CardTypeInfoClass, CityInfoClass, CountryRegionInfoClass, OnlineChannelClass, CountyInfoClass, CreditMemoClass, DataDownloadParametersClass, DataUploadParametersClass, DownloadSessionClass, NumberSequenceSeedDataClass, ReceiptNumberResetInfoClass, LoyaltyRewardPointActivityClass, CurrencyAmountClass, DiscountCodeClass, DistrictInfoClass, HardwareStationProfileClass, HardwareProfileClass, LocalizedStringClass, OperationPermissionClass, ReasonCodeClass, ReportDataSetClass, IncomeExpenseAccountClass, StateProvinceInfoClass, ZipCodeInfoClass, KitTransactionClass, LoyaltyCardClass, LoyaltyCardTransactionClass, TransactionClass, GiftCardClass, NonSalesTransactionClass, DropAndDeclareTransactionClass, TaxOverrideClass, CustomerBalancesClass, LinkToExistingCustomerResultClass, OfflineSyncStatsLineClass, StorageAccessTokenClass, FrameworkClass, TaskGuidesSearchResultClass, RecordingClass, AttributeDefinitionClass, AttributeGroupDefinitionClass, AuditEventClass, InventoryAvailableToPromiseClass, SalesOrderClass, NotificationItemClass, FiscalIntegrationDocumentClass, FiscalIntegrationRegistrationProcessClass, FiscalIntegrationSupportedEventsClass, FiscalIntegrationTechnicalProfileClass, FiscalIntegrationServiceStatusClass, FiscalIntegrationServiceCommunicationResultClass, FeatureStateClass, FiscalIntegrationSequentialSignatureDataClass, FiscalTransactionClass, PickupTimeslotAvailabilityClass, CartClass, OperationalInsightsConfigurationClass, CashDeclarationClass, CustomerGroupClass, ChannelDeliveryOptionConfigurationClass, ChannelIdentityClass, EnvironmentConfigurationClass, SearchConfigurationClass, ExtensionPackageDefinitionClass, ExtensionProfileClass, DeviceConfigurationClass, VisualProfileClass, SupportedLanguageClass, SalesTaxGroupClass, TenderTypeClass, UnitOfMeasureClass, CurrencyClass, CommissionSalesGroupClass, ChannelInventoryConfigurationClass, ChannelPurchaseConfigurationClass, InventoryJournalNameClass, DeviceClass, UserDefinedSecretCertificateResultClass, ExtensibleEnumerationContainerClass, AddressPurposeClass, ReturnPolicyClass, EmailReceiptSettingsClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n function storeQuery(): DataServiceQuery {\n return new DataServiceQuery();\n }\n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', false, DeliveryOptionClass, 'true', { bypassCache: 'none', returnEntity: 'DeliveryOption'}, { });\n }\n\n export function getDeliveryOptionsAsync(context: IContext):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createRoundAmountByTenderTypeInput(amount: number, tenderTypeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RoundAmountByTenderType', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {amount: amount, tenderTypeId: tenderTypeId });\n }\n\n export function roundAmountByTenderTypeAsync(context: IContext, amount: number, tenderTypeId?: string | null):AsyncResult {\n const request = createRoundAmountByTenderTypeInput(amount, tenderTypeId);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsByNameInput(queryResultSettings: IQueryResultSettings, affiliationNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliationsByName', true, AffiliationClass, 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, {affiliationNames: affiliationNames });\n }\n\n export function getAffiliationsByNameAsync(context: IContext, affiliationNames?: string[] | null):AsyncResult {\n const request = createGetAffiliationsByNameInput(context.queryResultSettings, affiliationNames);\n return executeAction(request, context);\n }\n \n export function createVoidSuspendedTransactionsInput(suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('VoidSuspendedTransactions', true, '', '', { bypassCache: 'get', returnEntity: ''}, {suspendedCartIds: suspendedCartIds, shiftId: shiftId, shiftTerminalId: shiftTerminalId, reasonCodeLines: reasonCodeLines });\n }\n\n export function voidSuspendedTransactionsAsync(context: IContext, suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createVoidSuspendedTransactionsInput(suspendedCartIds, shiftId, shiftTerminalId, reasonCodeLines);\n return executeAction(request, context);\n }\n \n export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: DiscountsSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, PromotionClass, 'true', { bypassCache: 'none', returnEntity: 'Promotion'}, {searchCriteria: searchCriteria });\n }\n\n export function getAvailablePromotionsAsync(context: IContext, searchCriteria?: DiscountsSearchCriteria | null):AsyncResult {\n const request = createGetAvailablePromotionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetMerchantPropertiesByServiceAccountIdInput(queryResultSettings: IQueryResultSettings, serviceAccountIds?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMerchantPropertiesByServiceAccountId', true, PaymentMerchantInformationClass, 'true', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {serviceAccountIds: serviceAccountIds });\n }\n\n export function getMerchantPropertiesByServiceAccountIdAsync(context: IContext, serviceAccountIds?: string[] | null):AsyncResult {\n const request = createGetMerchantPropertiesByServiceAccountIdInput(context.queryResultSettings, serviceAccountIds);\n return executeAction(request, context);\n }\n \n export function createGetStoreSafesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStoreSafes', true, StoreSafeClass, 'true', { bypassCache: 'none', returnEntity: 'StoreSafe'}, { });\n }\n\n export function getStoreSafesAsync(context: IContext):AsyncResult {\n const request = createGetStoreSafesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetShiftReconciliationLinesInput(queryResultSettings: IQueryResultSettings, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetShiftReconciliationLines', true, ShiftReconciliationLineClass, 'true', { bypassCache: 'none', returnEntity: 'ShiftReconciliationLine'}, {shiftReconciliationLineRetrievalCriteria: shiftReconciliationLineRetrievalCriteria });\n }\n\n export function getShiftReconciliationLinesAsync(context: IContext, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null):AsyncResult {\n const request = createGetShiftReconciliationLinesInput(context.queryResultSettings, shiftReconciliationLineRetrievalCriteria);\n return executeAction(request, context);\n }\n \n export function createReconcileLinesInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ReconcileLines', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines, Description: description });\n }\n\n export function reconcileLinesAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null):AsyncResult {\n const request = createReconcileLinesInput(shiftReconciliationLines, description);\n return executeAction(request, context);\n }\n \n export function createUndoReconciliationInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UndoReconciliation', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines });\n }\n\n export function undoReconciliationAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null):AsyncResult {\n const request = createUndoReconciliationInput(shiftReconciliationLines);\n return executeAction(request, context);\n }\n \n export function createGetReceiptMasksInput(queryResultSettings: IQueryResultSettings, receiptTransactionType?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptMasks', true, ReceiptMaskClass, 'true', { bypassCache: 'none', returnEntity: 'ReceiptMask'}, {receiptTransactionType: receiptTransactionType });\n }\n\n export function getReceiptMasksAsync(context: IContext, receiptTransactionType?: number | null):AsyncResult {\n const request = createGetReceiptMasksInput(context.queryResultSettings, receiptTransactionType);\n return executeAction(request, context);\n }\n \n export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, searchSuggestionCriteria?: SearchSuggestionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSearchSuggestions', true, SearchSuggestionClass, 'true', { bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {searchSuggestionCriteria: searchSuggestionCriteria });\n }\n\n export function getSearchSuggestionsAsync(context: IContext, searchSuggestionCriteria?: SearchSuggestionCriteria | null):AsyncResult {\n const request = createGetSearchSuggestionsInput(context.queryResultSettings, searchSuggestionCriteria);\n return executeAction(request, context);\n }\n \n export function createStartSessionInput(transactionId: string | null, overrideSession: boolean): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('StartSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId, overrideSession: overrideSession });\n }\n\n export function startSessionAsync(context: IContext, transactionId: string | null, overrideSession: boolean):AsyncResult {\n const request = createStartSessionInput(transactionId, overrideSession);\n return executeAction(request, context);\n }\n \n export function createEndSessionInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('EndSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function endSessionAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createEndSessionInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createActivateDeviceInput(deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ActivateDevice', true, DeviceActivationResultClass, 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, forceActivate: forceActivate, deviceType: deviceType });\n }\n\n export function activateDeviceAsync(context: IContext, deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null):AsyncResult {\n const request = createActivateDeviceInput(deviceNumber, terminalId, deviceId, forceActivate, deviceType);\n return executeAction(request, context);\n }\n \n export function createMassActivateDeviceInput(deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('MassActivateDevice', true, DeviceActivationResultClass, 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, deviceType: deviceType });\n }\n\n export function massActivateDeviceAsync(context: IContext, deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null):AsyncResult {\n const request = createMassActivateDeviceInput(deviceNumber, terminalId, deviceId, deviceType);\n return executeAction(request, context);\n }\n \n export function createDeactivateDeviceInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeactivateDevice', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function deactivateDeviceAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createDeactivateDeviceInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createCreateHardwareStationTokenInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateHardwareStationToken', true, CreateHardwareStationTokenResultClass, 'false', { bypassCache: 'get', returnEntity: 'CreateHardwareStationTokenResult'}, { });\n }\n\n export function createHardwareStationTokenAsync(context: IContext):AsyncResult {\n const request = createCreateHardwareStationTokenInput();\n return executeAction(request, context);\n }\n \n export function createValidateHardwareStationTokenInput(deviceNumber?: string | null, hardwareStationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateHardwareStationToken', true, ValidateHardwareStationTokenResultClass, 'false', { bypassCache: 'get', returnEntity: 'ValidateHardwareStationTokenResult'}, {deviceNumber: deviceNumber, hardwareStationToken: hardwareStationToken });\n }\n\n export function validateHardwareStationTokenAsync(context: IContext, deviceNumber?: string | null, hardwareStationToken?: string | null):AsyncResult {\n const request = createValidateHardwareStationTokenInput(deviceNumber, hardwareStationToken);\n return executeAction(request, context);\n }\n \n export function createGetBarcodeByIdInput(barcodeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBarcodeById', true, BarcodeClass, 'false', { bypassCache: 'none', returnEntity: 'Barcode'}, {barcodeId: barcodeId });\n }\n\n export function getBarcodeByIdAsync(context: IContext, barcodeId?: string | null):AsyncResult {\n const request = createGetBarcodeByIdInput(barcodeId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridByIdInput(buttonGridId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetButtonGridById', true, ButtonGridClass, 'false', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {buttonGridId: buttonGridId });\n }\n\n export function getButtonGridByIdAsync(context: IContext, buttonGridId?: string | null):AsyncResult {\n const request = createGetButtonGridByIdInput(buttonGridId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsWithoutImageInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsWithoutImage', true, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsWithoutImageAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsWithoutImageInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByIdsInput(queryResultSettings: IQueryResultSettings, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByIds', true, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {getButtonGridsByIdsCriteria: getButtonGridsByIdsCriteria });\n }\n\n export function getButtonGridsByIdsAsync(context: IContext, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null):AsyncResult {\n const request = createGetButtonGridsByIdsInput(context.queryResultSettings, getButtonGridsByIdsCriteria);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobsByPictureIdsInput(queryResultSettings: IQueryResultSettings, pictureIds: number[]): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetImageBlobsByPictureIds', true, MediaBlobClass, 'true', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {pictureIds: pictureIds });\n }\n\n export function getImageBlobsByPictureIdsAsync(context: IContext, pictureIds: number[]):AsyncResult {\n const request = createGetImageBlobsByPictureIdsInput(context.queryResultSettings, pictureIds);\n return executeAction(request, context);\n }\n \n export function createGetCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCardTypes', true, CardTypeInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CardTypeInfo'}, { });\n }\n\n export function getCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createResolveCardTypesInput(queryResultSettings: IQueryResultSettings, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ResolveCardTypes', true, CardTypeInfoClass, 'true', { bypassCache: 'get', returnEntity: 'CardTypeInfo'}, {cardNumberPrefix: cardNumberPrefix, cardType: cardType, paymentToken: paymentToken });\n }\n\n export function resolveCardTypesAsync(context: IContext, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null):AsyncResult {\n const request = createResolveCardTypesInput(context.queryResultSettings, cardNumberPrefix, cardType, paymentToken);\n return executeAction(request, context);\n }\n \n export function createGetSupportedPaymentCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSupportedPaymentCardTypes', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getSupportedPaymentCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetSupportedPaymentCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCitiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCities', true, CityInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CityInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId });\n }\n\n export function getCitiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null):AsyncResult {\n const request = createGetCitiesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsForShippingInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsForShipping', false, CountryRegionInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsForShippingAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsForShippingInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsByLanguageIdInput(queryResultSettings: IQueryResultSettings, languageId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsByLanguageId', true, CountryRegionInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, {languageId: languageId });\n }\n\n export function getCountryRegionsByLanguageIdAsync(context: IContext, languageId?: string | null):AsyncResult {\n const request = createGetCountryRegionsByLanguageIdInput(context.queryResultSettings, languageId);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelInput(channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannel', false, OnlineChannelClass, 'false', { bypassCache: 'none', returnEntity: 'OnlineChannel'}, {channelId: channelId });\n }\n\n export function getOnlineChannelAsync(context: IContext, channelId: number):AsyncResult {\n const request = createGetOnlineChannelInput(channelId);\n return executeAction(request, context);\n }\n \n export function createGetCountiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCounties', true, CountyInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountyInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId });\n }\n\n export function getCountiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null):AsyncResult {\n const request = createGetCountiesInput(context.queryResultSettings, countryRegionId, stateProvinceId);\n return executeAction(request, context);\n }\n \n export function createGetCreditMemoByIdInput(creditMemoId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCreditMemoById', true, CreditMemoClass, 'false', { bypassCache: 'none', returnEntity: 'CreditMemo'}, {creditMemoId: creditMemoId });\n }\n\n export function getCreditMemoByIdAsync(context: IContext, creditMemoId?: string | null):AsyncResult {\n const request = createGetCreditMemoByIdInput(creditMemoId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetTerminalDataStoreNameInput(terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetTerminalDataStoreName', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId });\n }\n\n export function getTerminalDataStoreNameAsync(context: IContext, terminalId?: string | null):AsyncResult {\n const request = createGetTerminalDataStoreNameInput(terminalId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadLinkInput(dataStoreName: string | null, downloadSessionId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadLink', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName, downloadSessionId: downloadSessionId });\n }\n\n export function getDownloadLinkAsync(context: IContext, dataStoreName: string | null, downloadSessionId: number):AsyncResult {\n const request = createGetDownloadLinkInput(dataStoreName, downloadSessionId);\n return executeAction(request, context);\n }\n \n export function createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataDownloadParametersByTerminal', true, DataDownloadParametersClass, 'false', { bypassCache: 'none', returnEntity: 'DataDownloadParameters'}, {TerminalDataDownloadRequestInfo: terminalDataDownloadRequestInfo });\n }\n\n export function getDataDownloadParametersByTerminalAsync(context: IContext, terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null):AsyncResult {\n const request = createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataUploadParametersByTerminal', true, DataUploadParametersClass, 'false', { bypassCache: 'none', returnEntity: 'DataUploadParameters'}, {TerminalDataUploadRequestInfo: terminalDataUploadRequestInfo });\n }\n\n export function getDataUploadParametersByTerminalAsync(context: IContext, terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null):AsyncResult {\n const request = createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDownloadSessions', true, DownloadSessionClass, 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetInitialDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInitialDownloadSessions', true, DownloadSessionClass, 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getInitialDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetInitialDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadJobDefinitionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUploadJobDefinitions', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadJobDefinitionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadJobDefinitionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUploadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createPostOfflineTransactionsInput(offlineTransactionForMPOS?: string[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('PostOfflineTransactions', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {offlineTransactionForMPOS: offlineTransactionForMPOS });\n }\n\n export function postOfflineTransactionsAsync(context: IContext, offlineTransactionForMPOS?: string[] | null):AsyncResult {\n const request = createPostOfflineTransactionsInput(offlineTransactionForMPOS);\n return executeAction(request, context);\n }\n \n export function createSetOfflineTerminalStateInput(offlineTerminalState?: OfflineTerminalState | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOfflineTerminalState', true, '', '', { bypassCache: 'get', returnEntity: ''}, {offlineTerminalState: offlineTerminalState });\n }\n\n export function setOfflineTerminalStateAsync(context: IContext, offlineTerminalState?: OfflineTerminalState | null):AsyncResult {\n const request = createSetOfflineTerminalStateInput(offlineTerminalState);\n return executeAction(request, context);\n }\n \n export function createGetRetailTrialPlanOfferInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetRetailTrialPlanOffer', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getRetailTrialPlanOfferAsync(context: IContext):AsyncResult {\n const request = createGetRetailTrialPlanOfferInput();\n return executeAction(request, context);\n }\n \n export function createGetLatestNumberSequenceInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLatestNumberSequence', true, NumberSequenceSeedDataClass, 'true', { bypassCache: 'none', returnEntity: 'NumberSequenceSeedData'}, { });\n }\n\n export function getLatestNumberSequenceAsync(context: IContext):AsyncResult {\n const request = createGetLatestNumberSequenceInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReceiptNumberResetInfoInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptNumberResetInfo', true, ReceiptNumberResetInfoClass, 'true', { bypassCache: 'none', returnEntity: 'ReceiptNumberResetInfo'}, { });\n }\n\n export function getReceiptNumberResetInfoAsync(context: IContext):AsyncResult {\n const request = createGetReceiptNumberResetInfoInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimeline', true, LoyaltyRewardPointActivityClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimelineForExpiredPoints', true, LoyaltyRewardPointActivityClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createCalculateTotalCurrencyAmountInput(currenciesAmount?: CurrencyRequest[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateTotalCurrencyAmount', true, CurrencyAmountClass, 'false', { bypassCache: 'get', returnEntity: 'CurrencyAmount'}, {currenciesAmount: currenciesAmount });\n }\n\n export function calculateTotalCurrencyAmountAsync(context: IContext, currenciesAmount?: CurrencyRequest[] | null):AsyncResult {\n const request = createCalculateTotalCurrencyAmountInput(currenciesAmount);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodeInput(discountCode?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDiscountCode', true, DiscountCodeClass, 'false', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {discountCode: discountCode });\n }\n\n export function getDiscountCodeAsync(context: IContext, discountCode?: string | null):AsyncResult {\n const request = createGetDiscountCodeInput(discountCode);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByOfferIdInput(queryResultSettings: IQueryResultSettings, offerId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByOfferId', true, DiscountCodeClass, 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {offerId: offerId });\n }\n\n export function getDiscountCodesByOfferIdAsync(context: IContext, offerId?: string | null):AsyncResult {\n const request = createGetDiscountCodesByOfferIdInput(context.queryResultSettings, offerId);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByKeywordInput(queryResultSettings: IQueryResultSettings, keyword: string | null, activeDate: Date): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByKeyword', true, DiscountCodeClass, 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {keyword: keyword, activeDate: activeDate });\n }\n\n export function getDiscountCodesByKeywordAsync(context: IContext, keyword: string | null, activeDate: Date):AsyncResult {\n const request = createGetDiscountCodesByKeywordInput(context.queryResultSettings, keyword, activeDate);\n return executeAction(request, context);\n }\n \n export function createGetDistrictsInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDistricts', true, DistrictInfoClass, 'true', { bypassCache: 'none', returnEntity: 'DistrictInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName });\n }\n\n export function getDistrictsAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null):AsyncResult {\n const request = createGetDistrictsInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName);\n return executeAction(request, context);\n }\n \n export function createGetHardwareStationProfilesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetHardwareStationProfiles', true, HardwareStationProfileClass, 'true', { bypassCache: 'none', returnEntity: 'HardwareStationProfile'}, { });\n }\n\n export function getHardwareStationProfilesAsync(context: IContext):AsyncResult {\n const request = createGetHardwareStationProfilesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetHardwareProfileByIdInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetHardwareProfileById', true, HardwareProfileClass, 'false', { bypassCache: 'none', returnEntity: 'HardwareProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getHardwareProfileByIdAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetHardwareProfileByIdInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetLocalizedStringsInput(queryResultSettings: IQueryResultSettings, languageId?: string | null, textId?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLocalizedStrings', true, LocalizedStringClass, 'true', { bypassCache: 'none', returnEntity: 'LocalizedString'}, {languageId: languageId, textId: textId });\n }\n\n export function getLocalizedStringsAsync(context: IContext, languageId?: string | null, textId?: number | null):AsyncResult {\n const request = createGetLocalizedStringsInput(context.queryResultSettings, languageId, textId);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionByIdInput(operationId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationPermissionById', true, OperationPermissionClass, 'false', { bypassCache: 'none', returnEntity: 'OperationPermission'}, {operationId: operationId });\n }\n\n export function getOperationPermissionByIdAsync(context: IContext, operationId: number):AsyncResult {\n const request = createGetOperationPermissionByIdInput(operationId);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesByIdInput(queryResultSettings: IQueryResultSettings, reasonCodeGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodesById', true, ReasonCodeClass, 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, {reasonCodeGroupId: reasonCodeGroupId });\n }\n\n export function getReasonCodesByIdAsync(context: IContext, reasonCodeGroupId?: string | null):AsyncResult {\n const request = createGetReasonCodesByIdInput(context.queryResultSettings, reasonCodeGroupId);\n return executeAction(request, context);\n }\n \n export function createSearchReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SearchReportDataSet', true, ReportDataSetClass, 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function searchReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createSearchReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetReportDataSetByIdInput(reportId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReportDataSetById', true, ReportDataSetClass, 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId });\n }\n\n export function getReportDataSetByIdAsync(context: IContext, reportId?: string | null):AsyncResult {\n const request = createGetReportDataSetByIdInput(reportId);\n return executeAction(request, context);\n }\n \n export function createGetSrsReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSrsReportDataSet', true, ReportDataSetClass, 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function getSrsReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createGetSrsReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetIncomeExpenseAccountsInput(queryResultSettings: IQueryResultSettings, incomeExpenseAccountType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetIncomeExpenseAccounts', true, IncomeExpenseAccountClass, 'true', { bypassCache: 'none', returnEntity: 'IncomeExpenseAccount'}, {incomeExpenseAccountType: incomeExpenseAccountType });\n }\n\n export function getIncomeExpenseAccountsAsync(context: IContext, incomeExpenseAccountType: number):AsyncResult {\n const request = createGetIncomeExpenseAccountsInput(context.queryResultSettings, incomeExpenseAccountType);\n return executeAction(request, context);\n }\n \n export function createGetStateProvincesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStateProvinces', true, StateProvinceInfoClass, 'true', { bypassCache: 'none', returnEntity: 'StateProvinceInfo'}, {countryRegionId: countryRegionId });\n }\n\n export function getStateProvincesAsync(context: IContext, countryRegionId?: string | null):AsyncResult {\n const request = createGetStateProvincesInput(context.queryResultSettings, countryRegionId);\n return executeAction(request, context);\n }\n \n export function createGetZipCodesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetZipCodes', true, ZipCodeInfoClass, 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName, district: district });\n }\n\n export function getZipCodesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null):AsyncResult {\n const request = createGetZipCodesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName, district);\n return executeAction(request, context);\n }\n \n export function createGetAddressFromZipCodeInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, zipPostalCode?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressFromZipCode', true, ZipCodeInfoClass, 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, zipPostalCode: zipPostalCode });\n }\n\n export function getAddressFromZipCodeAsync(context: IContext, countryRegionId?: string | null, zipPostalCode?: string | null):AsyncResult {\n const request = createGetAddressFromZipCodeInput(context.queryResultSettings, countryRegionId, zipPostalCode);\n return executeAction(request, context);\n }\n \n export function createDisassembleKitTransactionsInput(kitTransaction?: KitTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DisassembleKitTransactions', true, KitTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'KitTransaction'}, {kitTransaction: kitTransaction });\n }\n\n export function disassembleKitTransactionsAsync(context: IContext, kitTransaction?: KitTransaction | null):AsyncResult {\n const request = createDisassembleKitTransactionsInput(kitTransaction);\n return executeAction(request, context);\n }\n \n export function createIssueLoyaltyCardInput(loyaltyCard?: LoyaltyCard | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('IssueLoyaltyCard', true, LoyaltyCardClass, 'false', { bypassCache: 'get', returnEntity: 'LoyaltyCard'}, {loyaltyCard: loyaltyCard });\n }\n\n export function issueLoyaltyCardAsync(context: IContext, loyaltyCard?: LoyaltyCard | null):AsyncResult {\n const request = createIssueLoyaltyCardInput(loyaltyCard);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardInput(cardNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetLoyaltyCard', true, LoyaltyCardClass, 'false', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {cardNumber: cardNumber });\n }\n\n export function getLoyaltyCardAsync(context: IContext, cardNumber?: string | null):AsyncResult {\n const request = createGetLoyaltyCardInput(cardNumber);\n return executeAction(request, context);\n }\n \n export function createGetCustomerLoyaltyCardsInput(queryResultSettings: IQueryResultSettings, accountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerLoyaltyCards', true, LoyaltyCardClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {accountNumber: accountNumber });\n }\n\n export function getCustomerLoyaltyCardsAsync(context: IContext, accountNumber?: string | null):AsyncResult {\n const request = createGetCustomerLoyaltyCardsInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardTransactionsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyCardTransactions', true, LoyaltyCardTransactionClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCardTransaction'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyCardTransactionsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyCardTransactionsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointsExpiringSoonInput(queryResultSettings: IQueryResultSettings, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointsExpiringSoon', true, LoyaltyRewardPointActivityClass, 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId, daysToExpiry: daysToExpiry });\n }\n\n export function getLoyaltyRewardPointsExpiringSoonAsync(context: IContext, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number):AsyncResult {\n const request = createGetLoyaltyRewardPointsExpiringSoonInput(context.queryResultSettings, cardNumber, rewardPointId, daysToExpiry);\n return executeAction(request, context);\n }\n \n export function createSearchJournalTransactionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: TransactionSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalTransactions', true, TransactionClass, 'true', { bypassCache: 'none', returnEntity: 'Transaction'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalTransactionsAsync(context: IContext, searchCriteria?: TransactionSearchCriteria | null):AsyncResult {\n const request = createSearchJournalTransactionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInput(giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCard', true, GiftCardClass, 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId, tenderTypeId: tenderTypeId, pin: pin, expirationMonth: expirationMonth, expirationYear: expirationYear });\n }\n\n export function getGiftCardAsync(context: IContext, giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null):AsyncResult {\n const request = createGetGiftCardInput(giftCardId, tenderTypeId, pin, expirationMonth, expirationYear);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInquiryInput(giftCardId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCardInquiry', true, GiftCardClass, 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId });\n }\n\n export function getGiftCardInquiryAsync(context: IContext, giftCardId?: string | null):AsyncResult {\n const request = createGetGiftCardInquiryInput(giftCardId);\n return executeAction(request, context);\n }\n \n export function createGetNonSalesTransactionsInput(queryResultSettings: IQueryResultSettings, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNonSalesTransactions', true, NonSalesTransactionClass, 'true', { bypassCache: 'none', returnEntity: 'NonSalesTransaction'}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId, nonSalesTenderTypeValue: nonSalesTenderTypeValue });\n }\n\n export function getNonSalesTransactionsAsync(context: IContext, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number):AsyncResult {\n const request = createGetNonSalesTransactionsInput(context.queryResultSettings, shiftId, shiftTerminalId, nonSalesTenderTypeValue);\n return executeAction(request, context);\n }\n \n export function createCreateNonSalesTransactionInput(nonSalesTransaction?: NonSalesTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateNonSalesTransaction', true, NonSalesTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'NonSalesTransaction'}, {nonSalesTransaction: nonSalesTransaction });\n }\n\n export function createNonSalesTransactionAsync(context: IContext, nonSalesTransaction?: NonSalesTransaction | null):AsyncResult {\n const request = createCreateNonSalesTransactionInput(nonSalesTransaction);\n return executeAction(request, context);\n }\n \n export function createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction?: DropAndDeclareTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateDropAndDeclareTransaction', true, DropAndDeclareTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'DropAndDeclareTransaction'}, {dropAndDeclareTransaction: dropAndDeclareTransaction });\n }\n\n export function createDropAndDeclareTransactionAsync(context: IContext, dropAndDeclareTransaction?: DropAndDeclareTransaction | null):AsyncResult {\n const request = createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction);\n return executeAction(request, context);\n }\n \n export function createGetTaxOverridesInput(queryResultSettings: IQueryResultSettings, overrideBy?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTaxOverrides', true, TaxOverrideClass, 'true', { bypassCache: 'none', returnEntity: 'TaxOverride'}, {overrideBy: overrideBy });\n }\n\n export function getTaxOverridesAsync(context: IContext, overrideBy?: string | null):AsyncResult {\n const request = createGetTaxOverridesInput(context.queryResultSettings, overrideBy);\n return executeAction(request, context);\n }\n \n export function createGetCustomerBalanceInput(accountNumber?: string | null, invoiceAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCustomerBalance', true, CustomerBalancesClass, 'false', { bypassCache: 'none', returnEntity: 'CustomerBalances'}, {accountNumber: accountNumber, invoiceAccountNumber: invoiceAccountNumber });\n }\n\n export function getCustomerBalanceAsync(context: IContext, accountNumber?: string | null, invoiceAccountNumber?: string | null):AsyncResult {\n const request = createGetCustomerBalanceInput(accountNumber, invoiceAccountNumber);\n return executeAction(request, context);\n }\n \n export function createInitiateLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('InitiateLinkToExistingCustomer', true, LinkToExistingCustomerResultClass, 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken, emailTemplateId: emailTemplateId, emailProperties: emailProperties });\n }\n\n export function initiateLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null):AsyncResult {\n const request = createInitiateLinkToExistingCustomerInput(email, activationToken, emailTemplateId, emailProperties);\n return executeAction(request, context);\n }\n \n export function createFinalizeLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('FinalizeLinkToExistingCustomer', true, LinkToExistingCustomerResultClass, 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken });\n }\n\n export function finalizeLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null):AsyncResult {\n const request = createFinalizeLinkToExistingCustomerInput(email, activationToken);\n return executeAction(request, context);\n }\n \n export function createUnlinkFromExistingCustomerInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UnlinkFromExistingCustomer', true, '', '', { bypassCache: 'get', returnEntity: ''}, { });\n }\n\n export function unlinkFromExistingCustomerAsync(context: IContext):AsyncResult {\n const request = createUnlinkFromExistingCustomerInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflineSyncStatusInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOfflineSyncStatus', true, OfflineSyncStatsLineClass, 'true', { bypassCache: 'none', returnEntity: 'OfflineSyncStatsLine'}, { });\n }\n\n export function getOfflineSyncStatusAsync(context: IContext):AsyncResult {\n const request = createGetOfflineSyncStatusInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCount', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOfflinePendingTransactionCountAsync(context: IContext):AsyncResult {\n const request = createGetOfflinePendingTransactionCountInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountByShiftInput(shiftId: number, shiftTerminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCountByShift', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId });\n }\n\n export function getOfflinePendingTransactionCountByShiftAsync(context: IContext, shiftId: number, shiftTerminalId?: string | null):AsyncResult {\n const request = createGetOfflinePendingTransactionCountByShiftInput(shiftId, shiftTerminalId);\n return executeAction(request, context);\n }\n \n export function createUpdateDownloadSessionInput(downloadSession?: DownloadSession | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateDownloadSession', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {downloadSession: downloadSession });\n }\n\n export function updateDownloadSessionAsync(context: IContext, downloadSession?: DownloadSession | null):AsyncResult {\n const request = createUpdateDownloadSessionInput(downloadSession);\n return executeAction(request, context);\n }\n \n export function createUpdateApplicationVersionInput(appVersion?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateApplicationVersion', true, '', '', { bypassCache: 'get', returnEntity: ''}, {appVersion: appVersion });\n }\n\n export function updateApplicationVersionAsync(context: IContext, appVersion?: string | null):AsyncResult {\n const request = createUpdateApplicationVersionInput(appVersion);\n return executeAction(request, context);\n }\n \n export function createGetStorageAccessTokenForUploadInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetStorageAccessTokenForUpload', true, StorageAccessTokenClass, 'false', { bypassCache: 'none', returnEntity: 'StorageAccessToken'}, { });\n }\n\n export function getStorageAccessTokenForUploadAsync(context: IContext):AsyncResult {\n const request = createGetStorageAccessTokenForUploadInput();\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibrariesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibraries', true, FrameworkClass, 'true', { bypassCache: 'none', returnEntity: 'Framework'}, { });\n }\n\n export function getBusinessProcessModelLibrariesAsync(context: IContext):AsyncResult {\n const request = createGetBusinessProcessModelLibrariesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId: number, hierarchyDepth: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibrary', true, FrameworkClass, 'false', { bypassCache: 'none', returnEntity: 'Framework'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, hierarchyDepth: hierarchyDepth });\n }\n\n export function getBusinessProcessModelLibraryAsync(context: IContext, businessProcessModelFrameworkLineId: number, hierarchyDepth: number):AsyncResult {\n const request = createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId, hierarchyDepth);\n return executeAction(request, context);\n }\n \n export function createSearchTaskGuidesByTitleInput(queryResultSettings: IQueryResultSettings, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchTaskGuidesByTitle', true, TaskGuidesSearchResultClass, 'true', { bypassCache: 'none', returnEntity: 'TaskGuidesSearchResult'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, taskGuideSearchText: taskGuideSearchText, queryTypeValue: queryTypeValue });\n }\n\n export function searchTaskGuidesByTitleAsync(context: IContext, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number):AsyncResult {\n const request = createSearchTaskGuidesByTitleInput(context.queryResultSettings, businessProcessModelFrameworkLineId, taskGuideSearchText, queryTypeValue);\n return executeAction(request, context);\n }\n \n export function createGenerateBusinessProcessModelPackageInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateBusinessProcessModelPackage', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateBusinessProcessModelPackageAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateBusinessProcessModelPackageInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createDownloadRecordingInput(businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DownloadRecording', true, RecordingClass, 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function downloadRecordingAsync(context: IContext, businessProcessModelLineId: number):AsyncResult {\n const request = createDownloadRecordingInput(businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createLoadRecordingFromFileInput(recordingUrl?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('LoadRecordingFromFile', true, RecordingClass, 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {recordingUrl: recordingUrl });\n }\n\n export function loadRecordingFromFileAsync(context: IContext, recordingUrl?: string | null):AsyncResult {\n const request = createLoadRecordingFromFileInput(recordingUrl);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingFileInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingFile', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingFileAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingFileInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateTrainingDocumentInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateTrainingDocument', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateTrainingDocumentAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateTrainingDocumentInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingBundleInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingBundle', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingBundleAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingBundleInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createUploadRecordingInput(taskRecording: Recording | null, businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UploadRecording', true, '', '', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording, businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function uploadRecordingAsync(context: IContext, taskRecording: Recording | null, businessProcessModelLineId: number):AsyncResult {\n const request = createUploadRecordingInput(taskRecording, businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createGetAttributeDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeDefinitions', true, AttributeDefinitionClass, 'true', { bypassCache: 'none', returnEntity: 'AttributeDefinition'}, {attributeDefinitionCriteria: attributeDefinitionCriteria });\n }\n\n export function getAttributeDefinitionsAsync(context: IContext, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeDefinitionsInput(context.queryResultSettings, attributeDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAttributeGroupDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeGroupDefinitions', true, AttributeGroupDefinitionClass, 'true', { bypassCache: 'none', returnEntity: 'AttributeGroupDefinition'}, {attributeGroupDefinitionCriteria: attributeGroupDefinitionCriteria });\n }\n\n export function getAttributeGroupDefinitionsAsync(context: IContext, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeGroupDefinitionsInput(context.queryResultSettings, attributeGroupDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalTransactionInput(fiscalTransaction?: FiscalTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalTransaction', true, '', '', { bypassCache: 'get', returnEntity: ''}, {fiscalTransaction: fiscalTransaction });\n }\n\n export function saveFiscalTransactionAsync(context: IContext, fiscalTransaction?: FiscalTransaction | null):AsyncResult {\n const request = createSaveFiscalTransactionInput(fiscalTransaction);\n return executeAction(request, context);\n }\n \n export function createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint?: SalesOrder | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidatePrintReceiptCopyAllowed', true, '', '', { bypassCache: 'get', returnEntity: ''}, {salesOrderToPrint: salesOrderToPrint });\n }\n\n export function validatePrintReceiptCopyAllowedAsync(context: IContext, salesOrderToPrint?: SalesOrder | null):AsyncResult {\n const request = createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint);\n return executeAction(request, context);\n }\n \n export function createRegisterAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAuditEvent', true, '', '', { bypassCache: 'get', returnEntity: ''}, {auditEvent: auditEvent });\n }\n\n export function registerAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createRegisterAndGetAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAndGetAuditEvent', true, AuditEventClass, 'false', { bypassCache: 'get', returnEntity: 'AuditEvent'}, {auditEvent: auditEvent });\n }\n\n export function registerAndGetAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAndGetAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createGetInventoryAvailableToPromiseInput(queryResultSettings: IQueryResultSettings, productId: number, itemId?: string | null, inventLocationId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInventoryAvailableToPromise', true, InventoryAvailableToPromiseClass, 'true', { bypassCache: 'none', returnEntity: 'InventoryAvailableToPromise'}, {productId: productId, itemId: itemId, inventLocationId: inventLocationId });\n }\n\n export function getInventoryAvailableToPromiseAsync(context: IContext, productId: number, itemId?: string | null, inventLocationId?: string | null):AsyncResult {\n const request = createGetInventoryAvailableToPromiseInput(context.queryResultSettings, productId, itemId, inventLocationId);\n return executeAction(request, context);\n }\n \n export function createGetSalesOrdersWithNoFiscalTransactionsInput(queryResultSettings: IQueryResultSettings, storeNumber?: string | null, terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesOrdersWithNoFiscalTransactions', true, SalesOrderClass, 'true', { bypassCache: 'none', returnEntity: 'SalesOrder'}, {storeNumber: storeNumber, terminalId: terminalId });\n }\n\n export function getSalesOrdersWithNoFiscalTransactionsAsync(context: IContext, storeNumber?: string | null, terminalId?: string | null):AsyncResult {\n const request = createGetSalesOrdersWithNoFiscalTransactionsInput(context.queryResultSettings, storeNumber, terminalId);\n return executeAction(request, context);\n }\n \n export function createGetNotificationsInput(queryResultSettings: IQueryResultSettings, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNotifications', true, NotificationItemClass, 'true', { bypassCache: 'none', returnEntity: 'NotificationItem'}, {subscribedOperations: subscribedOperations, extensionProperties: extensionProperties });\n }\n\n export function getNotificationsAsync(context: IContext, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetNotificationsInput(context.queryResultSettings, subscribedOperations, extensionProperties);\n return executeAction(request, context);\n }\n \n export function createAcknowledgeNotificationsInput(lastPullDateTime: Date): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('AcknowledgeNotifications', true, '', '', { bypassCache: 'get', returnEntity: ''}, {lastPullDateTime: lastPullDateTime });\n }\n\n export function acknowledgeNotificationsAsync(context: IContext, lastPullDateTime: Date):AsyncResult {\n const request = createAcknowledgeNotificationsInput(lastPullDateTime);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationNonFiscalDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationNonFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceSetupDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceSetupDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceReadDataDocument', true, FiscalIntegrationDocumentClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceReadDataDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ProcessFiscalIntegrationFiscalServiceReadDataResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, documentToProcess: documentToProcess, connectorType: connectorType });\n }\n\n export function processFiscalIntegrationFiscalServiceReadDataResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null):AsyncResult {\n const request = createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId, functionalityProfileGroupId, documentToProcess, connectorType);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalIntegrationRegistrationResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function saveFiscalIntegrationRegistrationResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null):AsyncResult {\n const request = createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId, functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationRegistrationProcessInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationRegistrationProcess', true, FiscalIntegrationRegistrationProcessClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationRegistrationProcess'}, { });\n }\n\n export function getFiscalIntegrationRegistrationProcessAsync(context: IContext):AsyncResult {\n const request = createGetFiscalIntegrationRegistrationProcessInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelSupportedFiscalIntegrationEventsByGroup', true, FiscalIntegrationSupportedEventsClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSupportedEvents'}, {functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getChannelSupportedFiscalIntegrationEventsByGroupAsync(context: IContext, functionalityProfileGroupId?: string | null):AsyncResult {\n const request = createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfiles', true, FiscalIntegrationTechnicalProfileClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesInput(context.queryResultSettings, hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIds', true, FiscalIntegrationTechnicalProfileClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(context.queryResultSettings, hardwareProfileId, functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createBackupFiscalRegistrationProcessContextInput(terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('BackupFiscalRegistrationProcessContext', true, '', '', { bypassCache: 'get', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId, fiscalProcessCompleted: fiscalProcessCompleted, fiscalIntegrationSerializedContext: fiscalIntegrationSerializedContext });\n }\n\n export function backupFiscalRegistrationProcessContextAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null):AsyncResult {\n const request = createBackupFiscalRegistrationProcessContextInput(terminalId, storeNumber, channelId, fiscalProcessCompleted, fiscalIntegrationSerializedContext);\n return executeAction(request, context);\n }\n \n export function createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId: string | null, storeNumber: string | null, channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetActiveFiscalRegistrationProcessContextBackup', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId });\n }\n\n export function getActiveFiscalRegistrationProcessContextBackupAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number):AsyncResult {\n const request = createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId, storeNumber, channelId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesBySearchCriteria', true, FiscalIntegrationTechnicalProfileClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria: fiscalIntegrationTechnicalProfileSearchCriteria });\n }\n\n export function getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync(context: IContext, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(context.queryResultSettings, hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationServiceStatus', true, FiscalIntegrationServiceStatusClass, 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationServiceStatus'}, {fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function getFiscalIntegrationServiceStatusAsync(context: IContext, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createSubmitFiscalIntegrationDocumentInput(documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SubmitFiscalIntegrationDocument', true, FiscalIntegrationServiceCommunicationResultClass, 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationServiceCommunicationResult'}, {documentToSubmit: documentToSubmit, fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function submitFiscalIntegrationDocumentAsync(context: IContext, documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createSubmitFiscalIntegrationDocumentInput(documentToSubmit, fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createGetFeatureStatesInput(queryResultSettings: IQueryResultSettings, featureNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFeatureStates', true, FeatureStateClass, 'true', { bypassCache: 'none', returnEntity: 'FeatureState'}, {featureNames: featureNames });\n }\n\n export function getFeatureStatesAsync(context: IContext, featureNames?: string[] | null):AsyncResult {\n const request = createGetFeatureStatesInput(context.queryResultSettings, featureNames);\n return executeAction(request, context);\n }\n \n export function createGetLastFiscalIntegrationSequentialSignaturesInput(queryResultSettings: IQueryResultSettings, sequentialKeys?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLastFiscalIntegrationSequentialSignatures', true, FiscalIntegrationSequentialSignatureDataClass, 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSequentialSignatureData'}, {sequentialKeys: sequentialKeys });\n }\n\n export function getLastFiscalIntegrationSequentialSignaturesAsync(context: IContext, sequentialKeys?: string[] | null):AsyncResult {\n const request = createGetLastFiscalIntegrationSequentialSignaturesInput(context.queryResultSettings, sequentialKeys);\n return executeAction(request, context);\n }\n \n export function createCreateFiscalTransactionInput(functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateFiscalTransaction', true, FiscalTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'FiscalTransaction'}, {functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function createFiscalTransactionAsync(context: IContext, functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number):AsyncResult {\n const request = createCreateFiscalTransactionInput(functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetEstimatedPickupTimeslotAvailabilitiesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEstimatedPickupTimeslotAvailabilities', true, PickupTimeslotAvailabilityClass, 'true', { bypassCache: 'none', returnEntity: 'PickupTimeslotAvailability'}, {searchCriteria: searchCriteria });\n }\n\n export function getEstimatedPickupTimeslotAvailabilitiesAsync(context: IContext, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedPickupTimeslotAvailabilitiesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createCalculateSalesDocumentInput(salesDocument?: Cart | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateSalesDocument', true, CartClass, 'false', { bypassCache: 'get', returnEntity: 'Cart'}, {salesDocument: salesDocument });\n }\n\n export function calculateSalesDocumentAsync(context: IContext, salesDocument?: Cart | null):AsyncResult {\n const request = createCalculateSalesDocumentInput(salesDocument);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGrids', false, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, { });\n }\n\n export function getButtonGridsAsync(context: IContext):AsyncResult {\n const request = createGetButtonGridsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByScreenSizeInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByScreenSize', false, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsByScreenSizeAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsByScreenSizeInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetOperationalInsightsConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationalInsightsConfiguration', false, OperationalInsightsConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'OperationalInsightsConfiguration'}, { });\n }\n\n export function getOperationalInsightsConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetOperationalInsightsConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetCashDeclarationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCashDeclarations', false, CashDeclarationClass, 'true', { bypassCache: 'none', returnEntity: 'CashDeclaration'}, { });\n }\n\n export function getCashDeclarationsAsync(context: IContext):AsyncResult {\n const request = createGetCashDeclarationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegions', false, CountryRegionInfoClass, 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCustomerGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerGroups', false, CustomerGroupClass, 'true', { bypassCache: 'none', returnEntity: 'CustomerGroup'}, { });\n }\n\n export function getCustomerGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCustomerGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetChannelDeliveryOptionConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelDeliveryOptionConfiguration', false, ChannelDeliveryOptionConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'ChannelDeliveryOptionConfiguration'}, { });\n }\n\n export function getChannelDeliveryOptionConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetChannelDeliveryOptionConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelsByTypeInput(queryResultSettings: IQueryResultSettings, channelType?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelsByType', false, ChannelIdentityClass, 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {channelType: channelType });\n }\n\n export function getChannelsByTypeAsync(context: IContext, channelType?: string | null):AsyncResult {\n const request = createGetChannelsByTypeInput(context.queryResultSettings, channelType);\n return executeAction(request, context);\n }\n \n export function createGetChannelsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannels', false, ChannelIdentityClass, 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, { });\n }\n\n export function getChannelsAsync(context: IContext):AsyncResult {\n const request = createGetChannelsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchChannelsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ChannelSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchChannels', true, ChannelIdentityClass, 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {searchCriteria: searchCriteria });\n }\n\n export function searchChannelsAsync(context: IContext, searchCriteria?: ChannelSearchCriteria | null):AsyncResult {\n const request = createSearchChannelsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetEnvironmentConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetEnvironmentConfiguration', false, EnvironmentConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'EnvironmentConfiguration'}, { });\n }\n\n export function getEnvironmentConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetEnvironmentConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetSearchConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSearchConfiguration', false, SearchConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'SearchConfiguration'}, { });\n }\n\n export function getSearchConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetSearchConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetExtensionPackageDefinitionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensionPackageDefinitions', false, ExtensionPackageDefinitionClass, 'true', { bypassCache: 'none', returnEntity: 'ExtensionPackageDefinition'}, { });\n }\n\n export function getExtensionPackageDefinitionsAsync(context: IContext):AsyncResult {\n const request = createGetExtensionPackageDefinitionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetExtensionProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetExtensionProfile', false, ExtensionProfileClass, 'false', { bypassCache: 'none', returnEntity: 'ExtensionProfile'}, { });\n }\n\n export function getExtensionProfileAsync(context: IContext):AsyncResult {\n const request = createGetExtensionProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetDeviceConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDeviceConfiguration', false, DeviceConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'DeviceConfiguration'}, { });\n }\n\n export function getDeviceConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetDeviceConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetVisualProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetVisualProfile', false, VisualProfileClass, 'false', { bypassCache: 'none', returnEntity: 'VisualProfile'}, { });\n }\n\n export function getVisualProfileAsync(context: IContext):AsyncResult {\n const request = createGetVisualProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLanguages', false, SupportedLanguageClass, 'true', { bypassCache: 'none', returnEntity: 'SupportedLanguage'}, { });\n }\n\n export function getLanguagesAsync(context: IContext):AsyncResult {\n const request = createGetLanguagesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliations', false, AffiliationClass, 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, { });\n }\n\n export function getAffiliationsAsync(context: IContext):AsyncResult {\n const request = createGetAffiliationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOperationPermissions', false, OperationPermissionClass, 'true', { bypassCache: 'none', returnEntity: 'OperationPermission'}, { });\n }\n\n export function getOperationPermissionsAsync(context: IContext):AsyncResult {\n const request = createGetOperationPermissionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodes', false, ReasonCodeClass, 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnOrderReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReturnOrderReasonCodes', false, ReasonCodeClass, 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReturnOrderReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReturnOrderReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetSalesTaxGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesTaxGroups', false, SalesTaxGroupClass, 'true', { bypassCache: 'none', returnEntity: 'SalesTaxGroup'}, { });\n }\n\n export function getSalesTaxGroupsAsync(context: IContext):AsyncResult {\n const request = createGetSalesTaxGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetTenderTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTenderTypes', false, TenderTypeClass, 'true', { bypassCache: 'none', returnEntity: 'TenderType'}, { });\n }\n\n export function getTenderTypesAsync(context: IContext):AsyncResult {\n const request = createGetTenderTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, UnitOfMeasureClass, 'true', { bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n }\n\n export function getUnitsOfMeasureAsync(context: IContext):AsyncResult {\n const request = createGetUnitsOfMeasureInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodes', false, DiscountCodeClass, 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, { });\n }\n\n export function getDiscountCodesAsync(context: IContext):AsyncResult {\n const request = createGetDiscountCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrencies', false, CurrencyClass, 'true', { bypassCache: 'none', returnEntity: 'Currency'}, { });\n }\n\n export function getCurrenciesAsync(context: IContext):AsyncResult {\n const request = createGetCurrenciesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesAmountInput(queryResultSettings: IQueryResultSettings, currencyCode: string | null, amount: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrenciesAmount', false, CurrencyAmountClass, 'true', { bypassCache: 'none', returnEntity: 'CurrencyAmount'}, {currencyCode: currencyCode, amount: amount });\n }\n\n export function getCurrenciesAmountAsync(context: IContext, currencyCode: string | null, amount: number):AsyncResult {\n const request = createGetCurrenciesAmountInput(context.queryResultSettings, currencyCode, amount);\n return executeAction(request, context);\n }\n \n export function createGetCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCommissionSalesGroups', false, CommissionSalesGroupClass, 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, { });\n }\n\n export function getCommissionSalesGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCommissionSalesGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings, searchText?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchCommissionSalesGroups', false, CommissionSalesGroupClass, 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, {searchText: searchText });\n }\n\n export function searchCommissionSalesGroupsAsync(context: IContext, searchText?: string | null):AsyncResult {\n const request = createSearchCommissionSalesGroupsInput(context.queryResultSettings, searchText);\n return executeAction(request, context);\n }\n \n export function createGetPaymentMerchantInformationInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentMerchantInformation', false, PaymentMerchantInformationClass, 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getPaymentMerchantInformationAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetPaymentMerchantInformationInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetPaymentPropertiesIfModifiedInput(hardwareProfileId?: string | null, merchantInformationHash?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentPropertiesIfModified', false, PaymentMerchantInformationClass, 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId, merchantInformationHash: merchantInformationHash });\n }\n\n export function getPaymentPropertiesIfModifiedAsync(context: IContext, hardwareProfileId?: string | null, merchantInformationHash?: string | null):AsyncResult {\n const request = createGetPaymentPropertiesIfModifiedInput(hardwareProfileId, merchantInformationHash);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelPublishStatusInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannelPublishStatus', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOnlineChannelPublishStatusAsync(context: IContext):AsyncResult {\n const request = createGetOnlineChannelPublishStatusInput();\n return executeAction(request, context);\n }\n \n export function createSetOnlineChannelPublishStatusInput(publishingStatus: number, statusMessage?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOnlineChannelPublishStatus', true, '', '', { bypassCache: 'get', returnEntity: ''}, {publishingStatus: publishingStatus, statusMessage: statusMessage });\n }\n\n export function setOnlineChannelPublishStatusAsync(context: IContext, publishingStatus: number, statusMessage?: string | null):AsyncResult {\n const request = createSetOnlineChannelPublishStatusInput(publishingStatus, statusMessage);\n return executeAction(request, context);\n }\n \n export function createGetInventoryConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetInventoryConfiguration', false, ChannelInventoryConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'ChannelInventoryConfiguration'}, { });\n }\n\n export function getInventoryConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetInventoryConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetPurchaseConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPurchaseConfiguration', false, ChannelPurchaseConfigurationClass, 'false', { bypassCache: 'none', returnEntity: 'ChannelPurchaseConfiguration'}, { });\n }\n\n export function getPurchaseConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetPurchaseConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createSearchJournalNamesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryJournalNameSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalNames', true, InventoryJournalNameClass, 'true', { bypassCache: 'none', returnEntity: 'InventoryJournalName'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalNamesAsync(context: IContext, searchCriteria?: InventoryJournalNameSearchCriteria | null):AsyncResult {\n const request = createSearchJournalNamesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAvailableDevicesInput(queryResultSettings: IQueryResultSettings, deviceType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableDevices', false, DeviceClass, 'true', { bypassCache: 'none', returnEntity: 'Device'}, {deviceType: deviceType });\n }\n\n export function getAvailableDevicesAsync(context: IContext, deviceType: number):AsyncResult {\n const request = createGetAvailableDevicesInput(context.queryResultSettings, deviceType);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretStringInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretString', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretStringAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretStringInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretCertificateInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretCertificate', false, UserDefinedSecretCertificateResultClass, 'false', { bypassCache: 'none', returnEntity: 'UserDefinedSecretCertificateResult'}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretCertificateAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretCertificateInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobInput(imageId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetImageBlob', false, MediaBlobClass, 'false', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {imageId: imageId });\n }\n\n export function getImageBlobAsync(context: IContext, imageId: number):AsyncResult {\n const request = createGetImageBlobInput(imageId);\n return executeAction(request, context);\n }\n \n export function createGetExtensibleEnumerationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensibleEnumerations', false, ExtensibleEnumerationContainerClass, 'true', { bypassCache: 'none', returnEntity: 'ExtensibleEnumerationContainer'}, { });\n }\n\n export function getExtensibleEnumerationsAsync(context: IContext):AsyncResult {\n const request = createGetExtensibleEnumerationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAddressPurposesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressPurposes', false, AddressPurposeClass, 'true', { bypassCache: 'none', returnEntity: 'AddressPurpose'}, { });\n }\n\n export function getAddressPurposesAsync(context: IContext):AsyncResult {\n const request = createGetAddressPurposesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnPolicyInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReturnPolicy', false, ReturnPolicyClass, 'false', { bypassCache: 'none', returnEntity: 'ReturnPolicy'}, { });\n }\n\n export function getReturnPolicyAsync(context: IContext):AsyncResult {\n const request = createGetReturnPolicyInput();\n return executeAction(request, context);\n }\n \n export function createGetEmailReceiptSettingsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEmailReceiptSettings', false, EmailReceiptSettingsClass, 'true', { bypassCache: 'none', returnEntity: 'EmailReceiptSettings'}, { });\n }\n\n export function getEmailReceiptSettingsAsync(context: IContext):AsyncResult {\n const request = createGetEmailReceiptSettingsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n ","\n // \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 if (extraData && typeof extraData == 'object' && extraData.request && extraData.request.headers) {\n extraData.request.headers = {};\n }\n this._extraData = extraData;\n }\n\n /**\n * Takes a proxy error and returns a proper JS error version of it\n * @param proxyError The proxyError\n */\n public static toError(proxyError: ProxyError): Error {\n const errorName = proxyError.ErrorCode || 'Proxy Error';\n const errorMessage = proxyError.ErrorMessage || proxyError.LocalizedErrorMessage;\n const e = new ProxyErrorSDK(errorName, errorMessage, proxyError.CanRetry);\n\n // Assign extra error details to error.\n // ts-ignoring as the standard error contract only supports name and message\n if (proxyError.extraData) {\n e.requestUri = proxyError.extraData.requestUri;\n\n e.data = proxyError.extraData.data;\n\n e.statusCode = proxyError.extraData.statusCode;\n }\n\n return e;\n }\n\n /**\n * Gets the commerce exception that caused this error.\n *\n * @return {any} The commerce exception.\n */\n public get commerceException(): any {\n return this._commerceException;\n }\n\n /**\n * Sets the commerce exception that caused this error.\n *\n * @param {any} exception The commerce exception.\n */\n public set commerceException(exception: any) {\n this._commerceException = exception;\n }\n\n /**\n * Gets the error code.\n *\n * @return {string} The error code.\n */\n public get ErrorCode(): string {\n return this._errorCode;\n }\n\n /**\n * Gets the error message.\n *\n * @return {string} The error message.\n */\n public get ErrorMessage(): string {\n return this._errorMessage;\n }\n\n /**\n * Gets the localized error message.\n *\n * @return {string} The localized error message.\n */\n public get LocalizedErrorMessage(): string {\n return this._localizedErrorMessage;\n }\n\n /**\n * Gets the format data used on formatted error messages.\n *\n * @return {any[]} The format data.\n */\n public get formatData(): any[] {\n return this._formatData;\n }\n\n /**\n * Gets the additional information the might be supplied by the error.\n *\n * @return {any} The extra data.\n */\n public get extraData(): any {\n return this._extraData;\n }\n\n /**\n * Gets the error title. Defaults to the resource string string_29004 for the error title if\n * no error title is mapped for the error.\n */\n public get ErrorTitleResourceId(): string {\n const errorTitleResourceId = 'string_29004'; // Error string: There is a problem with the server\n return errorTitleResourceId;\n }\n\n /**\n * Gets whether the action that generated the error can be retried.\n *\n * @return {string} Whether the action that generated the error can be retried.\n */\n public get CanRetry(): boolean {\n return this._canRetry;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// TODO - refactor to incorporate inbuilt JS extension method\n// TODO - integrate Trace.error\n\nexport const EMPTY = '';\n\nexport function convertToString(obj: any, accumulator: string[] = [], depth: number = 0): string {\n if (!obj) {\n return null;\n }\n\n if (typeof obj === 'string') {\n return obj;\n }\n\n if (typeof obj !== 'object') {\n return obj.toString();\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n const value = obj[prop];\n const stringifyValue = convertToString(value, accumulator, depth + 1);\n if (stringifyValue) {\n if (accumulator.length > 0 && depth === 0) {\n accumulator.push('&');\n }\n accumulator.push(prop);\n accumulator.push(typeof value === 'object' ? '.' : ':');\n accumulator.push(stringifyValue);\n }\n }\n }\n\n if (depth === 0) {\n return accumulator.join(EMPTY);\n }\n}\n\n/**\n * Verifies whether the object array has elements.\n *\n * @param {any[]} array The array.\n * @return {boolean} True if the object has elements, false otherwise.\n */\nexport function hasElements(array?: any[]): boolean {\n return !!array && array.length > 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isObjectNotEmptyOrNull(value: object): boolean {\n return value && typeof value === 'object' && Object.keys(value).length > 0;\n}\n\n/**\n * Verifies whether the string is empty, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty, false otherwise.\n */\nexport function isEmpty(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmpty() has received input parameter not of type string.\");\n }\n return object != null && object.length === 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isEmptyOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace() has received input parameter not of type string.\");\n }\n if (object) {\n // Make sure object is of type string\n object = object.toString();\n\n return typeof object.trim === 'function' && (object.trim() || '').length === 0;\n }\n return false;\n}\n\n/**\n * Verifies whether the string is null or whitespace.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is null or whitespace, false otherwise.\n */\nexport function isNullOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isNullOrWhitespace() has received input parameter not of type string.\");\n }\n let returnValue = true;\n try {\n returnValue = !object;\n if (!returnValue) {\n // Make sure object is of type string\n object = object.toString();\n returnValue = object.trim().length === 0;\n }\n } catch (err) {\n // Commerce.Proxy.Tracer.Error(\"StringExtensions.isNullOrWhitespace() caught exception = {0}\", err.message);\n }\n\n return returnValue;\n}\n\n/**\n * Pad left with padString until the required length is reached.\n */\nexport function padLeft(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padLeft() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object = padString + object;\n }\n return object;\n}\n\n/**\n * Pad right with padString until the required length is reached.\n */\nexport function padRight(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padRight() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object += padString;\n }\n return object;\n}\n\n/**\n * Basic C# like string format function.\n */\nexport function format(object: string, ...params: any[]): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace has received input parameter not of type string.\");\n }\n\n if (isNullOrWhitespace(object)) {\n return object;\n }\n\n if (params == null) {\n throw new Error('StringExtensions::format Invalid parameter (params) cannot be null.');\n }\n\n for (let index = 0; index < params.length; index++) {\n if (params[index] == null) {\n throw new Error('StringExtensions::format Invalid parameter (at index ' + index + ') cannot be null or undefined.');\n }\n\n // escape '$' to avoid '$0' issue, '$$$$' means '$$' escaped\n const param = params[index].toString().replace(/\\$/gi, '$$$$');\n const regexp = new RegExp('\\\\{' + index + '\\\\}', 'gi');\n object = object.replace(regexp, param);\n }\n\n return object;\n}\n\n/**\n * Returns an ordinal to indicate the ordering of the strings\n * -1: This object is less than comparison object\n * 0: This object is equal to the comparison object\n * 1: This object is greater than the comparison object\n */\nexport function compare(object: string, comparisonObject: string, ignoreCase?: boolean): number {\n if (!object && !comparisonObject) {\n return 0;\n } else if (!object) {\n return -1;\n } else if (!comparisonObject) {\n return 1;\n }\n\n const val1: string = ignoreCase ? object.toLowerCase() : object;\n const val2: string = ignoreCase ? comparisonObject.toLowerCase() : comparisonObject;\n\n return val1 < val2 ? -1 : val1 > val2 ? 1 : 0;\n}\n\n/**\n * Replaces new line character with
for display.\n */\nexport function replaceNewLineWithBr(text: string) {\n if (text) {\n return replaceAll(text, '\\n', '
');\n }\n\n return text;\n}\n\n/**\n * Replaces all instances of @txtToReplace\n */\nexport function replaceAll(txt, txtToReplace, valueToReplaceWith) {\n return txt.replace(new RegExp(txtToReplace, 'g'), valueToReplaceWith);\n}\n\n/**\n * Escapes single quote to be send as part of URLs.\n */\nexport function escapeSingleQuote(text: string) {\n return text.replace(/(')/g, '\\'$1');\n}\n\n/**\n * Removes the trailing slashes from the URI.\n *\n * @param {string} uri The URI to clean.\n * @return {string} The uri without trailing slashes.\n */\nexport function CleanUri(uri: string): string {\n if (isNullOrWhitespace(uri)) {\n return EMPTY;\n }\n\n // the cutoff index for the string\n let cutoffIndex = uri.length - 1;\n\n while (cutoffIndex >= 0 && (uri[cutoffIndex] === '/' || uri[cutoffIndex] === '\\\\')) {\n --cutoffIndex;\n }\n\n // if it ever becomes negative, cutoffIndex + 1 = 0\n return uri.substr(0, cutoffIndex + 1);\n}\n\n/**\n * Determines whether the end of string matches a specified string.\n *\n * @param {string} str: The string to search in.\n * @param {string} suffix: The string to compare to the substring at the end of str.\n * @param {boolean} caseSensitive: Determines if the comparison case sensitive (false, by default)\n * @return {boolean} true if suffix matches the end of str; otherwise, false.\n */\nexport function endsWith(str: string, suffix: string, caseSensitive: boolean = false): boolean {\n if (!str || !suffix) {\n return false;\n }\n if (suffix.length > str.length) {\n return false;\n }\n\n const originalString: string = caseSensitive ? str : str.toLowerCase();\n const subString: string = caseSensitive ? suffix : suffix.toLowerCase();\n return originalString.indexOf(subString, originalString.length - subString.length) !== -1;\n}\n","\n // \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, catalogId?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByIds', true, SimpleProductClass, 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productIds: productIds, inventLocationId: inventLocationId, catalogId: catalogId });\n } \n \n export function getByIdsAsync(context: IContext, channelId: number, productIds: number[], inventLocationId?: string | null, catalogId?: number | null):AsyncResult {\n const request = createGetByIdsInput(context.queryResultSettings, channelId, productIds, inventLocationId, catalogId);\n return executeAction(request, context);\n } \n \n export function createCompareInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Compare', true, ProductComparisonLineClass, 'true', {bypassCache: 'get', returnEntity: 'ProductComparisonLine'}, {channelId: channelId, catalogId: catalogId, productIds: productIds });\n } \n \n export function compareAsync(context: IContext, channelId: number, catalogId: number, productIds: number[]):AsyncResult {\n const request = createCompareInput(context.queryResultSettings, channelId, catalogId, productIds);\n return executeAction(request, context);\n } \n \n export function createGetRecommendedProductsInput(queryResultSettings: IQueryResultSettings, productIds: number[], customerId?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRecommendedProducts', true, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {productIds: productIds, customerId: customerId });\n } \n \n export function getRecommendedProductsAsync(context: IContext, productIds: number[], customerId?: string | null):AsyncResult {\n const request = createGetRecommendedProductsInput(context.queryResultSettings, productIds, customerId);\n return executeAction(request, context);\n } \n \n export function createRefineSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('RefineSearchByCategory', true, ProductSearchResultClass, 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId, refinementCriteria: refinementCriteria });\n } \n \n export function refineSearchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult {\n const request = createRefineSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId, refinementCriteria);\n return executeAction(request, context);\n } \n \n export function createRefineSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('RefineSearchByText', true, ProductSearchResultClass, 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText, refinementCriteria: refinementCriteria });\n } \n \n export function refineSearchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult {\n const request = createRefineSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText, refinementCriteria);\n return executeAction(request, context);\n } \n \n export function createGetProductSearchRefinersInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductSearchRefiners', true, ProductRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {searchCriteria: searchCriteria });\n } \n \n export function getProductSearchRefinersAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createGetProductSearchRefinersInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, productIds: number[], address?: Address | null, filterOption?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, ProductDeliveryOptionsClass, 'true', {bypassCache: 'none', returnEntity: 'ProductDeliveryOptions'}, {productIds: productIds, address: address, filterOption: filterOption });\n } \n \n export function getDeliveryOptionsAsync(context: IContext, productIds: number[], address?: Address | null, filterOption?: number | null):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings, productIds, address, filterOption);\n return executeAction(request, context);\n } \n \n export function createChangesInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Changes', true, ProductClass, 'true', {bypassCache: 'get', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function changesAsync(context: IContext, productSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createChangesInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createBeginReadChangedProductsInput(changedProductSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('BeginReadChangedProducts', true, ReadChangedProductsSessionClass, 'false', {bypassCache: 'get', returnEntity: 'ReadChangedProductsSession'}, {changedProductSearchCriteria: changedProductSearchCriteria });\n } \n \n export function beginReadChangedProductsAsync(context: IContext, changedProductSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createBeginReadChangedProductsInput(changedProductSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createReadChangedProductsInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ReadChangedProducts', true, ProductClass, 'true', {bypassCache: 'none', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function readChangedProductsAsync(context: IContext, productSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createReadChangedProductsInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeletedListingsInput(catalogId: number, skip: number, top: number): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetDeletedListings', true, DeletedListingsResultClass, 'false', {bypassCache: 'none', returnEntity: 'DeletedListingsResult'}, {catalogId: catalogId, skip: skip, top: top });\n } \n \n export function getDeletedListingsAsync(context: IContext, catalogId: number, skip: number, top: number):AsyncResult {\n const request = createGetDeletedListingsInput(catalogId, skip, top);\n return executeAction(request, context);\n } \n \n export function createGetAssortedProductIdsInput(queryResultSettings: IQueryResultSettings, productIds: number[], includeFutureAssortedProducts: boolean): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAssortedProductIds', true, AssortedProductIdentityClass, 'true', {bypassCache: 'none', returnEntity: 'AssortedProductIdentity'}, {productIds: productIds, includeFutureAssortedProducts: includeFutureAssortedProducts });\n } \n \n export function getAssortedProductIdsAsync(context: IContext, productIds: number[], includeFutureAssortedProducts: boolean):AsyncResult {\n const request = createGetAssortedProductIdsInput(context.queryResultSettings, productIds, includeFutureAssortedProducts);\n return executeAction(request, context);\n } \n \n export function createCheckProductsExistenceInput(queryResultSettings: IQueryResultSettings, productExistenceCriteria?: ProductExistenceCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('CheckProductsExistence', true, ProductExistenceIdClass, 'true', {bypassCache: 'get', returnEntity: 'ProductExistenceId'}, {productExistenceCriteria: productExistenceCriteria });\n } \n \n export function checkProductsExistenceAsync(context: IContext, productExistenceCriteria?: ProductExistenceCriteria | null):AsyncResult {\n const request = createCheckProductsExistenceInput(context.queryResultSettings, productExistenceCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeletedCatalogsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeletedCatalogs', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getDeletedCatalogsAsync(context: IContext, ):AsyncResult {\n const request = createGetDeletedCatalogsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetDeletedLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeletedLanguages', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getDeletedLanguagesAsync(context: IContext, ):AsyncResult {\n const request = createGetDeletedLanguagesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetProductRatingsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductRatings', true, ProductRatingClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRating'}, {productIds: productIds });\n } \n \n export function getProductRatingsAsync(context: IContext, productIds: number[]):AsyncResult {\n const request = createGetProductRatingsInput(context.queryResultSettings, productIds);\n return executeAction(request, context);\n } \n \n export function createGetProductAssortmentIntervalsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAssortmentIntervals', true, ProductAssortmentIntervalClass, 'true', {bypassCache: 'none', returnEntity: 'ProductAssortmentInterval'}, {productIds: productIds });\n } \n \n export function getProductAssortmentIntervalsAsync(context: IContext, productIds: number[]):AsyncResult {\n const request = createGetProductAssortmentIntervalsInput(context.queryResultSettings, productIds);\n return executeAction(request, context);\n } \n \n export function createDeleteListingsByCatalogsInput(catalogIds: number[]): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('DeleteListingsByCatalogs', true, '', '', {bypassCache: 'get', returnEntity: ''}, {catalogIds: catalogIds });\n } \n \n export function deleteListingsByCatalogsAsync(context: IContext, catalogIds: number[]):AsyncResult {\n const request = createDeleteListingsByCatalogsInput(catalogIds);\n return executeAction(request, context);\n } \n \n export function createDeleteListingsByLanguagesInput(languages?: string[] | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('DeleteListingsByLanguages', true, '', '', {bypassCache: 'get', returnEntity: ''}, {languages: languages });\n } \n \n export function deleteListingsByLanguagesAsync(context: IContext, languages?: string[] | null):AsyncResult {\n const request = createDeleteListingsByLanguagesInput(languages);\n return executeAction(request, context);\n } \n \n export function createEndReadChangedProductsInput(session?: ReadChangedProductsSession | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('EndReadChangedProducts', true, '', '', {bypassCache: 'get', returnEntity: ''}, {session: session });\n } \n \n export function endReadChangedProductsAsync(context: IContext, session?: ReadChangedProductsSession | null):AsyncResult {\n const request = createEndReadChangedProductsInput(session);\n return executeAction(request, context);\n } \n \n export function createUpdateListingPublishingStatusInput(publishingStatuses?: ListingPublishStatus[] | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('UpdateListingPublishingStatus', true, '', '', {bypassCache: 'get', returnEntity: ''}, {publishingStatuses: publishingStatuses });\n } \n \n export function updateListingPublishingStatusAsync(context: IContext, publishingStatuses?: ListingPublishStatus[] | null):AsyncResult {\n const request = createUpdateListingPublishingStatusInput(publishingStatuses);\n return executeAction(request, context);\n } \n \n export function createGetCatalogProductAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogProductAttributes', true, AttributeProductClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, {catalogId: catalogId });\n } \n \n export function getCatalogProductAttributesAsync(context: IContext, catalogId: number):AsyncResult {\n const request = createGetCatalogProductAttributesInput(context.queryResultSettings, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetPricesInput(queryResultSettings: IQueryResultSettings, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPrices', true, ProductPriceClass, 'true', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {itemId: itemId, inventoryDimensionId: inventoryDimensionId, barcode: barcode, customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, quantity: quantity });\n } \n \n export function getPricesAsync(context: IContext, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number):AsyncResult {\n const request = createGetPricesInput(context.queryResultSettings, itemId, inventoryDimensionId, barcode, customerAccountNumber, unitOfMeasureSymbol, quantity);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilitiesInput(queryResultSettings: IQueryResultSettings, itemIds: number[], channelId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailabilities', true, ProductAvailableQuantityClass, 'true', {bypassCache: 'none', returnEntity: 'ProductAvailableQuantity'}, {itemIds: itemIds, channelId: channelId });\n } \n \n export function getProductAvailabilitiesAsync(context: IContext, itemIds: number[], channelId: number):AsyncResult {\n const request = createGetProductAvailabilitiesInput(context.queryResultSettings, itemIds, channelId);\n return executeAction(request, context);\n } \n \n export function createGetActivePricesInput(queryResultSettings: IQueryResultSettings, projectDomain: ProjectionDomain | null, productIds: number[], activeDate: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null, includeVariantPriceRange?: boolean | null): 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, catalogId?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByLookupClauses', true, SimpleProductClass, 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productLookupClauses: productLookupClauses, catalogId: catalogId });\n } \n \n export function getByLookupClausesAsync(context: IContext, channelId: number, productLookupClauses?: ProductLookupClause[] | null, catalogId?: number | null):AsyncResult {\n const request = createGetByLookupClausesInput(context.queryResultSettings, channelId, productLookupClauses, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetRefinersByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinersByCategory', false, ProductRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, categoryId: categoryId });\n } \n \n export function getRefinersByCategoryAsync(context: IContext, catalogId: number, categoryId: number):AsyncResult {\n const request = createGetRefinersByCategoryInput(context.queryResultSettings, catalogId, categoryId);\n return executeAction(request, context);\n } \n \n export function createGetRefinersByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinersByText', false, ProductRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, searchText: searchText });\n } \n \n export function getRefinersByTextAsync(context: IContext, catalogId: number, searchText?: string | null):AsyncResult {\n const request = createGetRefinersByTextInput(context.queryResultSettings, catalogId, searchText);\n return executeAction(request, context);\n } \n \n export function createGetRefinerValuesByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinerValuesByCategory', false, ProductRefinerValueClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, categoryId: categoryId, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n } \n \n export function getRefinerValuesByCategoryAsync(context: IContext, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number):AsyncResult {\n const request = createGetRefinerValuesByCategoryInput(context.queryResultSettings, catalogId, categoryId, refinerId, refinerSourceValue);\n return executeAction(request, context);\n } \n \n export function createGetRefinerValuesByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinerValuesByText', false, ProductRefinerValueClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, searchText: searchText, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n } \n \n export function getRefinerValuesByTextAsync(context: IContext, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number):AsyncResult {\n const request = createGetRefinerValuesByTextInput(context.queryResultSettings, catalogId, searchText, refinerId, refinerSourceValue);\n return executeAction(request, context);\n } \n \n export function createGetChannelProductAttributesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelProductAttributes', false, AttributeProductClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, { });\n } \n \n export function getChannelProductAttributesAsync(context: IContext, ):AsyncResult {\n const request = createGetChannelProductAttributesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetByIdInput(recordId: number, channelId: number): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('GetById', false, SimpleProductClass, 'false', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId });\n } \n \n export function getByIdAsync(context: IContext, recordId: number, channelId: number):AsyncResult {\n const request = createGetByIdInput(recordId, channelId);\n return executeAction(request, context);\n } \n \n export function createGetAttributeValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeValues', false, AttributeValueClass, 'true', {bypassCache: 'none', returnEntity: 'AttributeValue'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getAttributeValuesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetAttributeValuesInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetMediaLocationsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMediaLocations', false, MediaLocationClass, 'true', {bypassCache: 'none', returnEntity: 'MediaLocation'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getMediaLocationsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetMediaLocationsInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetMediaBlobsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMediaBlobs', false, MediaBlobClass, 'true', {bypassCache: 'none', returnEntity: 'MediaBlob'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getMediaBlobsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetMediaBlobsInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetDefaultComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDefaultComponents', false, ProductComponentClass, 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId });\n } \n \n export function getDefaultComponentsAsync(context: IContext, recordId: number, channelId: number):AsyncResult {\n const request = createGetDefaultComponentsInput(context.queryResultSettings, recordId, channelId);\n return executeAction(request, context);\n } \n \n export function createGetSlotComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, slotId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSlotComponents', false, ProductComponentClass, 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, slotId: slotId });\n } \n \n export function getSlotComponentsAsync(context: IContext, recordId: number, channelId: number, slotId: number):AsyncResult {\n const request = createGetSlotComponentsInput(context.queryResultSettings, recordId, channelId, slotId);\n return executeAction(request, context);\n } \n \n export function createGetAllRelationTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAllRelationTypes', false, ProductRelationTypeClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, { });\n } \n \n export function getAllRelationTypesAsync(context: IContext, ):AsyncResult {\n const request = createGetAllRelationTypesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetRelationTypesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRelationTypes', false, ProductRelationTypeClass, 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getRelationTypesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetRelationTypesInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetRelatedProductsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number, relationTypeId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRelatedProducts', false, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, relationTypeId: relationTypeId });\n } \n \n export function getRelatedProductsAsync(context: IContext, recordId: number, channelId: number, catalogId: number, relationTypeId: number):AsyncResult {\n const request = createGetRelatedProductsInput(context.queryResultSettings, recordId, channelId, catalogId, relationTypeId);\n return executeAction(request, context);\n } \n \n export function createGetApplicableWarrantiesInput(queryResultSettings: IQueryResultSettings, catalogId: number, warrantableProductIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetApplicableWarranties', true, ProductWarrantiesMappingClass, 'true', {bypassCache: 'none', returnEntity: 'ProductWarrantiesMapping'}, {catalogId: catalogId, warrantableProductIds: warrantableProductIds });\n } \n \n export function getApplicableWarrantiesAsync(context: IContext, catalogId: number, warrantableProductIds: number[]):AsyncResult {\n const request = createGetApplicableWarrantiesInput(context.queryResultSettings, catalogId, warrantableProductIds);\n return executeAction(request, context);\n } \n \n export function createGetPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('GetPrice', false, ProductPriceClass, 'false', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol });\n } \n \n export function getPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null):AsyncResult {\n const request = createGetPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol);\n return executeAction(request, context);\n } \n \n export function createCalculateProductPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('CalculateProductPrice', true, ProductPriceClass, 'false', {bypassCache: 'get', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, loyaltyCardId: loyaltyCardId, affiliationLoyaltyTiers: affiliationLoyaltyTiers });\n } \n \n export function calculateProductPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null):AsyncResult {\n const request = createCalculateProductPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol, loyaltyCardId, affiliationLoyaltyTiers);\n return executeAction(request, context);\n } \n \n export function createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetEstimatedProductWarehouseAvailability', true, ProductWarehouseInventoryInformationClass, 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {productWarehouses: productWarehouses, quantityUnitType: quantityUnitType });\n } \n \n export function getEstimatedProductWarehouseAvailabilityAsync(context: IContext, productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null):AsyncResult {\n const request = createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses, quantityUnitType);\n return executeAction(request, context);\n } \n \n export function createGetEstimatedAvailabilityInput(searchCriteria?: InventoryAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetEstimatedAvailability', true, ProductWarehouseInventoryInformationClass, 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {searchCriteria: searchCriteria });\n } \n \n export function getEstimatedAvailabilityAsync(context: IContext, searchCriteria?: InventoryAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedAvailabilityInput(searchCriteria);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { 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 * The Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload\n }\n \n /**\n * InventoryJournalPosAdjustmentType enum type.\n */\n export enum InventoryJournalPosAdjustmentType {\n \n /**\n * The In member.\n */\n In = 0,\n \n /**\n * The Out member.\n */\n Out = 1\n }\n \n /**\n * ProductDataValidationErrors enum type.\n */\n export enum ProductDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported\n }\n \n /**\n * AddressOperationType enum type.\n */\n export enum AddressOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Create member.\n */\n Create = 1,\n \n /**\n * The Update member.\n */\n Update = 2,\n \n /**\n * The Deactivate member.\n */\n Deactivate = 3\n }\n \n /**\n * AddressType enum type.\n */\n export enum AddressType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Invoice member.\n */\n Invoice = 1,\n \n /**\n * The Delivery member.\n */\n Delivery = 2,\n \n /**\n * The AltDlv member.\n */\n AltDlv = 3,\n \n /**\n * The SWIFT member.\n */\n SWIFT = 4,\n \n /**\n * The Payment member.\n */\n Payment = 5,\n \n /**\n * The Service member.\n */\n Service = 6,\n \n /**\n * The Home member.\n */\n Home = 7,\n \n /**\n * The Other member.\n */\n Other = 8,\n \n /**\n * The Business member.\n */\n Business = 9,\n \n /**\n * The RemitTo member.\n */\n RemitTo = 10,\n \n /**\n * The ShipCarrierThirdPartyShipping member.\n */\n ShipCarrierThirdPartyShipping = 11,\n \n /**\n * The Statement member.\n */\n Statement = 12,\n \n /**\n * The FixedAsset member.\n */\n FixedAsset = 15,\n \n /**\n * The Onetime member.\n */\n Onetime = 16,\n \n /**\n * The Recruit member.\n */\n Recruit = 17,\n \n /**\n * The SMS member.\n */\n SMS = 18,\n \n /**\n * The Lading_W member.\n */\n Lading_W = 101,\n \n /**\n * The Unlading_W member.\n */\n Unlading_W = 102,\n \n /**\n * The Consignment_IN member.\n */\n Consignment_IN = 103\n }\n \n /**\n * AttributeDataType enum type.\n */\n export enum AttributeDataType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Currency member.\n */\n Currency = 1,\n \n /**\n * The DateTime member.\n */\n DateTime = 2,\n \n /**\n * The Decimal member.\n */\n Decimal = 3,\n \n /**\n * The Integer member.\n */\n Integer = 4,\n \n /**\n * The Text member.\n */\n Text = 5,\n \n /**\n * The TrueFalse member.\n */\n TrueFalse = 6,\n \n /**\n * The Video member.\n */\n Video = 40,\n \n /**\n * The Image member.\n */\n Image = 41\n }\n \n /**\n * BarcodeEntryMethodType enum type.\n */\n export enum BarcodeEntryMethodType {\n \n /**\n * The SingleScanned member.\n */\n SingleScanned = 0,\n \n /**\n * The MultipleScanned member.\n */\n MultipleScanned = 1,\n \n /**\n * The ManuallyEntered member.\n */\n ManuallyEntered = 2,\n \n /**\n * The Selected member.\n */\n Selected = 3\n }\n \n /**\n * BarcodeMaskType enum type.\n */\n export enum BarcodeMaskType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The Customer member.\n */\n Customer = 2,\n \n /**\n * The Employee member.\n */\n Employee = 3,\n \n /**\n * The Coupon member.\n */\n Coupon = 4,\n \n /**\n * The DataEntry member.\n */\n DataEntry = 5,\n \n /**\n * The Salesperson member.\n */\n Salesperson = 6,\n \n /**\n * The Pharmacy member.\n */\n Pharmacy = 7,\n \n /**\n * The DiscountCode member.\n */\n DiscountCode = 8,\n \n /**\n * The GiftCard member.\n */\n GiftCard = 9,\n \n /**\n * The LoyaltyCard member.\n */\n LoyaltyCard = 10\n }\n \n /**\n * TransactionStatus enum type.\n */\n export enum TransactionStatus {\n \n /**\n * The Normal member.\n */\n Normal = 0,\n \n /**\n * The Voided member.\n */\n Voided = 1,\n \n /**\n * The Posted member.\n */\n Posted = 2,\n \n /**\n * The Concluded member.\n */\n Concluded = 3,\n \n /**\n * The Canceled member.\n */\n Canceled = 4,\n \n /**\n * The OnHold member.\n */\n OnHold = 5,\n \n /**\n * The Training member.\n */\n Training = 6,\n \n /**\n * The Aborted member.\n */\n Aborted = 7\n }\n \n /**\n * GiftCardOperationType enum type.\n */\n export enum GiftCardOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Issue member.\n */\n Issue = 1,\n \n /**\n * The AddTo member.\n */\n AddTo = 2,\n \n /**\n * The CashOut member.\n */\n CashOut = 3\n }\n \n /**\n * RetailGiftCardType enum type.\n */\n export enum RetailGiftCardType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The InternalGiftCard member.\n */\n InternalGiftCard = 1,\n \n /**\n * The ExternalGiftCard member.\n */\n ExternalGiftCard = 2\n }\n \n /**\n * PriceMethod enum type.\n */\n export enum PriceMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Fixed member.\n */\n Fixed = 1,\n \n /**\n * The AmountOff member.\n */\n AmountOff = 2,\n \n /**\n * The PercentOff member.\n */\n PercentOff = 3\n }\n \n /**\n * ConcurrencyMode enum type.\n */\n export enum ConcurrencyMode {\n \n /**\n * The Exclusive member.\n */\n Exclusive = 0,\n \n /**\n * The BestPrice member.\n */\n BestPrice = 1,\n \n /**\n * The Compounded member.\n */\n Compounded = 2,\n \n /**\n * The AlwaysApply member.\n */\n AlwaysApply = 3,\n \n /**\n * The HighestCombinedPricingPriority member.\n */\n HighestCombinedPricingPriority = 4\n }\n \n /**\n * SalesAgreementLineType enum type.\n */\n export enum SalesAgreementLineType {\n \n /**\n * The ProductQuantity member.\n */\n ProductQuantity = 0,\n \n /**\n * The ProductVolume member.\n */\n ProductVolume = 1,\n \n /**\n * The ProductCategory member.\n */\n ProductCategory = 2,\n \n /**\n * The ProductRootCategory member.\n */\n ProductRootCategory = 3\n }\n \n /**\n * DiscountLineType enum type.\n */\n export enum DiscountLineType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CustomerDiscount member.\n */\n CustomerDiscount = 1,\n \n /**\n * The PeriodicDiscount member.\n */\n PeriodicDiscount = 2,\n \n /**\n * The ManualDiscount member.\n */\n ManualDiscount = 3,\n \n /**\n * The LoyaltyDiscount member.\n */\n LoyaltyDiscount = 4,\n \n /**\n * The TenderTypeDiscount member.\n */\n TenderTypeDiscount = 5\n }\n \n /**\n * ManualDiscountType enum type.\n */\n export enum ManualDiscountType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The LineDiscountAmount member.\n */\n LineDiscountAmount = 1,\n \n /**\n * The LineDiscountPercent member.\n */\n LineDiscountPercent = 2,\n \n /**\n * The TotalDiscountAmount member.\n */\n TotalDiscountAmount = 3,\n \n /**\n * The TotalDiscountPercent member.\n */\n TotalDiscountPercent = 4\n }\n \n /**\n * CustomerDiscountType enum type.\n */\n export enum CustomerDiscountType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The LineDiscount member.\n */\n LineDiscount = 1,\n \n /**\n * The MultilineDiscount member.\n */\n MultilineDiscount = 2,\n \n /**\n * The TotalDiscount member.\n */\n TotalDiscount = 3\n }\n \n /**\n * ReasonCodeInputType enum type.\n */\n export enum ReasonCodeInputType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SubCode member.\n */\n SubCode = 1,\n \n /**\n * The Date member.\n */\n Date = 2,\n \n /**\n * The Numeric member.\n */\n Numeric = 3,\n \n /**\n * The Item member.\n */\n Item = 4,\n \n /**\n * The Customer member.\n */\n Customer = 5,\n \n /**\n * The Staff member.\n */\n Staff = 6,\n \n /**\n * The Text member.\n */\n Text = 9,\n \n /**\n * The SubCodeButtons member.\n */\n SubCodeButtons = 10,\n \n /**\n * The AgeLimit member.\n */\n AgeLimit = 11,\n \n /**\n * The CompositeSubCodes member.\n */\n CompositeSubCodes = 12\n }\n \n /**\n * ReasonCodeLineType enum type.\n */\n export enum ReasonCodeLineType {\n \n /**\n * The Header member.\n */\n Header = 0,\n \n /**\n * The Sales member.\n */\n Sales = 1,\n \n /**\n * The Payment member.\n */\n Payment = 2,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 3,\n \n /**\n * The NoSale member.\n */\n NoSale = 4,\n \n /**\n * The Affiliation member.\n */\n Affiliation = 5,\n \n /**\n * The Fiscal member.\n */\n Fiscal = 6\n }\n \n /**\n * ChargeModule enum type.\n */\n export enum ChargeModule {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sales member.\n */\n Sales = 1,\n \n /**\n * The Retail member.\n */\n Retail = 3\n }\n \n /**\n * ChargeType enum type.\n */\n export enum ChargeType {\n \n /**\n * The ManualCharge member.\n */\n ManualCharge = 0,\n \n /**\n * The PriceCharge member.\n */\n PriceCharge = 1,\n \n /**\n * The AutoCharge member.\n */\n AutoCharge = 2\n }\n \n /**\n * ChargeMethod enum type.\n */\n export enum ChargeMethod {\n \n /**\n * The Fixed member.\n */\n Fixed = 0,\n \n /**\n * The Pieces member.\n */\n Pieces = 1,\n \n /**\n * The Percent member.\n */\n Percent = 2,\n \n /**\n * The InterCompanyPercent member.\n */\n InterCompanyPercent = 3,\n \n /**\n * The External member.\n */\n External = 4,\n \n /**\n * The Proportional member.\n */\n Proportional = 5\n }\n \n /**\n * CashType enum type.\n */\n export enum CashType {\n \n /**\n * The Coin member.\n */\n Coin = 0,\n \n /**\n * The Note member.\n */\n Note = 1\n }\n \n /**\n * IncomeExpenseAccountType enum type.\n */\n export enum IncomeExpenseAccountType {\n \n /**\n * The Income member.\n */\n Income = 0,\n \n /**\n * The Expense member.\n */\n Expense = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * TenderLineStatus enum type.\n */\n export enum TenderLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotProcessed member.\n */\n NotProcessed = 1,\n \n /**\n * The PendingCommit member.\n */\n PendingCommit = 2,\n \n /**\n * The Voided member.\n */\n Voided = 3,\n \n /**\n * The Committed member.\n */\n Committed = 4,\n \n /**\n * The Historical member.\n */\n Historical = 5\n }\n \n /**\n * TenderLineVoidStatus enum type.\n */\n export enum TenderLineVoidStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NormalVoid member.\n */\n NormalVoid = 1,\n \n /**\n * The ForceVoided member.\n */\n ForceVoided = 2,\n \n /**\n * The ForceVoidReconciled member.\n */\n ForceVoidReconciled = 3\n }\n \n /**\n * PaymentProcessingType enum type.\n */\n export enum PaymentProcessingType {\n \n /**\n * The Immediate member.\n */\n Immediate = 0,\n \n /**\n * The Deferred member.\n */\n Deferred = 1,\n \n /**\n * The LinkedRefund member.\n */\n LinkedRefund = 2,\n \n /**\n * The Recalled member.\n */\n Recalled = 3\n }\n \n /**\n * CreditCardProcessorStatus enum type.\n */\n export enum CreditCardProcessorStatus {\n \n /**\n * The NA member.\n */\n NA = 0,\n \n /**\n * The Approved member.\n */\n Approved = 1,\n \n /**\n * The Declined member.\n */\n Declined = 2,\n \n /**\n * The Error member.\n */\n Error = 3\n }\n \n /**\n * ContactInformationType enum type.\n */\n export enum ContactInformationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Phone member.\n */\n Phone = 1,\n \n /**\n * The Email member.\n */\n Email = 2,\n \n /**\n * The Url member.\n */\n Url = 3,\n \n /**\n * The Telex member.\n */\n Telex = 4,\n \n /**\n * The Fax member.\n */\n Fax = 5,\n \n /**\n * The CellularPhone member.\n */\n CellularPhone = 6\n }\n \n /**\n * CommerceEntityDataLevel enum type.\n */\n export enum CommerceEntityDataLevel {\n \n /**\n * The Identity member.\n */\n Identity = 0,\n \n /**\n * The Minimal member.\n */\n Minimal = 1,\n \n /**\n * The Standard member.\n */\n Standard = 2,\n \n /**\n * The Extended member.\n */\n Extended = 3,\n \n /**\n * The Complete member.\n */\n Complete = 4\n }\n \n /**\n * ProductPropertyType enum type.\n */\n export enum ProductPropertyType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Currency member.\n */\n Currency = 1,\n \n /**\n * The DateTime member.\n */\n DateTime = 2,\n \n /**\n * The Decimal member.\n */\n Decimal = 3,\n \n /**\n * The Integer member.\n */\n Integer = 4,\n \n /**\n * The Text member.\n */\n Text = 5,\n \n /**\n * The Boolean member.\n */\n Boolean = 6,\n \n /**\n * The Video member.\n */\n Video = 40,\n \n /**\n * The Image member.\n */\n Image = 41\n }\n \n /**\n * AttributeGroupType enum type.\n */\n export enum AttributeGroupType {\n \n /**\n * The Default member.\n */\n Default = 0,\n \n /**\n * The Specification member.\n */\n Specification = 1\n }\n \n /**\n * ProductSource enum type.\n */\n export enum ProductSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Local member.\n */\n Local = 1,\n \n /**\n * The Remote member.\n */\n Remote = 2\n }\n \n /**\n * RoundingMethod enum type.\n */\n export enum RoundingMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Nearest member.\n */\n Nearest = 1,\n \n /**\n * The Up member.\n */\n Up = 2,\n \n /**\n * The Down member.\n */\n Down = 3\n }\n \n /**\n * LineMultilineDiscountOnItem enum type.\n */\n export enum LineMultilineDiscountOnItem {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Line member.\n */\n Line = 1,\n \n /**\n * The Multiline member.\n */\n Multiline = 2,\n \n /**\n * The Both member.\n */\n Both = 3\n }\n \n /**\n * LoyaltyRewardPointEntryType enum type.\n */\n export enum LoyaltyRewardPointEntryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Earn member.\n */\n Earn = 1,\n \n /**\n * The Redeem member.\n */\n Redeem = 2,\n \n /**\n * The ReturnEarned member.\n */\n ReturnEarned = 3,\n \n /**\n * The Adjust member.\n */\n Adjust = 4,\n \n /**\n * The Refund member.\n */\n Refund = 5\n }\n \n /**\n * LoyaltyRewardPointType enum type.\n */\n export enum LoyaltyRewardPointType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Quantity member.\n */\n Quantity = 1,\n \n /**\n * The Amount member.\n */\n Amount = 2\n }\n \n /**\n * TransactionType enum type.\n */\n export enum TransactionType {\n \n /**\n * The LogOff member.\n */\n LogOff = 0,\n \n /**\n * The LogOn member.\n */\n LogOn = 1,\n \n /**\n * The Sales member.\n */\n Sales = 2,\n \n /**\n * The Payment member.\n */\n Payment = 3,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 4,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 5,\n \n /**\n * The ChangeTender member.\n */\n ChangeTender = 6,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 7,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 9,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 14,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 15,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 16,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 17,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 18,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 19,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 20,\n \n /**\n * The SuspendShift member.\n */\n SuspendShift = 21,\n \n /**\n * The BlindCloseShift member.\n */\n BlindCloseShift = 22,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 23,\n \n /**\n * The PrintX member.\n */\n PrintX = 24,\n \n /**\n * The PrintZ member.\n */\n PrintZ = 25,\n \n /**\n * The PendingSalesOrder member.\n */\n PendingSalesOrder = 27,\n \n /**\n * The KitDisassembly member.\n */\n KitDisassembly = 28,\n \n /**\n * The AsyncCustomerQuote member.\n */\n AsyncCustomerQuote = 31,\n \n /**\n * The AsyncCustomerOrder member.\n */\n AsyncCustomerOrder = 33,\n \n /**\n * The ForceDeleteShift member.\n */\n ForceDeleteShift = 34,\n \n /**\n * The GiftCardInquiry member.\n */\n GiftCardInquiry = 35,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 36,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CashManagementTransactionContext enum type.\n */\n export enum CashManagementTransactionContext {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The Shift member.\n */\n Shift = 1,\n \n /**\n * The Safe member.\n */\n Safe = 2,\n \n /**\n * The Bank member.\n */\n Bank = 3\n }\n \n /**\n * CustomerTimelineItemEntityType enum type.\n */\n export enum CustomerTimelineItemEntityType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Activity member.\n */\n Activity = 1,\n \n /**\n * The Note member.\n */\n Note = 2,\n \n /**\n * The UnifiedActivity member.\n */\n UnifiedActivity = 3\n }\n \n /**\n * EmployeePermissionsAllowPrintingReceiptCopy enum type.\n */\n export enum EmployeePermissionsAllowPrintingReceiptCopy {\n \n /**\n * The Always member.\n */\n Always = 0,\n \n /**\n * The OnlyOnce member.\n */\n OnlyOnce = 1,\n \n /**\n * The OnlyOnceHqAvailable member.\n */\n OnlyOnceHqAvailable = 2,\n \n /**\n * The Never member.\n */\n Never = 3\n }\n \n /**\n * AddressFormatLineType enum type.\n */\n export enum AddressFormatLineType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ZipCode member.\n */\n ZipCode = 1,\n \n /**\n * The City member.\n */\n City = 2,\n \n /**\n * The County member.\n */\n County = 3,\n \n /**\n * The State member.\n */\n State = 4,\n \n /**\n * The CountryRegion member.\n */\n CountryRegion = 5,\n \n /**\n * The StreetName member.\n */\n StreetName = 6,\n \n /**\n * The District member.\n */\n District = 7,\n \n /**\n * The StreetNumber member.\n */\n StreetNumber = 8,\n \n /**\n * The BuildingCompliment member.\n */\n BuildingCompliment = 9,\n \n /**\n * The Postbox member.\n */\n Postbox = 10,\n \n /**\n * The House_RU member.\n */\n House_RU = 21,\n \n /**\n * The Flat_RU member.\n */\n Flat_RU = 22,\n \n /**\n * The CountryOKSMCode_RU member.\n */\n CountryOKSMCode_RU = 23\n }\n \n /**\n * StatementMethod enum type.\n */\n export enum StatementMethod {\n \n /**\n * The Staff member.\n */\n Staff = 0,\n \n /**\n * The PosTerminal member.\n */\n PosTerminal = 1,\n \n /**\n * The Total member.\n */\n Total = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * SalesRepPromptType enum type.\n */\n export enum SalesRepPromptType {\n \n /**\n * The NoPrompt member.\n */\n NoPrompt = 0,\n \n /**\n * The PromptOnCartCreation member.\n */\n PromptOnCartCreation = 1,\n \n /**\n * The PromptOnCartLineCreation member.\n */\n PromptOnCartLineCreation = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * RetailProductSearchType enum type.\n */\n export enum RetailProductSearchType {\n \n /**\n * The MatchAnySearchTerms member.\n */\n MatchAnySearchTerms = 0,\n \n /**\n * The MatchAllSearchTerms member.\n */\n MatchAllSearchTerms = 1\n }\n \n /**\n * RetailDenominationsToDisplay enum type.\n */\n export enum RetailDenominationsToDisplay {\n \n /**\n * The GreaterOrEqualToAmountDue member.\n */\n GreaterOrEqualToAmountDue = 0,\n \n /**\n * The AllDenominations member.\n */\n AllDenominations = 1\n }\n \n /**\n * EmployeeLogonType enum type.\n */\n export enum EmployeeLogonType {\n \n /**\n * The RetailIdentityProvider member.\n */\n RetailIdentityProvider = 0,\n \n /**\n * The AzureActiveDirectory member.\n */\n AzureActiveDirectory = 1,\n \n /**\n * The AzureActiveDirectorySingleSignOn member.\n */\n AzureActiveDirectorySingleSignOn = 2\n }\n \n /**\n * RetailCustomerSearchMode enum type.\n */\n export enum RetailCustomerSearchMode {\n \n /**\n * The Local member.\n */\n Local = 0,\n \n /**\n * The Remote member.\n */\n Remote = 1\n }\n \n /**\n * RequirePaymentForFulfillment enum type.\n */\n export enum RequirePaymentForFulfillment {\n \n /**\n * The AllowPayLater member.\n */\n AllowPayLater = 0,\n \n /**\n * The CardRequired member.\n */\n CardRequired = 1\n }\n \n /**\n * CardNotPresentProcessingConfiguration enum type.\n */\n export enum CardNotPresentProcessingConfiguration {\n \n /**\n * The UseHardwareStation member.\n */\n UseHardwareStation = 0,\n \n /**\n * The UseCommerceEngine member.\n */\n UseCommerceEngine = 1\n }\n \n /**\n * ChangeDueBehavior enum type.\n */\n export enum ChangeDueBehavior {\n \n /**\n * The ShowAlways member.\n */\n ShowAlways = 0,\n \n /**\n * The SkipWhenZero member.\n */\n SkipWhenZero = 1\n }\n \n /**\n * FontSchemeType enum type.\n */\n export enum FontSchemeType {\n \n /**\n * The Standard member.\n */\n Standard = 0,\n \n /**\n * The Large member.\n */\n Large = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeviceActivationStatus enum type.\n */\n export enum DeviceActivationStatus {\n \n /**\n * The Pending member.\n */\n Pending = 0,\n \n /**\n * The Activated member.\n */\n Activated = 1,\n \n /**\n * The Deactivated member.\n */\n Deactivated = 2,\n \n /**\n * The Disabled member.\n */\n Disabled = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeviceType enum type.\n */\n export enum DeviceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The OPOS member.\n */\n OPOS = 1,\n \n /**\n * The WindowsPrinter member.\n */\n WindowsPrinter = 2,\n \n /**\n * The Network member.\n */\n Network = 3\n }\n \n /**\n * DualDisplayType enum type.\n */\n export enum DualDisplayType {\n \n /**\n * The Logo member.\n */\n Logo = 0,\n \n /**\n * The ImageRotator member.\n */\n ImageRotator = 1,\n \n /**\n * The WebBrowser member.\n */\n WebBrowser = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * FiscalRegisterType enum type.\n */\n export enum FiscalRegisterType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Manufacturer member.\n */\n Manufacturer = 1\n }\n \n /**\n * PrinterLogotype enum type.\n */\n export enum PrinterLogotype {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Download member.\n */\n Download = 1,\n \n /**\n * The EpsonFlash member.\n */\n EpsonFlash = 2\n }\n \n /**\n * PrinterLogoAlignmentType enum type.\n */\n export enum PrinterLogoAlignmentType {\n \n /**\n * The Left member.\n */\n Left = 0,\n \n /**\n * The Center member.\n */\n Center = 1,\n \n /**\n * The Right member.\n */\n Right = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * FiscalIntegrationConnectorType enum type.\n */\n export enum FiscalIntegrationConnectorType {\n \n /**\n * The Local member.\n */\n Local = 0,\n \n /**\n * The External member.\n */\n External = 1,\n \n /**\n * The Internal member.\n */\n Internal = 2\n }\n \n /**\n * FiscalIntegrationConnectorLocation enum type.\n */\n export enum FiscalIntegrationConnectorLocation {\n \n /**\n * The HardwareStation member.\n */\n HardwareStation = 0,\n \n /**\n * The Pos member.\n */\n Pos = 1\n }\n \n /**\n * ReceiptType enum type.\n */\n export enum ReceiptType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The SalesReceipt member.\n */\n SalesReceipt = 1,\n \n /**\n * The CardReceiptForShop member.\n */\n CardReceiptForShop = 2,\n \n /**\n * The CardReceiptForCustomer member.\n */\n CardReceiptForCustomer = 3,\n \n /**\n * The CardReceiptForShopReturn member.\n */\n CardReceiptForShopReturn = 4,\n \n /**\n * The CardReceiptForCustomerReturn member.\n */\n CardReceiptForCustomerReturn = 5,\n \n /**\n * The CustomerAccountReceiptForShop member.\n */\n CustomerAccountReceiptForShop = 7,\n \n /**\n * The CustomerAccountReceiptForCustomer member.\n */\n CustomerAccountReceiptForCustomer = 8,\n \n /**\n * The CustomerAccountReceiptForShopReturn member.\n */\n CustomerAccountReceiptForShopReturn = 9,\n \n /**\n * The CustomerAccountReceiptForCustomerReturn member.\n */\n CustomerAccountReceiptForCustomerReturn = 10,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 14,\n \n /**\n * The CreditMemo member.\n */\n CreditMemo = 15,\n \n /**\n * The SalesOrderReceipt member.\n */\n SalesOrderReceipt = 18,\n \n /**\n * The GiftCertificate member.\n */\n GiftCertificate = 20,\n \n /**\n * The QuotationReceipt member.\n */\n QuotationReceipt = 21,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 22,\n \n /**\n * The PickupReceipt member.\n */\n PickupReceipt = 23,\n \n /**\n * The XReport member.\n */\n XReport = 24,\n \n /**\n * The ZReport member.\n */\n ZReport = 25,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 26,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 27,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 28,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 29,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 30,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 31,\n \n /**\n * The OrderSummaryReceipt member.\n */\n OrderSummaryReceipt = 32,\n \n /**\n * The GiftReceipt member.\n */\n GiftReceipt = 33,\n \n /**\n * The ReturnLabel member.\n */\n ReturnLabel = 34,\n \n /**\n * The EFDocDANFESimplified member.\n */\n EFDocDANFESimplified = 35,\n \n /**\n * The EFDocDANFEDetailed member.\n */\n EFDocDANFEDetailed = 36,\n \n /**\n * The PickingList member.\n */\n PickingList = 37,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 38,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 39,\n \n /**\n * The GiftCardInquiry member.\n */\n GiftCardInquiry = 40,\n \n /**\n * The CardTerminationReceiptForShop member.\n */\n CardTerminationReceiptForShop = 41,\n \n /**\n * The CardTerminationReceiptForCustomer member.\n */\n CardTerminationReceiptForCustomer = 42,\n \n /**\n * The TransferPackingSlip member.\n */\n TransferPackingSlip = 43,\n \n /**\n * The EFDocDanfeModel55 member.\n */\n EFDocDanfeModel55 = 44,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 45,\n \n /**\n * The InventoryTransfer member.\n */\n InventoryTransfer = 46,\n \n /**\n * The CfeDetailed member.\n */\n CfeDetailed = 47,\n \n /**\n * The CfeSimplified member.\n */\n CfeSimplified = 48,\n \n /**\n * The CfeCancelled member.\n */\n CfeCancelled = 49,\n \n /**\n * The CustomReceipt1 member.\n */\n CustomReceipt1 = 101,\n \n /**\n * The CustomReceipt2 member.\n */\n CustomReceipt2 = 102,\n \n /**\n * The CustomReceipt3 member.\n */\n CustomReceipt3 = 103,\n \n /**\n * The CustomReceipt4 member.\n */\n CustomReceipt4 = 104,\n \n /**\n * The CustomReceipt5 member.\n */\n CustomReceipt5 = 105,\n \n /**\n * The CustomReceipt6 member.\n */\n CustomReceipt6 = 106,\n \n /**\n * The CustomReceipt7 member.\n */\n CustomReceipt7 = 107,\n \n /**\n * The CustomReceipt8 member.\n */\n CustomReceipt8 = 108,\n \n /**\n * The CustomReceipt9 member.\n */\n CustomReceipt9 = 109,\n \n /**\n * The CustomReceipt10 member.\n */\n CustomReceipt10 = 110,\n \n /**\n * The CustomReceipt11 member.\n */\n CustomReceipt11 = 111,\n \n /**\n * The CustomReceipt12 member.\n */\n CustomReceipt12 = 112,\n \n /**\n * The CustomReceipt13 member.\n */\n CustomReceipt13 = 113,\n \n /**\n * The CustomReceipt14 member.\n */\n CustomReceipt14 = 114,\n \n /**\n * The CustomReceipt15 member.\n */\n CustomReceipt15 = 115,\n \n /**\n * The CustomReceipt16 member.\n */\n CustomReceipt16 = 116,\n \n /**\n * The CustomReceipt17 member.\n */\n CustomReceipt17 = 117,\n \n /**\n * The CustomReceipt18 member.\n */\n CustomReceipt18 = 118,\n \n /**\n * The CustomReceipt19 member.\n */\n CustomReceipt19 = 119,\n \n /**\n * The CustomReceipt20 member.\n */\n CustomReceipt20 = 120\n }\n \n /**\n * PrintBehavior enum type.\n */\n export enum PrintBehavior {\n \n /**\n * The Always member.\n */\n Always = 0,\n \n /**\n * The Never member.\n */\n Never = 1,\n \n /**\n * The Prompt member.\n */\n Prompt = 2,\n \n /**\n * The AsRequired member.\n */\n AsRequired = 3\n }\n \n /**\n * DistanceUnit enum type.\n */\n export enum DistanceUnit {\n \n /**\n * The Miles member.\n */\n Miles = 0,\n \n /**\n * The Kilometers member.\n */\n Kilometers = 1\n }\n \n /**\n * StockCountStatus enum type.\n */\n export enum StockCountStatus {\n \n /**\n * The Unchanged member.\n */\n Unchanged = 0,\n \n /**\n * The PendingUpdate member.\n */\n PendingUpdate = 1\n }\n \n /**\n * RecommendedElementType enum type.\n */\n export enum RecommendedElementType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Product member.\n */\n Product = 1,\n \n /**\n * The Content member.\n */\n Content = 2\n }\n \n /**\n * CommerceListInvitationStatus enum type.\n */\n export enum CommerceListInvitationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pending member.\n */\n Pending = 1,\n \n /**\n * The Accepted member.\n */\n Accepted = 2\n }\n \n /**\n * CommerceListInvitationType enum type.\n */\n export enum CommerceListInvitationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Public member.\n */\n Public = 1,\n \n /**\n * The Email member.\n */\n Email = 2\n }\n \n /**\n * SearchLocation enum type.\n */\n export enum SearchLocation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Local member.\n */\n Local = 1,\n \n /**\n * The Remote member.\n */\n Remote = 2,\n \n /**\n * The All member.\n */\n All = 3\n }\n \n /**\n * OrderSearchType enum type.\n */\n export enum OrderSearchType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 1,\n \n /**\n * The SalesTransaction member.\n */\n SalesTransaction = 2,\n \n /**\n * The ConsolidateOrder member.\n */\n ConsolidateOrder = 3\n }\n \n /**\n * SalesTransactionType enum type.\n */\n export enum SalesTransactionType {\n \n /**\n * The Sales member.\n */\n Sales = 2,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 3,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 15,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 18,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 19,\n \n /**\n * The PendingSalesOrder member.\n */\n PendingSalesOrder = 27,\n \n /**\n * The AsyncCustomerQuote member.\n */\n AsyncCustomerQuote = 31,\n \n /**\n * The AsyncCustomerOrder member.\n */\n AsyncCustomerOrder = 33,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 36,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CustomerRefinerSource enum type.\n */\n export enum CustomerRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The CustomerSearchField member.\n */\n CustomerSearchField = 2\n }\n \n /**\n * PriceSourceType enum type.\n */\n export enum PriceSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The BasePrice member.\n */\n BasePrice = 1,\n \n /**\n * The TradeAgreement member.\n */\n TradeAgreement = 2,\n \n /**\n * The PriceAdjustment member.\n */\n PriceAdjustment = 3,\n \n /**\n * The SalesAgreement member.\n */\n SalesAgreement = 4\n }\n \n /**\n * RetailAffiliationType enum type.\n */\n export enum RetailAffiliationType {\n \n /**\n * The General member.\n */\n General = 0,\n \n /**\n * The Loyalty member.\n */\n Loyalty = 1,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * InventoryDocumentLineOriginType enum type.\n */\n export enum InventoryDocumentLineOriginType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Headquarters member.\n */\n Headquarters = 1,\n \n /**\n * The Channel member.\n */\n Channel = 2\n }\n \n /**\n * InventorySerialNumberLineStatus enum type.\n */\n export enum InventorySerialNumberLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotRegistered member.\n */\n NotRegistered = 1,\n \n /**\n * The Registering member.\n */\n Registering = 2,\n \n /**\n * The Registered member.\n */\n Registered = 3\n }\n \n /**\n * InventorySourceDocumentLineStatus enum type.\n */\n export enum InventorySourceDocumentLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Deleted member.\n */\n Deleted = 1,\n \n /**\n * The ReadOnly member.\n */\n ReadOnly = 2\n }\n \n /**\n * RetailOperation enum type.\n */\n export enum RetailOperation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ItemSale member.\n */\n ItemSale = 100,\n \n /**\n * The PriceCheck member.\n */\n PriceCheck = 101,\n \n /**\n * The VoidItem member.\n */\n VoidItem = 102,\n \n /**\n * The ItemComment member.\n */\n ItemComment = 103,\n \n /**\n * The PriceOverride member.\n */\n PriceOverride = 104,\n \n /**\n * The SetQuantity member.\n */\n SetQuantity = 105,\n \n /**\n * The ClearQuantity member.\n */\n ClearQuantity = 106,\n \n /**\n * The ItemSearch member.\n */\n ItemSearch = 108,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 109,\n \n /**\n * The WeighItem member.\n */\n WeighItem = 110,\n \n /**\n * The LinkedItemsAdd member.\n */\n LinkedItemsAdd = 112,\n \n /**\n * The SetDimensions member.\n */\n SetDimensions = 113,\n \n /**\n * The ReturnTransaction member.\n */\n ReturnTransaction = 114,\n \n /**\n * The ShowJournal member.\n */\n ShowJournal = 115,\n \n /**\n * The SetCostPrice member.\n */\n SetCostPrice = 116,\n \n /**\n * The LoyaltyRequest member.\n */\n LoyaltyRequest = 117,\n \n /**\n * The ProcessInput member.\n */\n ProcessInput = 118,\n \n /**\n * The SalespersonBarcode member.\n */\n SalespersonBarcode = 119,\n \n /**\n * The SalespersonCard member.\n */\n SalespersonCard = 120,\n \n /**\n * The SalespersonClear member.\n */\n SalespersonClear = 121,\n \n /**\n * The InvoiceComment member.\n */\n InvoiceComment = 122,\n \n /**\n * The ChangeUnitOfMeasure member.\n */\n ChangeUnitOfMeasure = 123,\n \n /**\n * The ItemSaleMultiple member.\n */\n ItemSaleMultiple = 124,\n \n /**\n * The RFIDSale member.\n */\n RFIDSale = 125,\n \n /**\n * The SalesHistory member.\n */\n SalesHistory = 126,\n \n /**\n * The OverrideTaxTransaction member.\n */\n OverrideTaxTransaction = 127,\n \n /**\n * The OverrideTaxTransactionList member.\n */\n OverrideTaxTransactionList = 128,\n \n /**\n * The OverrideTaxLine member.\n */\n OverrideTaxLine = 129,\n \n /**\n * The OverrideTaxLineList member.\n */\n OverrideTaxLineList = 130,\n \n /**\n * The PackSlip member.\n */\n PackSlip = 131,\n \n /**\n * The DepositOverride member.\n */\n DepositOverride = 132,\n \n /**\n * The BuyWarranty member.\n */\n BuyWarranty = 133,\n \n /**\n * The AddAffiliation member.\n */\n AddAffiliation = 134,\n \n /**\n * The AddAffiliationFromList member.\n */\n AddAffiliationFromList = 135,\n \n /**\n * The AddSerialNumber member.\n */\n AddSerialNumber = 136,\n \n /**\n * The AddAffiliationToCustomer member.\n */\n AddAffiliationToCustomer = 137,\n \n /**\n * The RemoveAffiliationFromCustomer member.\n */\n RemoveAffiliationFromCustomer = 138,\n \n /**\n * The ConcludeTransaction member.\n */\n ConcludeTransaction = 139,\n \n /**\n * The AddLineCharge member.\n */\n AddLineCharge = 140,\n \n /**\n * The AddHeaderCharge member.\n */\n AddHeaderCharge = 141,\n \n /**\n * The ManageCharges member.\n */\n ManageCharges = 142,\n \n /**\n * The RecalculateCharges member.\n */\n RecalculateCharges = 143,\n \n /**\n * The AddWarrantyToAnExistingTransaction member.\n */\n AddWarrantyToAnExistingTransaction = 144,\n \n /**\n * The PayCash member.\n */\n PayCash = 200,\n \n /**\n * The PayCard member.\n */\n PayCard = 201,\n \n /**\n * The PayCustomerAccount member.\n */\n PayCustomerAccount = 202,\n \n /**\n * The PayCurrency member.\n */\n PayCurrency = 203,\n \n /**\n * The PayCheck member.\n */\n PayCheck = 204,\n \n /**\n * The PayCashQuick member.\n */\n PayCashQuick = 206,\n \n /**\n * The PayLoyalty member.\n */\n PayLoyalty = 207,\n \n /**\n * The PayCorporateCard member.\n */\n PayCorporateCard = 208,\n \n /**\n * The ChangeBack member.\n */\n ChangeBack = 210,\n \n /**\n * The VoidPayment member.\n */\n VoidPayment = 211,\n \n /**\n * The FleetCardInfo member.\n */\n FleetCardInfo = 212,\n \n /**\n * The PayCreditMemo member.\n */\n PayCreditMemo = 213,\n \n /**\n * The PayGiftCertificate member.\n */\n PayGiftCertificate = 214,\n \n /**\n * The CashOutGiftCard member.\n */\n CashOutGiftCard = 215,\n \n /**\n * The PayCardExact member.\n */\n PayCardExact = 216,\n \n /**\n * The PayCheckExact member.\n */\n PayCheckExact = 217,\n \n /**\n * The PayCustomerAccountExact member.\n */\n PayCustomerAccountExact = 218,\n \n /**\n * The PayGiftCardExact member.\n */\n PayGiftCardExact = 219,\n \n /**\n * The PayLoyaltyCardExact member.\n */\n PayLoyaltyCardExact = 220,\n \n /**\n * The LineDiscountAmount member.\n */\n LineDiscountAmount = 300,\n \n /**\n * The LineDiscountPercent member.\n */\n LineDiscountPercent = 301,\n \n /**\n * The TotalDiscountAmount member.\n */\n TotalDiscountAmount = 302,\n \n /**\n * The TotalDiscountPercent member.\n */\n TotalDiscountPercent = 303,\n \n /**\n * The DiscountCodeBarcode member.\n */\n DiscountCodeBarcode = 304,\n \n /**\n * The CalculateFullDiscounts member.\n */\n CalculateFullDiscounts = 310,\n \n /**\n * The RemovePeriodicDiscountsFromTransaction member.\n */\n RemovePeriodicDiscountsFromTransaction = 311,\n \n /**\n * The RecalculatePeriodicDiscounts member.\n */\n RecalculatePeriodicDiscounts = 312,\n \n /**\n * The PopupMenu member.\n */\n PopupMenu = 400,\n \n /**\n * The Submenu member.\n */\n Submenu = 401,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 500,\n \n /**\n * The TransactionComment member.\n */\n TransactionComment = 501,\n \n /**\n * The SalesPerson member.\n */\n SalesPerson = 502,\n \n /**\n * The SuspendTransaction member.\n */\n SuspendTransaction = 503,\n \n /**\n * The RecallTransaction member.\n */\n RecallTransaction = 504,\n \n /**\n * The RecallUnconcludedTransaction member.\n */\n RecallUnconcludedTransaction = 505,\n \n /**\n * The CardSwipe member.\n */\n CardSwipe = 506,\n \n /**\n * The PharmacyPrescriptionAdd member.\n */\n PharmacyPrescriptionAdd = 507,\n \n /**\n * The PharmacyPrescriptionCancel member.\n */\n PharmacyPrescriptionCancel = 508,\n \n /**\n * The PharmacyPrescriptionPaid member.\n */\n PharmacyPrescriptionPaid = 509,\n \n /**\n * The PharmacyPrescriptions member.\n */\n PharmacyPrescriptions = 510,\n \n /**\n * The IssueCreditMemo member.\n */\n IssueCreditMemo = 511,\n \n /**\n * The IssueGiftCertificate member.\n */\n IssueGiftCertificate = 512,\n \n /**\n * The DisplayTotal member.\n */\n DisplayTotal = 513,\n \n /**\n * The RecallSalesOrder member.\n */\n RecallSalesOrder = 515,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 516,\n \n /**\n * The IncomeAccounts member.\n */\n IncomeAccounts = 517,\n \n /**\n * The ExpenseAccounts member.\n */\n ExpenseAccounts = 518,\n \n /**\n * The AddToGiftCard member.\n */\n AddToGiftCard = 519,\n \n /**\n * The GiftCardBalance member.\n */\n GiftCardBalance = 520,\n \n /**\n * The LoyaltyCardPointsBalance member.\n */\n LoyaltyCardPointsBalance = 521,\n \n /**\n * The CashChangerRegisterAmount member.\n */\n CashChangerRegisterAmount = 550,\n \n /**\n * The CashChangerReset member.\n */\n CashChangerReset = 551,\n \n /**\n * The CashChangerRegret member.\n */\n CashChangerRegret = 552,\n \n /**\n * The CashChangerExit member.\n */\n CashChangerExit = 553,\n \n /**\n * The CashChangerChange member.\n */\n CashChangerChange = 554,\n \n /**\n * The CashChangerLogOn member.\n */\n CashChangerLogOn = 555,\n \n /**\n * The CashChangerInit member.\n */\n CashChangerInit = 556,\n \n /**\n * The SetCustomer member.\n */\n SetCustomer = 600,\n \n /**\n * The CustomerSearch member.\n */\n CustomerSearch = 602,\n \n /**\n * The CustomerClear member.\n */\n CustomerClear = 603,\n \n /**\n * The CustomerCard member.\n */\n CustomerCard = 604,\n \n /**\n * The CustomerTransactions member.\n */\n CustomerTransactions = 609,\n \n /**\n * The CustomerTransactionsReport member.\n */\n CustomerTransactionsReport = 610,\n \n /**\n * The CustomerBalanceReport member.\n */\n CustomerBalanceReport = 611,\n \n /**\n * The CustomerAdd member.\n */\n CustomerAdd = 612,\n \n /**\n * The CustomerBarcode member.\n */\n CustomerBarcode = 613,\n \n /**\n * The EditCustomerOrder member.\n */\n EditCustomerOrder = 614,\n \n /**\n * The EditQuotation member.\n */\n EditQuotation = 615,\n \n /**\n * The CreateCustomerOrder member.\n */\n CreateCustomerOrder = 620,\n \n /**\n * The CreateQuotation member.\n */\n CreateQuotation = 621,\n \n /**\n * The Search member.\n */\n Search = 622,\n \n /**\n * The CustomerEdit member.\n */\n CustomerEdit = 623,\n \n /**\n * The LoyaltyIssueCard member.\n */\n LoyaltyIssueCard = 625,\n \n /**\n * The RecalculateCustomerOrder member.\n */\n RecalculateCustomerOrder = 627,\n \n /**\n * The ShipSelectedProducts member.\n */\n ShipSelectedProducts = 629,\n \n /**\n * The ShipAllProducts member.\n */\n ShipAllProducts = 630,\n \n /**\n * The PickupSelectedProducts member.\n */\n PickupSelectedProducts = 631,\n \n /**\n * The PickupAllProducts member.\n */\n PickupAllProducts = 632,\n \n /**\n * The SetQuotationExpirationDate member.\n */\n SetQuotationExpirationDate = 633,\n \n /**\n * The PaymentsHistory member.\n */\n PaymentsHistory = 634,\n \n /**\n * The ReturnChargesOverride member.\n */\n ReturnChargesOverride = 635,\n \n /**\n * The CreateRetailTransaction member.\n */\n CreateRetailTransaction = 636,\n \n /**\n * The SetCommissionSalesGroupOnTransaction member.\n */\n SetCommissionSalesGroupOnTransaction = 637,\n \n /**\n * The SetCommissionSalesGroupOnLine member.\n */\n SetCommissionSalesGroupOnLine = 638,\n \n /**\n * The ClearCommissionSalesGroupOnTransaction member.\n */\n ClearCommissionSalesGroupOnTransaction = 639,\n \n /**\n * The ClearCommissionSalesGroupOnLine member.\n */\n ClearCommissionSalesGroupOnLine = 640,\n \n /**\n * The CarryoutSelectedProducts member.\n */\n CarryoutSelectedProducts = 641,\n \n /**\n * The CarryoutAllProducts member.\n */\n CarryoutAllProducts = 642,\n \n /**\n * The AddCoupons member.\n */\n AddCoupons = 643,\n \n /**\n * The RemoveCoupons member.\n */\n RemoveCoupons = 644,\n \n /**\n * The ViewAllDiscounts member.\n */\n ViewAllDiscounts = 645,\n \n /**\n * The ViewAvailableDiscounts member.\n */\n ViewAvailableDiscounts = 646,\n \n /**\n * The ChangeDeliveryMode member.\n */\n ChangeDeliveryMode = 647,\n \n /**\n * The CancelOrder member.\n */\n CancelOrder = 648,\n \n /**\n * The CreatePickingList member.\n */\n CreatePickingList = 649,\n \n /**\n * The PrintPackingSlip member.\n */\n PrintPackingSlip = 650,\n \n /**\n * The EditFulfillmentLine member.\n */\n EditFulfillmentLine = 651,\n \n /**\n * The AcceptFulfillmentLine member.\n */\n AcceptFulfillmentLine = 652,\n \n /**\n * The RejectFulfillmentLine member.\n */\n RejectFulfillmentLine = 653,\n \n /**\n * The PickFulfillmentLine member.\n */\n PickFulfillmentLine = 654,\n \n /**\n * The PackFulfillmentLine member.\n */\n PackFulfillmentLine = 655,\n \n /**\n * The ShipFulfillmentLine member.\n */\n ShipFulfillmentLine = 656,\n \n /**\n * The PickupFulfillmentLine member.\n */\n PickupFulfillmentLine = 657,\n \n /**\n * The ChangePickupLines member.\n */\n ChangePickupLines = 658,\n \n /**\n * The LogOn member.\n */\n LogOn = 700,\n \n /**\n * The LogOff member.\n */\n LogOff = 701,\n \n /**\n * The ChangeUser member.\n */\n ChangeUser = 702,\n \n /**\n * The LockTerminal member.\n */\n LockTerminal = 703,\n \n /**\n * The LogOffForce member.\n */\n LogOffForce = 704,\n \n /**\n * The EmployeeCard member.\n */\n EmployeeCard = 705,\n \n /**\n * The EmployeeBarcode member.\n */\n EmployeeBarcode = 706,\n \n /**\n * The ActivateDevice member.\n */\n ActivateDevice = 707,\n \n /**\n * The DeactivateDevice member.\n */\n DeactivateDevice = 708,\n \n /**\n * The ChangeHardwareStation member.\n */\n ChangeHardwareStation = 709,\n \n /**\n * The PairHardwareStation member.\n */\n PairHardwareStation = 710,\n \n /**\n * The MassActivateDevice member.\n */\n MassActivateDevice = 711,\n \n /**\n * The ViewMyClientBook member.\n */\n ViewMyClientBook = 712,\n \n /**\n * The ViewStoreClientBooks member.\n */\n ViewStoreClientBooks = 713,\n \n /**\n * The AddCustomerToClientBook member.\n */\n AddCustomerToClientBook = 714,\n \n /**\n * The RemoveCustomersFromClientBook member.\n */\n RemoveCustomersFromClientBook = 715,\n \n /**\n * The ReassignClientBookCustomers member.\n */\n ReassignClientBookCustomers = 716,\n \n /**\n * The HealthCheck member.\n */\n HealthCheck = 717,\n \n /**\n * The NegativeAdjustment member.\n */\n NegativeAdjustment = 800,\n \n /**\n * The InventoryLookup member.\n */\n InventoryLookup = 801,\n \n /**\n * The StockCount member.\n */\n StockCount = 802,\n \n /**\n * The PickingAndReceiving member.\n */\n PickingAndReceiving = 803,\n \n /**\n * The InboundInventory member.\n */\n InboundInventory = 804,\n \n /**\n * The OutboundInventory member.\n */\n OutboundInventory = 805,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 806,\n \n /**\n * The InventoryMovement member.\n */\n InventoryMovement = 807,\n \n /**\n * The PostStockCounting member.\n */\n PostStockCounting = 808,\n \n /**\n * The ApplicationExit member.\n */\n ApplicationExit = 900,\n \n /**\n * The PrintTaxFree member.\n */\n PrintTaxFree = 906,\n \n /**\n * The PrintPreviousSlip member.\n */\n PrintPreviousSlip = 907,\n \n /**\n * The PrintPreviousInvoice member.\n */\n PrintPreviousInvoice = 908,\n \n /**\n * The UploadPrinterLogo member.\n */\n UploadPrinterLogo = 909,\n \n /**\n * The RestartComputer member.\n */\n RestartComputer = 910,\n \n /**\n * The ShutdownComputer member.\n */\n ShutdownComputer = 911,\n \n /**\n * The DesignModeEnable member.\n */\n DesignModeEnable = 912,\n \n /**\n * The DesignModeDisable member.\n */\n DesignModeDisable = 913,\n \n /**\n * The MinimizePOSWindow member.\n */\n MinimizePOSWindow = 914,\n \n /**\n * The BlankOperation member.\n */\n BlankOperation = 915,\n \n /**\n * The WindowsWorkflowOperation member.\n */\n WindowsWorkflowOperation = 916,\n \n /**\n * The DatabaseConnectionStatus member.\n */\n DatabaseConnectionStatus = 917,\n \n /**\n * The ShowBlindClosedShifts member.\n */\n ShowBlindClosedShifts = 918,\n \n /**\n * The ExtendedLogOn member.\n */\n ExtendedLogOn = 919,\n \n /**\n * The TimeRegistration member.\n */\n TimeRegistration = 920,\n \n /**\n * The ViewTimeClockEntries member.\n */\n ViewTimeClockEntries = 921,\n \n /**\n * The ViewProductDetails member.\n */\n ViewProductDetails = 922,\n \n /**\n * The ViewOrderFulfillmentLines member.\n */\n ViewOrderFulfillmentLines = 928,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 1000,\n \n /**\n * The ViewReport member.\n */\n ViewReport = 1003,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 1052,\n \n /**\n * The BlindCloseShift member.\n */\n BlindCloseShift = 1053,\n \n /**\n * The SuspendShift member.\n */\n SuspendShift = 1054,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 1055,\n \n /**\n * The PrintX member.\n */\n PrintX = 1056,\n \n /**\n * The PrintZ member.\n */\n PrintZ = 1057,\n \n /**\n * The PrintFiscalX member.\n */\n PrintFiscalX = 1058,\n \n /**\n * The PrintFiscalZ member.\n */\n PrintFiscalZ = 1059,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 1100,\n \n /**\n * The DeclareStartAmount member.\n */\n DeclareStartAmount = 1200,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 1201,\n \n /**\n * The TenderRemoval member.\n */\n TenderRemoval = 1210,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 1211,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 1212,\n \n /**\n * The ShippingAddressSearch member.\n */\n ShippingAddressSearch = 1213,\n \n /**\n * The ShippingAddressAdd member.\n */\n ShippingAddressAdd = 1214,\n \n /**\n * The ChangePassword member.\n */\n ChangePassword = 1215,\n \n /**\n * The ResetPassword member.\n */\n ResetPassword = 1216,\n \n /**\n * The KitDisassembly member.\n */\n KitDisassembly = 1217,\n \n /**\n * The ForceUnlockPeripheral member.\n */\n ForceUnlockPeripheral = 1218,\n \n /**\n * The OpenURL member.\n */\n OpenURL = 1219,\n \n /**\n * The ManageSafe member.\n */\n ManageSafe = 1220,\n \n /**\n * The VoidSuspendedTransactions member.\n */\n VoidSuspendedTransactions = 1221,\n \n /**\n * The SkipFiscalRegistration member.\n */\n SkipFiscalRegistration = 1300,\n \n /**\n * The MarkFiscalEventRegistered member.\n */\n MarkFiscalEventRegistered = 1301,\n \n /**\n * The CompleteFiscalRegistrationProcess member.\n */\n CompleteFiscalRegistrationProcess = 1302,\n \n /**\n * The SkipHealthCheckError member.\n */\n SkipHealthCheckError = 1303,\n \n /**\n * The PostponeFiscalRegistration member.\n */\n PostponeFiscalRegistration = 1304,\n \n /**\n * The ManageChecklistsAndTasks member.\n */\n ManageChecklistsAndTasks = 1400,\n \n /**\n * The Invalid member.\n */\n Invalid = 65535\n }\n \n /**\n * RefinerType enum type.\n */\n export enum RefinerType {\n \n /**\n * The SingleSelect member.\n */\n SingleSelect = 0,\n \n /**\n * The MultiSelect member.\n */\n MultiSelect = 1,\n \n /**\n * The FreeText member.\n */\n FreeText = 2\n }\n \n /**\n * DisplayTemplate enum type.\n */\n export enum DisplayTemplate {\n \n /**\n * The List member.\n */\n List = 0,\n \n /**\n * The Slider member.\n */\n Slider = 1,\n \n /**\n * The SliderWithBars member.\n */\n SliderWithBars = 2,\n \n /**\n * The Range member.\n */\n Range = 3,\n \n /**\n * The TextBox member.\n */\n TextBox = 4\n }\n \n /**\n * ClientBookRefinerSource enum type.\n */\n export enum ClientBookRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The CustomerSearchKeyword member.\n */\n CustomerSearchKeyword = 2,\n \n /**\n * The StaffId member.\n */\n StaffId = 3\n }\n \n /**\n * ProductRefinerSource enum type.\n */\n export enum ProductRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The Category member.\n */\n Category = 2,\n \n /**\n * The Price member.\n */\n Price = 3,\n \n /**\n * The Rating member.\n */\n Rating = 4\n }\n \n /**\n * LoyaltyCardTenderType enum type.\n */\n export enum LoyaltyCardTenderType {\n \n /**\n * The AsCardTender member.\n */\n AsCardTender = 0,\n \n /**\n * The AsContactTender member.\n */\n AsContactTender = 1,\n \n /**\n * The NoTender member.\n */\n NoTender = 2,\n \n /**\n * The Blocked member.\n */\n Blocked = 3\n }\n \n /**\n * ReleasedProductType enum type.\n */\n export enum ReleasedProductType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The Service member.\n */\n Service = 2\n }\n \n /**\n * RetailChannelType enum type.\n */\n export enum RetailChannelType {\n \n /**\n * The RetailStore member.\n */\n RetailStore = 0,\n \n /**\n * The OnlineStore member.\n */\n OnlineStore = 1,\n \n /**\n * The OnlineMarketplace member.\n */\n OnlineMarketplace = 2,\n \n /**\n * The SharePointOnlineStore member.\n */\n SharePointOnlineStore = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * LogOnConfiguration enum type.\n */\n export enum LogOnConfiguration {\n \n /**\n * The LocalDatabase member.\n */\n LocalDatabase = 0,\n \n /**\n * The RealTimeService member.\n */\n RealTimeService = 1\n }\n \n /**\n * TransactionServiceAuthenticationType enum type.\n */\n export enum TransactionServiceAuthenticationType {\n \n /**\n * The CertificateAuthentication member.\n */\n CertificateAuthentication = 0,\n \n /**\n * The ServiceToServiceAuthentication member.\n */\n ServiceToServiceAuthentication = 1,\n \n /**\n * The AdfsServiceToServiceClientSecretAuthentication member.\n */\n AdfsServiceToServiceClientSecretAuthentication = 2,\n \n /**\n * The ServiceToServiceClientCertificateAuthentication member.\n */\n ServiceToServiceClientCertificateAuthentication = 3,\n \n /**\n * The AdfsServiceToServiceClientCertificateAuthentication member.\n */\n AdfsServiceToServiceClientCertificateAuthentication = 4\n }\n \n /**\n * IncludePersonalDataInGuestOrderLookupPolicy enum type.\n */\n export enum IncludePersonalDataInGuestOrderLookupPolicy {\n \n /**\n * The Never member.\n */\n Never = 0,\n \n /**\n * The GuestOrdersOnly member.\n */\n GuestOrdersOnly = 1,\n \n /**\n * The AllOrders member.\n */\n AllOrders = 2\n }\n \n /**\n * RetailAddressBookType enum type.\n */\n export enum RetailAddressBookType {\n \n /**\n * The Customer member.\n */\n Customer = 0,\n \n /**\n * The Employee member.\n */\n Employee = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * InventAvailabilityCalculationMode enum type.\n */\n export enum InventAvailabilityCalculationMode {\n \n /**\n * The RealTimeService member.\n */\n RealTimeService = 0,\n \n /**\n * The Channel member.\n */\n Channel = 1\n }\n \n /**\n * InventoryAvailabilityClientDisplayMode enum type.\n */\n export enum InventoryAvailabilityClientDisplayMode {\n \n /**\n * The Raw member.\n */\n Raw = 0,\n \n /**\n * The Buffered member.\n */\n Buffered = 1,\n \n /**\n * The None member.\n */\n None = 2,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * EmployeeActivityType enum type.\n */\n export enum EmployeeActivityType {\n \n /**\n * The ClockIn member.\n */\n ClockIn = 0,\n \n /**\n * The JobStop member.\n */\n JobStop = 1,\n \n /**\n * The JobStart member.\n */\n JobStart = 2,\n \n /**\n * The TeamStop member.\n */\n TeamStop = 3,\n \n /**\n * The TeamStart member.\n */\n TeamStart = 4,\n \n /**\n * The BreakFlowStart member.\n */\n BreakFlowStart = 5,\n \n /**\n * The BreakCancelOne member.\n */\n BreakCancelOne = 6,\n \n /**\n * The BreakCancelAll member.\n */\n BreakCancelAll = 7,\n \n /**\n * The BreakFlowStop member.\n */\n BreakFlowStop = 8,\n \n /**\n * The FinishQuantity member.\n */\n FinishQuantity = 9,\n \n /**\n * The ClockOut member.\n */\n ClockOut = 10,\n \n /**\n * The EventCode member.\n */\n EventCode = 11,\n \n /**\n * The BreakFromWork member.\n */\n BreakFromWork = 12,\n \n /**\n * The BreakForLunch member.\n */\n BreakForLunch = 13,\n \n /**\n * The Logbook member.\n */\n Logbook = 14,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeliveryPreferenceType enum type.\n */\n export enum DeliveryPreferenceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ShipToAddress member.\n */\n ShipToAddress = 1,\n \n /**\n * The PickupFromStore member.\n */\n PickupFromStore = 2,\n \n /**\n * The ElectronicDelivery member.\n */\n ElectronicDelivery = 3,\n \n /**\n * The DeliverItemsIndividually member.\n */\n DeliverItemsIndividually = 4\n }\n \n /**\n * LayoutType enum type.\n */\n export enum LayoutType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ModernPosCompact member.\n */\n ModernPosCompact = 1,\n \n /**\n * The ModernPosFull member.\n */\n ModernPosFull = 2,\n \n /**\n * The Epos member.\n */\n Epos = 3\n }\n \n /**\n * SalesInvoiceType enum type.\n */\n export enum SalesInvoiceType {\n \n /**\n * The Journal member.\n */\n Journal = 0,\n \n /**\n * The DEL_Quotation member.\n */\n DEL_Quotation = 1,\n \n /**\n * The Subscription member.\n */\n Subscription = 2,\n \n /**\n * The Sales member.\n */\n Sales = 3,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 4,\n \n /**\n * The DEL_Blanket member.\n */\n DEL_Blanket = 5,\n \n /**\n * The ItemReq member.\n */\n ItemReq = 6\n }\n \n /**\n * InvoiceType enum type.\n */\n export enum InvoiceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SalesOrderInvoice member.\n */\n SalesOrderInvoice = 1,\n \n /**\n * The FreeTextInvoice member.\n */\n FreeTextInvoice = 2,\n \n /**\n * The ProjectInvoice member.\n */\n ProjectInvoice = 3,\n \n /**\n * The CreditNoteInvoice member.\n */\n CreditNoteInvoice = 4,\n \n /**\n * The FreeTextCreditNoteInvoice member.\n */\n FreeTextCreditNoteInvoice = 5,\n \n /**\n * The ProjectCreditNoteInvoice member.\n */\n ProjectCreditNoteInvoice = 6\n }\n \n /**\n * InvoicePaidStatus enum type.\n */\n export enum InvoicePaidStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Unpaid member.\n */\n Unpaid = 1,\n \n /**\n * The PartiallyPaid member.\n */\n PartiallyPaid = 2,\n \n /**\n * The Paid member.\n */\n Paid = 3\n }\n \n /**\n * TaxOverrideType enum type.\n */\n export enum TaxOverrideType {\n \n /**\n * The ItemSalesTaxGroup member.\n */\n ItemSalesTaxGroup = 0,\n \n /**\n * The SalesTaxGroup member.\n */\n SalesTaxGroup = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * TaxOverrideBy enum type.\n */\n export enum TaxOverrideBy {\n \n /**\n * The Line member.\n */\n Line = 0,\n \n /**\n * The Cart member.\n */\n Cart = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * ReasonCodeInputRequiredType enum type.\n */\n export enum ReasonCodeInputRequiredType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Always member.\n */\n Always = 1,\n \n /**\n * The Positive member.\n */\n Positive = 2,\n \n /**\n * The Negative member.\n */\n Negative = 3\n }\n \n /**\n * RecordingValueType enum type.\n */\n export enum RecordingValueType {\n \n /**\n * The Preferred member.\n */\n Preferred = 0,\n \n /**\n * The Example member.\n */\n Example = 1\n }\n \n /**\n * UserActionType enum type.\n */\n export enum UserActionType {\n \n /**\n * The Input member.\n */\n Input = 1,\n \n /**\n * The Output member.\n */\n Output = 16,\n \n /**\n * The Validation member.\n */\n Validation = 256\n }\n \n /**\n * ArtifactType enum type.\n */\n export enum ArtifactType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Ax7Bpm member.\n */\n Ax7Bpm = 1,\n \n /**\n * The Visio member.\n */\n Visio = 2,\n \n /**\n * The TaskGuide member.\n */\n TaskGuide = 3,\n \n /**\n * The Ax6Bpm member.\n */\n Ax6Bpm = 4,\n \n /**\n * The TaskGuideResources member.\n */\n TaskGuideResources = 5,\n \n /**\n * The TaskXml member.\n */\n TaskXml = 6,\n \n /**\n * The VideoWma member.\n */\n VideoWma = 7,\n \n /**\n * The ProcessXml member.\n */\n ProcessXml = 8,\n \n /**\n * The Trace member.\n */\n Trace = 9,\n \n /**\n * The RapidStartXml member.\n */\n RapidStartXml = 10,\n \n /**\n * The UserDrawing member.\n */\n UserDrawing = 100\n }\n \n /**\n * FrameworkAccess enum type.\n */\n export enum FrameworkAccess {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Global member.\n */\n Global = 1,\n \n /**\n * The Corporate member.\n */\n Corporate = 2,\n \n /**\n * The Private member.\n */\n Private = 3,\n \n /**\n * The BoxPackage member.\n */\n BoxPackage = 4\n }\n \n /**\n * MetadataControl enum type.\n */\n export enum MetadataControl {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SingleValue member.\n */\n SingleValue = 1,\n \n /**\n * The MultiValue member.\n */\n MultiValue = 2,\n \n /**\n * The Tags member.\n */\n Tags = 3,\n \n /**\n * The Links member.\n */\n Links = 4,\n \n /**\n * The ComboBox member.\n */\n ComboBox = 5,\n \n /**\n * The MultiSelect member.\n */\n MultiSelect = 6\n }\n \n /**\n * FiscalIntegrationRegistrationStatus enum type.\n */\n export enum FiscalIntegrationRegistrationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Completed member.\n */\n Completed = 1,\n \n /**\n * The Skipped member.\n */\n Skipped = 2,\n \n /**\n * The MarkedAsRegistered member.\n */\n MarkedAsRegistered = 3,\n \n /**\n * The AutoSkipped member.\n */\n AutoSkipped = 4,\n \n /**\n * The Postponed member.\n */\n Postponed = 5\n }\n \n /**\n * CustomerOrderOperation enum type.\n */\n export enum CustomerOrderOperation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Edit member.\n */\n Edit = 1,\n \n /**\n * The Cancel member.\n */\n Cancel = 2,\n \n /**\n * The PickUpFromStore member.\n */\n PickUpFromStore = 3,\n \n /**\n * The CreatePickingList member.\n */\n CreatePickingList = 4,\n \n /**\n * The CreatePackingSlip member.\n */\n CreatePackingSlip = 5,\n \n /**\n * The PrintPackingSlip member.\n */\n PrintPackingSlip = 6,\n \n /**\n * The Return member.\n */\n Return = 7,\n \n /**\n * The RejectFulfillmentLine member.\n */\n RejectFulfillmentLine = 8,\n \n /**\n * The AcceptFulfillmentLine member.\n */\n AcceptFulfillmentLine = 9,\n \n /**\n * The PackFulfillmentLine member.\n */\n PackFulfillmentLine = 10,\n \n /**\n * The ShipFulfillmentLine member.\n */\n ShipFulfillmentLine = 11,\n \n /**\n * The PickFulfillmentLine member.\n */\n PickFulfillmentLine = 12\n }\n \n /**\n * BusinessPartnerOperationType enum type.\n */\n export enum BusinessPartnerOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CreateProspect member.\n */\n CreateProspect = 1,\n \n /**\n * The AddUser member.\n */\n AddUser = 2,\n \n /**\n * The DeleteUser member.\n */\n DeleteUser = 3,\n \n /**\n * The EditUser member.\n */\n EditUser = 4,\n \n /**\n * The AccountStatement member.\n */\n AccountStatement = 5,\n \n /**\n * The InvoiceRequest member.\n */\n InvoiceRequest = 6\n }\n \n /**\n * BusinessPartnerOperationStatus enum type.\n */\n export enum BusinessPartnerOperationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Processed member.\n */\n Processed = 1,\n \n /**\n * The Error member.\n */\n Error = 2\n }\n \n /**\n * CartType enum type.\n */\n export enum CartType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shopping member.\n */\n Shopping = 1,\n \n /**\n * The Checkout member.\n */\n Checkout = 2,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 3,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 4,\n \n /**\n * The AccountDeposit member.\n */\n AccountDeposit = 5\n }\n \n /**\n * CartStatus enum type.\n */\n export enum CartStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Created member.\n */\n Created = 1,\n \n /**\n * The Suspended member.\n */\n Suspended = 2,\n \n /**\n * The Voided member.\n */\n Voided = 3\n }\n \n /**\n * PeriodicDiscountsCalculateScope enum type.\n */\n export enum PeriodicDiscountsCalculateScope {\n \n /**\n * The All member.\n */\n All = 0,\n \n /**\n * The None member.\n */\n None = 1,\n \n /**\n * The CouponDiscountsOnly member.\n */\n CouponDiscountsOnly = 2\n }\n \n /**\n * CustomerType enum type.\n */\n export enum CustomerType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Person member.\n */\n Person = 1,\n \n /**\n * The Organization member.\n */\n Organization = 2\n }\n \n /**\n * ContactInfoType enum type.\n */\n export enum ContactInfoType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Phone member.\n */\n Phone = 1,\n \n /**\n * The Email member.\n */\n Email = 2,\n \n /**\n * The Url member.\n */\n Url = 3,\n \n /**\n * The Telex member.\n */\n Telex = 4,\n \n /**\n * The Fax member.\n */\n Fax = 5\n }\n \n /**\n * ChecklistStatus enum type.\n */\n export enum ChecklistStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotStarted member.\n */\n NotStarted = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Completed member.\n */\n Completed = 3\n }\n \n /**\n * ChecklistTaskDeepLinkType enum type.\n */\n export enum ChecklistTaskDeepLinkType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Display member.\n */\n Display = 1,\n \n /**\n * The Output member.\n */\n Output = 2,\n \n /**\n * The Action member.\n */\n Action = 3,\n \n /**\n * The Url member.\n */\n Url = 4,\n \n /**\n * The PosOperation member.\n */\n PosOperation = 5,\n \n /**\n * The CustomerAccount member.\n */\n CustomerAccount = 6,\n \n /**\n * The PosOperationWithParameters member.\n */\n PosOperationWithParameters = 7\n }\n \n /**\n * ChecklistTaskStatus enum type.\n */\n export enum ChecklistTaskStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotStarted member.\n */\n NotStarted = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Completed member.\n */\n Completed = 3\n }\n \n /**\n * DocumentStatus enum type.\n */\n export enum DocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Quotation member.\n */\n Quotation = 1,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 2,\n \n /**\n * The Confirmation member.\n */\n Confirmation = 3,\n \n /**\n * The PickingList member.\n */\n PickingList = 4,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 5,\n \n /**\n * The ReceiptsList member.\n */\n ReceiptsList = 6,\n \n /**\n * The Invoice member.\n */\n Invoice = 7,\n \n /**\n * The ApproveJournal member.\n */\n ApproveJournal = 8,\n \n /**\n * The ProjectInvoice member.\n */\n ProjectInvoice = 9,\n \n /**\n * The ProjectPackingSlip member.\n */\n ProjectPackingSlip = 10,\n \n /**\n * The CRMQuotation member.\n */\n CRMQuotation = 11,\n \n /**\n * The Lost member.\n */\n Lost = 12,\n \n /**\n * The Canceled member.\n */\n Canceled = 13,\n \n /**\n * The FreeTextInvoice member.\n */\n FreeTextInvoice = 14,\n \n /**\n * The RFQ member.\n */\n RFQ = 15,\n \n /**\n * The RFQAccept member.\n */\n RFQAccept = 16,\n \n /**\n * The RFQReject member.\n */\n RFQReject = 17,\n \n /**\n * The PurchaseRequest member.\n */\n PurchaseRequest = 18,\n \n /**\n * The RFQResend member.\n */\n RFQResend = 19\n }\n \n /**\n * CustomerOrderType enum type.\n */\n export enum CustomerOrderType {\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 0,\n \n /**\n * The Quote member.\n */\n Quote = 1\n }\n \n /**\n * LineDiscountCalculationType enum type.\n */\n export enum LineDiscountCalculationType {\n \n /**\n * The Line member.\n */\n Line = 0,\n \n /**\n * The Multiline member.\n */\n Multiline = 1,\n \n /**\n * The MaxLineMultiline member.\n */\n MaxLineMultiline = 2,\n \n /**\n * The MinLineMultiline member.\n */\n MinLineMultiline = 3,\n \n /**\n * The LinePlusMultiline member.\n */\n LinePlusMultiline = 4,\n \n /**\n * The LineMultiplyMultiline member.\n */\n LineMultiplyMultiline = 5\n }\n \n /**\n * TaxCalculationType enum type.\n */\n export enum TaxCalculationType {\n \n /**\n * The Regular member.\n */\n Regular = 0,\n \n /**\n * The GTE member.\n */\n GTE = 1\n }\n \n /**\n * ShiftStatus enum type.\n */\n export enum ShiftStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Open member.\n */\n Open = 1,\n \n /**\n * The Closed member.\n */\n Closed = 2,\n \n /**\n * The BlindClosed member.\n */\n BlindClosed = 3,\n \n /**\n * The Suspended member.\n */\n Suspended = 4,\n \n /**\n * The Invalid member.\n */\n Invalid = 5\n }\n \n /**\n * TaxRegistrationType enum type.\n */\n export enum TaxRegistrationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The INN member.\n */\n INN = 1,\n \n /**\n * The KPP member.\n */\n KPP = 2,\n \n /**\n * The OKPO member.\n */\n OKPO = 3,\n \n /**\n * The OKDP member.\n */\n OKDP = 4,\n \n /**\n * The OKATO member.\n */\n OKATO = 5,\n \n /**\n * The OGRN member.\n */\n OGRN = 6,\n \n /**\n * The SNILS member.\n */\n SNILS = 7,\n \n /**\n * The CIFTS member.\n */\n CIFTS = 8,\n \n /**\n * The UID member.\n */\n UID = 9,\n \n /**\n * The TaxId member.\n */\n TaxId = 10,\n \n /**\n * The BranchId member.\n */\n BranchId = 11,\n \n /**\n * The CommercialRegisterCZ member.\n */\n CommercialRegisterCZ = 12,\n \n /**\n * The CustomsCustomerId member.\n */\n CustomsCustomerId = 14,\n \n /**\n * The Passport member.\n */\n Passport = 15,\n \n /**\n * The OfficialIdDoc member.\n */\n OfficialIdDoc = 16,\n \n /**\n * The ResidenceCertificate member.\n */\n ResidenceCertificate = 17,\n \n /**\n * The OtherIdDoc member.\n */\n OtherIdDoc = 18,\n \n /**\n * The NotCensused member.\n */\n NotCensused = 19,\n \n /**\n * The BusinessPremiseId member.\n */\n BusinessPremiseId = 20,\n \n /**\n * The LotteryCode member.\n */\n LotteryCode = 21\n }\n \n /**\n * CommerceListType enum type.\n */\n export enum CommerceListType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The WishList member.\n */\n WishList = 1\n }\n \n /**\n * ProductListType enum type.\n */\n export enum ProductListType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The OrderTemplate member.\n */\n OrderTemplate = 1,\n \n /**\n * The QuickOrder member.\n */\n QuickOrder = 2,\n \n /**\n * The WishList member.\n */\n WishList = 3\n }\n \n /**\n * RecommendationType enum type.\n */\n export enum RecommendationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Editorial member.\n */\n Editorial = 1,\n \n /**\n * The New member.\n */\n New = 2,\n \n /**\n * The Trending member.\n */\n Trending = 3,\n \n /**\n * The Bestselling member.\n */\n Bestselling = 4,\n \n /**\n * The Cart member.\n */\n Cart = 5,\n \n /**\n * The PeopleAlsoBuy member.\n */\n PeopleAlsoBuy = 6,\n \n /**\n * The Picks member.\n */\n Picks = 7,\n \n /**\n * The ShopSimilarLooks member.\n */\n ShopSimilarLooks = 8,\n \n /**\n * The ShopSimilarDescriptions member.\n */\n ShopSimilarDescriptions = 9\n }\n \n /**\n * PurchaseTransferOrderType enum type.\n */\n export enum PurchaseTransferOrderType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 1,\n \n /**\n * The TransferIn member.\n */\n TransferIn = 2,\n \n /**\n * The TransferOut member.\n */\n TransferOut = 3,\n \n /**\n * The TransferOrder member.\n */\n TransferOrder = 4,\n \n /**\n * The PickingList member.\n */\n PickingList = 5\n }\n \n /**\n * BusinessPartnerUserStatus enum type.\n */\n export enum BusinessPartnerUserStatus {\n \n /**\n * The Pending member.\n */\n Pending = 0,\n \n /**\n * The Active member.\n */\n Active = 1,\n \n /**\n * The Removed member.\n */\n Removed = 2\n }\n \n /**\n * ElectronicAddressType enum type.\n */\n export enum ElectronicAddressType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Email member.\n */\n Email = 1\n }\n \n /**\n * DownloadSessionStatus enum type.\n */\n export enum DownloadSessionStatus {\n \n /**\n * The Started member.\n */\n Started = 0,\n \n /**\n * The Available member.\n */\n Available = 1,\n \n /**\n * The Requested member.\n */\n Requested = 2,\n \n /**\n * The Downloaded member.\n */\n Downloaded = 3,\n \n /**\n * The Applied member.\n */\n Applied = 4,\n \n /**\n * The Canceled member.\n */\n Canceled = 5,\n \n /**\n * The CreateFailed member.\n */\n CreateFailed = 6,\n \n /**\n * The DownloadFailed member.\n */\n DownloadFailed = 7,\n \n /**\n * The ApplyFailed member.\n */\n ApplyFailed = 8\n }\n \n /**\n * HardwareStationType enum type.\n */\n export enum HardwareStationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shared member.\n */\n Shared = 1,\n \n /**\n * The Dedicated member.\n */\n Dedicated = 2\n }\n \n /**\n * AuditEventUploadType enum type.\n */\n export enum AuditEventUploadType {\n \n /**\n * The Async member.\n */\n Async = 0,\n \n /**\n * The RealTime member.\n */\n RealTime = 1\n }\n \n /**\n * AuditEventType enum type.\n */\n export enum AuditEventType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The UserLogOn member.\n */\n UserLogOn = 1,\n \n /**\n * The UserLogOff member.\n */\n UserLogOff = 2,\n \n /**\n * The ManagerOverride member.\n */\n ManagerOverride = 3,\n \n /**\n * The ItemVoid member.\n */\n ItemVoid = 4,\n \n /**\n * The TransactionVoid member.\n */\n TransactionVoid = 5,\n \n /**\n * The PrintReceiptCopy member.\n */\n PrintReceiptCopy = 6,\n \n /**\n * The PriceCheck member.\n */\n PriceCheck = 7,\n \n /**\n * The TaxOverride member.\n */\n TaxOverride = 8,\n \n /**\n * The QuantityCorrection member.\n */\n QuantityCorrection = 9,\n \n /**\n * The PurgeTransactionsData member.\n */\n PurgeTransactionsData = 10\n }\n \n /**\n * AuditLogTraceLevel enum type.\n */\n export enum AuditLogTraceLevel {\n \n /**\n * The Trace member.\n */\n Trace = 0,\n \n /**\n * The Debug member.\n */\n Debug = 1,\n \n /**\n * The Error member.\n */\n Error = 2\n }\n \n /**\n * FiscalIntegrationEventType enum type.\n */\n export enum FiscalIntegrationEventType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sale member.\n */\n Sale = 1,\n \n /**\n * The PrintReceiptCopy member.\n */\n PrintReceiptCopy = 2,\n \n /**\n * The ZReport member.\n */\n ZReport = 3,\n \n /**\n * The XReport member.\n */\n XReport = 4,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 5,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 6,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 7,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 8,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 9,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 10,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 11,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 12,\n \n /**\n * The GiftReceipt member.\n */\n GiftReceipt = 13,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 14,\n \n /**\n * The CreditMemo member.\n */\n CreditMemo = 15,\n \n /**\n * The EditCustomerOrder member.\n */\n EditCustomerOrder = 16,\n \n /**\n * The CreateCustomerOrder member.\n */\n CreateCustomerOrder = 17,\n \n /**\n * The DepositOverride member.\n */\n DepositOverride = 18,\n \n /**\n * The FiscalXReport member.\n */\n FiscalXReport = 19,\n \n /**\n * The FiscalZReport member.\n */\n FiscalZReport = 20,\n \n /**\n * The AuditEvent member.\n */\n AuditEvent = 21,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 22,\n \n /**\n * The CancelCustomerOrder member.\n */\n CancelCustomerOrder = 23,\n \n /**\n * The BeginSale member.\n */\n BeginSale = 24,\n \n /**\n * The PreSale member.\n */\n PreSale = 25,\n \n /**\n * The IncomeAccounts member.\n */\n IncomeAccounts = 26,\n \n /**\n * The ExpenseAccounts member.\n */\n ExpenseAccounts = 27,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 28,\n \n /**\n * The SuspendTransaction member.\n */\n SuspendTransaction = 29,\n \n /**\n * The RecallTransaction member.\n */\n RecallTransaction = 30\n }\n \n /**\n * FiscalIntegrationDocumentGenerationResultType enum type.\n */\n export enum FiscalIntegrationDocumentGenerationResultType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Succeeded member.\n */\n Succeeded = 1,\n \n /**\n * The NotSupported member.\n */\n NotSupported = 2,\n \n /**\n * The NotRequired member.\n */\n NotRequired = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * FiscalIntegrationRegistrationProcessMode enum type.\n */\n export enum FiscalIntegrationRegistrationProcessMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Disabled member.\n */\n Disabled = 1,\n \n /**\n * The Excepted member.\n */\n Excepted = 2,\n \n /**\n * The Full member.\n */\n Full = 3\n }\n \n /**\n * FiscalIntegrationServiceCommunicationResultType enum type.\n */\n export enum FiscalIntegrationServiceCommunicationResultType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Succeeded member.\n */\n Succeeded = 1,\n \n /**\n * The Failed member.\n */\n Failed = 2\n }\n \n /**\n * FiscalIntegrationServiceFailureType enum type.\n */\n export enum FiscalIntegrationServiceFailureType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Busy member.\n */\n Busy = 1,\n \n /**\n * The NotAvailable member.\n */\n NotAvailable = 2,\n \n /**\n * The SubmissionFailed member.\n */\n SubmissionFailed = 3,\n \n /**\n * The Other member.\n */\n Other = 4,\n \n /**\n * The BadResponse member.\n */\n BadResponse = 5,\n \n /**\n * The Timeout member.\n */\n Timeout = 6\n }\n \n /**\n * PickupTimeslotAvailabilitySearchOption enum type.\n */\n export enum PickupTimeslotAvailabilitySearchOption {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The DailyGroupingTimeslotOnly member.\n */\n DailyGroupingTimeslotOnly = 1,\n \n /**\n * The All member.\n */\n All = 2\n }\n \n /**\n * AttachedServiceStatus enum type.\n */\n export enum AttachedServiceStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Disabled member.\n */\n Disabled = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Enabled member.\n */\n Enabled = 3,\n \n /**\n * The Submitted member.\n */\n Submitted = 4\n }\n \n /**\n * ReceiptEmailBehavior enum type.\n */\n export enum ReceiptEmailBehavior {\n \n /**\n * The DoNotEmail member.\n */\n DoNotEmail = 0,\n \n /**\n * The PromptUser member.\n */\n PromptUser = 1,\n \n /**\n * The AlwaysEmail member.\n */\n AlwaysEmail = 2\n }\n \n /**\n * CartLineQuantityLimitsErrors enum type.\n */\n export enum CartLineQuantityLimitsErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber\n }\n \n /**\n * CommunicationErrors enum type.\n */\n export enum CommunicationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault\n }\n \n /**\n * ConfigurationErrors enum type.\n */\n export enum ConfigurationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound\n }\n \n /**\n * DataValidationErrors enum type.\n */\n export enum DataValidationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The RegexAttribute_ValidationError member.\n */\n RegexAttribute_ValidationError,\n \n /**\n * The RequiredAttribute_ValidationError member.\n */\n RequiredAttribute_ValidationError,\n \n /**\n * The StringLengthAttribute_ValidationError member.\n */\n StringLengthAttribute_ValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicateObject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicateObject,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingParameter member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingParameter,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnknownRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnSupportedType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnSupportedType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IdMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IdMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCounty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCounty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartNotActive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartNotActive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOperation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOperation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartState member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartState,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_InvalidShift member.\n */\n Microsoft_Dynamics_Commerce_InvalidShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing,\n \n /**\n * The Microsoft_Dynamics_RetailServer_BadRequest member.\n */\n Microsoft_Dynamics_RetailServer_BadRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty\n }\n \n /**\n * FeatureNotSupportedErrors enum type.\n */\n export enum FeatureNotSupportedErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported\n }\n \n /**\n * SecurityErrors enum type.\n */\n export enum SecurityErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserNotActivated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserNotActivated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPassword member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPassword,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAudience member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAudience,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InternalServerError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InternalServerError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed\n }\n \n /**\n * StorageErrors enum type.\n */\n export enum StorageErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransientStorageError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransientStorageError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ValueTooLong member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ValueTooLong\n }\n \n /**\n * VersionNotSupportedErrors enum type.\n */\n export enum VersionNotSupportedErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported\n }\n \n /**\n * PaymentErrors enum type.\n */\n export enum PaymentErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FraudRisk member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FraudRisk,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo\n }\n \n /**\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 * PricingDataValidationErrors enum type.\n */\n export enum PricingDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups\n }\n \n /**\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 PrepaymentRoundingDifference?: number;\n PrepaymentAppliedOnPickup?: number;\n PrepaymentAmountInvoiced?: number;\n PromotionLines?: string[];\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n RequestedDeliveryDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n SalesId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n NetPrice?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxOnCancellationCharge?: number;\n TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n WarehouseId?: string;\n IsCreatedOffline?: boolean;\n CartStatusValue?: number;\n ReceiptTransactionTypeValue?: number;\n CommissionSalesGroup?: string;\n Version?: number;\n TotalItems?: number;\n HasTaxCalculationTriggered?: boolean;\n MerchantProperties?: PaymentMerchantInformation[];\n HasChargeCalculationTriggered?: boolean;\n FiscalTransactions?: FiscalTransaction[];\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Customer entity interface.\n */\n export interface Customer {\n AccountNumber: string;\n RecordId?: number;\n CreatedDateTime?: Date;\n ChargeGroup?: string;\n PriceGroup?: string;\n IsCustomerTaxInclusive?: boolean;\n Phone?: string;\n PhoneRecordId?: number;\n PhoneExt?: string;\n Cellphone?: string;\n Email?: string;\n EmailRecordId?: number;\n Url?: string;\n UrlRecordId?: number;\n Name?: string;\n PersonNameId?: number;\n FirstName?: string;\n MiddleName?: string;\n LastName?: string;\n DirectoryPartyRecordId?: number;\n PartyNumber?: string;\n CustomerTypeValue?: number;\n Language?: string;\n CustomerGroup?: string;\n CurrencyCode?: string;\n CNPJCPFNumber?: string;\n IdentificationNumber?: string;\n InvoiceAccount?: string;\n MandatoryCreditLimit?: boolean;\n CreditRating?: string;\n CreditLimit?: number;\n Balance?: number;\n Blocked?: boolean;\n BlockedType?: number;\n UseOrderNumberReference?: boolean;\n OrganizationId?: string;\n UsePurchaseRequest?: boolean;\n MultilineDiscountGroup?: string;\n TotalDiscountGroup?: string;\n LineDiscountGroup?: string;\n TaxGroup?: string;\n SalesTaxGroup?: string;\n CommissionSalesGroupId?: string;\n TaxExemptNumber?: string;\n VatNumber?: string;\n TaxOffice?: string;\n NonChargeableAccount?: boolean;\n Tag?: string;\n ReceiptSettings?: number;\n ReceiptEmail?: string;\n OptOutPersonalization?: boolean;\n OptOutWebActivityTracking?: boolean;\n RetailCustomerTableRecordId?: number;\n OfflineImage?: string;\n IsAsyncCustomer?: boolean;\n NewCustomerPartyNumber?: string;\n CustomerAffiliations?: CustomerAffiliation[];\n Addresses?: Address[];\n Attributes?: CustomerAttribute[];\n Images?: MediaLocation[];\n TitleRecordId?: number;\n IsFloorLimitBlocked?: boolean;\n IsB2b?: boolean;\n IsB2bAdmin?: boolean;\n BusinessPartnerId?: string;\n Contacts?: ContactInfo[];\n AllowOnAccountPayment?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Employee entity interface.\n */\n export interface Employee {\n StaffId: string;\n NameOnReceipt?: string;\n Name?: string;\n CultureName?: string;\n NumberOfDaysToPasswordExpiry?: number;\n Permissions?: EmployeePermissions;\n Images?: MediaLocation[];\n DefaultImage?: string;\n DefaultCommissionSalesGroup?: string;\n IdentifierTypeValue?: number;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Checklist entity interface.\n */\n export interface Checklist {\n RecordId: number;\n Tasks?: ChecklistTask[];\n Version?: string;\n ProcessId?: string;\n Name?: string;\n Description?: string;\n AssignedToChannelId?: number;\n AssignedToWorkerPersonnelNumber?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n TargetDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesOrder entity interface.\n */\n export interface SalesOrder {\n DocumentStatusValue?: number;\n RecordId?: number;\n StatusValue?: number;\n McrOrderStopped?: boolean;\n Shipments?: Shipment[];\n AggregateInventoryQuantities?: InventoryQuantities;\n UnifiedDeliveryInformation?: DeliveryInformation;\n PaymentStatusValue?: number;\n DetailedOrderStatusValue?: number;\n AffiliationLoyaltyTierLines?: SalesAffiliationLoyaltyTier[];\n IsRequiredAmountPaid?: boolean;\n IsDiscountFullyCalculated?: boolean;\n IgnoreDiscountCalculation?: boolean;\n AmountDue?: number;\n EstimatedShippingAmount?: number;\n AmountPaid?: number;\n CustomerOrderRemainingBalance?: number;\n AttributeValues?: AttributeValueBase[];\n AvailableDepositAmount?: number;\n BeginDateTime?: Date;\n CreatedDateTime?: Date;\n BusinessDate?: Date;\n CalculatedDepositAmount?: number;\n CancellationCharge?: number;\n ChannelId?: number;\n ChannelReferenceId?: string;\n ChargeAmount?: number;\n ChargeLines?: ChargeLine[];\n Comment?: string;\n Coupons?: Coupon[];\n InvoiceComment?: string;\n ContactInformationCollection?: ContactInformation[];\n CurrencyCode?: string;\n CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n CustomerId?: string;\n CustomerOrderModeValue?: number;\n CustomerOrderTypeValue?: number;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n NetPrice?: number;\n DiscountCodes?: string[];\n EntryStatusValue?: number;\n GrossAmount?: number;\n HasLoyaltyPayment?: boolean;\n Id: string;\n InternalTransactionId?: string;\n SuspendedTransactionId?: string;\n IncomeExpenseLines?: IncomeExpenseLine[];\n IncomeExpenseTotalAmount?: number;\n InventoryLocationId?: string;\n IsCreatedOffline?: boolean;\n IsReturnByReceipt?: boolean;\n IsSuspended?: boolean;\n IsTaxIncludedInPrice?: boolean;\n IsTaxExemptedForPriceInclusive?: boolean;\n LineDiscount?: number;\n LineDiscountCalculationTypeValue?: number;\n LoyaltyCardId?: string;\n LoyaltyDiscountAmount?: number;\n LoyaltyManualDiscountAmount?: number;\n LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n ModifiedDateTime?: Date;\n Name?: string;\n NetAmount?: number;\n NetAmountWithoutTax?: number;\n NetAmountWithNoTax?: number;\n NetAmountWithTax?: number;\n NumberOfItems?: number;\n OverriddenDepositAmount?: number;\n OverriddenDepositWithoutCarryoutAmount?: number;\n PeriodicDiscountAmount?: number;\n TenderDiscountAmount?: number;\n PrepaymentAmountAppliedOnPickup?: number;\n PrepaymentAmountInvoiced?: number;\n PrepaymentAmountPaid?: number;\n PrepaymentRoundingDifference?: number;\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n ReceiptId?: string;\n RequestedDeliveryDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n ReturnTransactionHasLoyaltyPayment?: boolean;\n SalesId?: string;\n SalesPaymentDifference?: number;\n SalesLines?: SalesLine[];\n ShiftId?: number;\n ShiftTerminalId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n StatementCode?: string;\n StoreId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxAmountExclusive?: number;\n TaxAmountInclusive?: number;\n TaxLines?: TaxLine[];\n TaxOnCancellationCharge?: number;\n TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalDiscount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n TransactionTypeValue?: number;\n TaxCalculationTypeValue?: number;\n SalesInvoiceAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardBalance?: number;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n GiftCardIssueAmount?: number;\n GiftCardIdMasked?: string;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n HasTaxCalculationTriggered?: boolean;\n HasChargeCalculationTriggered?: boolean;\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n CustomerName?: string;\n FiscalTransactions?: FiscalTransaction[];\n LanguageId?: string;\n SalesAgreementRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Shift entity interface.\n */\n export interface Shift {\n ShiftId: number;\n TerminalId: string;\n StartingAmountTotal: number;\n FloatingEntryAmountTotal: number;\n AddToTenderAmountTotal: number;\n SafeDropTotal: number;\n BankDropTotal: number;\n RemoveTenderAmountTotal: number;\n DeclareTenderAmountTotal: number;\n OverShortTotal: number;\n TenderedTotal: number;\n ChangeTotal: number;\n IncomeAccountTotal: number;\n ExpenseAccountTotal: number;\n CashDrawer?: string;\n StoreRecordId?: number;\n StoreId?: string;\n StaffId?: string;\n CurrentStaffId?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n CloseDateTime?: Date;\n ClosedAtTerminalId?: string;\n ClosedAtShiftId?: number;\n CurrentTerminalId?: string;\n SalesTotal?: number;\n StatusDateTime?: Date;\n ReturnsTotal?: number;\n PaidToAccountTotal?: number;\n TaxTotal?: number;\n ChargeTotal?: number;\n DiscountTotal?: number;\n RoundedAmountTotal?: number;\n CustomerCount?: number;\n SaleTransactionCount?: number;\n NoSaleTransactionCount?: number;\n VoidTransactionCount?: number;\n LogOnTransactionCount?: number;\n SuspendedTransactionCount?: number;\n TransactionCount?: number;\n ReceiptsCount?: number;\n ReturnsCount?: number;\n GoodsSoldQty?: number;\n ServicesSoldQty?: number;\n ReceiptCopiesCount?: number;\n ReceiptCopiesTotal?: number;\n PriceOverrideTotal?: number;\n SuspendedTotal?: number;\n SalesTotalIncludingTax?: number;\n SalesTotalExcludingTax?: number;\n SalesGrandTotal?: number;\n ReturnsGrandTotal?: number;\n TaxLines?: ShiftTaxLine[];\n TenderLines?: ShiftTenderLine[];\n AccountLines?: ShiftAccountLine[];\n IsShared?: boolean;\n StartingAmountRunningTotal?: number;\n GiftCardsTotal?: number;\n GiftCardCashOutTotal?: number;\n VoidedSalesTotal?: number;\n ShiftSalesTotal?: number;\n ShiftReturnsTotal?: number;\n HasPendingOfflineTransactions?: number;\n NumberOfUnreconciledLines?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StockCountJournal entity interface.\n */\n export interface StockCountJournal {\n JournalId: string;\n RecordId?: string;\n Description?: string;\n InventLocationId?: string;\n DataAreaId?: string;\n StockCountTransactionLines?: StockCountJournalTransaction[];\n Worker?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnit entity interface.\n */\n export interface OrgUnit {\n OrgUnitNumber: string;\n RecordId: number;\n InventoryLocationId?: string;\n OMOperatingUnitNumber?: string;\n TaxGroup?: string;\n FunctionalityProfileId?: string;\n UseCustomerBasedTax?: boolean;\n UseCustomerBasedTaxExemption?: boolean;\n UseDestinationBasedTax?: boolean;\n Currency?: string;\n TimeZoneCode?: number;\n OrgUnitAddress?: Address;\n OrgUnitFullAddress?: string;\n OrgUnitName?: string;\n Latitude?: number;\n Longitude?: number;\n EmailReceiptProfileId?: string;\n ShippingWarehouseAddress?: Address;\n TaxRegistrations?: TaxRegistration[];\n EventNotificationProfileId?: string;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Product entity interface.\n */\n export interface Product {\n RecordId: number;\n ProductName?: string;\n ProductNumber?: string;\n Description?: string;\n IsMasterProduct: boolean;\n IsKit: boolean;\n ItemId?: string;\n HasLinkedProducts: boolean;\n Rules: ProductRules;\n DefaultUnitOfMeasure?: string;\n Name?: string;\n Locale?: string;\n OfflineImage?: string;\n IsRemote?: boolean;\n ChangeTrackingInformation?: ProductChangeTrackingInformation;\n Image?: RichMediaLocations;\n UnitsOfMeasureSymbol?: string[];\n LinkedProducts?: LinkedProduct[];\n BasePrice?: number;\n Price?: number;\n AdjustedPrice?: number;\n RetailContext?: ProjectionDomain;\n PrimaryCategoryId?: number;\n CategoryIds?: number[];\n DisplayOrderInCategories?: DisplayOrderInCategory[];\n RelatedProducts?: RelatedProduct[];\n ProductsRelatedToThis?: RelatedProduct[];\n ProductSchema?: string[];\n ProductProperties?: ProductPropertyTranslation[];\n CompositionInformation?: ProductCompositionInformation;\n ParentKits?: KitComponent[];\n SearchName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductCatalog entity interface.\n */\n export interface ProductCatalog {\n RecordId: number;\n Name?: string;\n Description?: string;\n Language?: string;\n IsSnapshotEnabled: boolean;\n ValidFrom: Date;\n ValidTo: Date;\n CreatedOn: Date;\n ModifiedOn: Date;\n PublishedOn: Date;\n Images?: MediaLocation[];\n ChannelId?: number;\n DefaultImage?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceList entity interface.\n */\n export interface CommerceList {\n Id: number;\n Name?: string;\n CustomerId?: string;\n CustomerName?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n IsCollaborative?: boolean;\n CreatedDateTime?: Date;\n DueDateTime?: Date;\n CommerceListTypeValue?: number;\n CommerceListLines?: CommerceListLine[];\n CommerceListContributors?: CommerceListContributor[];\n CommerceListInvitations?: CommerceListInvitation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductList entity interface.\n */\n export interface ProductList {\n Id: string;\n Name?: string;\n CustomerId?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n ProductListTypeValue?: number;\n DataAreaId?: string;\n ProductListLines?: ProductListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Recommendation entity interface.\n */\n export interface Recommendation {\n Id: string;\n RecommendationTypeValue?: number;\n Title?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrder entity interface.\n */\n export interface TransferOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityShipRemaining?: number;\n QuantityReceiveRemaining?: number;\n ShipDate?: Date;\n ReceiveDate?: Date;\n DeliveryModeId?: string;\n OrderLines?: TransferOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseOrder entity interface.\n */\n export interface PurchaseOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n TotalReceived?: number;\n OrderLines?: PurchaseOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingList entity interface.\n */\n export interface PickingList {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationId?: string;\n DeliveryDate?: Date;\n DeliveryMode?: string;\n TotalReceived?: number;\n OrderLines?: PickingListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warehouse entity interface.\n */\n export interface Warehouse {\n InventLocation: string;\n Name?: string;\n IsWMSEnabled: boolean;\n DefaultInventoryStatus?: string;\n DefaultReceiptLocation?: string;\n DefaultLocationId?: string;\n DefaultIssueLocation?: string;\n Address?: Address;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScanResult entity interface.\n */\n export interface ScanResult {\n ScannedText: string;\n MaskTypeValue?: number;\n Barcode?: Barcode;\n Product?: SimpleProduct;\n LoyaltyCard?: LoyaltyCard;\n GiftCard?: GiftCard;\n ExtensionProperties?: CommerceProperty[];\n Customer?: Customer;\n }\n \n /**\n * SalesOrderContextualOperationsMap entity interface.\n */\n export interface SalesOrderContextualOperationsMap {\n Id: string;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n SalesOrder: SalesOrder;\n }\n \n /**\n * InventoryInboundOutboundDocument entity interface.\n */\n export interface InventoryInboundOutboundDocument {\n WorkDocumentId: string;\n TerminalId?: string;\n CommitRequestId?: string;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n OperationTypeValue?: number;\n StatusValue?: number;\n ReceiptId?: string;\n Note?: string;\n OperationResultMessage?: string;\n DocumentId?: string;\n LongVersion?: number;\n SourceDocument?: InventoryInboundOutboundSourceDocument;\n SourceDocumentTypeValue?: number;\n CreatedDateTime?: Date;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentTypeId?: string;\n Description?: string;\n StaffId?: string;\n TransactionDate?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartner entity interface.\n */\n export interface BusinessPartner {\n BusinessPartnerId: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerUser entity interface.\n */\n export interface BusinessPartnerUser {\n B2BUserId: string;\n BusinessPartnerId?: string;\n FirstName?: string;\n LastName?: string;\n Email?: string;\n SpendingLimit?: number;\n LastOperationId?: string;\n StatusValue?: number;\n IsAdmin?: boolean;\n AccountNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SuspendedCart entity interface.\n */\n export interface SuspendedCart {\n Id: string;\n ReceiptId?: string;\n ShiftId?: number;\n ShiftTerminalId?: string;\n ExtensionProperties?: CommerceProperty[];\n Cart?: Cart;\n }\n \n /**\n * CountryRegion entity interface.\n */\n export interface CountryRegion {\n CountryRegionId: string;\n IsoCode?: string;\n ShortName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleEnumeration entity interface.\n */\n export interface ExtensibleEnumeration {\n Name: string;\n Value: number;\n }\n \n /**\n * ExtensibleEnumeration_1OfT entity interface.\n */\n export interface ExtensibleEnumeration_1OfT extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleTransactionType entity interface.\n */\n export interface ExtensibleTransactionType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleSalesTransactionType entity interface.\n */\n export interface ExtensibleSalesTransactionType extends ExtensibleEnumeration {\n }\n \n /**\n * FulfillmentLineStatus entity interface.\n */\n export interface FulfillmentLineStatus extends ExtensibleEnumeration {\n }\n \n /**\n * FulfillmentLineDeliveryType entity interface.\n */\n export interface FulfillmentLineDeliveryType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleAddressType entity interface.\n */\n export interface ExtensibleAddressType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity interface.\n */\n export interface ExtensibleLoyaltyRewardPointActivityEntryType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleAttributeDataType entity interface.\n */\n export interface ExtensibleAttributeDataType extends ExtensibleEnumeration {\n }\n \n /**\n * ReleasedProductServiceType entity interface.\n */\n export interface ReleasedProductServiceType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleElectronicAddressType entity interface.\n */\n export interface ExtensibleElectronicAddressType extends ExtensibleEnumeration {\n }\n \n /**\n * ReceiptOutputFormatType entity interface.\n */\n export interface ReceiptOutputFormatType extends ExtensibleEnumeration {\n }\n \n /**\n * OrderLookupAdditionalCriteriaType entity interface.\n */\n export interface OrderLookupAdditionalCriteriaType extends ExtensibleEnumeration {\n }\n \n /**\n * Address entity interface.\n */\n export interface Address {\n Name?: string;\n Id?: string;\n FullAddress?: string;\n RecordId?: number;\n Street?: string;\n StreetNumber?: string;\n County?: string;\n CountyName?: string;\n City?: string;\n DistrictName?: string;\n State?: string;\n StateName?: string;\n ZipCode?: string;\n ThreeLetterISORegionName?: string;\n Phone?: string;\n PhoneRecordId?: number;\n PhoneExt?: string;\n Email?: string;\n EmailContent?: string;\n EmailRecordId?: number;\n Url?: string;\n UrlRecordId?: number;\n TwoLetterISORegionName?: string;\n Deactivate?: boolean;\n AttentionTo?: string;\n BuildingCompliment?: string;\n Postbox?: string;\n TaxGroup?: string;\n AddressTypeValue?: number;\n IsPrimary?: boolean;\n IsPrivate?: boolean;\n PartyNumber?: string;\n IsAsyncAddress?: boolean;\n DirectoryPartyTableRecordId?: number;\n DirectoryPartyLocationRecordId?: number;\n DirectoryPartyLocationRoleRecordId?: number;\n LogisticsLocationId?: string;\n LogisticsLocationRecordId?: number;\n LogisticsLocationExtRecordId?: number;\n LogisticsLocationRoleRecordId?: number;\n PhoneLogisticsLocationRecordId?: number;\n PhoneLogisticsLocationId?: string;\n EmailLogisticsLocationRecordId?: number;\n EmailLogisticsLocationId?: string;\n UrlLogisticsLocationRecordId?: number;\n UrlLogisticsLocationId?: string;\n ExpireRecordId?: number;\n SortOrder?: number;\n RoleCount?: number;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAffiliation entity interface.\n */\n export interface CustomerAffiliation {\n RecordId?: number;\n RetailAffiliationId?: number;\n Name?: string;\n Description?: string;\n HideInChannels?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerBalances entity interface.\n */\n export interface CustomerBalances {\n Balance: number;\n PendingBalance: number;\n CreditLimit: number;\n InvoiceAccountBalance: number;\n InvoiceAccountPendingBalance: number;\n InvoiceAccountCreditLimit: number;\n OpenInvoiceBalance?: number;\n OpenInvoiceCount?: number;\n }\n \n /**\n * GlobalCustomer entity interface.\n */\n export interface GlobalCustomer {\n PartyNumber?: string;\n RecordId?: number;\n IsAsyncCustomer?: boolean;\n AccountNumber?: string;\n FullName?: string;\n FullAddress?: string;\n Phone?: string;\n Email?: string;\n CustomerTypeValue?: number;\n Images?: MediaLocation[];\n OfflineImage?: string;\n IsB2b?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeValue entity interface.\n */\n export interface AttributeValue {\n Name?: string;\n KeyName?: string;\n UnitOfMeasureSymbol?: string;\n DataTypeValue?: number;\n BooleanValue?: boolean;\n DateTimeOffsetValue?: Date;\n FloatValue?: number;\n IntegerValue?: number;\n TextValue?: string;\n CurrencyValue?: number;\n CurrencyCode?: string;\n AttributeValueId?: number;\n RecordId?: number;\n Swatches?: AttributeSwatch[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeValueBase entity interface.\n */\n export interface AttributeValueBase {\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Barcode entity interface.\n */\n export interface Barcode {\n BarcodeId?: string;\n BarcodePrice?: number;\n Quantity?: number;\n CustomerId?: string;\n EmployeeId?: string;\n SalespersonId?: string;\n EANLicenseId?: string;\n DataEntry?: string;\n DiscountCode?: string;\n GiftCardNumber?: string;\n LoyaltyCardNumber?: string;\n ItemBarcode?: ItemBarcode;\n EntryMethodTypeValue?: number;\n ItemType?: number;\n EnterDimensions?: boolean;\n ItemGroupId?: string;\n ItemDepartmentId?: string;\n ScaleItem?: boolean;\n ZeroPriceValid?: boolean;\n NegativeQuantity?: boolean;\n DiscountNotAllowed?: boolean;\n DateToBeBlocked?: Date;\n DateToBeActivated?: Date;\n CheckDigitValidated?: boolean;\n CouponId?: string;\n Message?: string;\n LineDiscountGroup?: string;\n MultilineDiscountGroup?: string;\n IncludedInTotalDiscount?: boolean;\n CostPrice?: number;\n BatchId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemBarcode entity interface.\n */\n export interface ItemBarcode {\n RecordId?: number;\n ItemId?: string;\n Description?: string;\n BarcodeSetupId?: string;\n ItemBarcodeValue?: string;\n InventoryDimensionId?: string;\n IsBlocked?: boolean;\n Display?: boolean;\n VariantId?: string;\n UnitId?: string;\n UseForInput?: boolean;\n UseForPrinting?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ButtonGrid entity interface.\n */\n export interface ButtonGrid {\n Id?: string;\n Name?: string;\n DefaultColor?: number;\n SpaceBetweenButtonsInPixels?: number;\n Buttons?: ButtonGridButton[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * GetButtonGridsByIdsCriteria entity interface.\n */\n export interface GetButtonGridsByIdsCriteria {\n ButtonGridIds?: string[];\n }\n \n /**\n * CartLine entity interface.\n */\n export interface CartLine {\n LineId?: string;\n TaxOverrideCode?: string;\n ItemId?: string;\n Barcode?: string;\n EntryMethodTypeValue?: number;\n Description?: string;\n InventoryDimensionId?: string;\n Comment?: string;\n ProductId?: number;\n WarehouseId?: string;\n Quantity?: number;\n Price?: number;\n ExtendedPrice?: number;\n TaxAmount?: number;\n ItemTaxGroupId?: string;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n NetPrice?: number;\n DiscountAmountWithoutTax?: number;\n DiscountAmount?: number;\n LineDiscount?: number;\n LinePercentageDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n UnitOfMeasureSymbol?: string;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n RequestedDeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n IsWarrantyLine?: boolean;\n WarrantableTransactionId?: string;\n WarrantableSalesId?: string;\n WarrantableLineNumber?: number;\n WarrantableSerialNumber?: string;\n WarrantiedId?: string;\n ReturnTransactionId?: string;\n ReturnLineNumber?: number;\n ReturnInventTransId?: string;\n IsVoided?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n IsGiftCardLine?: boolean;\n IsPriceKeyedIn?: boolean;\n GiftCardId?: string;\n GiftCardCurrencyCode?: string;\n GiftCardOperationValue?: number;\n GiftCardTypeValue?: number;\n SalesStatusValue?: number;\n QuantityOrdered?: number;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityCanceled?: number;\n FulfillmentStoreId?: string;\n SerialNumber?: string;\n ElectronicDeliveryEmail?: string;\n ElectronicDeliveryEmailContent?: string;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n IsInvoiceLine?: boolean;\n InvoiceId?: string;\n InvoiceAmount?: number;\n GiftCardBalance?: number;\n LineVersion?: number;\n PromotionLines?: string[];\n PriceLines?: PriceLine[];\n DiscountLines?: DiscountLine[];\n RelatedDiscountedLineIds?: string[];\n ReasonCodeLines?: ReasonCodeLine[];\n ChargeLines?: ChargeLine[];\n TaxRatePercent?: number;\n IsCustomerAccountDeposit?: boolean;\n LinkedParentLineId?: string;\n QuantityReturnable?: number;\n ExtensionProperties?: CommerceProperty[];\n LineNumber?: number;\n CommissionSalesGroup?: string;\n TrackingId?: string;\n StaffId?: string;\n QuantityRemained?: number;\n QuantityShipped?: number;\n CatalogId?: number;\n AttributeValues?: AttributeValueBase[];\n ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n InvoiceTypeValue?: number;\n InvoicedSalesId?: string;\n WarehouseLocation?: string;\n DetailedLineStatusValue?: number;\n SalesAgreementLineRecordId?: number;\n }\n \n /**\n * ThirdPartyGiftCardInfo entity interface.\n */\n export interface ThirdPartyGiftCardInfo {\n Amount?: number;\n Authorization?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardTypeInfo entity interface.\n */\n export interface CardTypeInfo {\n RecordId?: number;\n TypeId?: string;\n Name?: string;\n PaymentMethodId?: string;\n CardTypeValue?: number;\n Issuer?: string;\n NumberFrom?: string;\n NumberTo?: string;\n CashBackLimit?: number;\n AllowManualInput?: boolean;\n CheckModulus?: boolean;\n HasTenderDiscount?: boolean;\n IsPinRequired?: boolean;\n IsExpirationDateRequired?: boolean;\n ConnectorName?: string;\n PaymentProcessorMethod?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CashDeclaration entity interface.\n */\n export interface CashDeclaration {\n RecordId?: number;\n Currency?: string;\n Amount?: number;\n CashTypeValue?: number;\n IncludeInQuickPayShortcuts?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * IncomeExpenseAccount entity interface.\n */\n export interface IncomeExpenseAccount {\n Amount?: number;\n AccountNumber?: string;\n AccountName?: string;\n AccountNameAlias?: string;\n AccountTypeValue?: number;\n Quantity?: number;\n Message1Line?: string;\n Message2Line?: string;\n SlipText1Line?: string;\n SlipText2Line?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * IncomeExpenseLine entity interface.\n */\n export interface IncomeExpenseLine {\n Amount?: number;\n IncomeExpenseAccount?: string;\n StoreNumber?: string;\n AccountTypeValue?: number;\n Terminal?: string;\n Shift?: string;\n TransactionStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CartTenderLine entity interface.\n */\n export interface CartTenderLine {\n PaymentCard?: PaymentCard;\n TokenizedPaymentCard?: TokenizedPaymentCard;\n CardPaymentAcceptResult?: CardPaymentAcceptResult;\n IsLinkedRefund?: boolean;\n LinkedPaymentStore?: string;\n LinkedPaymentTerminalId?: string;\n LinkedPaymentTransactionId?: string;\n LinkedPaymentLineNumber?: number;\n LinkedPaymentCurrency?: string;\n TenderLineId?: string;\n Amount?: number;\n CashBackAmount?: number;\n AmountInTenderedCurrency?: number;\n AmountInCompanyCurrency?: number;\n Currency?: string;\n ExchangeRate?: number;\n CompanyCurrencyExchangeRate?: number;\n TenderTypeId?: string;\n SignatureData?: string;\n ReasonCodeLines?: ReasonCodeLine[];\n LineNumber?: number;\n GiftCardId?: string;\n GiftCardPin?: string;\n GiftCardExpirationYear?: number;\n GiftCardExpirationMonth?: number;\n CreditMemoId?: string;\n CustomerId?: string;\n LoyaltyCardId?: string;\n CardTypeId?: string;\n IsChangeLine?: boolean;\n IsHistorical?: boolean;\n IsVoidable?: boolean;\n StatusValue?: number;\n VoidStatusValue?: number;\n AuthorizedAmount?: number;\n PaymentRefRecId?: number;\n CardPaymentAccountId?: string;\n ProcessingTypeValue?: number;\n CardProcessorStatusValue?: number;\n LinkedPaymentRefRecId?: number;\n IsPolicyBypassed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChargeLine entity interface.\n */\n export interface ChargeLine {\n ChargeLineId?: string;\n ChargeCode?: string;\n CurrencyCode?: string;\n ModuleTypeValue?: number;\n IsHeaderChargeProrated?: boolean;\n ChargeTypeValue?: number;\n ChargeMethodValue?: number;\n CalculatedAmount?: number;\n Value?: number;\n Description?: string;\n TransactionId?: string;\n MarkupAutoLineRecordId?: number;\n MarkupAutoTableRecId?: number;\n SaleLineNumber?: number;\n FromAmount?: number;\n ToAmount?: number;\n Keep?: number;\n AmountRefunded?: number;\n ChargeLineOverrides?: ChargeLineOverride[];\n ReasonCodeLines?: ReasonCodeLine[];\n IsRefundable?: boolean;\n IsShipping?: boolean;\n IsOverridden?: boolean;\n IsInvoiced?: boolean;\n CalculatedProratedAmount?: number;\n ItemId?: string;\n Quantity?: number;\n Price?: number;\n ItemTaxGroupId?: string;\n SalesTaxGroupId?: string;\n OriginalSalesTaxGroupId?: string;\n OriginalItemTaxGroupId?: string;\n TaxAmount?: number;\n SalesOrderUnitOfMeasure?: string;\n NetAmount?: number;\n NetAmountPerUnit?: number;\n GrossAmount?: number;\n TaxLines?: TaxLine[];\n TaxMeasures?: TaxMeasure[];\n TaxAmountExemptInclusive?: number;\n TaxAmountInclusive?: number;\n TaxAmountExclusive?: number;\n NetAmountWithAllInclusiveTax?: number;\n BeginDateTime?: Date;\n EndDateTime?: Date;\n TaxRatePercent?: number;\n IsReturnByReceipt?: boolean;\n ReturnLineTaxAmount?: number;\n ReturnTaxLines?: TaxLine[];\n TaxExemptPriceInclusiveReductionAmount?: number;\n TaxExemptPriceInclusiveOriginalPrice?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CityInfo entity interface.\n */\n export interface CityInfo {\n Name?: string;\n Description?: string;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommissionSalesGroup entity interface.\n */\n export interface CommissionSalesGroup {\n GroupId?: string;\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ContactInformation entity interface.\n */\n export interface ContactInformation {\n Value?: string;\n ContactInformationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeCategory entity interface.\n */\n export interface AttributeCategory {\n Value?: CommercePropertyValue;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeProduct entity interface.\n */\n export interface AttributeProduct {\n MetadataFlags?: ProductAttributeMetadataFlags;\n IsDimension?: boolean;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComparisonEntry entity interface.\n */\n export interface ProductComparisonEntry {\n ProductId: number;\n AttributeValue?: AttributeValue;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComparisonLine entity interface.\n */\n export interface ProductComparisonLine {\n AttributeRecordId: number;\n AttributeName?: string;\n ProductAttributeComparisonEntries?: ProductComparisonEntry[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchField entity interface.\n */\n export interface CustomerSearchField {\n IsShortcut?: boolean;\n DisplayName?: string;\n CanBeRefined?: boolean;\n SearchField?: CustomerSearchFieldType;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchByFieldCriteria entity interface.\n */\n export interface CustomerSearchByFieldCriteria {\n Criteria?: CustomerSearchByFieldCriterion[];\n DataLevelValue?: number;\n }\n \n /**\n * CustomerSearchByFieldCriterion entity interface.\n */\n export interface CustomerSearchByFieldCriterion {\n SearchTerm?: string;\n SearchField?: CustomerSearchFieldType;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchFieldType entity interface.\n */\n export interface CustomerSearchFieldType extends ExtensibleEnumeration {\n }\n \n /**\n * OrderShipments entity interface.\n */\n export interface OrderShipments {\n SalesId?: string;\n ChannelId?: number;\n ChannelReferenceId?: string;\n TransactionId?: string;\n CreatedDateTime?: Date;\n StatusValue?: number;\n CurrencyCode?: string;\n CustomerId?: string;\n DeliveryMode?: string;\n GrossAmount?: number;\n InventoryLocationId?: string;\n ReceiptId?: string;\n RequestedDeliveryDate?: Date;\n TotalAmount?: number;\n TaxAmount?: number;\n SalesLines?: SalesLine[];\n Shipments?: Shipment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Shipment entity interface.\n */\n export interface Shipment {\n SalesId?: string;\n ShipmentId?: string;\n DeliveryAddress?: Address;\n ShipDate?: Date;\n DeliveryMode?: string;\n TermsOfDelivery?: string;\n WeightUnit?: string;\n TrackingNumber?: string;\n TrackingUrl?: string;\n LatestCarrierTrackingInfo?: TrackingInfo;\n CarrierId?: string;\n CarrierName?: string;\n ShippingWeight?: number;\n ShipmentLines?: ShipmentLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShipmentLine entity interface.\n */\n export interface ShipmentLine {\n ShipmentLineId?: string;\n ItemId?: string;\n Description?: string;\n InventDimId?: string;\n OrderedQuantity?: number;\n DeliveredQuantity?: number;\n RemainingQuantity?: number;\n 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 LineNumber?: number;\n SavedEffectiveAmount?: number;\n Percentage?: number;\n DealPrice?: number;\n DiscountLineTypeValue?: number;\n ManualDiscountTypeValue?: number;\n CustomerDiscountTypeValue?: number;\n PeriodicDiscountTypeValue?: number;\n DiscountApplicationGroup?: string;\n ConcurrencyModeValue?: number;\n IsCompoundable?: boolean;\n DiscountCode?: string;\n PricingPriorityNumber?: number;\n PricingAttributeCombinationPriority?: number;\n IsDiscountCodeRequired?: boolean;\n ThresholdAmountRequired?: number;\n BundleId?: number;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmployeePermissions entity interface.\n */\n export interface EmployeePermissions {\n PriceOverrideRestrictionValue?: number;\n AllowPriceOverride?: number;\n MaximumDiscountPercentage?: number;\n MaximumLineDiscountAmount?: number;\n MaximumLineReturnAmount?: number;\n MaximumTotalDiscountAmount?: number;\n MaximumTotalDiscountPercentage?: number;\n MaxTotalReturnAmount?: number;\n StaffId?: string;\n Roles?: string[];\n AllowUseSharedShift?: boolean;\n AllowManageSharedShift?: boolean;\n AllowTaskGuides?: boolean;\n AllowSaleOutsideAssortment?: boolean;\n AllowPrintingReceiptCopy?: string;\n AllowSkipFiscalRegistration?: boolean;\n AllowSkipRegistrationOrMarkAsRegistered?: boolean;\n AllowPostponeRegistration?: boolean;\n AllowCreateTransferOrder?: boolean;\n AllowAcceptOrder?: boolean;\n AllowTaskManagement?: boolean;\n AllowRejectOrder?: boolean;\n AllowMassActivation?: boolean;\n AllowPostInventoryAdjustment?: boolean;\n AllowPostStockCounting?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceProperty entity interface.\n */\n export interface CommerceProperty {\n Key?: string;\n Value?: CommercePropertyValue;\n }\n \n /**\n * CommercePropertyValue entity interface.\n */\n export interface CommercePropertyValue {\n BooleanValue?: boolean;\n ByteValue?: number;\n DateTimeOffsetValue?: Date;\n DecimalValue?: number;\n IntegerValue?: number;\n LongValue?: number;\n StringValue?: string;\n }\n \n /**\n * CountryRegionInfo entity interface.\n */\n export interface CountryRegionInfo {\n CountryRegionId?: string;\n ShortName?: string;\n LongName?: string;\n ISOCode?: string;\n TimeZone?: number;\n LanguageId?: string;\n AddressFormatLines?: AddressFormattingInfo[];\n AddressFormatId?: string;\n AddressFormatName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CreditMemo entity interface.\n */\n export interface CreditMemo {\n Id?: string;\n Balance?: number;\n CurrencyCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Currency entity interface.\n */\n export interface Currency {\n CurrencyCode?: string;\n CurrencySymbol?: string;\n RoundOffPrice?: number;\n RoundOffSales?: number;\n RoundOffTypePrice?: number;\n RoundOffTypeSales?: number;\n NumberOfDecimals?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CurrencyAmount entity interface.\n */\n export interface CurrencyAmount {\n CurrencyCode?: string;\n CurrencySymbol?: string;\n ConvertedAmount?: number;\n RoundedConvertedAmount?: number;\n ExchangeRate?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScaleUnitConfiguration entity interface.\n */\n export interface ScaleUnitConfiguration {\n Id?: string;\n Name?: string;\n Region?: string;\n }\n \n /**\n * EnvironmentConfiguration entity interface.\n */\n export interface EnvironmentConfiguration {\n EnvironmentId?: string;\n EnvironmentName?: string;\n TenantId?: string;\n ClientAppInsightsInstrumentationKey?: string;\n HardwareStationAppInsightsInstrumentationKey?: string;\n WindowsPhonePosAppInsightsInstrumentationKey?: string;\n BaseVersion?: string;\n ScaleUnit?: ScaleUnitConfiguration;\n AADAuthority?: string;\n FrameworkName?: string;\n }\n \n /**\n * DeviceConfiguration entity interface.\n */\n export interface DeviceConfiguration {\n UseInMemoryDeviceDataStorage?: boolean;\n AllowItemsAggregation?: boolean;\n AggregateItemsForPrinting?: boolean;\n AggregatePayments?: boolean;\n AlwaysExpandTransactionScreenLineDetails?: boolean;\n AuditEnabled?: boolean;\n DiscountAtTotal?: string;\n ProductDiscount?: string;\n ManuallyCalculateComplexDiscounts?: boolean;\n DisplaySecondaryTotalCurrency?: boolean;\n EndOfTransaction?: string;\n ItemNotOnFile?: string;\n LimitStaffListToStore?: boolean;\n LineItemTaxChange?: string;\n MarkUp?: string;\n MaximumPrice?: number;\n MaximumQuantity?: number;\n MinimumPasswordLength?: number;\n MustKeyInPriceIfZero?: boolean;\n NfcEContingencyModeEnabled?: string;\n NfcEVoided?: string;\n FunctionalityProfileDescription?: string;\n OverridePrice?: string;\n PrintVoidTransactionReceipts?: boolean;\n PrintReceiptsOnCardDecline?: boolean;\n PrintXZReportsOnTerminal?: boolean;\n PrintTenderDetailsOnXReport?: boolean;\n ProfileId?: string;\n RefundSale?: string;\n ReturnProduct?: string;\n SalesPerson?: string;\n SecondaryTotalCurrency?: string;\n SelectHardwareStationOnTendering?: boolean;\n SerialNumber?: string;\n ShowStaffListAtLogOn?: boolean;\n StaffBarcodeLogOn?: boolean;\n StaffBarcodeLogOnRequiresPassword?: boolean;\n StaffCardLogOn?: boolean;\n StaffCardLogOnRequiresPassword?: boolean;\n StartOfTransaction?: string;\n EnableTimeRegistration?: boolean;\n TenderDeclaration?: string;\n TransactionTaxChange?: string;\n VoidItem?: string;\n VoidPayment?: string;\n SalesModeDefaultsAsCustomerOrder?: boolean;\n CreateOfflineCustomerOrders?: boolean;\n CreateAsyncCustomers?: boolean;\n EnableAxCustomerSearch?: boolean;\n VoidTransaction?: string;\n CultureName?: string;\n SystemLegalTermsUrl?: string;\n SystemPrivacyStatementUrl?: string;\n HideTrainingMode?: boolean;\n StorePhone?: string;\n StatementMethod?: string;\n StoreNumber?: string;\n ChannelId?: number;\n StoreTaxGroup?: string;\n TaxIdNumber?: string;\n TaxOverrideGroup?: number;\n TenderDeclarationCalculation?: number;\n UseCustomerBasedTax?: boolean;\n UseDestinationBasedTax?: boolean;\n AutoLogOffTimeoutInMinutes?: number;\n AutoExitMethodValue?: number;\n CustomerDisplayText1?: string;\n CustomerDisplayText2?: string;\n EFTStoreId?: number;\n EFTTerminalId?: string;\n ExitAfterEachTransaction?: boolean;\n HardwareProfile?: string;\n Placement?: string;\n TerminalDescription?: string;\n OpenDrawer?: string;\n OpenDrawerAtLogOnLogOff?: boolean;\n PrintTaxRefundChecks?: boolean;\n StandAlone?: boolean;\n TerminalId?: string;\n TerminalStatement?: boolean;\n VisualProfile?: string;\n Currency?: string;\n InventLocationId?: string;\n IncludeKitComponents?: boolean;\n AccentColor?: number;\n HeaderColor?: number;\n Theme?: string;\n FontScheme?: number;\n ShowAppBarLabel?: boolean;\n LogOnBackgroundPictureAsBase64?: string;\n LogOnBackgroundPicturePortraitAsBase64?: string;\n BackgroundPictureAsBase64?: string;\n LogonBackgroundPictureId?: number;\n LogonBackgroundPictureIdCompact?: number;\n LogonBackgroundPictureIdPortrait?: number;\n LogonBackgroundPictureIdCompactPortrait?: number;\n BackgroundPictureId?: number;\n RequireAmountDeclaration?: boolean;\n DecimalNotRequiredForMinorCurrencyUnit?: boolean;\n MaxTransactionSearchResults?: number;\n OfflineProfileId?: number;\n NewOfflineDatabaseCheckInterval?: number;\n OfflineTransactionUploadInterval?: number;\n ReconnectToOnlineInterval?: number;\n SwitchToOfflineTimeout?: number;\n OfflineSwitchApiPerformanceThresholdInSeconds?: number;\n ReconnectFromPerformanceInducedOfflineIntervalInSeconds?: number;\n RetentionDays?: number;\n HardwareConfigurations?: HardwareConfigurations;\n CreateRecording?: boolean;\n PlaybackRecording?: boolean;\n ShouldUseDefaultCommisionSalesGroup?: boolean;\n AskForSalesRepresentative?: number;\n IsSalesRepRequired?: boolean;\n ProhibitMixingSalesAndReturns?: boolean;\n ApplyDiscountsToPriceKeyedIn?: boolean;\n ApplyDiscountsToPriceOverrides?: boolean;\n IsProductSuggestionsEnabled?: boolean;\n ProductSearchType?: string;\n TerminalRecId?: number;\n DeviceRecId?: number;\n DenominationsToDisplayValue?: number;\n PromptOnSeamlessOffline?: boolean;\n RetryCountToOffline?: number;\n EnableAdvancedOfflineSwitching?: boolean;\n SystemHealthCheckInterval?: number;\n RejectOrderFulfillment?: string;\n ManuallyCalculateTaxes?: boolean;\n EmployeeLogonTypeValue?: number;\n StartAmountCalculation?: number;\n BankDropCalculation?: number;\n GenerateLoyaltyCardNumber?: boolean;\n FiscalRegistrationProcessId?: string;\n IncludeSalesOrderInvoices?: boolean;\n IncludeFreeTextInvoices?: boolean;\n IncludeProjectInvoices?: boolean;\n IncludeCreditNoteInvoices?: boolean;\n DisplayTaxExemptInLineDetails?: boolean;\n TaxExemptReceiptIndicator?: string;\n ManuallyCalculateCharges?: boolean;\n ChargeOverrideReasonCode?: string;\n ShiftReconcilation?: string;\n CustomerAccountFloorLimit?: number;\n VoidSuspendedTransactionsOnCloseShift?: boolean;\n ShowDateTime?: boolean;\n UseAdvancedCashManagement?: boolean;\n DefaultCustomerSearchModeValue?: number;\n AllowManualOfflineBeforeSignIn?: boolean;\n UseFinancialReconciliationInStore?: boolean;\n RequirePaymentForFulfillmentValue?: number;\n CardNotPresentProcessingConfigurationValue?: number;\n EnableQuickPayShortcuts?: boolean;\n ChangeDueBehaviorValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * VisualProfile entity interface.\n */\n export interface VisualProfile {\n ChannelId?: number;\n TerminalId?: string;\n AccentColor?: number;\n HeaderColor?: number;\n Theme?: string;\n FontSchemeTypeValue?: number;\n IsAppBarLabelVisible?: boolean;\n IsDateTimeVisible?: boolean;\n LogOnLayoutTypeValue?: number;\n LogOnKeyboardTypeValue?: number;\n LogonBackgroundPictureId?: number;\n CompactLogonBackgroundPictureId?: number;\n PortraitLogonBackgroundPictureId?: number;\n CompactPortraitLogonBackgroundPictureId?: number;\n BackgroundPictureId?: number;\n LogOnLogoPictureId?: number;\n IsProductIdVisibleOnCartLine?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OperationalInsightsConfiguration entity interface.\n */\n export interface OperationalInsightsConfiguration {\n InstrumentationKey?: string;\n EnvironmentId?: string;\n IsEnabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Device entity interface.\n */\n export interface Device {\n ChannelId: number;\n RecordId?: number;\n DeviceNumber?: string;\n DeviceId?: string;\n Description?: string;\n DeviceType?: number;\n TerminalRecordId?: number;\n TerminalId?: string;\n ChannelName?: string;\n UseInMemoryDeviceDataStorage?: boolean;\n AllowMassActivation?: boolean;\n TokenIssueTime?: Date;\n ActivationStatusValue?: number;\n Token?: string;\n CountryRegionIsoCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountCode entity interface.\n */\n export interface DiscountCode {\n RecordId: number;\n Barcode?: string;\n Code?: string;\n ConcurrencyMode?: number;\n Description?: string;\n Disclaimer?: string;\n IsDiscountCodeRequired?: boolean;\n Name?: string;\n OfferId?: string;\n IsEnabled?: boolean;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DistrictInfo entity interface.\n */\n export interface DistrictInfo {\n Name?: string;\n Description?: string;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n CityName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfile entity interface.\n */\n export interface HardwareProfile {\n RecordId?: number;\n LineDisplayDelayForLinkedItems?: number;\n LineDisplayBalanceText?: string;\n LineDisplayBinaryConversion?: boolean;\n LineDisplayCharacterSet?: number;\n LineDisplayClosedLine1?: string;\n LineDisplayClosedLine2?: string;\n LineDisplayDeviceDescription?: string;\n LineDisplayDeviceTypeValue?: number;\n LineDisplayDeviceName?: string;\n LineDisplayDisplayLinkedItem?: boolean;\n LineDisplayDisplayTerminalClosed?: boolean;\n LineDisplayTotalText?: string;\n DualDisplayActive?: boolean;\n DualDisplayWebBrowserUrl?: string;\n DualDisplayImageRotatorInterval?: number;\n DualDisplayImageRotatorPath?: string;\n DualDisplayReceiptWidthPercentage?: number;\n DualDisplayDisplayType?: string;\n EftTypeId?: number;\n EftCompanyId?: string;\n EftConfiguration?: number;\n EftPaymentConnectorName?: string;\n EftData?: string;\n EftDescription?: string;\n EftMerchantId?: string;\n EftPassword?: string;\n EftServerName?: string;\n EftServerPort?: string;\n EftUserId?: string;\n EftTestMode?: boolean;\n MsrEndTrack1?: string;\n MsrEndTrack2?: string;\n FiscalPrinterManagementReportPAFIdentification?: string;\n FiscalPrinterManagementReportConfigParameter?: string;\n FiscalPrinterManagementReportTenderType?: string;\n FiscalPrinterManagementReportGiftCard?: string;\n FiscalRegisterDeviceTypeValue?: number;\n FiscalRegisterConfiguration?: string;\n FiscalRegisterDeviceDescription?: string;\n FiscalRegisterDeviceName?: string;\n KeyboardMappingId?: string;\n KeyLockDeviceTypeValue?: number;\n KeyLockDeviceDescription?: string;\n KeyLockDeviceName?: string;\n MsrDeviceTypeValue?: number;\n MsrDeviceDescription?: string;\n MsrDeviceName?: string;\n MsrMake?: string;\n MsrModel?: string;\n MsrSeparator?: string;\n MsrStartTrack?: string;\n PinPadDeviceTypeValue?: number;\n PinPadDeviceName?: string;\n PinPadMake?: string;\n PinPadModel?: string;\n PinPadDeviceDescription?: string;\n ProfileDescription?: string;\n ProfileId?: string;\n RFIDDeviceTypeValue?: number;\n RFIDDeviceName?: string;\n RFIDDeviceDescription?: string;\n ScaleDeviceTypeValue?: number;\n ScaleDeviceName?: string;\n ScaleDeviceDescription?: string;\n ScaleManualInputAllowed?: boolean;\n ScaleTimeoutInSeconds?: number;\n SignatureCaptureDeviceTypeValue?: number;\n SignatureCaptureDeviceName?: string;\n SignatureCaptureMake?: string;\n SignatureCaptureModel?: string;\n SignatureCaptureDeviceDescription?: string;\n SignatureCaptureFormName?: string;\n Printers?: HardwareProfilePrinter[];\n Scanners?: HardwareProfileScanner[];\n FiscalIntegrationTechnicalProfiles?: FiscalIntegrationTechnicalProfile[];\n CashDrawers?: HardwareProfileCashDrawer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SupportedLanguage entity interface.\n */\n export interface SupportedLanguage {\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentCard entity interface.\n */\n export interface PaymentCard {\n UseShippingAddress?: boolean;\n CardNumber?: string;\n CCID?: string;\n Track1?: string;\n Track2?: string;\n Track3?: string;\n VoiceAuthorizationCode?: string;\n EncryptedPin?: string;\n AdditionalSecurityData?: string;\n IsSwipe?: boolean;\n Phone?: string;\n Country?: string;\n House?: string;\n Address1?: string;\n Address2?: string;\n City?: string;\n State?: string;\n Zip?: string;\n NameOnCard?: string;\n CardTypeId?: string;\n ExpirationMonth?: number;\n ExpirationYear?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardPaymentAcceptSettings entity interface.\n */\n export interface CardPaymentAcceptSettings {\n HostPageOrigin?: string;\n AdaptorPath?: string;\n CardTokenizationEnabled?: boolean;\n CardPaymentEnabled?: boolean;\n PaymentAmount?: number;\n HideBillingAddress?: boolean;\n TenderTypeId?: string;\n Locale?: string;\n RequireShippingAddress?: boolean;\n }\n \n /**\n * CardPaymentAcceptPoint entity interface.\n */\n export interface CardPaymentAcceptPoint {\n AcceptPageUrl?: string;\n AcceptPageSubmitUrl?: string;\n MessageOrigin?: string;\n AcceptPageContent?: string;\n PaymentConnectorId?: string;\n }\n \n /**\n * CardPaymentAcceptResult entity interface.\n */\n export interface CardPaymentAcceptResult {\n TenderLine?: TenderLine;\n TokenizedPaymentCard?: TokenizedPaymentCard;\n PaymentSdkErrors?: PaymentError[];\n AdditionalContext?: string;\n AccessCode?: string;\n Settings?: RetrievePaymentResultSettings;\n Email?: string;\n }\n \n /**\n * ReasonCodeLine entity interface.\n */\n export interface ReasonCodeLine {\n LineId?: string;\n Amount?: number;\n Information?: string;\n InformationAmount?: number;\n InputTypeValue?: number;\n ItemTender?: string;\n LineNumber?: number;\n LineTypeValue?: number;\n ParentLineId?: string;\n ReasonCodeId?: string;\n StatementCode?: string;\n SubReasonCodeId?: string;\n SourceCode?: string;\n SourceCode2?: string;\n SourceCode3?: string;\n TransactionId?: string;\n CreatedDateTime?: Date;\n FiscalTransactionParentGuid?: string;\n IsChanged?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonSubCode entity interface.\n */\n export interface ReasonSubCode {\n TriggerCode?: string;\n AmountPercent: number;\n ReasonCodeId?: string;\n SubCodeId?: string;\n Description?: string;\n TriggerFunctionTypeValue?: number;\n ProductId?: number;\n PriceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Receipt entity interface.\n */\n export interface Receipt {\n TransactionId?: string;\n Header?: string;\n Body?: string;\n Footer?: string;\n Width?: number;\n ReceiptId?: string;\n LayoutId?: string;\n ReceiptTitle?: string;\n ReceiptTypeValue?: number;\n ReceiptTypeStrValue?: string;\n Printers?: Printer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptMask entity interface.\n */\n export interface ReceiptMask {\n FunctionalityProfileId?: string;\n IsIndependent: boolean;\n ReceiptTransactionTypeValue: number;\n RecordId: number;\n Mask?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLine entity interface.\n */\n export interface SalesLine {\n StaffId?: string;\n LineId?: string;\n Description?: string;\n OriginLineId?: string;\n TaxOverrideCode?: string;\n IsPriceKeyedIn?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n ProductId?: number;\n Barcode?: string;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n EntryMethodTypeValue?: number;\n MasterProductId?: number;\n ListingId?: number;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n NetPrice?: number;\n TotalDiscount?: number;\n TotalPercentageDiscount?: number;\n LineDiscount?: number;\n PeriodicDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n Comment?: string;\n RequestedDeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n InventoryLocationId?: string;\n InventorySiteId?: string;\n WarehouseLocation?: string;\n InventoryStatusId?: string;\n LicensePlate?: string;\n InventoryDimensionId?: string;\n 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 SalesAgreementPrice?: number;\n SalesAgreementLineRecordId?: number;\n IsSalesAgreementSkipped?: boolean;\n ItemId?: string;\n Quantity?: number;\n Price?: number;\n ItemTaxGroupId?: string;\n SalesTaxGroupId?: string;\n OriginalSalesTaxGroupId?: string;\n OriginalItemTaxGroupId?: string;\n TaxAmount?: number;\n SalesOrderUnitOfMeasure?: string;\n NetAmount?: number;\n NetAmountPerUnit?: number;\n GrossAmount?: number;\n TaxLines?: TaxLine[];\n TaxMeasures?: TaxMeasure[];\n TaxAmountExemptInclusive?: number;\n TaxAmountInclusive?: number;\n TaxAmountExclusive?: number;\n NetAmountWithAllInclusiveTax?: number;\n BeginDateTime?: Date;\n EndDateTime?: Date;\n TaxRatePercent?: number;\n IsReturnByReceipt?: boolean;\n ReturnLineTaxAmount?: number;\n ReturnTaxLines?: TaxLine[];\n TaxExemptPriceInclusiveReductionAmount?: number;\n TaxExemptPriceInclusiveOriginalPrice?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchArea entity interface.\n */\n export interface SearchArea {\n Longitude?: number;\n Latitude?: number;\n Radius?: number;\n DistanceUnitValue?: number;\n }\n \n /**\n * ShiftAccountLine entity interface.\n */\n export interface ShiftAccountLine {\n AccountTypeValue?: number;\n AccountNumber?: string;\n Amount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftTenderLine entity interface.\n */\n export interface ShiftTenderLine {\n TenderTypeId?: string;\n TenderTypeName?: string;\n CardTypeId?: string;\n TenderCurrency?: string;\n CountingRequired?: boolean;\n StartingAmountOfStoreCurrency?: number;\n StartingAmountOfTenderCurrency?: number;\n FloatingEntryAmountOfStoreCurrency?: number;\n FloatingEntryAmountOfTenderCurrency?: number;\n SafeDropAmountOfStoreCurrency?: number;\n SafeDropAmountOfTenderCurrency?: number;\n BankDropAmountOfStoreCurrency?: number;\n BankDropAmountOfTenderCurrency?: number;\n RemoveTenderAmountOfStoreCurrency?: number;\n RemoveTenderAmountOfTenderCurrency?: number;\n DeclareTenderAmountOfStoreCurrency?: number;\n DeclareTenderAmountOfTenderCurrency?: number;\n TenderedAmountOfStoreCurrency?: number;\n TenderedAmountOfTenderCurrency?: number;\n ChangeAmountOfStoreCurrency?: number;\n ChangeAmountOfTenderCurrency?: number;\n Count?: number;\n Notes?: string;\n 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 RoundingDifference?: number;\n TenderLineId?: string;\n Amount?: number;\n CashBackAmount?: number;\n AmountInTenderedCurrency?: number;\n AmountInCompanyCurrency?: number;\n Currency?: string;\n ExchangeRate?: number;\n CompanyCurrencyExchangeRate?: number;\n TenderTypeId?: string;\n SignatureData?: string;\n ReasonCodeLines?: ReasonCodeLine[];\n LineNumber?: number;\n GiftCardId?: string;\n GiftCardPin?: string;\n GiftCardExpirationYear?: number;\n GiftCardExpirationMonth?: number;\n CreditMemoId?: string;\n CustomerId?: string;\n LoyaltyCardId?: string;\n CardTypeId?: string;\n IsChangeLine?: boolean;\n IsHistorical?: boolean;\n IsVoidable?: boolean;\n StatusValue?: number;\n VoidStatusValue?: number;\n AuthorizedAmount?: number;\n PaymentRefRecId?: number;\n CardPaymentAccountId?: string;\n ProcessingTypeValue?: number;\n CardProcessorStatusValue?: number;\n LinkedPaymentRefRecId?: number;\n IsPolicyBypassed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TextValueTranslation entity interface.\n */\n export interface TextValueTranslation {\n Language?: string;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UnitOfMeasure entity interface.\n */\n export interface UnitOfMeasure {\n DecimalPrecision?: number;\n Symbol?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecommendedElement entity interface.\n */\n export interface RecommendedElement {\n ElementId?: string;\n ElementTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecommendationCriteria entity interface.\n */\n export interface RecommendationCriteria {\n CustomerAccountNumber?: string;\n CatalogId?: number;\n ProductIds?: number[];\n CategoryIds?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductListLine entity interface.\n */\n export interface ProductListLine {\n ProductListId?: string;\n LineId?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListLine entity interface.\n */\n export interface CommerceListLine {\n CommerceListId?: number;\n LineId?: number;\n CustomerId?: string;\n CustomerName?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListContributor entity interface.\n */\n export interface CommerceListContributor {\n RecordId?: number;\n CustomerId?: string;\n CustomerName?: string;\n InvitationId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListInvitation entity interface.\n */\n export interface CommerceListInvitation {\n RecordId?: number;\n Invitee?: string;\n IsSent?: boolean;\n LastRequestDateTime?: Date;\n LastSentDateTime?: Date;\n StatusValue?: number;\n Token?: string;\n InvitationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchFilter entity interface.\n */\n export interface SearchFilter {\n Key?: string;\n FilterTypeValue: number;\n SearchValues?: SearchFilterValue[];\n }\n \n /**\n * SearchFilterValue entity interface.\n */\n export interface SearchFilterValue {\n Value?: CommercePropertyValue;\n }\n \n /**\n * TransactionSearchCriteria entity interface.\n */\n export interface TransactionSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n StartDateTime?: Date;\n EndDateTime?: Date;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SearchLocationTypeValue?: number;\n CustomFilters?: SearchFilter[];\n }\n \n /**\n * SalesOrderSearchCriteria entity interface.\n */\n export interface SalesOrderSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n SearchTypeValue?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n IncludeDetails?: boolean;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SalesTransactionTypeValues?: number[];\n SearchLocationTypeValue?: number;\n TransactionStatusTypeValues?: number[];\n }\n \n /**\n * SearchStoreCriteria entity interface.\n */\n export interface SearchStoreCriteria {\n ChannelId?: number;\n StoreNumber?: string;\n InventoryLocationId?: string;\n }\n \n /**\n * CustomerSearchCriteria entity interface.\n */\n export interface CustomerSearchCriteria {\n Keyword?: string;\n SearchOnlyCurrentCompany?: boolean;\n SearchLocationValue?: number;\n Refinements?: CustomerRefinerValue[];\n DataLevelValue?: number;\n }\n \n /**\n * ProductPrice entity interface.\n */\n export interface ProductPrice {\n ProductId?: number;\n ListingId?: number;\n BasePrice?: number;\n TradeAgreementPrice?: number;\n AdjustedPrice?: number;\n MaxVariantPrice?: number;\n MinVariantPrice?: number;\n CustomerContextualPrice?: number;\n DiscountAmount?: number;\n CurrencyCode?: string;\n ItemId?: string;\n InventoryDimensionId?: string;\n UnitOfMeasure?: string;\n ValidFrom?: Date;\n ProductLookupId?: number;\n ChannelId?: number;\n CatalogId?: number;\n DiscountLines?: DiscountLine[];\n SalesAgreementPrice?: number;\n PriceSourceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAvailability entity interface.\n */\n export interface OrgUnitAvailability {\n OrgUnitLocation?: OrgUnitLocation;\n ItemAvailabilities?: ItemAvailability[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductVariantPropertySet entity interface.\n */\n export interface ProductVariantPropertySet {\n VariantId?: number;\n ProductVariantPropertiesAsList?: ProductPropertyTranslation[];\n }\n \n /**\n * PurchaseOrderLine entity interface.\n */\n export interface PurchaseOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseQuantity?: number;\n PurchaseUnit?: string;\n PurchaseReceived?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n UniqueIdentifier?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderLine entity interface.\n */\n export interface TransferOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityTransferred?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityRemainShip?: number;\n QuantityRemainReceive?: number;\n PurchaseUnit?: string;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderJournal entity interface.\n */\n export interface TransferOrderJournal {\n OrderId?: string;\n VoucherId?: string;\n UpdatedByWorker?: string;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n PostingDate?: Date;\n DeliveryMode?: string;\n Comments?: string;\n JournalLines?: TransferOrderJournalLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingListLine entity interface.\n */\n export interface PickingListLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Affiliation entity interface.\n */\n export interface Affiliation {\n RecordId?: number;\n AffiliationTypeValue?: number;\n Description?: string;\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity interface.\n */\n export interface InventoryInboundOutboundDocumentLinesSummary {\n InProgressQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity interface.\n */\n export interface InventoryDocumentSerialNumberLinesSummary {\n RegisteringQuantity?: number;\n RegisteredQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLine entity interface.\n */\n export interface InventoryInboundOutboundDocumentLine {\n WorkDocumentId?: string;\n LineId?: string;\n SourceDocumentRecordId?: number;\n SourceDocumentLineRecordId?: number;\n SourceDocumentTypeValue?: number;\n QuantityOrdered?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityCancelled?: number;\n QuantityToUpdate?: number;\n LocationId?: string;\n ItemId?: string;\n ProductId?: number;\n ItemName?: string;\n ItemPrimaryImageUrl?: string;\n IsLocationActive?: boolean;\n IsLocationAllowBlankReceiptEnabled?: boolean;\n IsLocationBlankIssueAllowed?: boolean;\n ProductDimensions?: ProductDimension[];\n Note?: string;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n OperationResultMessage?: string;\n IsCloseLine?: boolean;\n OriginTypeValue?: number;\n UnitOfMeasure?: string;\n SourceDocumentLine?: InventoryInboundOutboundSourceDocumentLine;\n SerialNumberLines?: InventoryDocumentSerialNumberLine[];\n LongVersion?: number;\n ToLocationId?: string;\n AdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundSourceDocument entity interface.\n */\n export interface InventoryInboundOutboundSourceDocument {\n RecordId?: number;\n DocumentTypeValue?: number;\n DocumentId?: string;\n StatusValue?: number;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n TotalQuantityOrdered?: number;\n TotalQuantityShipped?: number;\n TotalQuantityReceived?: number;\n TotalQuantityCancelled?: number;\n DataAreaId?: string;\n Note?: string;\n TotalLines?: number;\n IsChangeAllowed?: boolean;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentTypeId?: string;\n Description?: string;\n StaffId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity interface.\n */\n export interface InventoryInboundOutboundSourceDocumentLine {\n DocumentRecordId?: number;\n DocumentTypeValue?: number;\n RecordId?: number;\n LineNumber?: number;\n ItemId?: string;\n ProductId?: number;\n QuantityOrdered?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityCancelled?: number;\n LocationId?: string;\n OverDeliveryPercentage?: number;\n UnderDeliveryPercentage?: number;\n UnitId?: string;\n Receiver?: string;\n DataAreaId?: string;\n Note?: string;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentId?: string;\n ItemName?: string;\n ItemPrimaryImageUrl?: string;\n IsLocationActive?: boolean;\n IsLocationAllowBlankReceiptEnabled?: boolean;\n IsLocationBlankIssueAllowed?: boolean;\n HasSerialNumber?: boolean;\n IsSerialNumberBlankReceiptAllowed?: boolean;\n IsSerialNumberDuplicateCheckEnabled?: boolean;\n ProductDimensions?: ProductDimension[];\n SerialNumberLines?: InventoryDocumentSourceSerialNumberLine[];\n StatusValue?: number;\n ToProductId?: number;\n ToLocationId?: string;\n InventoryDimensionId?: string;\n ToInventoryDimensionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineFilterCriteria entity interface.\n */\n export interface InventoryDocumentLineFilterCriteria {\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentUpdateLinesAction entity interface.\n */\n export interface InventoryDocumentUpdateLinesAction {\n Quantity?: number;\n ActionTypeValue?: number;\n LocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineOperationResultSettings entity interface.\n */\n export interface InventoryDocumentLineOperationResultSettings {\n ModeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineSearchCriteria entity interface.\n */\n export interface InventoryDocumentLineSearchCriteria {\n SourceDocumentId?: string;\n SourceDocumentTypeValue?: number;\n WorkDocumentId?: string;\n ProductId?: number;\n ItemIds?: string[];\n AvailableSerializedLineOnly?: boolean;\n DocumentLineIds?: string[];\n DocumentOperationTypeValue?: number;\n OperationTypeValue?: number;\n LocationId?: string;\n ToLocationId?: string;\n AdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSearchCriteria entity interface.\n */\n export interface InventoryDocumentSearchCriteria {\n DocumentId?: string;\n TransferFromWarehouse?: string;\n ShipFromWarehouse?: string;\n TransferToWarehouse?: string;\n Description?: string;\n DocumentTypeIds?: string[];\n DocumentStateValue?: number;\n DocumentTypeValues?: number[];\n CustomFilters?: SearchFilter[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity interface.\n */\n export interface InventoryDocumentSerialNumberLineSearchCriteria {\n DocumentLineId?: string;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity interface.\n */\n export interface InventoryDocumentSerialNumberLineUpdateAction {\n DocumentLineId?: string;\n LineId?: string;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity interface.\n */\n export interface InventoryDocumentSerialNumberLineResetAction {\n DocumentLineId?: string;\n LineId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity interface.\n */\n export interface InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n UpdatedLines?: InventoryInboundOutboundDocumentLine[];\n TotalLinesUpdated?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * WarehouseLocationSearchCriteria entity interface.\n */\n export interface WarehouseLocationSearchCriteria {\n WarehouseIds?: string[];\n IsLocationProfileRequired?: boolean;\n SearchText?: string;\n }\n \n /**\n * InventoryDocumentSerialNumberLine entity interface.\n */\n export interface InventoryDocumentSerialNumberLine {\n WorkDocumentId?: string;\n WorkDocumentLineId?: string;\n SourceLineId?: string;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n ModifiedDateTime?: Date;\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n SourceLine?: InventoryDocumentSourceSerialNumberLine;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity interface.\n */\n export interface InventoryDocumentValidationCategoryResultsSummary {\n CategoryName?: string;\n SeverityValue?: number;\n TotalValidationResultCount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultSummary entity interface.\n */\n export interface InventoryDocumentValidationResultSummary {\n DocumentId?: string;\n DocumentVersion?: number;\n CategorySummaries?: InventoryDocumentValidationCategoryResultsSummary[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultLine entity interface.\n */\n export interface InventoryDocumentValidationResultLine {\n DocumentValidationResultLineId?: string;\n CategoryName?: string;\n SeverityValue?: number;\n ErrorCode?: number;\n ErrorMessage?: string;\n DocumentId?: string;\n DocumentLongVersion?: number;\n DocumentLineId?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity interface.\n */\n export interface InventoryDocumentValidationResultSearchCriteria {\n DocumentId?: string;\n DocumentVersion?: number;\n SeverityValue?: number;\n Categories?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionValueInventoryAvailability entity interface.\n */\n export interface ProductDimensionValueInventoryAvailability {\n DimensionTypeValue?: number;\n DimensionValue?: ProductDimensionValue;\n ProductIds?: number[];\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n }\n \n /**\n * ProductDimension entity interface.\n */\n export interface ProductDimension {\n DimensionTypeValue: number;\n DimensionValue?: ProductDimensionValue;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionValue entity interface.\n */\n export interface ProductDimensionValue {\n RecordId: number;\n Value?: string;\n DimensionId?: string;\n ColorHexCode?: string;\n ImageUrl?: string;\n RefinerGroup?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionCombination entity interface.\n */\n export interface ProductDimensionCombination {\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchRefiner entity interface.\n */\n export interface SearchRefiner {\n RecordId?: number;\n KeyName?: string;\n DataTypeValue?: number;\n RefinerTypeValue?: number;\n DisplayTemplateValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchRefinerValue entity interface.\n */\n export interface SearchRefinerValue {\n RefinerRecordId?: number;\n DataTypeValue?: number;\n LeftValueBoundString?: string;\n RightValueBoundString?: string;\n UnitText?: string;\n RowNumber?: number;\n Count?: number;\n LeftValueBoundLocalizedString?: string;\n RightValueBoundLocalizedString?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRefiner entity interface.\n */\n export interface ProductRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: ProductRefinerValue[];\n IsDimension?: boolean;\n }\n \n /**\n * ProductRefinerValue entity interface.\n */\n export interface ProductRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n }\n \n /**\n * ClientBookRefiner entity interface.\n */\n export interface ClientBookRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: ClientBookRefinerValue[];\n }\n \n /**\n * ClientBookRefinerValue entity interface.\n */\n export interface ClientBookRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n }\n \n /**\n * ProductRelationType entity interface.\n */\n export interface ProductRelationType {\n Name?: string;\n RecordId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ComponentInSlotRelation entity interface.\n */\n export interface ComponentInSlotRelation {\n ComponentId: number;\n SlotId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRules entity interface.\n */\n export interface ProductRules {\n HasLinkedProducts: boolean;\n IsSerialized: boolean;\n IsActiveInSalesProcess: boolean;\n IsBlocked: boolean;\n DateOfBlocking: Date;\n DateToActivate: Date;\n DateToBlock: Date;\n DefaultUnitOfMeasure?: string;\n PriceKeyingRequirementValue: number;\n QuantityKeyingRequirementValue: number;\n MustKeyInComment: boolean;\n CanQuantityBecomeNegative: boolean;\n MustScaleItem: boolean;\n CanPriceBeZero: boolean;\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LocalizedString entity interface.\n */\n export interface LocalizedString {\n RecordId?: number;\n LanguageId?: string;\n TextId?: number;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCard entity interface.\n */\n export interface LoyaltyCard {\n CardNumber?: string;\n CardTenderTypeValue?: number;\n CustomerAccount?: string;\n LoyaltyGroups?: LoyaltyGroup[];\n RewardPoints?: LoyaltyRewardPoint[];\n LoyaltyEnrollmentDate?: Date;\n LoyaltyEnrollmentDateLocal?: Date;\n LoyaltyEnrollmentTime?: number;\n LoyaltyEnrollmentTimeLocal?: number;\n OmOperatingUnitId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComponent entity interface.\n */\n export interface ProductComponent {\n ProductId: number;\n SlotId: number;\n Product?: SimpleProduct;\n AdditionalChargeForComponent?: number;\n Behavior?: ProductBehavior;\n Description?: string;\n Dimensions?: ProductDimension[];\n ItemId?: string;\n Name?: string;\n ProductTypeValue?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SimpleProduct entity interface.\n */\n export interface SimpleProduct {\n RecordId: number;\n ItemId?: string;\n Name?: string;\n Description?: string;\n ProductTypeValue: number;\n DefaultUnitOfMeasure?: string;\n BasePrice: number;\n Price: number;\n AdjustedPrice: number;\n MasterProductId?: number;\n Components?: ProductComponent[];\n IsGiftCard?: boolean;\n Dimensions?: ProductDimension[];\n Behavior?: ProductBehavior;\n LinkedProducts?: SimpleLinkedProduct[];\n PrimaryImageUrl?: string;\n ItemTypeValue?: number;\n ItemServiceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductBehavior entity interface.\n */\n export interface ProductBehavior {\n HasSerialNumber: boolean;\n IsDiscountAllowed: boolean;\n IsManualDiscountAllowed: boolean;\n IsKitDisassemblyAllowed: boolean;\n IsNegativeQuantityAllowed: boolean;\n IsReturnAllowed: boolean;\n IsSaleAtPhysicalStoresAllowed: boolean;\n IsZeroSalePriceAllowed: boolean;\n KeyInPriceValue: number;\n KeyInQuantityValue: number;\n MustKeyInComment: boolean;\n MustPrintIndividualShelfLabelsForVariants: boolean;\n MustPromptForSerialNumberOnlyAtSale: boolean;\n MustWeighProductAtSale: boolean;\n ValidFromDateForSaleAtPhysicalStores: Date;\n ValidToDateForSaleAtPhysicalStores: Date;\n IsStorageDimensionGroupLocationActive: boolean;\n IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n AllowNegativePhysicalInventory: boolean;\n IsStockedProduct: boolean;\n IsBlankSerialNumberAllowed?: boolean;\n IsBlankSerialNumberReceiptAllowed?: boolean;\n IsSerialNumberControlEnabled?: boolean;\n IsStorageDimensionGroupLocationBlankIssueAllowed?: boolean;\n IsSerialNumberRequired?: boolean;\n DefaultQuantity?: number;\n MaximumQuantity?: number;\n MinimumQuantity?: number;\n MultipleOfQuantity?: number;\n InventoryLocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SimpleLinkedProduct entity interface.\n */\n export interface SimpleLinkedProduct {\n RecordId: number;\n ItemId?: string;\n Name?: string;\n Description?: string;\n ProductTypeValue: number;\n DefaultUnitOfMeasure?: string;\n BasePrice: number;\n Price: number;\n AdjustedPrice: number;\n Quantity: number;\n Behavior?: ProductBehavior;\n Dimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductSearchResult entity interface.\n */\n export interface ProductSearchResult {\n ItemId?: string;\n Name?: string;\n Price: number;\n PrimaryImageUrl?: string;\n RecordId: number;\n TrackingId?: string;\n AverageRating?: number;\n TotalRatings?: number;\n Description?: string;\n BasePrice?: number;\n MinVariantPrice?: number;\n MaxVariantPrice?: number;\n DisplayOrder?: number;\n AttributeValues?: AttributeValue[];\n IsMasterProduct?: boolean;\n MasterProductId?: number;\n DefaultUnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchSuggestion entity interface.\n */\n export interface SearchSuggestion {\n Value?: string;\n Value2?: CommerceProperty;\n Value3?: CommerceProperty;\n Value4?: CommerceProperty;\n SuggestionType?: string;\n Id?: string;\n ImageUrl?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyPointRedemptionEstimate entity interface.\n */\n export interface LoyaltyPointRedemptionEstimate {\n MaxCurrencyValueOfLoyaltyPoints?: number;\n RewardPointToRedeemList?: LoyaltyRewardPointLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyGroup entity interface.\n */\n export interface LoyaltyGroup {\n Description?: string;\n Name?: string;\n RecordId: number;\n LoyaltyTiers?: LoyaltyTier[];\n LoyaltyCardTiers?: LoyaltyCardTier[];\n HighestActiveLoyaltyCardTier?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyTier entity interface.\n */\n export interface LoyaltyTier {\n Description?: string;\n RecordId: number;\n TierId?: string;\n TierLevel: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCardTier entity interface.\n */\n export interface LoyaltyCardTier {\n RecordId: number;\n TierId?: string;\n LoyaltyTierRecordId: number;\n ValidFrom: Date;\n ValidTo: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyRewardPoint entity interface.\n */\n export interface LoyaltyRewardPoint {\n IsRedeemable: boolean;\n RewardPointCurrency?: string;\n RewardPointTypeValue: number;\n Description?: string;\n RewardPointId?: string;\n IssuedPoints?: number;\n UsedPoints?: number;\n ExpiredPoints?: number;\n ActivePoints?: number;\n PointsExpiringSoon?: number;\n UnvestedPoints?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCardTransaction entity interface.\n */\n export interface LoyaltyCardTransaction {\n ChannelName?: string;\n EntryDateTime: Date;\n EntryTypeValue: number;\n ExpirationDate: Date;\n RewardPointAmountQuantity: number;\n TransactionId?: string;\n }\n \n /**\n * GiftCard entity interface.\n */\n export interface GiftCard {\n Id?: string;\n Balance?: number;\n BalanceCurrencyCode?: string;\n BalanceInCardCurrency?: number;\n CardCurrencyCode?: string;\n GiftCardIssueAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OperationPermission entity interface.\n */\n export interface OperationPermission {\n OperationName?: string;\n OperationId?: number;\n CheckUserAccess?: boolean;\n AllowAnonymousAccess?: boolean;\n AllowCustomerAccess?: boolean;\n AllowApplicationAccess?: boolean;\n IsEnabledForTaskManagement?: boolean;\n Permissions?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StateProvinceInfo entity interface.\n */\n export interface StateProvinceInfo {\n CountryRegionId?: string;\n StateId?: string;\n StateName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransactionLog entity interface.\n */\n export interface TransactionLog extends Transaction {\n }\n \n /**\n * KitTransaction entity interface.\n */\n export interface KitTransaction extends TransactionLog {\n KitTransactionLines?: KitTransactionLine[];\n }\n \n /**\n * SalesTaxGroup entity interface.\n */\n export interface SalesTaxGroup {\n RecordId: number;\n TaxGroup?: string;\n TaxGroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductProperty entity interface.\n */\n export interface ProductProperty {\n ValueString?: string;\n UnitText?: string;\n PropertyTypeValue?: number;\n KeyName?: string;\n FriendlyName?: string;\n RecordId?: number;\n IsDimensionProperty?: boolean;\n AttributeValueId?: number;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n GroupId?: number;\n GroupTypeValue?: number;\n GroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n ProductId?: number;\n CatalogId?: number;\n }\n \n /**\n * ProductCompositionInformation entity interface.\n */\n export interface ProductCompositionInformation {\n VariantInformation?: ProductVariantInformation;\n KitDefinition?: KitDefinition;\n }\n \n /**\n * ProductVariantInformation entity interface.\n */\n export interface ProductVariantInformation {\n ActiveVariantProductId: number;\n Variants?: ProductVariant[];\n Dimensions?: ProductDimensionSet[];\n ItemId?: string;\n MasterProductId?: number;\n }\n \n /**\n * ProductChangeTrackingInformation entity interface.\n */\n export interface ProductChangeTrackingInformation {\n ModifiedDateTime: Date;\n ChangeActionValue?: number;\n RequestedActionValue?: number;\n }\n \n /**\n * ProductDimensionSet entity interface.\n */\n export interface ProductDimensionSet {\n DimensionKey?: string;\n DimensionValues?: ProductDimensionValueSet[];\n }\n \n /**\n * ProductDimensionValueSet entity interface.\n */\n export interface ProductDimensionValueSet {\n DimensionId?: string;\n DimensionValue?: string;\n VariantSet?: number[];\n Language?: string;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n SwatchRefinerGroupValue?: string;\n SwatchRefinerGroupTranslation?: string;\n SwatchRefinerGroupImageUrl?: string;\n SwatchRefinerGroupColorHexCode?: string;\n }\n \n /**\n * RichMediaLocations entity interface.\n */\n export interface RichMediaLocations {\n Items?: RichMediaLocationsRichMediaLocation[];\n }\n \n /**\n * RichMediaLocationsRichMediaLocation entity interface.\n */\n export interface RichMediaLocationsRichMediaLocation {\n Url?: string;\n AltText?: string;\n IsSelfHosted?: boolean;\n IsDefault?: boolean;\n }\n \n /**\n * KitDefinition entity interface.\n */\n export interface KitDefinition {\n DisassembleAtRegister: boolean;\n KitLineDefinitions?: KitLineDefinition[];\n KitLineProductToVariantMap?: ComponentKitVariantSet[];\n KitVariantToComponentMap?: KitVariantContent[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ComponentKitVariantSet entity interface.\n */\n export interface ComponentKitVariantSet {\n KitLineProductId: number;\n KitVariantIdList?: number[];\n }\n \n /**\n * KitLineDefinition entity interface.\n */\n export interface KitLineDefinition {\n ComponentProductId: number;\n KitLineIdentifier: number;\n SubstituteProductIds?: number[];\n ComponentProperties?: KitLineProductProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitLineProductProperty entity interface.\n */\n export interface KitLineProductProperty {\n KitLineIdentifier: number;\n ProductId: number;\n Unit?: string;\n Quantity: number;\n Charge: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitComponentKey entity interface.\n */\n export interface KitComponentKey {\n KitLineIdentifier: number;\n DistinctProductId: number;\n }\n \n /**\n * KitVariantContent entity interface.\n */\n export interface KitVariantContent {\n KitVariantId: number;\n KitComponentKeyList?: KitComponentKey[];\n }\n \n /**\n * ProductLookupClause entity interface.\n */\n export interface ProductLookupClause {\n ItemId?: string;\n InventDimensionId?: string;\n Barcode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductAssortmentInterval entity interface.\n */\n export interface ProductAssortmentInterval {\n ProductId?: number;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitLocation entity interface.\n */\n export interface OrgUnitLocation {\n Contacts?: OrgUnitContact[];\n ChannelId?: number;\n Latitude?: number;\n Longitude?: number;\n OrgUnitName?: string;\n OrgUnitNumber?: string;\n Address?: string;\n Street?: string;\n StreetNumber?: string;\n City?: string;\n DistrictName?: string;\n BuildingCompliment?: string;\n Postbox?: string;\n Zip?: string;\n County?: string;\n CountyName?: string;\n State?: string;\n StateName?: string;\n Country?: string;\n Distance?: number;\n InventoryLocationId?: string;\n InventorySiteId?: string;\n PostalAddressId?: number;\n OpenFrom?: number;\n OpenTo?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitContact entity interface.\n */\n export interface OrgUnitContact {\n ChannelId: number;\n Locator?: string;\n LocatorExtension?: string;\n ContactTypeValue: number;\n IsPrimary: boolean;\n IsPrivate: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLineDeliveryOption entity interface.\n */\n export interface SalesLineDeliveryOption {\n SalesLineId?: string;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * DeliveryOption entity interface.\n */\n export interface DeliveryOption {\n ChargeGroup?: string;\n Code?: string;\n Description?: string;\n RecordId: number;\n DeliveryChargeLines?: DeliveryChargeLine[];\n TotalChargeAmount?: number;\n ShippingChargeAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelDeliveryOption entity interface.\n */\n export interface ChannelDeliveryOption {\n ChannelId: number;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * ChannelIdentity entity interface.\n */\n export interface ChannelIdentity {\n ChannelType: ExtensibleRetailChannelType;\n Name?: string;\n OperatingUnitNumber?: string;\n DataAreaId?: string;\n RecordId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleRetailChannelType entity interface.\n */\n export interface ExtensibleRetailChannelType extends ExtensibleEnumeration {\n }\n \n /**\n * ChannelProfileProperty entity interface.\n */\n export interface ChannelProfileProperty {\n Key: number;\n Value?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelConfiguration entity interface.\n */\n export interface ChannelConfiguration {\n RecordId: number;\n ChannelNaturalId?: string;\n MinimumDepositPercentage: number;\n QuoteExpirationDays: number;\n PickupDeliveryModeCode?: string;\n CarryoutDeliveryModeCode?: string;\n CancellationChargePercentage: number;\n InventLocation?: string;\n InventLocationDataAreaId?: string;\n BingMapsApiKey?: string;\n BingMapsEnabled: boolean;\n Currency?: string;\n CatalogDefaultImageTemplate?: string;\n CompanyCurrency?: string;\n PriceIncludesSalesTax: boolean;\n CountryRegionId?: string;\n ChannelCountryRegionISOCode?: string;\n DefaultLanguageId?: string;\n TimeZoneInfoId?: string;\n EmailDeliveryModeCode?: string;\n GiftCardItemId?: string;\n EnableProductRecommendations: boolean;\n RefundableShippingAmountWithoutApproval: number;\n RefundShippingCharges: boolean;\n ReceiptSettingsValue: number;\n CustomerAttributeGroupId: number;\n ClientBookAttributeGroupId: number;\n NotificationRefreshInterval: number;\n AllowExchangeOnReturnOrders?: boolean;\n FiscalRegistrationProcessId?: string;\n IsInventoryAutomaticValidationEnabled: boolean;\n ProfileProperties?: ChannelProfileProperty[];\n Properties?: ChannelProperty[];\n Languages?: ChannelLanguage[];\n UseAdvancedAutoCharges?: boolean;\n UseRTSForOnlineOrderCreation?: boolean;\n IsWarrantyAutoPromptEnabled?: boolean;\n EnableProductRatingsForRetailStores?: boolean;\n EnableFetchingPickingListsForPickingAndReceiving?: boolean;\n EnableReturnsForMultipleOrderInvoices?: boolean;\n EnableAnonymousOrderLookupByChannelReferenceId?: boolean;\n VoidSuspendedTransactionsOnCloseShift?: number;\n EnableOmniChannelPayments?: boolean;\n UseAdvancedCashManagement?: boolean;\n EnableFiscalRegistrationStorageBackup?: boolean;\n UseSalesReceiptAsDefaultReceiptTypeInJournal?: boolean;\n SalesOrderHeaderAttributeGroups?: number[];\n SalesOrderLinesAttributeGroups?: number[];\n CustomerAddressBooks?: StoreAddressBook[];\n EnableReturnPolicies?: boolean;\n InventAvailabilityCalculationMode?: string;\n IsPriceInclusiveTaxExemptCalculationEnabled?: boolean;\n EnableValidationOfSerialNumbersForInStoreReturns?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelProperty entity interface.\n */\n export interface ChannelProperty {\n Name?: string;\n Value?: string;\n Channel?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelLanguage entity interface.\n */\n export interface ChannelLanguage {\n LanguageId?: string;\n IsDefault: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelDeliveryOptionConfiguration entity interface.\n */\n export interface ChannelDeliveryOptionConfiguration {\n PickupDeliveryModeCodes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NonSalesTransaction entity interface.\n */\n export interface NonSalesTransaction extends Transaction {\n ReasonCodeLines?: ReasonCodeLine[];\n Amount?: number;\n ForeignCurrency?: string;\n OpenDrawer?: boolean;\n DenominationDetails?: DenominationDetail[];\n }\n \n /**\n * DropAndDeclareTransaction entity interface.\n */\n export interface DropAndDeclareTransaction extends Transaction {\n TenderDetails?: TenderDetail[];\n ReasonCodeLines?: ReasonCodeLine[];\n OpenDrawer?: boolean;\n }\n \n /**\n * ProductSearchCriteria entity interface.\n */\n export interface ProductSearchCriteria {\n Ids?: number[];\n CategoryIds?: number[];\n IncludeProductsFromDescendantCategories?: boolean;\n SearchCondition?: string;\n SkipVariantExpansion?: boolean;\n IncludeAttributes?: boolean;\n Barcodes?: string[];\n ItemIds?: ProductLookupClause[];\n Refinement?: ProductRefinerValue[];\n CustomerAccountNumber?: string;\n RecommendationListId?: string;\n DownloadProductData?: boolean;\n Context?: ProjectionDomain;\n Language?: string;\n IsOnline?: boolean;\n DataLevelValue?: number;\n }\n \n /**\n * ChangedProductsSearchCriteria entity interface.\n */\n export interface ChangedProductsSearchCriteria {\n SynchronizationToken?: string;\n Context?: ProjectionDomain;\n AsListings?: boolean;\n Session?: ReadChangedProductsSession;\n DataLevelValue?: number;\n }\n \n /**\n * EmployeeActivitySearchCriteria entity interface.\n */\n export interface EmployeeActivitySearchCriteria {\n FromDateTimeOffset?: Date;\n ToDateTimeOffset?: Date;\n StoreNumber?: string;\n EmployeeActivityTypeValues?: number[];\n DataLevelValue?: number;\n }\n \n /**\n * SearchSuggestionCriteria entity interface.\n */\n export interface SearchSuggestionCriteria {\n ProductSearchCriteria?: ProductSearchCriteria;\n CustomerSearchCriteria?: CustomerSearchCriteria;\n SuggestionType?: string;\n HitPrefix?: string;\n HitSuffix?: string;\n }\n \n /**\n * CartLineDeliveryPreference entity interface.\n */\n export interface CartLineDeliveryPreference {\n LineId?: string;\n DeliveryPreferenceTypeValues?: number[];\n }\n \n /**\n * CartLinePromotion entity interface.\n */\n export interface CartLinePromotion {\n LineId?: string;\n Promotions?: string[];\n }\n \n /**\n * ProductVariant entity interface.\n */\n export interface ProductVariant {\n ItemId?: string;\n MasterProductId: number;\n InventoryDimensionId?: string;\n AdjustedPrice: number;\n BasePrice: number;\n Price: number;\n Color?: string;\n Style?: string;\n Size?: string;\n Configuration?: string;\n ColorId?: string;\n StyleId?: string;\n SizeId?: string;\n ConfigId?: string;\n VariantId?: string;\n Images?: RichMediaLocations[];\n DistinctProductVariantId?: number;\n ProductNumber?: string;\n PropertiesAsList?: ProductPropertyTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfilePrinter entity interface.\n */\n export interface HardwareProfilePrinter {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceMake?: string;\n DeviceModel?: string;\n DeviceDescription?: string;\n CharacterSet?: number;\n ReceiptProfileId?: string;\n BinaryConversion?: boolean;\n DocInsertRemovalTimeout?: number;\n Logo?: string;\n LogoAlignment?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfileScanner entity interface.\n */\n export interface HardwareProfileScanner {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceDescription?: string;\n DecodeData?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfileCashDrawer entity interface.\n */\n export interface HardwareProfileCashDrawer {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceDescription?: string;\n DeviceMake?: string;\n DeviceModel?: string;\n IsSharedShiftDrawer?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TillLayout entity interface.\n */\n export interface TillLayout {\n CashChangerLayoutXml?: string;\n CustomerLayoutId?: string;\n CustomerLayoutXml?: string;\n Height?: number;\n LayoutId?: string;\n LayoutTypeValue?: number;\n LayoutXml?: string;\n LayoutXmlPortrait?: string;\n Name?: string;\n ReceiptId?: string;\n ReceiptItemsLayoutXml?: string;\n ReceiptPaymentLayoutXml?: string;\n TotalId?: string;\n TotalsLayoutXml?: string;\n Width?: number;\n RecordId?: number;\n StartScreen?: number;\n ButtonGridZones?: ButtonGridZone[];\n ImageZones?: ImageZone[];\n ReportZones?: ReportZone[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesInvoice entity interface.\n */\n export interface SalesInvoice {\n RecordId?: number;\n ChannelId?: number;\n Id?: string;\n SalesId?: string;\n SalesType?: string;\n InvoiceDate?: Date;\n DueDate?: Date;\n CurrencyCode?: string;\n InvoiceSubtotal?: number;\n TotalCharges?: number;\n TotalTaxAmount?: number;\n TotalLineDiscount?: number;\n TotalDiscount?: number;\n Amount?: number;\n AmountPaid?: number;\n AmountBalance?: number;\n Account?: string;\n Name?: string;\n TotalManualDiscountPercentage?: number;\n TotalManualDiscountAmount?: number;\n SalesInvoiceLine?: SalesInvoiceLine[];\n ChargeLines?: ChargeLine[];\n TenderLines?: TenderLine[];\n DeliveryModeChargeAmount?: number;\n OrderAccount?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrderInvoice entity interface.\n */\n export interface OrderInvoice {\n Id?: string;\n CustomerAccountNumber?: string;\n CustomerName?: string;\n InvoiceDate?: Date;\n TotalAmount?: number;\n AmountPaid?: number;\n AmountBalance?: number;\n InvoiceTypeValue?: number;\n CurrencyCode?: string;\n InvoiceDueDate?: Date;\n InvoicePaidStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxOverride entity interface.\n */\n export interface TaxOverride {\n Code?: string;\n SourceTaxGroup?: string;\n DestinationTaxGroup?: string;\n SourceItemTaxGroup?: string;\n DestinationItemTaxGroup?: string;\n ChannelId?: number;\n AdditionalDescription?: string;\n Status?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderType entity interface.\n */\n export interface TenderType {\n Function: number;\n TenderTypeId?: string;\n Name?: string;\n OperationId?: number;\n OperationName?: string;\n ChangeTenderTypeId?: string;\n AboveMinimumChangeAmount?: number;\n AboveMinimumChangeTenderTypeId?: string;\n OpenDrawer?: boolean;\n UseSignatureCaptureDevice?: boolean;\n MinimumSignatureCaptureAmount?: number;\n IsOvertenderAllowed?: boolean;\n IsUndertenderAllowed?: boolean;\n MaximumOvertenderAmount?: number;\n MaximumUndertenderAmount?: number;\n MaximumAmountPerTransaction?: number;\n MaximumAmountPerLine?: number;\n MinimumAmountPerTransaction?: number;\n MinimumAmountPerLine?: number;\n RoundOff?: number;\n CountingRequired?: number;\n TakenToBank?: number;\n TakenToSafe?: number;\n ConnectorId?: string;\n GiftCardItem?: string;\n GiftCardCashoutOutThreshold?: number;\n ChangeLineOnReceipt?: string;\n HideCardInputDetails?: boolean;\n CashDrawerLimitEnabled?: boolean;\n CashDrawerLimit?: number;\n RestrictReturnsWithoutReceipt?: boolean;\n HasTenderDiscount?: boolean;\n DefaultCardTypeId?: string;\n UseForDeclareStartAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonCode entity interface.\n */\n export interface ReasonCode {\n InputRequired: boolean;\n LinkedReasonCodeId?: string;\n MaximumLength: number;\n MaximumValue: number;\n MinimumLength: number;\n MinimumValue: number;\n OncePerTransaction: boolean;\n PrintInputNameOnReceipt: boolean;\n PrintInputToReceipt: boolean;\n PrintPromptToReceipt: boolean;\n Prompt?: string;\n RandomFactor: number;\n RetailUseReasonCode: boolean;\n ReasonCodeId?: string;\n Description?: string;\n InputTypeValue?: number;\n ActivityValue?: number;\n IsMultiLineText?: boolean;\n ReasonSubCodes?: ReasonSubCode[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportDataSet entity interface.\n */\n export interface ReportDataSet {\n ReportId?: string;\n Parameters?: CommerceProperty[];\n Locale?: string;\n Output?: ReportRow[];\n HasTotalRow?: boolean;\n HasDisclaimer?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ZipCodeInfo entity interface.\n */\n export interface ZipCodeInfo {\n ZipPostalCode?: string;\n StreetName?: string;\n TimeZone?: number;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n CityName?: string;\n CityAlias?: string;\n District?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonCodeRequirement entity interface.\n */\n export interface ReasonCodeRequirement {\n ReasonCodeId?: string;\n SourceId?: string;\n TableRefTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * QueryResultSettings entity interface.\n */\n export interface QueryResultSettings {\n Paging?: PagingInfo;\n Sorting?: SortingInfo;\n }\n \n /**\n * SortingInfo entity interface.\n */\n export interface SortingInfo {\n Columns?: SortColumn[];\n }\n \n /**\n * SortColumn entity interface.\n */\n export interface SortColumn {\n ColumnName?: string;\n IsDescending?: boolean;\n }\n \n /**\n * PagingInfo entity interface.\n */\n export interface PagingInfo {\n NextPageToken?: string;\n Top?: number;\n Skip?: number;\n }\n \n /**\n * ProductPropertyTranslation entity interface.\n */\n export interface ProductPropertyTranslation {\n TranslationLanguage?: string;\n TranslatedProperties?: ProductProperty[];\n }\n \n /**\n * NumberSequenceSeedData entity interface.\n */\n export interface NumberSequenceSeedData {\n DataTypeValue?: number;\n DataValue?: number;\n LastTransactionDataValue?: number;\n LastTransactionCreatedDateTime?: Date;\n LastTransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptNumberResetInfo entity interface.\n */\n export interface ReceiptNumberResetInfo {\n ValidFrom?: Date;\n ValidTo?: Date;\n ResetDate?: Date;\n TypeValue?: number;\n Enabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DeviceActivationResult entity interface.\n */\n export interface DeviceActivationResult {\n Device?: Device;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseHistory entity interface.\n */\n export interface PurchaseHistory {\n DatePurchased?: Date;\n ImageUrl?: string;\n ItemId?: string;\n ProductId?: number;\n ProductName?: string;\n ReceiptId?: string;\n SalesId?: string;\n ChannelId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Node entity interface.\n */\n export interface Node {\n ParentScopeId?: string;\n ParentSequence?: number;\n Id?: string;\n Sequence?: number;\n Description?: string;\n ScreenshotUri?: string;\n }\n \n /**\n * Line entity interface.\n */\n export interface Line {\n ChildrenIds?: number[];\n Id?: number;\n Name?: string;\n Description?: string;\n IsLinked?: boolean;\n LineMetadataId?: number;\n Artifacts?: ArtifactSummary[];\n MetadataPropertyValues?: MetadataPropertyValue[];\n }\n \n /**\n * MetadataText entity interface.\n */\n export interface MetadataText {\n Id?: string;\n Text?: string;\n }\n \n /**\n * MetadataHypertextLink entity interface.\n */\n export interface MetadataHypertextLink {\n Id?: string;\n DisplayName?: string;\n Url?: string;\n }\n \n /**\n * Scope entity interface.\n */\n export interface Scope extends Node {\n Name?: string;\n ScopeTypeValue: number;\n Children?: Node[];\n ActiveCount: number;\n IsForm?: boolean;\n }\n \n /**\n * Framework entity interface.\n */\n export interface Framework {\n Lines?: Line[];\n Id?: number;\n Name?: string;\n Access?: string;\n Hierarchy?: Line[];\n Publisher?: string;\n }\n \n /**\n * UserAction entity interface.\n */\n export interface UserAction extends Node {\n SystemGenerated?: boolean;\n GlobalId?: string;\n Annotations?: Annotation[];\n }\n \n /**\n * TaskUserAction entity interface.\n */\n export interface TaskUserAction extends UserAction {\n UserActionTypeValue: number;\n Name?: string;\n Comment?: string;\n TaskId?: string;\n }\n \n /**\n * FormUserAction entity interface.\n */\n export interface FormUserAction extends UserAction {\n FormId?: string;\n ControlLabel?: string;\n }\n \n /**\n * CommandUserAction entity interface.\n */\n export interface CommandUserAction extends FormUserAction {\n ReturnTypeValue: number;\n CommandName?: string;\n ControlName?: string;\n ControlType?: string;\n Arguments?: CommandArgument[];\n LabelId?: string;\n ReturnValue?: string;\n }\n \n /**\n * Annotation entity interface.\n */\n export interface Annotation {\n Description?: string;\n }\n \n /**\n * Recording entity interface.\n */\n export interface Recording {\n Scopes?: Scope[];\n FormContextEntries?: FormContextDictionaryEntry[];\n RootScope?: Scope;\n Name?: string;\n Description?: string;\n }\n \n /**\n * FormContextDictionaryEntry entity interface.\n */\n export interface FormContextDictionaryEntry {\n FormId?: string;\n FormContext?: FormContext;\n }\n \n /**\n * ProductVariantResolutionContext entity interface.\n */\n export interface ProductVariantResolutionContext {\n }\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity interface.\n */\n export interface ProductVariantResolutionOnKitSelectionContext extends ProductVariantResolutionContext {\n SelectedComponents?: ComponentInSlotRelation[];\n SlotId?: number;\n }\n \n /**\n * WarehouseLocation entity interface.\n */\n export interface WarehouseLocation {\n LocationId?: string;\n IsLicensePlateControlled: boolean;\n ProfileId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalTransaction entity interface.\n */\n export interface FiscalTransaction {\n CreatedDateTime?: Date;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n TransDateTime?: Date;\n LineNumber?: number;\n RegisterResponse?: string;\n ReceiptCopy?: boolean;\n RecordGUID?: string;\n RegisterStoreId?: string;\n RegisterTerminalId?: string;\n StaffId?: string;\n RegistrationStatusValue?: number;\n RegistrationProcessId?: string;\n ConnectorGroup?: string;\n ConnectorName?: string;\n ConnectorFunctionalityProfileId?: string;\n RegisterInfo?: string;\n DocumentNumber?: string;\n RegistrationTypeValue?: number;\n ServiceName?: string;\n CountryRegionIsoCode?: string;\n TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n ReasonCodeLines?: ReasonCodeLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLine entity interface.\n */\n export interface FulfillmentLine {\n SalesId?: string;\n SalesPersonStoreId?: string;\n SalesPersonId?: string;\n SalesPersonFirstName?: string;\n SalesPersonLastName?: string;\n SalesLineNumber?: number;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerId?: string;\n CustomerName?: string;\n EmailAddress?: string;\n DeliveryModeCode?: string;\n DocumentStatusValue?: number;\n FulfillmentDeliveryType?: FulfillmentLineDeliveryType;\n DeliveryTypeValue?: number;\n QuantityOrdered?: number;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n StoreInventoryTotalQuantity?: number;\n StoreInventoryReservedQuantity?: number;\n StoreInventoryOrderedQuantity?: number;\n ItemId?: string;\n ProductId?: number;\n ProductVariant?: string;\n ItemName?: string;\n SerialNumber?: string;\n FulfillmentStatus?: FulfillmentLineStatus;\n FulfillmentStatusValue?: number;\n UnitOfMeasureSymbol?: string;\n RequestedShipDate?: Date;\n RequestedDeliveryDate?: Date;\n RequestedReceiptDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n CreatedDate?: Date;\n TotalAmount?: number;\n Balance?: number;\n ShippingAddress?: Address;\n DetailedOrderStatusValue?: number;\n DetailedLineStatusValue?: number;\n ChannelTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineSearchCriteria entity interface.\n */\n export interface FulfillmentLineSearchCriteria {\n CustomerId?: string;\n CustomerName?: string;\n EmailAddress?: string;\n SalesId?: string;\n OrderCreatedStartDate?: Date;\n OrderCreatedEndDate?: Date;\n ReceiptId?: string;\n StoreId?: string;\n ChannelReferenceId?: string;\n RequestedReceiptStartDate?: Date;\n RequestedReceiptEndDate?: Date;\n RequestedDeliveryStartDate?: Date;\n RequestedDeliveryEndDate?: Date;\n FulfillmentStatusValues?: number[];\n DeliveryModeCode?: string;\n WarehouseId?: string;\n LoyaltyCardNumber?: string;\n CustomerPhoneNumber?: string;\n DeliveryTypeValue?: number;\n CustomFilters?: SearchFilter[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Comment entity interface.\n */\n export interface Comment {\n RecordId?: number;\n AuthorStaffId?: string;\n AuthorName?: string;\n Text?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AddressPurpose entity interface.\n */\n export interface AddressPurpose {\n RecordId: number;\n AddressType: number;\n Name?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DeliveryChargeLine entity interface.\n */\n export interface DeliveryChargeLine {\n ChargeCode?: string;\n CurrencyCode?: string;\n CalculatedAmount: number;\n Description?: string;\n IsRefundable: boolean;\n IsShipping: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensionPackageDefinition entity interface.\n */\n export interface ExtensionPackageDefinition {\n Name?: string;\n Publisher?: string;\n IsEnabled: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnPolicy entity interface.\n */\n export interface ReturnPolicy {\n RecordId: number;\n TenderTypePolicies?: TenderTypePolicy[];\n IsManagerOverrideEnabled: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderTypeAmount entity interface.\n */\n export interface TenderTypeAmount {\n TenderTypeId?: string;\n Amount: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FeatureState entity interface.\n */\n export interface FeatureState {\n Name?: string;\n IsEnabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warranty entity interface.\n */\n export interface Warranty extends SimpleProduct {\n DurationUnitValue?: number;\n Duration?: number;\n ApplicablePriceRangeBaseTypeValue?: number;\n ApplicablePriceRangeMin?: number;\n ApplicablePriceRangeMax?: number;\n }\n \n /**\n * RecallInvoicedSalesLineLookup entity interface.\n */\n export interface RecallInvoicedSalesLineLookup {\n InvoicedLineId: number;\n Quantity: number;\n SerialNumber?: string;\n IgnoreSerialNumberMismatch: boolean;\n ReasonCodeLines?: ReasonCodeLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * WarrantyGroup entity interface.\n */\n export interface WarrantyGroup {\n Warranties?: Warranty[];\n RecordId?: number;\n GroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarrantiesMapping entity interface.\n */\n export interface ProductWarrantiesMapping {\n WarrantyGroups?: WarrantyGroup[];\n WarrantableProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineContextualOperationsMap entity interface.\n */\n export interface FulfillmentLineContextualOperationsMap {\n FulfillmentLine?: FulfillmentLine;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UserAlert entity interface.\n */\n export interface UserAlert {\n AlertSourceIdValue?: number;\n LocalizedMessage?: string;\n IsBlocking?: boolean;\n }\n \n /**\n * CartLineUserAlerts entity interface.\n */\n export interface CartLineUserAlerts {\n LineIndex?: number;\n LineNumber?: number;\n UserAlerts?: UserAlert[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineUserAlerts entity interface.\n */\n export interface FulfillmentLineUserAlerts {\n SalesId?: string;\n SalesLineNumber?: number;\n UserAlerts?: UserAlert[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerProspect entity interface.\n */\n export interface BusinessPartnerProspect {\n FirstName?: string;\n LastName?: string;\n CompanyName?: string;\n Address?: Address;\n JobTitle?: string;\n Department?: string;\n CompanySize?: number;\n Comments?: string;\n LastOperationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelSearchCriteria entity interface.\n */\n export interface ChannelSearchCriteria {\n SearchLocationValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperation entity interface.\n */\n export interface BusinessPartnerOperation {\n TypeValue?: number;\n StatusValue?: number;\n Value?: string;\n Description?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperationRequest entity interface.\n */\n export interface BusinessPartnerOperationRequest {\n TypeValue?: number;\n StatusValue?: number;\n CreatedDateTime?: Date;\n Details?: BusinessPartnerOperationRequestDetails;\n UserId?: string;\n UserFirstName?: string;\n UserLastName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptTypesByFormatType entity interface.\n */\n export interface ReceiptTypesByFormatType {\n ReceiptOutputFormatType?: ReceiptOutputFormatType;\n ReceiptTypesValues?: number[];\n }\n \n /**\n * InventoryJournalNameSearchCriteria entity interface.\n */\n export interface InventoryJournalNameSearchCriteria {\n JournalNameIds?: string[];\n DocumentTypeValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AssortedProductIdentity entity interface.\n */\n export interface AssortedProductIdentity {\n ProductId?: number;\n IsRemoteProduct?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductExistenceId entity interface.\n */\n export interface ProductExistenceId {\n ProductId?: number;\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductExistenceCriteria entity interface.\n */\n export interface ProductExistenceCriteria {\n ChannelId?: number;\n CatalogId?: number;\n Ids?: ProductExistenceId[];\n }\n \n /**\n * ChecklistTask entity interface.\n */\n export interface ChecklistTask {\n Version?: string;\n InstructionsVersion?: string;\n AssignedToPersonnelNumbers?: string[];\n AssignedToExternalSubId?: string;\n Id?: string;\n Name?: string;\n Description?: string;\n DueDateTime?: Date;\n DeepLinkTypeValue?: number;\n DeepLink?: string;\n DeepLinkPosOperationName?: string;\n ContactPersonPersonnelNumber?: string;\n Instructions?: string;\n StatusValue?: number;\n CompletionDateTime?: Date;\n ResolvedByPersonnelNumber?: string;\n ChecklistId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * MediaLocation entity interface.\n */\n export interface MediaLocation {\n Uri?: string;\n AltText?: string;\n IsDefault?: boolean;\n IsSelfHosted?: boolean;\n Priority?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmployeeActivity entity interface.\n */\n export interface EmployeeActivity {\n StaffId?: string;\n StaffName?: string;\n Activity?: string;\n ActivityDateTimeOffset?: Date;\n StoreNumber?: string;\n EmployeeActivityTypeValue?: number;\n BreakCategory?: string;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerRefiner entity interface.\n */\n export interface CustomerRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: CustomerRefinerValue[];\n }\n \n /**\n * TokenizedPaymentCard entity interface.\n */\n export interface TokenizedPaymentCard {\n IsSwipe?: boolean;\n TenderType?: string;\n CardTokenInfo?: CardTokenInfo;\n Phone?: string;\n Country?: string;\n House?: string;\n Address1?: string;\n Address2?: string;\n City?: string;\n State?: string;\n Zip?: string;\n NameOnCard?: string;\n CardTypeId?: string;\n ExpirationMonth?: number;\n ExpirationYear?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity interface.\n */\n export interface ProductDimensionAvailabilitySearchCriteria {\n RequestedDimensionTypeValue?: number;\n MatchingDimensionValues?: ProductDimension[];\n DefaultWarehouseOnly?: boolean;\n FilterByChannelFulfillmentGroup?: boolean;\n DeliveryModeTypeFilterValue?: number;\n CatalogId?: number;\n }\n \n /**\n * LineShippingAddress entity interface.\n */\n export interface LineShippingAddress {\n LineId?: string;\n ShippingAddress?: Address;\n }\n \n /**\n * CartDeliveryPreferences entity interface.\n */\n export interface CartDeliveryPreferences {\n HeaderDeliveryPreferenceTypeValues?: number[];\n CartLineDeliveryPreferences?: CartLineDeliveryPreference[];\n }\n \n /**\n * LineDeliverySpecification entity interface.\n */\n export interface LineDeliverySpecification {\n LineId?: string;\n DeliverySpecification?: DeliverySpecification;\n }\n \n /**\n * DeliverySpecification entity interface.\n */\n export interface DeliverySpecification {\n DeliveryModeId?: string;\n DeliveryPreferenceTypeValue?: number;\n DeliveryAddress?: Address;\n RequestedDeliveryDate?: Date;\n PickUpStoreId?: string;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n ElectronicDeliveryEmailAddress?: string;\n ElectronicDeliveryEmailContent?: string;\n ShipFromStoreId?: string;\n }\n \n /**\n * OrderSearchCriteria entity interface.\n */\n export interface OrderSearchCriteria {\n CustomerAccountNumber?: string;\n CustomerName?: string;\n EmailAddress?: string;\n LoyaltyCardNumber?: string;\n CustomerPhoneNumber?: string;\n SalesId?: string;\n ReceiptId?: string;\n OrderStatusValues?: number[];\n StartDateTime?: Date;\n EndDateTime?: Date;\n ChannelReferenceId?: string;\n StoreId?: string;\n OrderType?: number;\n CustomFilters?: SearchFilter[];\n FulfillmentTypeValues?: number[];\n DeliveryMode?: string;\n PickupStartDate?: Date;\n PickupEndDate?: Date;\n PickupTimeslotStartTime?: number;\n PickupTimeslotEndTime?: number;\n }\n \n /**\n * ChecklistSearchCriteria entity interface.\n */\n export interface ChecklistSearchCriteria {\n ChannelId?: number;\n PersonnelNumber?: string;\n ChecklistIds?: string[];\n StatusValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaskSearchCriteria entity interface.\n */\n export interface TaskSearchCriteria {\n ChannelId?: number;\n PersonnelNumber?: string;\n TaskIds?: string[];\n StatusValues?: number[];\n FilterMyTasks: boolean;\n FilterOverdueTasks: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity interface.\n */\n export interface ChecklistTaskTeamsIntegrationConfiguration {\n IsEnabled?: boolean;\n MicrosoftGraphResource?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnCartLine entity interface.\n */\n export interface ReturnCartLine {\n Description?: string;\n ItemId?: string;\n ProductId?: number;\n Quantity?: number;\n ReturnLineNumber?: number;\n ReturnTransactionId?: string;\n SerialNumber?: string;\n IgnoreSerialNumberMismatch?: boolean;\n ReasonCodeLines?: ReasonCodeLine[];\n Price?: number;\n IsPriceKeyedIn?: boolean;\n }\n \n /**\n * TenderDiscountLine entity interface.\n */\n export interface TenderDiscountLine {\n DiscountAmount?: number;\n PaymentAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptRetrievalCriteria entity interface.\n */\n export interface ReceiptRetrievalCriteria {\n IsCopy?: boolean;\n IsRemoteTransaction?: boolean;\n IsPreview?: boolean;\n QueryBySalesId?: boolean;\n ReceiptTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n HardwareProfileId?: string;\n }\n \n /**\n * CartSearchCriteria entity interface.\n */\n export interface CartSearchCriteria {\n CartId?: string;\n ExpectedCartVersion?: number;\n CustomerAccountNumber?: string;\n IncludeAnonymous?: boolean;\n SuspendedOnly?: boolean;\n CartTypeValue?: number;\n LastModifiedDateTimeFrom?: Date;\n LastModifiedDateTimeTo?: Date;\n }\n \n /**\n * RetrievePaymentResultSettings entity interface.\n */\n export interface RetrievePaymentResultSettings {\n ReturnUrl?: string;\n PaymentConnectorId?: string;\n }\n \n /**\n * SearchReceiptCriteria entity interface.\n */\n export interface SearchReceiptCriteria {\n TransactionId?: string;\n ReceiptTypeValue?: number;\n ReceiptTypesByFormatTypeCollection?: ReceiptTypesByFormatType[];\n IsCopy?: boolean;\n GiftReceiptLineNumbers?: number[];\n }\n \n /**\n * ElectronicAddress entity interface.\n */\n export interface ElectronicAddress {\n AddressTypeValue?: number;\n ExtensibleEAddressType?: ExtensibleElectronicAddressType;\n Address?: string;\n }\n \n /**\n * ChannelReferenceLookupCriteria entity interface.\n */\n export interface ChannelReferenceLookupCriteria {\n ChannelReferenceId?: string;\n SearchLocationValue?: number;\n ChannelReferenceAdditionalLookupCriteria?: ChannelReferenceAdditionalLookupCriteria[];\n }\n \n /**\n * FulfillmentLineParameter entity interface.\n */\n export interface FulfillmentLineParameter {\n SalesId?: string;\n SalesLineNumber?: number;\n Quantity?: number;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShipFulfillmentLine entity interface.\n */\n export interface ShipFulfillmentLine extends FulfillmentLineParameter {\n ProductId?: number;\n }\n \n /**\n * RejectFulfillmentLine entity interface.\n */\n export interface RejectFulfillmentLine extends FulfillmentLineParameter {\n RejectedQuantity?: number;\n InfoCodeId?: string;\n SubInfoCodeId?: string;\n }\n \n /**\n * ReadChangedProductsSession entity interface.\n */\n export interface ReadChangedProductsSession {\n Id?: string;\n TotalNumberOfProducts?: number;\n NumberOfProductsRead?: number;\n NumberOfProductsReadInCurrentPage?: number;\n NextSynchronizationToken?: string;\n IsInitialSync?: boolean;\n }\n \n /**\n * DeletedListingsResult entity interface.\n */\n export interface DeletedListingsResult {\n HasMorePublishedListings?: boolean;\n DeletedListings?: ListingIdentity[];\n }\n \n /**\n * ProductRating entity interface.\n */\n export interface ProductRating {\n ProductId?: number;\n AverageRating?: number;\n TotalRatings?: number;\n RatingDistribution?: ProductRatingCount[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDeliveryOptions entity interface.\n */\n export interface ProductDeliveryOptions {\n ProductId?: number;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * ListingPublishStatus entity interface.\n */\n export interface ListingPublishStatus {\n PublishStatusValue?: number;\n ListingModifiedDateTime?: Date;\n ChannelListingId?: string;\n ChannelId?: number;\n CatalogId?: number;\n ProductId?: number;\n LanguageId?: string;\n AppliedActionValue?: number;\n StatusMessage?: string;\n Tag?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitLocationSearchCriteria entity interface.\n */\n export interface OrgUnitLocationSearchCriteria {\n OrgUnitNumber?: string;\n OrgUnitName?: string;\n InventoryLocationIds?: string[];\n DeliveryModeTypeFilterValue?: number;\n }\n \n /**\n * StoreHours entity interface.\n */\n export interface StoreHours {\n RegularStoreHours?: RegularStoreHours;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CartPromotions entity interface.\n */\n export interface CartPromotions {\n HeaderPromotions?: string[];\n CartLinePromotions?: CartLinePromotion[];\n }\n \n /**\n * CartPromotionLine entity interface.\n */\n export interface CartPromotionLine {\n LineId?: string;\n Promotion?: Promotion;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemUnit entity interface.\n */\n export interface ItemUnit {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n Product?: number;\n DistinctProductVariant?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductAvailableQuantity entity interface.\n */\n export interface ProductAvailableQuantity {\n ProductId?: number;\n AvailableQuantity?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity interface.\n */\n export interface OrgUnitAvailabilitySearchCriteria {\n OrgUnitName?: string;\n OrgUnitNumber?: string;\n }\n \n /**\n * InvoiceSearchCriteria entity interface.\n */\n export interface InvoiceSearchCriteria {\n BusinessPartnerId?: string;\n CustomerId?: string;\n InvoiceIds?: string[];\n InvoiceTypeValues?: number[];\n InvoicePaidStatusValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InvoiceDetailsSearchCriteria entity interface.\n */\n export interface InvoiceDetailsSearchCriteria {\n InvoiceId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickAndPackSalesLineParameter entity interface.\n */\n export interface PickAndPackSalesLineParameter {\n SalesLineNumber?: number;\n Quantity?: number;\n }\n \n /**\n * ProductListSearchCriteria entity interface.\n */\n export interface ProductListSearchCriteria {\n CustomerId?: string;\n ProductListId?: string;\n ProductListType?: string;\n }\n \n /**\n * ProjectionDomain entity interface.\n */\n export interface ProjectionDomain {\n ChannelId?: number;\n CatalogId?: number;\n }\n \n /**\n * AffiliationLoyaltyTier entity interface.\n */\n export interface AffiliationLoyaltyTier {\n AffiliationId?: number;\n LoyaltyTierId?: number;\n AffiliationTypeValue?: number;\n ReasonCodeLines?: ReasonCodeLine[];\n CustomerId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookCustomerSearchCriteria entity interface.\n */\n export interface ClientBookCustomerSearchCriteria {\n FilterByCurrentEmployee?: boolean;\n Refinement?: ClientBookRefinerValue[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookCustomer entity interface.\n */\n export interface ClientBookCustomer {\n CustomerId?: string;\n Name?: string;\n Phone?: string;\n Email?: string;\n StaffId?: string;\n ImageUris?: MediaLocation[];\n Attributes?: CustomerAttribute[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookChanges entity interface.\n */\n export interface ClientBookChanges {\n Changes?: ClientBookChange[];\n }\n \n /**\n * ChargeCode entity interface.\n */\n export interface ChargeCode {\n Code?: string;\n ModuleTypeValue?: number;\n Description?: string;\n ItemTaxGroupId?: string;\n IsRefundable?: boolean;\n IsShipping?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentMerchantInformation entity interface.\n */\n export interface PaymentMerchantInformation {\n PaymentConnectorPropertiesXml?: string;\n MerchantPropertiesHashValue?: string;\n ServiceAccountId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StoreSafe entity interface.\n */\n export interface StoreSafe {\n SafeNumber?: string;\n Name?: string;\n StoreNumber?: string;\n SafeBalance?: number;\n LastUpdatedTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity interface.\n */\n export interface InventoryDocumentReceiptSearchCriteria {\n SourceDocumentId?: string;\n SourceDocumentTypeValue?: number;\n WorkDocumentId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity interface.\n */\n export interface InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity interface.\n */\n export interface InventoryDocumentSourceDocumentLineCommitRecord {\n WorkDocumentId?: string;\n LineId?: string;\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n StaffId?: string;\n UpdateNowQuantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CreateHardwareStationTokenResult entity interface.\n */\n export interface CreateHardwareStationTokenResult {\n HardwareStationToken?: string;\n PairingKey?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ValidateHardwareStationTokenResult entity interface.\n */\n export interface ValidateHardwareStationTokenResult {\n PairingKey?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * MediaBlob entity interface.\n */\n export interface MediaBlob {\n MediaType?: string;\n Content?: string;\n IsDefault?: boolean;\n AltText?: string;\n PictureId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OnlineChannel entity interface.\n */\n export interface OnlineChannel {\n OnlineChannelName?: string;\n CurrencyCode?: string;\n EventNotificationProfileId?: string;\n RecordId?: number;\n OrgUnitTypeValue?: number;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n InventoryLocationId?: string;\n ChannelProfile?: ChannelProfile;\n ChannelProperties?: ChannelProperty[];\n ChannelLanguages?: ChannelLanguage[];\n Contacts?: OrgUnitContact[];\n ExtensionProperties?: CommerceProperty[];\n CountryRegions?: CountryRegion[];\n }\n \n /**\n * TerminalDataDownloadRequestInfo entity interface.\n */\n export interface TerminalDataDownloadRequestInfo {\n TerminalId?: string;\n RequiresDataInitialization?: boolean;\n HasBeenInitializedBefore?: boolean;\n }\n \n /**\n * DataDownloadParameters entity interface.\n */\n export interface DataDownloadParameters {\n DownloadInterval?: number;\n DownloadSessions?: DownloadSession[];\n FeatureControlList?: RetailSharedConfigurationParameter[];\n DataStore?: CDXDataStore;\n }\n \n /**\n * TerminalDataUploadRequestInfo entity interface.\n */\n export interface TerminalDataUploadRequestInfo {\n TerminalId?: string;\n }\n \n /**\n * DataUploadParameters entity interface.\n */\n export interface DataUploadParameters {\n UploadInterval?: number;\n UploadJobPackageRequests?: UploadJobPackageRequest[];\n FeatureControlList?: RetailSharedConfigurationParameter[];\n DataStore?: CDXDataStore;\n }\n \n /**\n * DownloadSession entity interface.\n */\n export interface DownloadSession {\n Id?: number;\n JobId?: string;\n JobDescription?: string;\n FileSize?: number;\n RowsAffected?: number;\n Checksum?: string;\n DateDownloaded?: string;\n DateRequested?: string;\n DataStoreName?: string;\n StatusValue?: number;\n Message?: string;\n DownloadLink?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OfflineTerminalState entity interface.\n */\n export interface OfflineTerminalState {\n TerminalId?: string;\n State?: string;\n }\n \n /**\n * LoyaltyRewardPointActivity entity interface.\n */\n export interface LoyaltyRewardPointActivity {\n ActivityDate?: Date;\n LoyaltyRewardPointTimelineEntryType?: string;\n ExtensibleLoyaltyRewardPointActivityEntryTypeValue?: number;\n LoyaltyPoints?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CurrencyRequest entity interface.\n */\n export interface CurrencyRequest {\n AmountToConvert?: number;\n CurrencyCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareStationProfile entity interface.\n */\n export interface HardwareStationProfile {\n RecordId?: number;\n HardwareStationId?: string;\n HardwareStationTypeValue?: number;\n HardwareProfileId?: string;\n HardwareStationName?: string;\n HardwareStationDescription?: string;\n HardwareStationUrl?: string;\n HardwareStationHostName?: string;\n HardwareStationEftTerminalId?: string;\n HardwareConfigurations?: HardwareConfigurations;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NameValuePair entity interface.\n */\n export interface NameValuePair {\n Name?: string;\n Value?: string;\n }\n \n /**\n * LinkToExistingCustomerResult entity interface.\n */\n export interface LinkToExistingCustomerResult {\n EmailAddress?: string;\n ExternalIdentityProvider?: string;\n ExternalIdentityLinkRecordId?: number;\n }\n \n /**\n * OfflineSyncStatsLine entity interface.\n */\n export interface OfflineSyncStatsLine {\n IsUploadJob?: boolean;\n JobDescription?: string;\n LastSyncDateTime?: Date;\n Status?: string;\n FileSize?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StorageAccessToken entity interface.\n */\n export interface StorageAccessToken {\n Url?: string;\n SasKey?: string;\n }\n \n /**\n * TaskGuidesSearchResult entity interface.\n */\n export interface TaskGuidesSearchResult {\n Lines?: Line[];\n FrameworkPublisherName?: string;\n FrameworkName?: string;\n }\n \n /**\n * AuditEvent entity interface.\n */\n export interface AuditEvent {\n EventId?: number;\n EventIdString?: string;\n Channel?: number;\n Store?: string;\n Terminal?: string;\n UploadType?: string;\n EventType?: string;\n EventDateTime?: Date;\n DurationInMilliseconds?: number;\n Source?: string;\n EventMessage?: string;\n LogLevel?: string;\n Staff?: string;\n ShiftId?: number;\n ClosedShiftId?: number;\n ReferenceId?: number;\n RefChannel?: number;\n RefStore?: string;\n RefTerminal?: string;\n RefTransactionId?: string;\n AuditEventTypeValue?: number;\n FiscalTransactions?: AuditEventFiscalTransaction[];\n FiscalRegistrationLines?: AuditEventFiscalRegistrationLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemAvailability entity interface.\n */\n export interface ItemAvailability {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n InventoryLocationId?: string;\n ProductId?: number;\n AvailableQuantity?: number;\n OrderedSum?: number;\n PhysicalReserved?: number;\n UnitOfMeasure?: string;\n InventoryUnitOfMeasure?: string;\n InventoryUnitOfMeasureDescription?: string;\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryAvailableToPromise entity interface.\n */\n export interface InventoryAvailableToPromise extends ItemAvailability {\n Date?: string;\n }\n \n /**\n * NotificationItem entity interface.\n */\n export interface NotificationItem {\n Action?: number;\n ActionName?: string;\n NotificationDetails?: NotificationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity interface.\n */\n export interface FiscalIntegrationDocumentRetrievalCriteria {\n TransactionId?: string;\n IsRemoteTransaction?: boolean;\n QueryBySalesId?: boolean;\n FiscalRegistrationEventTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n DocumentContext?: FiscalIntegrationDocumentContext;\n }\n \n /**\n * FiscalIntegrationDocument entity interface.\n */\n export interface FiscalIntegrationDocument {\n Document?: string;\n DocumentGenerationResultTypeValue?: number;\n FiscalConnectorTechnicalProfile?: FiscalIntegrationTechnicalProfile;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n SequentialSignatureDataContext?: FiscalIntegrationSignatureDataContext;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationResult entity interface.\n */\n export interface FiscalIntegrationRegistrationResult {\n TransactionID?: string;\n AuditEventId?: string;\n Response?: string;\n SubmittedDocument?: string;\n RegisterInfo?: string;\n RegistrationStatusValue?: number;\n FiscalRegistrationEventTypeValue?: number;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n ReasonCodeLines?: ReasonCodeLine[];\n SequentialSignatureData?: FiscalIntegrationSequentialSignatureData;\n }\n \n /**\n * FiscalIntegrationRegistrationProcess entity interface.\n */\n export interface FiscalIntegrationRegistrationProcess {\n RecordId?: number;\n RegistrationProcessId?: string;\n Description?: string;\n ModeValue?: number;\n RegistrationProcessLines?: FiscalIntegrationRegistrationProcessLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationSupportedEvents entity interface.\n */\n export interface FiscalIntegrationSupportedEvents {\n FunctionalityProfileGroupId?: string;\n SupportedFiscalEventTypes?: number[];\n SupportedNonFiscalEventTypes?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationTechnicalProfile entity interface.\n */\n export interface FiscalIntegrationTechnicalProfile {\n ProfileId?: string;\n Description?: string;\n ConnectorName?: string;\n ConnectorTypeValue?: number;\n ConnectorLocationValue?: number;\n TechnicalProfile?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * 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 * PriceLine entity interface.\n */\n export interface PriceLine {\n RecordId?: number;\n Value?: number;\n PriceMethod?: string;\n OriginId?: string;\n PriceChangedByExtensions?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TradeAgreementPriceLine entity interface.\n */\n export interface TradeAgreementPriceLine extends PriceLine {\n }\n \n /**\n * AttributePricingTradeAgreementPriceLine entity interface.\n */\n export interface AttributePricingTradeAgreementPriceLine extends TradeAgreementPriceLine {\n CanApplyPriceAdjustments?: boolean;\n }\n \n /**\n * SalesAgreementPriceLine entity interface.\n */\n export interface SalesAgreementPriceLine extends PriceLine {\n }\n \n /**\n * PriceAdjustmentPriceLine entity interface.\n */\n export interface PriceAdjustmentPriceLine extends PriceLine {\n IsCompoundable?: boolean;\n Concurrency?: string;\n }\n \n /**\n * AttributePricingAdjustmentPriceLine entity interface.\n */\n export interface AttributePricingAdjustmentPriceLine extends PriceAdjustmentPriceLine {\n CanCompoundOnAdjustedPrice?: boolean;\n PricingPriorityNumber?: number;\n AdjustedAmount?: number;\n }\n \n /**\n * BasePriceLine entity interface.\n */\n export interface BasePriceLine extends PriceLine {\n }\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity interface.\n */\n export interface ExtensiblePeriodicDiscountOfferType extends ExtensibleEnumeration {\n }\n \n /**\n * ChargeLineOverride entity interface.\n */\n export interface ChargeLineOverride {\n OriginalAmount?: number;\n OverrideAmount?: number;\n OverrideReasonDescription?: string;\n OverrideDateTime?: Date;\n UserId?: string;\n }\n \n /**\n * TaxLineGTE entity interface.\n */\n export interface TaxLineGTE extends TaxLine {\n TaxComponent?: string;\n }\n \n /**\n * TaxMeasure entity interface.\n */\n export interface TaxMeasure {\n Path?: string;\n Value?: number;\n DataAreaId?: string;\n SaleLineNumber?: number;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DetailedLineStatus entity interface.\n */\n export interface DetailedLineStatus extends ExtensibleEnumeration {\n }\n \n /**\n * CardTokenInfo entity interface.\n */\n export interface CardTokenInfo {\n CardToken?: string;\n UniqueCardId?: string;\n ServiceAccountId?: string;\n MaskedCardNumber?: string;\n }\n \n /**\n * DataverseTenderLine entity interface.\n */\n export interface DataverseTenderLine extends TenderLine {\n }\n \n /**\n * PaymentError entity interface.\n */\n export interface PaymentError {\n Code?: string;\n Message?: string;\n IsLocalized?: boolean;\n }\n \n /**\n * ProductAttributeMetadataFlags entity interface.\n */\n export interface ProductAttributeMetadataFlags {\n IsSearchable?: boolean;\n IsRetrievable?: boolean;\n IsQueryable?: boolean;\n IsRefinable?: boolean;\n IsSortable?: boolean;\n IsMultiValue?: boolean;\n IsTokenNormalization?: boolean;\n IsCompleteMatch?: boolean;\n }\n \n /**\n * UnitOfMeasureConversion entity interface.\n */\n export interface UnitOfMeasureConversion {\n ItemId?: string;\n FromUnitOfMeasureId?: string;\n ToUnitOfMeasureId?: string;\n FromUnitOfMeasureSymbol?: string;\n ToUnitOfMeasureSymbol?: string;\n IsBackward?: boolean;\n RecordId?: number;\n ProductRecordId?: number;\n Factor?: number;\n Numerator?: number;\n Denominator?: number;\n InnerOffset?: number;\n OuterOffset?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnLabelContent entity interface.\n */\n export interface ReturnLabelContent {\n ReturnLocationText?: string;\n ReturnWarehouseText?: string;\n ReturnReasonText?: string;\n ReturnPalleteText?: string;\n ItemId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyRewardPointLine entity interface.\n */\n export interface LoyaltyRewardPointLine {\n TransactionId?: string;\n SaleLineNumber?: number;\n LoyaltyGroupRecordId?: number;\n LoyaltyCardNumber?: string;\n CustomerAccount?: string;\n EntryDate?: Date;\n EntryTime?: number;\n EntryTypeValue?: number;\n ExpirationDate?: Date;\n LineNumber?: number;\n LoyaltyTierRecordId?: number;\n RewardPointRecordId?: number;\n RewardPointAmountQuantity?: number;\n RewardPointId?: string;\n RewardPointIsRedeemable?: boolean;\n RewardPointType?: string;\n RewardPointCurrency?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TrackingInfo entity interface.\n */\n export interface TrackingInfo {\n TrackingNumber?: string;\n ServiceType?: string;\n PackageWeight?: Weight;\n ShippedOnDate?: Date;\n Status?: string;\n DeliveredOnDate?: Date;\n EstimatedDeliveryDate?: Date;\n TrackingUrl?: string;\n PackagingType?: string;\n DestinationAddress?: Address;\n OriginAddress?: Address;\n ShipmentProgress?: ShipmentProgress[];\n ShippingCharge?: number;\n }\n \n /**\n * Weight entity interface.\n */\n export interface Weight {\n Value?: number;\n Unit?: string;\n }\n \n /**\n * ShipmentProgress entity interface.\n */\n export interface ShipmentProgress {\n Location?: Address;\n DateTime?: Date;\n Activity?: string;\n }\n \n /**\n * ShiftKey entity interface.\n */\n export interface ShiftKey {\n ShiftTerminalId?: string;\n ShiftId?: number;\n Store?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LocalizedText entity interface.\n */\n export interface LocalizedText {\n RecordId?: number;\n LanguageId?: string;\n TextId?: string;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AddressFormattingInfo entity interface.\n */\n export interface AddressFormattingInfo {\n AddressComponentNameValue?: number;\n LineNumber?: number;\n IsDataEntryOnly?: boolean;\n NewLine?: boolean;\n Expand?: boolean;\n Inactive?: boolean;\n Special?: boolean;\n NumberOfSpaces?: number;\n Separator?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareConfigurations entity interface.\n */\n export interface HardwareConfigurations {\n CashDrawerConfigurations?: HardwareConfiguration[];\n PrinterConfigurations?: HardwareConfiguration[];\n PinPadConfiguration?: HardwareConfiguration;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareConfiguration entity interface.\n */\n export interface HardwareConfiguration {\n RecordId?: number;\n HardwareStationRecordId?: number;\n TerminalId?: string;\n DeviceName?: string;\n IPAddress?: string;\n Port?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Printer entity interface.\n */\n export interface Printer {\n Name?: string;\n PrinterType?: number;\n Terminal?: number;\n PrintBehaviorValue?: number;\n ReceiptLayoutId?: string;\n HardwareProfileId?: string;\n ReceiptType?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerRefinerValue entity interface.\n */\n export interface CustomerRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n }\n \n /**\n * TransferOrderJournalLine entity interface.\n */\n export interface TransferOrderJournalLine {\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n TotalQuantityShipped?: number;\n QuantityShipped?: number;\n TransferQuantity?: number;\n UnitId?: string;\n ConfigId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n DeliveryMethod?: string;\n Barcode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity interface.\n */\n export interface InventoryDocumentSourceSerialNumberLine {\n SourceDocumentTypeValue?: number;\n SourceDocumentId?: string;\n DocumentLineRecordId?: number;\n InventTransRecordId?: number;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitTransactionLine entity interface.\n */\n export interface KitTransactionLine {\n ItemId?: string;\n Quantity?: number;\n InventoryDimensionId?: string;\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StoreAddressBook entity interface.\n */\n export interface StoreAddressBook {\n AddressBookId?: number;\n StoreId?: number;\n AddressBookTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderDetail entity interface.\n */\n export interface TenderDetail {\n LineNumber?: number;\n Amount?: number;\n AmountInForeignCurrency?: number;\n ForeignCurrencyExchangeRate?: number;\n ForeignCurrency?: string;\n BankBagNumber?: string;\n TenderTypeId?: string;\n TenderRecount?: number;\n DenominationDetails?: DenominationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DenominationDetail entity interface.\n */\n export interface DenominationDetail {\n Type?: number;\n Currency?: string;\n DenominationAmount?: number;\n QuantityDeclared?: number;\n AmountDeclared?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ButtonGridZone entity interface.\n */\n export interface ButtonGridZone {\n ButtonGridId?: string;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ImageZone entity interface.\n */\n export interface ImageZone {\n PictureId?: number;\n PictureAsBase64?: string;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportZone entity interface.\n */\n export interface ReportZone {\n ReportRecordId?: number;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesInvoiceLine entity interface.\n */\n export interface SalesInvoiceLine {\n RecordId?: number;\n ItemId?: string;\n ProductId?: number;\n ProductName?: string;\n InventDimensionId?: string;\n InventTransactionId?: string;\n Quantity?: number;\n Price?: number;\n DiscountPercent?: number;\n DiscountAmount?: number;\n BatchId?: string;\n NetAmount?: number;\n Site?: string;\n Warehouse?: string;\n SerialId?: string;\n ColorId?: string;\n SizeId?: string;\n StyleId?: string;\n ConfigId?: string;\n ColorName?: string;\n SizeName?: string;\n StyleName?: string;\n ConfigName?: string;\n SalesTaxGroup?: string;\n ItemTaxGroup?: string;\n SalesMarkup?: number;\n TotalDiscount?: number;\n TotalPercentageDiscount?: number;\n LineDiscount?: number;\n PeriodicDiscount?: number;\n PeriodicPercentageDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportRow entity interface.\n */\n export interface ReportRow {\n RowData?: CommerceProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FormAnnotation entity interface.\n */\n export interface FormAnnotation extends Annotation {\n MenuItemLabel?: string;\n MenuItemName?: string;\n MenuItemType?: string;\n }\n \n /**\n * TaskGuideAnnotation entity interface.\n */\n export interface TaskGuideAnnotation extends Annotation {\n RecordingValueType?: string;\n Title?: string;\n ExampleText?: string;\n Hidden?: boolean;\n GlobalId?: string;\n }\n \n /**\n * CommandArgument entity interface.\n */\n export interface CommandArgument {\n Value?: string;\n IsReference?: boolean;\n }\n \n /**\n * PropertyUserAction entity interface.\n */\n export interface PropertyUserAction extends FormUserAction {\n Value?: string;\n ValueLabel?: string;\n PropertyName?: string;\n ControlName?: string;\n ControlType?: string;\n UserActionType?: string;\n IsReference?: boolean;\n LabelId?: string;\n }\n \n /**\n * InfoUserAction entity interface.\n */\n export interface InfoUserAction extends UserAction {\n FormId?: string;\n ControlLabel?: string;\n ControlLabelId?: string;\n ControlName?: string;\n Text?: string;\n Notes?: string;\n }\n \n /**\n * MenuItemUserAction entity interface.\n */\n export interface MenuItemUserAction extends UserAction {\n MenuItemName?: string;\n MenuItemType?: string;\n NavigationPath?: string[];\n }\n \n /**\n * ValidationUserAction entity interface.\n */\n export interface ValidationUserAction extends UserAction {\n Name?: string;\n Comment?: string;\n }\n \n /**\n * ArtifactSummary entity interface.\n */\n export interface ArtifactSummary {\n ArtifactType?: string;\n LanguageTags?: string[];\n }\n \n /**\n * MetadataPropertyValue entity interface.\n */\n export interface MetadataPropertyValue {\n PropertyId?: string;\n SingleValue?: string;\n MultiValue?: MetadataText[];\n Tags?: string[];\n ComboBox?: string;\n MultiSelect?: string[];\n Links?: MetadataHypertextLink[];\n }\n \n /**\n * FormContext entity interface.\n */\n export interface FormContext {\n FormID?: string;\n FormName?: string;\n RecordingName?: string;\n HasMetadata?: boolean;\n Sequence?: number;\n Annotations?: Annotation[];\n }\n \n /**\n * ExtensibleFiscalRegistrationType entity interface.\n */\n export interface ExtensibleFiscalRegistrationType extends ExtensibleEnumeration {\n }\n \n /**\n * FiscalTransactionTenderLineAdjustment entity interface.\n */\n export interface FiscalTransactionTenderLineAdjustment {\n TenderLineNumber?: number;\n AdjustmentAmount?: number;\n RecordGuid?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalTransactionSalesLineAdjustment entity interface.\n */\n export interface FiscalTransactionSalesLineAdjustment {\n SalesLineNumber?: number;\n Exclude?: boolean;\n RecordGuid?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DetailedOrderStatus entity interface.\n */\n export interface DetailedOrderStatus extends ExtensibleEnumeration {\n }\n \n /**\n * LineValidationResult entity interface.\n */\n export interface LineValidationResult {\n LineId?: string;\n ValidationFailures?: DataValidationFailure[];\n }\n \n /**\n * SalesAffiliationLoyaltyTier entity interface.\n */\n export interface SalesAffiliationLoyaltyTier extends AffiliationLoyaltyTier {\n TransactionId?: string;\n ChannelId?: number;\n TerminalId?: string;\n ReceiptId?: string;\n StaffId?: string;\n }\n \n /**\n * TaxViewLine entity interface.\n */\n export interface TaxViewLine {\n TaxId?: string;\n TaxAmount?: number;\n }\n \n /**\n * Coupon entity interface.\n */\n export interface Coupon {\n CodeId?: string;\n Code?: string;\n DiscountOfferId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAccountDepositLine entity interface.\n */\n export interface CustomerAccountDepositLine {\n Amount?: number;\n CustomerAccount?: string;\n Comment?: string;\n StoreNumber?: string;\n Terminal?: string;\n Shift?: string;\n TransactionStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAttribute entity interface.\n */\n export interface CustomerAttribute {\n AttributeValue?: CommercePropertyValue;\n Units?: string;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ContactInfo entity interface.\n */\n export interface ContactInfo {\n AddressTypeValue?: number;\n RecordId?: number;\n PartyLocationRecordId?: number;\n PartyRecordId?: number;\n PartyNumber?: string;\n Description?: string;\n Value?: string;\n ValueExtension?: string;\n LogisticsLocationId?: string;\n LogisticsLocationRecordId?: number;\n ParentLocation?: number;\n IsPrimary?: boolean;\n IsMobilePhone?: boolean;\n IsPrivate?: boolean;\n IsOptedInMarketing?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryQuantities entity interface.\n */\n export interface InventoryQuantities {\n UnitOfMeasure?: string;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityOrdered?: number;\n QuantityCanceled?: number;\n QuantityReturned?: number;\n }\n \n /**\n * DeliveryInformation entity interface.\n */\n export interface DeliveryInformation {\n DeliveryMode?: string;\n DeliveryAddress?: Address;\n DeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n }\n \n /**\n * ShiftTaxLine entity interface.\n */\n export interface ShiftTaxLine {\n TaxCode?: string;\n TaxAmount?: number;\n TaxRate?: number;\n NetAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxRegistration entity interface.\n */\n export interface TaxRegistration {\n RecordId?: number;\n Name?: string;\n CountryRegionId?: string;\n IsRegistrationNumberUnique?: boolean;\n IsPrimaryAddressRestricted?: boolean;\n TypeApplicabilityRuleRecordId?: number;\n TypeValue?: number;\n Description?: string;\n DirPartyLocationRecordId?: number;\n RegistrationNumber?: string;\n ValidFrom?: Date;\n ValidTo?: Date;\n Issuer?: string;\n IssueDate?: Date;\n Section?: string;\n DirectoryPartyRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelTaxRegistration entity interface.\n */\n export interface ChannelTaxRegistration extends TaxRegistration {\n ChannelId?: number;\n }\n \n /**\n * LinkedProduct entity interface.\n */\n export interface LinkedProduct {\n ProductRecordId?: number;\n LinkedProductRecordId?: number;\n Quantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DisplayOrderInCategory entity interface.\n */\n export interface DisplayOrderInCategory {\n CategoryRecordId?: number;\n DisplayOrder?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RelatedProduct entity interface.\n */\n export interface RelatedProduct {\n ProductRecordId?: number;\n RelatedProductRecordId?: number;\n CatalogId?: number;\n RelationName?: string;\n IsExcludedRelation?: boolean;\n IsDirectRelation?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitComponent entity interface.\n */\n export interface KitComponent {\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity interface.\n */\n export interface ChannelReferenceAdditionalLookupCriteria {\n OrderLookupAdditionalCriteriaTypeValue?: number;\n OrderLookupAdditionalCriteriaTypeParameterValue?: string;\n }\n \n /**\n * UserAlertFulfillmentLineParameter entity interface.\n */\n export interface UserAlertFulfillmentLineParameter extends FulfillmentLineParameter {\n ItemId?: string;\n ProductId?: number;\n UnitOfMeasure?: string;\n SerialNumberInLatestFulfillmentTransaction?: string;\n LatestFulfillmentTransactionOperationTypeValue?: number;\n }\n \n /**\n * ListingIdentity entity interface.\n */\n export interface ListingIdentity {\n ProductId?: number;\n LanguageId?: string;\n CatalogId?: number;\n Tag?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRatingCount entity interface.\n */\n export interface ProductRatingCount {\n Rating?: number;\n Count?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RegularStoreHours entity interface.\n */\n export interface RegularStoreHours {\n MondayOpenTime?: number;\n MondayCloseTime?: number;\n IsClosedOnMonday?: boolean;\n TuesdayOpenTime?: number;\n TuesdayCloseTime?: number;\n IsClosedOnTuesday?: boolean;\n WednesdayOpenTime?: number;\n WednesdayCloseTime?: number;\n IsClosedOnWednesday?: boolean;\n ThursdayOpenTime?: number;\n ThursdayCloseTime?: number;\n IsClosedOnThursday?: boolean;\n FridayOpenTime?: number;\n FridayCloseTime?: number;\n IsClosedOnFriday?: boolean;\n SaturdayOpenTime?: number;\n SaturdayCloseTime?: number;\n IsClosedOnSaturday?: boolean;\n SundayOpenTime?: number;\n SundayCloseTime?: number;\n IsClosedOnSunday?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ValidationPeriod entity interface.\n */\n export interface ValidationPeriod {\n RecordId?: number;\n PeriodId?: string;\n Description?: string;\n ValidFrom?: Date;\n ValidTo?: Date;\n StartingTime?: number;\n EndingTime?: number;\n IsTimeBounded?: number;\n MondayStartingTime?: number;\n MondayEndingTime?: number;\n IsMondayTimeBounded?: number;\n TuesdayStartingTime?: number;\n TuesdayEndingTime?: number;\n IsTuesdayTimeBounded?: number;\n WednesdayStartingTime?: number;\n WednesdayEndingTime?: number;\n IsWednesdayTimeBounded?: number;\n ThursdayStartingTime?: number;\n ThursdayEndingTime?: number;\n IsThursdayTimeBounded?: number;\n FridayStartingTime?: number;\n FridayEndingTime?: number;\n IsFridayTimeBounded?: number;\n SaturdayStartingTime?: number;\n SaturdayEndingTime?: number;\n IsSaturdayTimeBounded?: number;\n SundayStartingTime?: number;\n SundayEndingTime?: number;\n IsSundayTimeBounded?: number;\n IsEndTimeAfterMidnight?: number;\n IsMondayEndTimeAfterMidnight?: number;\n IsTuesdayEndTimeAfterMidnight?: number;\n IsWednesdayEndTimeAfterMidnight?: number;\n IsThursdayEndTimeAfterMidnight?: number;\n IsFridayEndTimeAfterMidnight?: number;\n IsSaturdayEndTimeAfterMidnight?: number;\n IsSundayEndTimeAfterMidnight?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookChange entity interface.\n */\n export interface ClientBookChange {\n FromStaffId?: string;\n ToStaffId?: string;\n CustomerId?: string;\n }\n \n /**\n * ChannelProfile entity interface.\n */\n export interface ChannelProfile {\n ProfileProperties?: ChannelProfileProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RetailSharedConfigurationParameter entity interface.\n */\n export interface RetailSharedConfigurationParameter {\n RecordId?: number;\n Name?: string;\n Value?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CDXDataStore entity interface.\n */\n export interface CDXDataStore {\n Name?: string;\n RecId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UploadJobPackageRequest entity interface.\n */\n export interface UploadJobPackageRequest {\n JobId?: string;\n RerunUploadSessionId?: number;\n TargetStorage?: string;\n UploadJobDefintion?: string;\n UploadUrl?: string;\n }\n \n /**\n * ExtensibleAuditEventType entity interface.\n */\n export interface ExtensibleAuditEventType extends ExtensibleEnumeration {\n }\n \n /**\n * AuditEventFiscalTransaction entity interface.\n */\n export interface AuditEventFiscalTransaction {\n EventId?: number;\n LineNumber?: number;\n RegisterResponse?: string;\n Store?: string;\n TransDateTime?: Date;\n Terminal?: string;\n UploadType?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AuditEventFiscalRegistrationLine entity interface.\n */\n export interface AuditEventFiscalRegistrationLine {\n EventId?: number;\n RegisterResponse?: string;\n StoreId?: string;\n TransactionDateTime?: Date;\n TerminalId?: string;\n UploadType?: string;\n UploadTypeValue?: number;\n StaffId?: string;\n RecordGuid?: string;\n RegistrationStatusValue?: number;\n RegistrationProcessId?: string;\n ConnectorGroup?: string;\n ConnectorName?: string;\n ConnectorFunctionalityProfileId?: string;\n RegisterInfo?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NotificationDetail entity interface.\n */\n export interface NotificationDetail {\n ActionProperty?: string;\n ItemCount?: number;\n DisplayText?: string;\n IsNew?: boolean;\n LastUpdatedDateTimeStr?: string;\n IsSuccess?: boolean;\n IsLiveContentOnly?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentContext entity interface.\n */\n export interface FiscalIntegrationDocumentContext {\n AuditEvent?: AuditEvent;\n SignatureData?: FiscalIntegrationSequentialSignatureData[];\n }\n \n /**\n * FiscalIntegrationDocumentAdjustment entity interface.\n */\n export interface FiscalIntegrationDocumentAdjustment {\n TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationSignatureDataContext entity interface.\n */\n export interface FiscalIntegrationSignatureDataContext {\n SequentialSignatureKey?: string;\n SequentialNumber?: number;\n }\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity interface.\n */\n export interface FiscalIntegrationRegistrationProcessLine {\n RegistrationProcessId?: string;\n SequenceNumber?: number;\n Priority?: number;\n ConnectorTypeValue?: number;\n FunctionalityProfileGroupId?: string;\n AllowSkip?: boolean;\n AllowMarkAsRegistered?: boolean;\n AllowPostpone?: boolean;\n Optional?: boolean;\n RegistrationSettings?: FiscalIntegrationRegistrationSettings;\n SupportedFiscalEventTypes?: number[];\n SupportedNonFiscalEventTypes?: number[];\n SequentialKeys?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationSettings entity interface.\n */\n export interface FiscalIntegrationRegistrationSettings {\n SkipReasonCode?: string;\n MarkAsRegisteredReasonCode?: string;\n PostponeReasonCode?: string;\n }\n \n /**\n * FiscalIntegrationServiceFailureDetails entity interface.\n */\n export interface FiscalIntegrationServiceFailureDetails {\n FailureTypeValue?: number;\n IsRetryAllowed?: boolean;\n ErrorCode?: string;\n ErrorMessage?: string;\n }\n \n /**\n * CategoryPath entity interface.\n */\n export interface CategoryPath {\n Segments?: CategoryPathSegment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathSegment entity interface.\n */\n export interface CategoryPathSegment {\n CategoryName?: string;\n CategoryId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttachedService entity interface.\n */\n export interface AttachedService {\n BaseUrl?: string;\n ServiceId?: string;\n StatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleInventoryJournalType entity interface.\n */\n export interface ExtensibleInventoryJournalType extends ExtensibleEnumeration {\n }\n \n /**\n * CustomerTimelineItemType entity interface.\n */\n export interface CustomerTimelineItemType {\n Description?: string;\n TypeId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouseInventoryAvailability entity interface.\n */\n export interface ProductWarehouseInventoryAvailability {\n ProductId?: number;\n InventLocationId?: string;\n DataAreaId?: string;\n PhysicalInventory?: number;\n PhysicalReserved?: number;\n TotalAvailable?: number;\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n OrderedInTotal?: number;\n PhysicalAvailable?: number;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n LastInventoryTransactionId?: number;\n UnpostedOnlineOrderedQuantity?: number;\n UnpostedFulfilledQuantity?: number;\n IsInventoryAvailabilityQuantityReturned?: boolean;\n UnprocessedQuantity?: number;\n QuantityUnitTypeValue?: number;\n UnitOfMeasure?: string;\n MaximumPurchasablePhysicalAvailableQuantity?: number;\n MaximumPurchasableTotalAvailableQuantity?: number;\n SumUncountedTransactions?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * QuantityUnitType entity interface.\n */\n export interface QuantityUnitType extends ExtensibleEnumeration {\n }\n \n /**\n * ProductInventoryAvailability entity interface.\n */\n export interface ProductInventoryAvailability {\n ProductId?: number;\n DataAreaId?: string;\n TotalAvailableQuantity?: number;\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n PhysicalAvailableQuantity?: number;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n QuantityUnitTypeValue?: number;\n UnitOfMeasure?: string;\n MaximumPurchasablePhysicalAvailableQuantity?: number;\n MaximumPurchasableTotalAvailableQuantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ParameterSet entity interface.\n */\n export interface ParameterSet {\n }\n \n /**\n * CartLineValidationResults entity interface.\n */\n export interface CartLineValidationResults {\n ValidationResultsByLineId?: CartLineValidationResultsByLineId;\n ValidationFailuresByCartLines?: LineDataValidationFailure[];\n }\n \n /**\n * CommerceException entity interface.\n */\n export interface CommerceException {\n LocalizedMessage?: string;\n ErrorResourceId?: string;\n }\n \n /**\n * DataValidationException entity interface.\n */\n export interface DataValidationException extends CommerceException {\n ValidationResults?: DataValidationFailure[];\n }\n \n /**\n * MissingRequiredReasonCodeException entity interface.\n */\n export interface MissingRequiredReasonCodeException extends DataValidationException {\n RequiredReasonCodes?: ReasonCode[];\n TransactionRequiredReasonCodeIds?: string[];\n ReasonCodeRequirements?: ReasonCodeRequirement[];\n }\n \n /**\n * SecurityException entity interface.\n */\n export interface SecurityException extends CommerceException {\n }\n \n /**\n * DeviceAuthenticationException entity interface.\n */\n export interface DeviceAuthenticationException extends SecurityException {\n }\n \n /**\n * HeadquarterTransactionServiceException entity interface.\n */\n export interface HeadquarterTransactionServiceException extends CommerceException {\n }\n \n /**\n * UserAuthenticationException entity interface.\n */\n export interface UserAuthenticationException extends SecurityException {\n }\n \n /**\n * UserAuthorizationException entity interface.\n */\n export interface UserAuthorizationException extends SecurityException {\n }\n \n /**\n * FeatureNotSupportedException entity interface.\n */\n export interface FeatureNotSupportedException extends CommerceException {\n }\n \n /**\n * CartValidationException entity interface.\n */\n export interface CartValidationException extends DataValidationException {\n }\n \n /**\n * TenderValidationException entity interface.\n */\n export interface TenderValidationException extends DataValidationException {\n TenderTypeId?: string;\n }\n \n /**\n * CommerceDataExchangeException entity interface.\n */\n export interface CommerceDataExchangeException extends CommerceException {\n }\n \n /**\n * ExtensibleEnumerationException entity interface.\n */\n export interface ExtensibleEnumerationException extends CommerceException {\n }\n \n /**\n * TaskManagementException entity interface.\n */\n export interface TaskManagementException extends CommerceException {\n TaskManagementErrors?: TaskManagementError[];\n }\n \n /**\n * TaskManagementServerException entity interface.\n */\n export interface TaskManagementServerException extends TaskManagementException {\n }\n \n /**\n * TaskManagementClientException entity interface.\n */\n export interface TaskManagementClientException extends TaskManagementException {\n }\n \n /**\n * PaymentException entity interface.\n */\n export interface PaymentException extends CommerceException {\n AdditionalContext?: string;\n PaymentSdkErrors?: PaymentError[];\n }\n \n /**\n * DataValidationFailure entity interface.\n */\n export interface DataValidationFailure {\n ErrorContext?: string;\n ErrorResourceId?: string;\n MemberNames?: string[];\n LocalizedMessage?: string;\n }\n \n /**\n * ItemDiscontinuedException entity interface.\n */\n export interface ItemDiscontinuedException extends CommerceException {\n RemovedUnavailableItemIds?: string;\n }\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity interface.\n */\n export interface InventoryDocumentLockedByOtherTerminalException extends DataValidationException {\n WorkingTerminalId?: string;\n CurrentTerminalId?: string;\n }\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity interface.\n */\n export interface InventoryDocumentExceedMaximumQuantityException extends DataValidationException {\n MaximumQuantity: number;\n AllowOverDelivery: boolean;\n }\n \n /**\n * CartLineValidationResultsByLineId entity interface.\n */\n export interface CartLineValidationResultsByLineId {\n LineIdToProductBehaviorMap?: KeyValuePair_2OfString_ProductBehavior[];\n ValidationResultsPairs?: LineValidationResult[];\n }\n \n /**\n * CommerceRuntimeCompositionException entity interface.\n */\n export interface CommerceRuntimeCompositionException extends CommerceException {\n }\n \n /**\n * ChecklistTaskValidationException entity interface.\n */\n export interface ChecklistTaskValidationException extends DataValidationException {\n }\n \n /**\n * InsufficientCredentialLengthException entity interface.\n */\n export interface InsufficientCredentialLengthException extends DataValidationException {\n ActualLength?: number;\n MinLength?: number;\n }\n \n /**\n * ExtensibleEnumerationCacheException entity interface.\n */\n export interface ExtensibleEnumerationCacheException extends CommerceException {\n }\n \n /**\n * ExtensionConfigurationException entity interface.\n */\n export interface ExtensionConfigurationException extends CommerceException {\n }\n \n /**\n * StaffPasswordExpiredException entity interface.\n */\n export interface StaffPasswordExpiredException extends UserAuthenticationException {\n StaffId?: string;\n }\n \n /**\n * ChannelConfigurationNotFoundException entity interface.\n */\n export interface ChannelConfigurationNotFoundException extends CommerceException {\n }\n \n /**\n * PaymentConfigurationException entity interface.\n */\n export interface PaymentConfigurationException extends CommerceException {\n PaymentConfigurationSdkErrors?: string[];\n }\n \n /**\n * SecretConfigurationNotFoundException entity interface.\n */\n export interface SecretConfigurationNotFoundException extends CommerceException {\n }\n \n /**\n * TenderTypePolicy entity interface.\n */\n export interface TenderTypePolicy {\n OriginalTenderType?: string;\n AllowedReturnTenderTypes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AccountStatementRequest entity interface.\n */\n export interface AccountStatementRequest {\n RequestedUserId?: string;\n IsForFullOrganization?: boolean;\n FromDate?: Date;\n ToDate?: Date;\n RequestingUserEmail?: string;\n DeliveryTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperationRequestDetails entity interface.\n */\n export interface BusinessPartnerOperationRequestDetails {\n InvoiceId?: string;\n AccountStatementStartDateTime?: Date;\n AccountStatementEndDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaskManagementError entity interface.\n */\n export interface TaskManagementError {\n ErrorResourceId?: string;\n LocalizedMessage?: string;\n TaskId?: string;\n }\n \n /**\n * LineDataValidationFailure entity interface.\n */\n export interface LineDataValidationFailure {\n DataValidationFailure?: DataValidationFailure;\n LineIndex?: number;\n }\n \n /**\n * WrongEndpointException entity interface.\n */\n export interface WrongEndpointException extends CommerceException {\n RedirectUri?: string;\n }\n \n /**\n * BadRequestException entity interface.\n */\n export interface BadRequestException extends CommerceException {\n }\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity interface.\n */\n export interface KeyValuePair_2OfString_ProductBehavior {\n }\n ","\n // \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":""}