{"version":3,"sources":["webpack:///../../src/DataActions/StockCountJournalsDataActions.g.ts?dcda","webpack:///../../src/DataActions/InventoryInboundOutboundDocumentsDataActions.g.ts?6c38","webpack:///../../src/Interfaces/ICache.ts?0279","webpack:///../../src/DataActions/CommerceListsDataActions.g.ts?d44a","webpack:///../../src/DataActions/PurchaseOrdersDataActions.g.ts?5ed3","webpack:///../../src/DataActions/CartsDataActions.g.ts?f2f8","webpack:///../../src/DataActions/SuspendedCartsDataActions.g.ts?8576","webpack:///../../src/DataActions/WarehousesDataActions.g.ts?8063","webpack:///../../src/logging/ConsoleEventWriter.ts?1638","webpack:///../../src/logging/RetailLogger.ts?9e7e","webpack:///../../src/logging/Tracer.ts?faf4","webpack:///../../src/DataActions/RecommendationsDataActions.g.ts?31c0","webpack:///src/utils/script-utils.ts?9534","webpack:///../../src/Entities/CommerceModels.g.ts?1e76","webpack:///src/modules/default-inline-script/default-inline-script.tsx?3ed3","webpack:///src/modules/default-metatags/default-metatags.tsx?1bb4","webpack:///../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack:///src/modules/default-external-script/default-external-script.tsx?203d","webpack:///../src/async-result.ts?1ea5","webpack:///../../src/data-types/index.ts?4f60","webpack:///src/modules/default-page-summary/default-page-summary.tsx?b254","webpack:///../../src/DataActions/StoreOperationsDataActions.g.ts?85ae","webpack:///../../src/DataActions/ScanResultsDataActions.g.ts?42cd","webpack:///../src/index.ts?6f37","webpack:///../../src/DataActions/ChecklistsDataActions.g.ts?abe2","webpack:///../../src/exceptions/ErrorHelper.ts?deca","webpack:///../../src/exceptions/ProxyErrorSDK.ts?c06e","webpack:///../../src/exceptions/ProxyError.ts?f6d3","webpack:///src/modules/fabrikam/fabrikam.tsx?a751","webpack:///../../src/extensions/StringExtensions.ts?6e3d","webpack:///../../src/DataActions/EmployeesDataActions.g.ts?e814","webpack:///../../src/Interfaces/index.ts?6f35","webpack:///../../src/DataActions/ProductsDataActions.g.ts?8ea2","webpack:///../../src/DataActions/CatalogsDataActions.g.ts?8b5c","webpack:///../../src/externals/helper.ts?18b4","webpack:///../../src/exceptions/index.ts?d291","webpack:///../../src/DataActions/BusinessPartnersDataActions.g.ts?502e","webpack:///../../src/exceptions/ErrorParser.ts?d883","webpack:///../src/DataServiceQuery.ts?8aab","webpack:///../../src/DataActions/ApplicableOperationsDataActions.g.ts?b88b","webpack:///../../src/DataActions/BusinessPartnerUsersDataActions.g.ts?c8e5","webpack:///../../src/DataActions/TransferOrdersDataActions.g.ts?97d4","webpack:///../../src/DataActions/SalesOrdersDataActions.g.ts?4e0c","webpack:///../../src/externals/DataJS.New.ts?f131","webpack:///../../src/Entities/CommerceTypes.g.ts?34ee","webpack:///../../src/DataActions/ProductListsDataActions.g.ts?81df","webpack:///../src/DataServiceRequest.ts?423e","webpack:///../../src/DataActions/ShiftsDataActions.g.ts?57b8","webpack:///../../src/DataActions/CustomersDataActions.g.ts?081a","webpack:///../../src/externals/handler.ts?a98d","webpack:///../../src/DataActions/OrgUnitsDataActions.g.ts?c88f","webpack:///../src/retail-action.ts?fc97","webpack:///../../src/DataActions/PickingListsDataActions.g.ts?9bf8"],"names":["ICacheSource","commerceListsQuery","id","key","Id","DataServiceQuery","CommerceListClass","createCommerceListAsync","context","entity","request","create","createCreateInput","executeAction","createGetByCustomerInput","queryResultSettings","customerId","resultSettings","createDataServiceRequestForOperation","bypassCache","returnEntity","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","cartsQuery","CartClass","createCartAsync","updateAsync","update","createUpdateInput","readAsync","read","createReadAsync","checkoutAsync","receiptEmail","tokenizedPaymentCard","receiptNumberSequence","cartTenderLines","cartVersion","SalesOrderClass","createCheckoutInput","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","loyaltyCardId","currencyCode","LoyaltyPointRedemptionEstimateClass","getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync","getDeliveryOptionsAsync","shippingAddress","cartLineIds","filterOption","ignoreLinesWithDeliveryMode","DeliveryOptionClass","createGetDeliveryOptionsInput","updateLineDeliverySpecificationsAsync","lineDeliverySpecifications","createUpdateLineDeliverySpecificationsInput","addCartLinesAsync","cartLines","createAddCartLinesInput","updateCartLinesAsync","createUpdateCartLinesInput","removeCartLinesAsync","createRemoveCartLinesInput","copyAsync","targetCartType","createCopyInput","removeDiscountCodesAsync","discountCodes","createRemoveDiscountCodesInput","searchAsync","cartSearchCriteria","createSearchInput","getCardPaymentAcceptPointAsync","cardPaymentAcceptSettings","extensionProperties","CardPaymentAcceptPointClass","createGetCardPaymentAcceptPointInput","retrieveCardPaymentAcceptResultAsync","resultAccessCode","cartId","settings","CardPaymentAcceptResultClass","createRetrieveCardPaymentAcceptResultInput","getAvailablePromotionsAsync","CartPromotionLineClass","createGetAvailablePromotionsInput","addOrderInvoiceAsync","invoiceId","lineDescription","createAddOrderInvoiceInput","addInvoicesAsync","invoiceIds","createAddInvoicesInput","addCouponsAsync","couponCodes","isLegacyDiscountCode","createAddCouponsInput","addDiscountCodeAsync","discountCode","createAddDiscountCodeInput","validateForCheckoutAsync","CartLineValidationResultsClass","createValidateForCheckoutInput","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","RetailLogger","eventName","error","Operational","Error","Warning","Informational","requestId","requestUrl","Debug","entitySetId","Tracer","sink","addLoggingSink","informationformat","TracingOn","args","genericInfo","GetMessage","apply","TracerDynamicsError","warningFormat","genericWarning","errorFormat","genericError","errors","formatString","length","errorMessage","errorCode","errorString","forEach","ErrorMessage","EMPTY","ErrorCode","JSON","stringify","format","uniqueFunctionName","counter","undefined","Counters","PerformanceCounters","Name","Count","now","Date","getTime","Timers","push","startTime","pop","TotalTime","item","hasOwnProperty","Information","type","TracerDynamics","Array","prototype","slice","call","init","constructor","recommendationsQuery","RecommendationClass","getElementsAsync","recommendationCriteria","RecommendedElementClass","createGetElementsInput","logDebug","debugMessage","telemetry","log","LogLevel","logError","isAbsoluteUrl","source","test","isRelativeUrl","CategoryClass","odataObject","this","RecordId","parseInt","OfflineImage","ParentCategory","DisplayOrder","parseFloat","Images","i","className","substr","lastIndexOf","concat","Entities","MediaLocationClass","NameTranslations","TextValueTranslationClass","ExtensionProperties","CommercePropertyClass","AffiliationLines","AffiliationLoyaltyTierClass","IsRequiredAmountPaid","IsDiscountFullyCalculated","IgnoreDiscountCalculation","AmountDue","AmountPaid","AttributeValues","AttributeValueBaseClass","BeginDateTime","jsonLightReadStringPropertyValue","BusinessDate","CancellationChargeAmount","EstimatedShippingAmount","CartLines","CartLineClass","CartTypeValue","ChannelId","ChargeAmount","CustomerOrderRemainingBalance","ChargeLines","ChargeLineClass","TaxViewLines","TaxViewLineClass","Comment","InvoiceComment","Coupons","CouponClass","CustomerId","CustomerOrderModeValue","DeliveryMode","DeliveryModeChargeAmount","DiscountAmount","DiscountAmountWithoutTax","DiscountCodes","SuspendedCartId","TransactionTypeValue","CustomerAccountDepositLines","CustomerAccountDepositLineClass","IncomeExpenseLines","IncomeExpenseLineClass","IncomeExpenseTotalAmount","IsReturnByReceipt","ReturnTransactionHasLoyaltyPayment","IsFavorite","IsRecurring","IsSuspended","LoyaltyCardId","ModifiedDateTime","OrderNumber","AvailableDepositAmount","OverriddenDepositAmount","OverriddenDepositWithoutCarryoutAmount","PrepaymentAmountPaid","PrepaymentAppliedOnPickup","PromotionLines","QuotationExpiryDate","ReasonCodeLines","ReasonCodeLineClass","ReceiptEmail","RequestedDeliveryDate","RequiredDepositAmount","RequiredDepositWithoutCarryoutAmount","SalesId","ShippingAddress","AddressClass","StaffId","SubtotalAmount","SubtotalAmountWithoutTax","NetPrice","SubtotalSalesAmount","TaxAmount","TaxOnCancellationCharge","TaxOverrideCode","TenderLines","TenderLineClass","RefundableTenderLines","TerminalId","TotalAmount","TotalSalesAmount","TotalReturnAmount","TotalCarryoutSalesAmount","TotalCustomerOrderSalesAmount","TotalManualDiscountAmount","TotalManualDiscountPercentage","WarehouseId","IsCreatedOffline","CartStatusValue","ReceiptTransactionTypeValue","CommissionSalesGroup","Version","TotalItems","HasTaxCalculationTriggered","MerchantProperties","PaymentMerchantInformationClass","HasChargeCalculationTriggered","FiscalTransactions","FiscalTransactionClass","ShippingChargeAmount","OtherChargeAmount","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","SuspendedTransactionId","InventoryLocationId","IsTaxIncludedInPrice","IsTaxExemptedForPriceInclusive","LineDiscount","LineDiscountCalculationTypeValue","LoyaltyDiscountAmount","LoyaltyManualDiscountAmount","LoyaltyRewardPointLines","LoyaltyRewardPointLineClass","NetAmount","NetAmountWithoutTax","NetAmountWithNoTax","NetAmountWithTax","NumberOfItems","PeriodicDiscountAmount","TenderDiscountAmount","PrepaymentAmountAppliedOnPickup","PrepaymentAmountInvoiced","ReceiptId","SalesPaymentDifference","SalesLines","SalesLineClass","ShiftId","ShiftTerminalId","StatementCode","StoreId","TaxAmountExclusive","TaxAmountInclusive","TaxLines","TaxLineClass","TotalDiscount","TaxCalculationTypeValue","SalesInvoiceAmount","GiftCardActiveFrom","GiftCardBalance","GiftCardExpireDate","GiftCardHistoryDetails","GiftCardIssueAmount","GiftCardIdMasked","IsCommissionSalesGroupOverriddenByCustomer","CommissionSalesGroupSetByCashier","ShiftClass","StartingAmountTotal","FloatingEntryAmountTotal","AddToTenderAmountTotal","SafeDropTotal","BankDropTotal","RemoveTenderAmountTotal","DeclareTenderAmountTotal","OverShortTotal","TenderedTotal","ChangeTotal","IncomeAccountTotal","ExpenseAccountTotal","CashDrawer","StoreRecordId","CurrentStaffId","CloseDateTime","ClosedAtTerminalId","CurrentTerminalId","SalesTotal","StatusDateTime","ReturnsTotal","PaidToAccountTotal","TaxTotal","ChargeTotal","DiscountTotal","RoundedAmountTotal","CustomerCount","SaleTransactionCount","NoSaleTransactionCount","VoidTransactionCount","LogOnTransactionCount","SuspendedTransactionCount","TransactionCount","ReceiptsCount","ReturnsCount","GoodsSoldQty","ServicesSoldQty","ReceiptCopiesCount","ReceiptCopiesTotal","PriceOverrideTotal","SuspendedTotal","SalesTotalIncludingTax","SalesTotalExcludingTax","SalesGrandTotal","ReturnsGrandTotal","ShiftTaxLineClass","ShiftTenderLineClass","AccountLines","ShiftAccountLineClass","IsShared","StartingAmountRunningTotal","GiftCardsTotal","GiftCardCashOutTotal","VoidedSalesTotal","ShiftSalesTotal","ShiftReturnsTotal","HasPendingOfflineTransactions","NumberOfUnreconciledLines","StockCountJournalClass","JournalId","InventLocationId","DataAreaId","StockCountTransactionLines","StockCountJournalTransactionClass","Worker","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","CustomerName","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","BusinessPartnerClass","BusinessPartnerUserClass","B2BUserId","SpendingLimit","LastOperationId","SuspendedCartClass","Cart","ExtensibleEnumerationClass","Value","ExtensibleEnumeration_1OfTClass","super","ExtensibleTransactionTypeClass","ExtensibleSalesTransactionTypeClass","FulfillmentLineStatusClass","FulfillmentLineDeliveryTypeClass","ExtensibleAddressTypeClass","ExtensibleLoyaltyRewardPointActivityEntryTypeClass","ExtensibleAttributeDataTypeClass","ReleasedProductServiceTypeClass","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","GlobalCustomerClass","FullName","AttributeValueClass","KeyName","UnitOfMeasureSymbol","DataTypeValue","BooleanValue","DateTimeOffsetValue","FloatValue","IntegerValue","TextValue","CurrencyValue","AttributeValueId","BarcodeId","BarcodePrice","Quantity","EmployeeId","SalespersonId","EANLicenseId","DataEntry","DiscountCode","GiftCardNumber","LoyaltyCardNumber","ItemBarcode","ItemBarcodeClass","EntryMethodTypeValue","ItemType","EnterDimensions","ItemGroupId","ItemDepartmentId","ScaleItem","ZeroPriceValid","NegativeQuantity","DiscountNotAllowed","DateToBeBlocked","DateToBeActivated","CheckDigitValidated","CouponId","Message","IncludedInTotalDiscount","CostPrice","BatchId","BarcodeSetupId","ItemBarcodeValue","InventoryDimensionId","IsBlocked","Display","VariantId","UnitId","UseForInput","UseForPrinting","ButtonGridClass","DefaultColor","SpaceBetweenButtonsInPixels","Buttons","ButtonGridButtonClass","GetButtonGridsByIdsCriteriaClass","ButtonGridIds","LineId","ProductId","ExtendedPrice","ItemTaxGroupId","LinePercentageDiscount","LineManualDiscountPercentage","LineManualDiscountAmount","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","IsWarrantyLine","WarrantableTransactionId","WarrantableSalesId","WarrantableLineNumber","WarrantableSerialNumber","WarrantiedId","ReturnTransactionId","ReturnLineNumber","ReturnInventTransId","IsVoided","IsTaxOverideCodeTaxExempt","IsGiftCardLine","IsPriceKeyedIn","GiftCardId","GiftCardCurrencyCode","GiftCardOperationValue","GiftCardTypeValue","SalesStatusValue","QuantityOrdered","QuantityNotProcessed","QuantityReserved","QuantityPicked","QuantityPacked","QuantityInvoiced","QuantityCanceled","FulfillmentStoreId","SerialNumber","ElectronicDeliveryEmail","ElectronicDeliveryEmailContent","IsPriceOverridden","OriginalPrice","IsInvoiceLine","InvoiceId","InvoiceAmount","LineVersion","DiscountLines","DiscountLineClass","RelatedDiscountedLineIds","TaxRatePercent","IsCustomerAccountDeposit","LinkedParentLineId","QuantityReturnable","LineNumber","TrackingId","QuantityRemained","CatalogId","AttributeTextValueClass","ThirdPartyGiftCardInfo","ThirdPartyGiftCardInfoClass","BarcodeEmbeddedPrice","PriceInBarcode","InvoiceTypeValue","InvoicedSalesId","WarehouseLocation","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","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","SalesTaxGroupId","OriginalSalesTaxGroupId","OriginalItemTaxGroupId","SalesOrderUnitOfMeasure","NetAmountPerUnit","TaxMeasures","TaxMeasureClass","TaxAmountExemptInclusive","NetAmountWithAllInclusiveTax","ReturnLineTaxAmount","ReturnTaxLines","TaxExemptPriceInclusiveReductionAmount","TaxExemptPriceInclusiveOriginalPrice","CityInfoClass","CountryRegionId","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","CustomerTimelineItemClass","EntityType","AttributeDefinitionClass","AttributeTypeName","ExtDataType","IsHidden","IsMandatory","IsMultiValue","IsEnumeration","TranslationDetails","AttributeTranslationDetailsClass","EnumerationDetails","AttributeEnumerationClass","DefaultValue","UpperBound","LowerBound","LanguageId","FriendlyName","HelpText","OrdinalNumber","EnumerationValue","AttributeEnumerationTranslations","AttributeEnumerationTranslationClass","EnumerationTranslationValue","AttributeDefinitionCriteriaClass","AttributeGroupIdentifier","Languages","AttributeGroupDefinitionClass","AttributeGroupTranslationDetailsClass","AttributeGroupRecordId","AttributeGroupDefinitionCriteriaClass","AttributeGroupIdentifiers","CountyInfoClass","CustomerGroupClass","CustomerGroupNumber","CustomerGroupName","OfferId","OfferName","DiscountCost","EffectiveAmount","SavedEffectiveAmount","Percentage","DealPrice","DiscountLineTypeValue","ManualDiscountTypeValue","CustomerDiscountTypeValue","PeriodicDiscountTypeValue","DiscountApplicationGroup","ConcurrencyModeValue","IsCompoundable","PricingPriorityNumber","IsDiscountCodeRequired","ThresholdAmountRequired","BundleId","PriceOverrideRestrictionValue","AllowPriceOverride","MaximumDiscountPercentage","MaximumLineDiscountAmount","MaximumLineReturnAmount","MaximumTotalDiscountAmount","MaximumTotalDiscountPercentage","MaxTotalReturnAmount","Roles","AllowUseSharedShift","AllowManageSharedShift","AllowTaskGuides","AllowSaleOutsideAssortment","AllowPrintingReceiptCopy","AllowSkipFiscalRegistration","AllowSkipRegistrationOrMarkAsRegistered","AllowPostponeRegistration","AllowCreateTransferOrder","AllowAcceptOrder","AllowTaskManagement","AllowRejectOrder","AllowMassActivation","Key","ByteValue","DecimalValue","LongValue","StringValue","CountryRegionInfoClass","ShortName","LongName","ISOCode","TimeZone","AddressFormatLines","AddressFormattingInfoClass","AddressFormatId","AddressFormatName","CreditMemoClass","CurrencyClass","CurrencySymbol","RoundOffPrice","RoundOffSales","RoundOffTypePrice","RoundOffTypeSales","NumberOfDecimals","CurrencyAmountClass","ConvertedAmount","RoundedConvertedAmount","EnvironmentConfigurationClass","EnvironmentId","EnvironmentName","TenantId","ClientAppInsightsInstrumentationKey","HardwareStationAppInsightsInstrumentationKey","WindowsPhonePosAppInsightsInstrumentationKey","BaseVersion","ScaleUnit","ScaleUnitConfigurationClass","AADAuthority","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","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","DeviceClass","DeviceNumber","DeviceId","DeviceType","TerminalRecordId","ChannelName","TokenIssueTime","ActivationStatusValue","Token","CountryRegionIsoCode","DiscountCodeClass","Code","ConcurrencyMode","Disclaimer","IsEnabled","DistrictInfoClass","CityName","HardwareProfileClass","LineDisplayDelayForLinkedItems","LineDisplayBalanceText","LineDisplayBinaryConversion","LineDisplayCharacterSet","LineDisplayClosedLine1","LineDisplayClosedLine2","LineDisplayDeviceDescription","LineDisplayDeviceTypeValue","LineDisplayDeviceName","LineDisplayDisplayLinkedItem","LineDisplayDisplayTerminalClosed","LineDisplayTotalText","DualDisplayActive","DualDisplayWebBrowserUrl","DualDisplayImageRotatorInterval","DualDisplayImageRotatorPath","DualDisplayReceiptWidthPercentage","DualDisplayDisplayType","EftTypeId","EftCompanyId","EftConfiguration","EftPaymentConnectorName","EftData","EftDescription","EftMerchantId","EftPassword","EftServerName","EftServerPort","EftUserId","EftTestMode","MsrEndTrack1","MsrEndTrack2","FiscalPrinterManagementReportPAFIdentification","FiscalPrinterManagementReportConfigParameter","FiscalPrinterManagementReportTenderType","FiscalPrinterManagementReportGiftCard","FiscalRegisterDeviceTypeValue","FiscalRegisterConfiguration","FiscalRegisterDeviceDescription","FiscalRegisterDeviceName","KeyboardMappingId","KeyLockDeviceTypeValue","KeyLockDeviceDescription","KeyLockDeviceName","MsrDeviceTypeValue","MsrDeviceDescription","MsrDeviceName","MsrMake","MsrModel","MsrSeparator","MsrStartTrack","PinPadDeviceTypeValue","PinPadDeviceName","PinPadMake","PinPadModel","PinPadDeviceDescription","ProfileDescription","RFIDDeviceTypeValue","RFIDDeviceName","RFIDDeviceDescription","ScaleDeviceTypeValue","ScaleDeviceName","ScaleDeviceDescription","ScaleManualInputAllowed","ScaleTimeoutInSeconds","SignatureCaptureDeviceTypeValue","SignatureCaptureDeviceName","SignatureCaptureMake","SignatureCaptureModel","SignatureCaptureDeviceDescription","SignatureCaptureFormName","Printers","HardwareProfilePrinterClass","Scanners","HardwareProfileScannerClass","FiscalIntegrationTechnicalProfiles","FiscalIntegrationTechnicalProfileClass","CashDrawers","HardwareProfileCashDrawerClass","SupportedLanguageClass","UseShippingAddress","CardNumber","CCID","Track1","Track2","Track3","VoiceAuthorizationCode","EncryptedPin","AdditionalSecurityData","IsSwipe","Country","House","Address1","Address2","Zip","NameOnCard","ExpirationMonth","ExpirationYear","CardPaymentAcceptSettingsClass","HostPageOrigin","AdaptorPath","CardTokenizationEnabled","CardPaymentEnabled","PaymentAmount","HideBillingAddress","AcceptPageUrl","AcceptPageSubmitUrl","MessageOrigin","AcceptPageContent","PaymentConnectorId","TenderLine","PaymentSdkErrors","PaymentErrorClass","AdditionalContext","InformationAmount","InputTypeValue","ItemTender","LineTypeValue","ParentLineId","ReasonCodeId","SubReasonCodeId","SourceCode","SourceCode2","SourceCode3","FiscalTransactionParentGuid","IsChanged","ReasonSubCodeClass","TriggerCode","AmountPercent","SubCodeId","TriggerFunctionTypeValue","PriceTypeValue","ReceiptClass","Header","Body","Footer","Width","LayoutId","ReceiptTitle","ReceiptTypeValue","ReceiptTypeStrValue","PrinterClass","ReceiptMaskClass","IsIndependent","Mask","OriginLineId","MasterProductId","ListingId","TotalPercentageDiscount","PeriodicDiscount","InventoryStatusId","LicensePlate","ReservationId","ReturnQuantity","ProductSourceValue","IsInvoiceSettled","IsPriceLocked","AgreementPrice","ReturnStore","ReturnTerminalId","ReturnChannelId","SalesDate","SavedQuantity","IsSavedDiscount","ElectronicDeliveryEmailAddress","LoyaltyPercentageDiscount","TenderDiscountPercentage","Found","DateToActivateItem","PeriodicPercentageDiscount","QuantityDiscounted","UnitQuantity","UnitOfMeasureConversion","UnitOfMeasureConversionClass","PriceLines","PriceLineClass","PeriodicDiscountPossibilities","ReturnLabelProperties","ReturnLabelContentClass","LineMultilineDiscOnItem","LineMultilineDiscOnItemValue","WasChanged","OriginalSalesOrderUnitOfMeasure","InventOrderUnitOfMeasure","IsLoyaltyDiscountApplied","ReturnLoyaltyRewardPointLines","FulfillmentStatus","FulfillmentStatusValue","DetailedLineStatusValue","DetailedLineStatus","DetailedLineStatusClass","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","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","ProductPriceClass","TradeAgreementPrice","CustomerContextualPrice","ProductLookupId","OrgUnitAvailabilityClass","OrgUnitLocation","OrgUnitLocationClass","ItemAvailabilities","ItemAvailabilityClass","ProductVariantPropertySetClass","ProductVariantPropertiesAsList","PurchaseQuantity","PurchaseUnit","PurchaseReceived","PurchaseReceivedNow","WMSLocationId","WMSPalletId","IsCommitted","UniqueIdentifier","DeliveryMethod","QuantityTransferred","QuantityRemainShip","QuantityRemainReceive","Guid","TransferOrderJournalClass","VoucherId","UpdatedByWorker","PostingDate","Comments","JournalLines","TransferOrderJournalLineClass","AffiliationClass","AffiliationTypeValue","InventoryInboundOutboundDocumentLinesSummaryClass","InProgressQuantity","TotalLineNumber","InventoryDocumentSerialNumberLinesSummaryClass","RegisteringQuantity","RegisteredQuantity","InventoryInboundOutboundDocumentLineClass","SourceDocumentRecordId","SourceDocumentLineRecordId","QuantityCancelled","QuantityToUpdate","LocationId","ItemPrimaryImageUrl","IsLocationActive","IsLocationAllowBlankReceiptEnabled","IsLocationBlankIssueAllowed","ProductDimensions","ProductDimensionClass","IsCloseLine","OriginTypeValue","SourceDocumentLine","InventoryInboundOutboundSourceDocumentLineClass","SerialNumberLines","InventoryDocumentSerialNumberLineClass","DocumentTypeValue","TotalQuantityOrdered","TotalQuantityShipped","TotalQuantityReceived","TotalQuantityCancelled","TotalLines","IsChangeAllowed","DocumentRecordId","OverDeliveryPercentage","UnderDeliveryPercentage","HasSerialNumber","IsSerialNumberBlankReceiptAllowed","IsSerialNumberDuplicateCheckEnabled","InventoryDocumentSourceSerialNumberLineClass","InventoryDocumentLineFilterCriteriaClass","InventoryDocumentUpdateLinesActionClass","ActionTypeValue","InventoryDocumentLineOperationResultSettingsClass","ModeValue","InventoryDocumentLineSearchCriteriaClass","SourceDocumentId","AvailableSerializedLineOnly","DocumentLineIds","InventoryDocumentSearchCriteriaClass","DocumentStateValue","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","DimensionTypeValue","DimensionValue","ProductDimensionValueClass","DimensionId","ProductDimensionCombinationClass","SearchRefinerClass","RefinerTypeValue","DisplayTemplateValue","SearchRefinerValueClass","RefinerRecordId","LeftValueBoundString","RightValueBoundString","UnitText","RowNumber","LeftValueBoundLocalizedString","RightValueBoundLocalizedString","ProductRefinerClass","SourceValue","Values","ProductRefinerValueClass","RefinerSourceValue","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","IsBlankSerialNumberAllowed","IsBlankSerialNumberReceiptAllowed","IsSerialNumberControlEnabled","IsStorageDimensionGroupLocationBlankIssueAllowed","IsSerialNumberRequired","DefaultQuantity","MinimumQuantity","MultipleOfQuantity","ProductSearchResultClass","AverageRating","TotalRatings","SearchSuggestionClass","Value2","Value3","Value4","SuggestionType","ImageUrl","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","Items","RichMediaLocationsRichMediaLocationClass","AltText","IsSelfHosted","IsDefault","DisassembleAtRegister","KitLineDefinitions","KitLineDefinitionClass","KitLineProductToVariantMap","ComponentKitVariantSetClass","KitVariantToComponentMap","KitVariantContentClass","KitLineProductId","KitVariantIdList","ComponentProductId","KitLineIdentifier","SubstituteProductIds","ComponentProperties","KitLineProductPropertyClass","Charge","KitComponentKeyClass","DistinctProductId","KitVariantId","KitComponentKeyList","ProductLookupClauseClass","InventDimensionId","ProductAssortmentIntervalClass","OrgUnitContactClass","Distance","InventorySiteId","PostalAddressId","OpenFrom","OpenTo","Locator","LocatorExtension","ContactTypeValue","SalesLineDeliveryOptionClass","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","EnableOmniChannelPayments","EnableFiscalRegistrationStorageBackup","UseSalesReceiptAsDefaultReceiptTypeInJournal","SalesOrderHeaderAttributeGroups","SalesOrderLinesAttributeGroups","EnableReturnPolicies","InventAvailabilityCalculationMode","IsPriceInclusiveTaxExemptCalculationEnabled","Channel","ChannelDeliveryOptionConfigurationClass","PickupDeliveryModeCodes","NonSalesTransactionClass","ForeignCurrency","DenominationDetails","DenominationDetailClass","DropAndDeclareTransactionClass","TenderDetails","TenderDetailClass","ProductSearchCriteriaClass","Ids","IncludeProductsFromDescendantCategories","SearchCondition","SkipVariantExpansion","IncludeAttributes","Barcodes","ItemIds","Refinement","RecommendationListId","DownloadProductData","Context","IsOnline","ChangedProductsSearchCriteriaClass","SynchronizationToken","AsListings","Session","ReadChangedProductsSessionClass","EmployeeActivitySearchCriteriaClass","FromDateTimeOffset","ToDateTimeOffset","EmployeeActivityTypeValues","SearchSuggestionCriteriaClass","ProductSearchCriteria","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","Account","SalesInvoiceLine","SalesInvoiceLineClass","OrderAccount","OrderInvoiceClass","AmountBalance","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","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","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","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","FulfillmentLineSearchCriteriaClass","OrderCreatedStartDate","OrderCreatedEndDate","RequestedReceiptStartDate","RequestedReceiptEndDate","RequestedDeliveryStartDate","RequestedDeliveryEndDate","FulfillmentStatusValues","CustomerPhoneNumber","CommentClass","AuthorStaffId","AuthorName","AddressPurposeClass","AddressType","ExtensionPackageDefinitionClass","ReturnPolicyClass","TenderTypePolicies","TenderTypePolicyClass","IsManagerOverrideEnabled","TenderTypeAmountClass","FeatureStateClass","WarrantyClass","DurationUnitValue","Duration","ApplicablePriceRangeBaseTypeValue","ApplicablePriceRangeMin","ApplicablePriceRangeMax","WarrantyGroupClass","Warranties","ProductWarrantiesMappingClass","WarrantyGroups","WarrantableProductId","FulfillmentLineContextualOperationsMapClass","FulfillmentLine","UserAlertClass","AlertSourceIdValue","LocalizedMessage","CartLineUserAlertsClass","LineIndex","UserAlerts","FulfillmentLineUserAlertsClass","BusinessPartnerProspectClass","CompanyName","JobTitle","Department","CompanySize","ChannelSearchCriteriaClass","InstructionsVersion","AssignedToPersonnelNumbers","AssignedToExternalSubId","DeepLinkTypeValue","DeepLink","DeepLinkPosOperationName","ContactPersonPersonnelNumber","Instructions","CompletionDateTime","ResolvedByPersonnelNumber","ChecklistId","Uri","Priority","EmployeeActivityClass","StaffName","Activity","ActivityDateTimeOffset","EmployeeActivityTypeValue","BreakCategory","TenderType","CardTokenInfo","CardTokenInfoClass","LineShippingAddressClass","CartDeliveryPreferencesClass","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","TenderDiscountLineClass","ReceiptRetrievalCriteriaClass","IsCopy","IsRemoteTransaction","IsPreview","QueryBySalesId","HardwareProfileId","CartSearchCriteriaClass","CartId","ExpectedCartVersion","IncludeAnonymous","SuspendedOnly","LastModifiedDateTimeFrom","LastModifiedDateTimeTo","RetrievePaymentResultSettingsClass","ReturnUrl","SearchReceiptCriteriaClass","ElectronicAddressClass","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","DeliveryModeTypeFilterValue","StoreHoursClass","RegularStoreHours","RegularStoreHoursClass","CartPromotionsClass","HeaderPromotions","CartLinePromotions","Promotion","PromotionClass","ItemUnitClass","VariantInventoryDimensionId","DistinctProductVariant","ProductAvailableQuantityClass","AvailableQuantity","OrgUnitAvailabilitySearchCriteriaClass","InvoiceSearchCriteriaClass","InvoiceIds","InvoiceTypeValues","InvoicePaidStatusValues","InvoiceDetailsSearchCriteriaClass","PickAndPackSalesLineParameterClass","ProductListSearchCriteriaClass","AffiliationId","LoyaltyTierId","ClientBookCustomerSearchCriteriaClass","FilterByCurrentEmployee","ClientBookCustomerClass","ImageUris","ClientBookChangesClass","Changes","ClientBookChangeClass","ChargeCodeClass","PaymentConnectorPropertiesXml","MerchantPropertiesHashValue","ServiceAccountId","StoreSafeClass","SafeNumber","SafeBalance","LastUpdatedTime","CreateHardwareStationTokenResultClass","HardwareStationToken","PairingKey","ValidateHardwareStationTokenResultClass","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","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","FrameworkName","AuditEventClass","EventId","EventIdString","Store","UploadType","DurationInMilliseconds","Source","EventMessage","Staff","ReferenceId","RefChannel","RefStore","RefTerminal","RefTransactionId","AuditEventTypeValue","AuditEventFiscalTransactionClass","FiscalRegistrationLines","AuditEventFiscalRegistrationLineClass","OrderedSum","PhysicalReserved","InventoryUnitOfMeasure","InventoryUnitOfMeasureDescription","InventoryAvailableToPromiseClass","NotificationItemClass","Action","ActionName","NotificationDetails","NotificationDetailClass","FiscalIntegrationDocumentRetrievalCriteriaClass","FiscalRegistrationEventTypeValue","DocumentContext","FiscalIntegrationDocumentContextClass","FiscalIntegrationDocumentClass","Document","DocumentGenerationResultTypeValue","FiscalConnectorTechnicalProfile","DocumentAdjustment","FiscalIntegrationDocumentAdjustmentClass","SequentialSignatureDataContext","FiscalIntegrationSignatureDataContextClass","FiscalIntegrationRegistrationResultClass","TransactionID","AuditEventId","Response","SubmittedDocument","SequentialSignatureData","FiscalIntegrationSequentialSignatureDataClass","FiscalIntegrationRegistrationProcessClass","RegistrationProcessLines","FiscalIntegrationRegistrationProcessLineClass","FiscalIntegrationSupportedEventsClass","FunctionalityProfileGroupId","SupportedFiscalEventTypes","SupportedNonFiscalEventTypes","ConnectorTypeValue","TechnicalProfile","FiscalIntegrationTechnicalProfileSearchCriteriaClass","ExcludeOptionalProcessLines","FunctionalityProfileGroupIds","FiscalIntegrationServiceInfoClass","ServiceProperties","FiscalIntegrationServiceStatusClass","IsReady","FiscalIntegrationServiceCommunicationResultClass","CommunicationResultTypeValue","FailureDetails","FiscalIntegrationServiceFailureDetailsClass","FiscalIntegrationServiceInfo","UserNotificationMessage","LastRegisterResponse","SequenceKey","IsOffline","SequentialNumber","DiscountsSearchCriteriaClass","StartDate","EndDate","ValidationPeriodId","AdditionalRestrictions","ValidFromDate","ValidToDate","ValidationPeriod","ValidationPeriodClass","CouponCodes","CategoryPathLookupClass","CategoryPathResultClass","CategoryPath","CategoryPathClass","PickupTimeslotAvailabilitySearchCriteriaClass","SearchOptionValue","PickupTimeslotAvailabilityClass","AvailableCapacity","ExtensionProfileClass","ExtensionServiceUrl","AttachedServices","AttachedServiceClass","ChannelInventoryConfigurationClass","AllowTransferOrderOverDelivery","AllowTransferOrderUnderDelivery","UserLocationProfileId","ChannelPurchaseConfigurationClass","AllowOverDelivery","AllowSubDelivery","ShiftRetrievalCriteriaClass","ShiftStatusValue","FilterByUserRole","IncludeAllShiftsForStore","MediaBlobClass","MediaType","Content","UserDefinedSecretCertificateResultClass","CertificateData","TerminalInfoClass","CustomerTimelineItemTypeMapClass","Types","CustomerTimelineItemTypeClass","CustomerTimelineRefinerClass","RefinedResultsCount","CustomerTitleClass","ProductWarehouseClass","ProductWarehouseInventoryInformationClass","ProductWarehouseInventoryAvailabilities","ProductWarehouseInventoryAvailabilityClass","InventoryAvailabilitySearchCriteriaClass","DefaultWarehouseOnly","SearchArea","FilterByChannelFulfillmentGroup","ExtensibleEnumerationContainerClass","TypeName","ExtensibleEnumerations","PackingSlipDataClass","PackingSlipId","OrgUnitAddressClass","WarehouseDetailsClass","AttributeBooleanValueClass","AttributeCurrencyValueClass","AttributeDateTimeOffsetValueClass","AttributeFloatValueClass","UnitSymbol","AttributeIntValueClass","AttributeMediaLocationValueClass","TextValueTranslations","ActionProperty","BackColorAsARGB","ARGBColorClass","BorderColorAsARGB","Column","ColumnSpan","DisplayText","FontColorAsARGB","ButtonId","Row","RowSpan","UseCustomLookAndFeel","PictureAsBase64","FontStyle","FontSize","EnableCustomFontForPOS","HideButtonText","Tooltip","EnableLiveContent","NotificationContentAlignment","ImageAlignment","A","R","G","B","ExtensiblePeriodicDiscountOfferTypeClass","OriginalAmount","OverrideAmount","OverrideReasonDescription","OverrideDateTime","TaxLineGTEClass","TaxComponent","Path","UniqueCardId","IsSearchable","IsRetrievable","IsQueryable","IsRefinable","IsSortable","IsTokenNormalization","IsCompleteMatch","FromUnitOfMeasureId","ToUnitOfMeasureId","FromUnitOfMeasureSymbol","ToUnitOfMeasureSymbol","IsBackward","Factor","Numerator","Denominator","InnerOffset","OuterOffset","PriceMethod","OriginId","PriceChangedByExtensions","BasePriceLineClass","PriceAdjustmentPriceLineClass","Concurrency","TradeAgreementPriceLineClass","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","Region","CashDrawerConfigurations","HardwareConfigurationClass","PrinterConfigurations","PinPadConfiguration","HardwareStationRecordId","IPAddress","Port","IsLocalized","PrinterType","PrintBehaviorValue","ReceiptLayoutId","ReceiptType","TransferQuantity","DocumentLineRecordId","InventTransRecordId","AmountInForeignCurrency","ForeignCurrencyExchangeRate","BankBagNumber","TenderRecount","Type","DenominationAmount","QuantityDeclared","AmountDeclared","ButtonGridId","ZoneId","ZoneName","PictureId","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","MetadataTextClass","Tags","ComboBox","MultiSelect","Links","MetadataHypertextLinkClass","FormID","FormName","RecordingName","HasMetadata","ExtensibleFiscalRegistrationTypeClass","TenderLineNumber","AdjustmentAmount","RecordGuid","Exclude","DetailedOrderStatusClass","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","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","PhysicalInventory","TotalAvailable","TotalAvailableInventoryLevelLabel","TotalAvailableInventoryLevelCode","OrderedInTotal","PhysicalAvailable","PhysicalAvailableInventoryLevelLabel","PhysicalAvailableInventoryLevelCode","LastInventoryTransactionId","UnpostedOnlineOrderedQuantity","IsInventoryAvailabilityQuantityReturned","SumUncountedTransactions","ParameterSetClass","ValidationFailuresByCartLines","LineDataValidationFailureClass","CommerceExceptionClass","ErrorResourceId","DataValidationExceptionClass","ValidationResults","DataValidationFailureClass","MissingRequiredReasonCodeExceptionClass","RequiredReasonCodes","TransactionRequiredReasonCodeIds","ReasonCodeRequirements","SecurityExceptionClass","DeviceAuthenticationExceptionClass","HeadquarterTransactionServiceExceptionClass","UserAuthenticationExceptionClass","UserAuthorizationExceptionClass","FeatureNotSupportedExceptionClass","CartValidationExceptionClass","TenderValidationExceptionClass","PaymentExceptionClass","CommerceDataExchangeExceptionClass","ExtensibleEnumerationExceptionClass","TaskManagementExceptionClass","TaskManagementErrors","TaskManagementErrorClass","TaskManagementServerExceptionClass","TaskManagementClientExceptionClass","ErrorContext","MemberNames","ItemDiscontinuedExceptionClass","RemovedUnavailableItemIds","InventoryDocumentLockedByOtherTerminalExceptionClass","WorkingTerminalId","InventoryDocumentExceedMaximumQuantityExceptionClass","CommerceRuntimeCompositionExceptionClass","ChecklistTaskValidationExceptionClass","InsufficientCredentialLengthExceptionClass","ActualLength","MinLength","ExtensibleEnumerationCacheExceptionClass","StaffPasswordExpiredExceptionClass","OriginalTenderType","AllowedReturnTenderTypes","AccountStatementRequestClass","RequestedUserId","IsForFullOrganization","FromDate","ToDate","RequestingUserEmail","DataValidationFailure","WrongEndpointExceptionClass","RedirectUri","BadRequestExceptionClass","DefaultInlineScript","React","props","render","config","typeName","inlineScript","includes","nonceToken","isNonceEnabled","scriptHtml","SDK_FRAGMENT_NAME","dangerouslySetInnerHTML","__html","DefaultMetaTags","data","metaTags","metaTagsHtml","_addNonceToInlineScript","join","metaTagsText","map","simpleText","text","inlineScripRegex","metaTag","replace","filter","Boolean","categoriesQuery","recordId","getCategoriesAsync","channelId","createGetCategoriesInput","DefaultExternalScript","scriptSource","relativeBaseUrl","url","staticCdnUrl","msdyn365Commerce","getEnvironmentVariable","path","async","defer","isAsyncResult","toString","AsyncResult","executor","status","metadata","_type","_handlers","_attachHandler","handler","_executeHandlers","onFail","onSuccess","result","_resolve","_updateStatus","_reject","reason","e","resolve","reject","run","then","asyncResult","catch","finally","onfinally","failed","toStringTag","newStatus","isError","setTimeout","obj","__decorate","observable","DefaultPageSummary","pageSummary","title","description","sharingImageUrl","faviconUrl","canonicalUrl","sharingImage","src","pageTitle","_constructPageTitle","app","HtmlHeadInclude","content","rel","href","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","moduleConfig","ignoreTitleSuffixPrefix","appConfig","platform","pageTitlePrefix","pageTitleSuffix","storeQuery","getSearchSuggestionsAsync","searchSuggestionCriteria","createGetSearchSuggestionsInput","getCardTypesAsync","resolveCardTypesAsync","cardNumberPrefix","cardType","paymentToken","createResolveCardTypesInput","getCountryRegionsByLanguageIdAsync","languageId","createGetCountryRegionsByLanguageIdInput","getLoyaltyRewardPointActivityTimelineAsync","cardNumber","rewardPointId","createGetLoyaltyRewardPointActivityTimelineInput","getStateProvincesAsync","countryRegionId","createGetStateProvincesInput","issueLoyaltyCardAsync","loyaltyCard","createIssueLoyaltyCardInput","getLoyaltyCardAsync","createGetLoyaltyCardInput","createGetCustomerLoyaltyCardsInput","accountNumber","getCustomerLoyaltyCardsAsync","getLoyaltyRewardPointsExpiringSoonAsync","daysToExpiry","createGetLoyaltyRewardPointsExpiringSoonInput","getGiftCardAsync","giftCardId","tenderTypeId","pin","expirationMonth","expirationYear","createGetGiftCardInput","getGiftCardInquiryAsync","createGetGiftCardInquiryInput","getCustomerBalanceAsync","invoiceAccountNumber","createGetCustomerBalanceInput","getAttributeDefinitionsAsync","attributeDefinitionCriteria","createGetAttributeDefinitionsInput","getFeatureStatesAsync","featureNames","createGetFeatureStatesInput","getEstimatedPickupTimeslotAvailabilitiesAsync","searchCriteria","createGetEstimatedPickupTimeslotAvailabilitiesInput","getChannelDeliveryOptionConfigurationAsync","getChannelsAsync","getSearchConfigurationAsync","createGetTenderTypesInput","getTenderTypesAsync","getAddressPurposesAsync","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","errorType","hasElements","errorTypeValue","compare","numErrors","isRetryable","CanRetry","errorResourceIds","LocalizedErrorMessage","ProxyErrorSDK","localizedErrorMessage","formatData","setPrototypeOf","extraData","_canRetry","_errorCode","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","_extraData","proxyError","errorName","exception","convertToString","accumulator","depth","prop","stringifyValue","array","isObjectNotEmptyOrNull","isEmpty","object","isNullOrWhitespace","returnValue","trim","params","index","param","regexp","RegExp","comparisonObject","ignoreCase","val1","toLowerCase","val2","productsQuery","getDimensionValuesAsync","dimension","matchingDimensionValues","kitVariantResolutionContext","createGetDimensionValuesInput","getVariantsByDimensionValuesAsync","createGetVariantsByDimensionValuesInput","getByIdsAsync","productIds","createGetByIdsInput","createRefineSearchByCategoryInput","catalogId","categoryId","refinementCriteria","refineSearchByCategoryAsync","refineSearchByTextAsync","searchText","createRefineSearchByTextInput","getProductSearchRefinersAsync","createGetProductSearchRefinersInput","productSearchCriteria","getProductRatingsAsync","createGetProductRatingsInput","address","getActivePricesAsync","projectDomain","activeDate","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","createGetActivePricesInput","getCategoryPathsAsync","categoryPathLookups","CategoryPathLookups","createGetCategoryPathsInput","searchByCategoryAsync","createSearchByCategoryInput","createSearchByTextInput","searchByTextAsync","searchByCriteriaAsync","createSearchByCriteriaInput","getRefinersByCategoryAsync","createGetRefinersByCategoryInput","getRefinersByTextAsync","createGetRefinersByTextInput","getByIdAsync","createGetByIdInput","getAttributeValuesAsync","createGetAttributeValuesInput","getMediaLocationsAsync","createGetMediaLocationsInput","getRelationTypesAsync","createGetRelationTypesInput","getRelatedProductsAsync","relationTypeId","createGetRelatedProductsInput","getEstimatedProductWarehouseAvailabilityAsync","productWarehouses","createGetEstimatedProductWarehouseAvailabilityInput","getEstimatedAvailabilityAsync","createGetEstimatedAvailabilityInput","formatNumberWidth","width","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","duration","years","months","days","parseDuration","dateStr","time","timezoneOffsetIndex","businessPartnersQuery","businessPartnerId","createProspectAsync","businessPartnerProspect","createCreateProspectInput","getCurrentAsync","getUsersAsync","createGetUsersInput","getOrderHistoryAsync","createGetOrderHistoryInput","ErrorParser","handled","redirectUrl","headers","RETAIL_SERVER_REDIRECT_ERROR","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","URL","location","searchParams","get","rdc","set","parseError","responseText","jsonResponse","parse","MapResponseStatusCodeToError","ex","errorResponse","commerceErrors","odataError","CorrelationId","localizedMessage","exceptionType","MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR","convertExceptionToErrors","serverException","DataValidationExceptionType","CartValidationExceptionType","dataValidation","getErrorsFromDataValidationFailures","StorageExceptionType","commerceException","failures","failure","contentType","bodyString","Exception","parseJSONError","entitySet","entityType","returnType","_query","tokens","options","count","filterSettings","top","skip","expand","propertyName","expands","inlineCount","orderBy","action","_createODataParameters","_createRequest","isReturnTypeACollection","delete","setGetAllRecords","isGetAllRecords","operationName","isAction","parameters","DataServiceRequest","businessPartnerUsersQuery","b2BUserId","createBusinessPartnerUserAsync","deleteAsync","createDeleteAsync","salesOrdersQuery","getSalesOrderDetailsByTransactionIdAsync","transactionId","searchLocationValue","createGetSalesOrderDetailsByTransactionIdInput","getSalesOrderDetailsBySalesIdAsync","salesId","createGetSalesOrderDetailsBySalesIdInput","getInvoicesAsync","invoiceSearchCriteria","createGetInvoicesInput","normalHeaders","accept","normalizeHeaders","lowerName","normalName","val","defaultHttpClient","callbackParameterName","formatQueryString","enableJsonpCallback","success","abort","handleTimeout","cancelToken","axios","CancelToken","done","cancel","authenticationCreds","user","username","password","axiosTimeout","timeoutMS","window","___initialData___","_clientPlatformSetting","clientSideDataActionTimeoutInMs","method","auth","timeout","token","axiosResponse","axiosError","ODataHttpRequest","process","useJsonLight","inferJsonLightFeedAsObject","Accept","write","maxDataServiceVersion","prepareRequest","jsonHandler","httpClient","invokeRequest","ApiVersion","EntityIdentifier","productListsQuery","createProductListAsync","getProductListLinesAsync","createGetProductListLinesInput","addProductListLinesAsync","productListLines","createAddProductListLinesInput","updateProductListLinesAsync","createUpdateProductListLinesInput","removeProductListLinesAsync","createRemoveProductListLinesInput","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","batchRequestUri","requests","odataBatchRequest","__batchRequests","batchRequests","changeRequests","_id","odataRequest","_requestUri","toJson","__changeRequests","batchResponses","responses","__changeResponses","parseBatchResponses","parseErrorMessage","parent","modifyDataInPlace","clone","arrayToJson","toDateTimeOffset","dateTime","pad","sign","getTimezoneOffset","Math","abs","floor","formattedKey","parameter","paramValue","encodeURIComponent","parameterSeparator","cacheKeyIdentifierFromReturnType","cacheKey","cacheKeyValue","execute","callerContext","oun","getRequestUri","buildQueryHeader","loadPage","getAllPages","executeBatch","Promise","buildBatchRequest","__batchResponses","Errors","formatKey","formatFunctionParameter","addParameter","column","orderByColumn","results","loadPageResults","headerName","operationId","tokenName","tokenValue","accessToken","generateGuid","modelManagersRetailServerRequestStarted","modelManagersRetailServerRequestFinished","modelManagersRetailServerRequestError","customersQuery","createGetOrderShipmentsHistoryInput","getOrderShipmentsHistoryAsync","str","contentTypeParts","split","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","storeNumber","createGetStoreHoursInput","getChannelDeliveryOptionsAsync","channelIds","createGetChannelDeliveryOptionsInput","retailAction","input","callActionOrExecute","chainAction","isObservable"],"mappings":"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MACX,GACA,GACA,GACA,8DAIqC,uCAACM,GAC1CzB,EAAWF,WACP,kCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,qEAIsC,0CAC1CnB,EAAWF,WACP,mCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,wFAIsC,wCAACM,GAC3CzB,EAAWF,WACP,mCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,qEAI4C,8CAACM,GACjDzB,EAAWF,WACP,yCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,4EAI6C,iDACjDnB,EAAWF,WACP,0CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,+FAK+C,mDACnDnB,EAAWF,WACP,4CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAI6C,+CAACJ,GAClDjB,EAAWF,WACP,0CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,4CAIgD,oDACpDnB,EAAWF,WACP,6CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,+BAI8C,kDAClDrB,EAAWF,WACP,2CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oCAI4C,8CAACJ,GACjDjB,EAAWF,WACP,yCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,kDAI+C,mDACnDnB,EAAWF,WACP,4CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,qCAI2C,+CAC/CrB,EAAWF,WACP,wCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oCAIyC,2CAACJ,GAC9CjB,EAAWF,WACP,sCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,kDAI4C,gDAChDnB,EAAWF,WACP,yCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,qCAIuC,2CAC3CrB,EAAWF,WACP,oCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAIqC,uCAACJ,GAC1CjB,EAAWF,WACP,kCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,4CAIwC,4CAC5CnB,EAAWF,WACP,qCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,+BAI4C,gDAChDrB,EAAWF,WACP,yCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oCAI0C,4CAACJ,GAC/CjB,EAAWF,WACP,uCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,kDAI6C,iDACjDnB,EAAWF,WACP,0CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,qCAI4C,gDAChDrB,EAAWF,WACP,yCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,qCAI0C,4CAACJ,GAC/CjB,EAAWF,WACP,uCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,mDAI6C,iDACjDnB,EAAWF,WACP,0CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,sCAIyC,6CAC7CrB,EAAWF,WACP,sCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAIuC,yCAACJ,GAC5CjB,EAAWF,WACP,oCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,4CAI0C,8CAC9CnB,EAAWF,WACP,uCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,+BAIsC,0CAC1CrB,EAAWF,WACP,mCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,+BAIoC,sCAACJ,GACzCjB,EAAWF,WACP,iCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,6CAIuC,2CAC3CnB,EAAWF,WACP,oCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,gCAIkC,sCACtCrB,EAAWF,WACP,+BACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,2CAIgC,kCAACJ,GACrCjB,EAAWF,WACP,6BACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,yDAImC,uCACvCnB,EAAWF,WACP,gCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,4CAI2B,+BAC/BrB,EAAWF,WACP,wBACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,qDAIuC,2CAC3CnB,EAAWF,WACP,oCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8CAIqC,uCAACJ,GAC1CjB,EAAWF,WACP,kCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,4DAIwC,4CAC5CnB,EAAWF,WACP,qCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,+CAK4D,gEAChErB,EAAWF,WACP,yDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,iDAI0D,4DAACJ,GAC/DjB,EAAWF,WACP,uDACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,+DAI6D,iEACjEnB,EAAWF,WACP,0DACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,kDAIkD,sDACtDrB,EAAWF,WACP,+CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,yCAIgD,kDAACJ,GACrDjB,EAAWF,WACP,6CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,uDAImD,uDACvDnB,EAAWF,WACP,gDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,0CAImD,uDACvDrB,EAAWF,WACP,gDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,2CAIiD,mDAACJ,GACtDjB,EAAWF,WACP,8CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,yDAIoD,wDACxDnB,EAAWF,WACP,iDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,4CAIkD,sDACtDrB,EAAWF,WACP,+CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,0CAIgD,kDAACJ,GACrDjB,EAAWF,WACP,6CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,wDAImD,uDACvDnB,EAAWF,WACP,gDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,2CAIwD,4DAC5DrB,EAAWF,WACP,qDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oDAIsD,wDAACJ,GAC3DjB,EAAWF,WACP,mDACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,kEAIyD,6DAC7DnB,EAAWF,WACP,sDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,qDAI4D,gEAChErB,EAAWF,WACP,yDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,mDAI0D,4DAACJ,GAC/DjB,EAAWF,WACP,uDACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,iEAI6D,iEACjEnB,EAAWF,WACP,0DACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oDAI+C,mDACnDrB,EAAWF,WACP,4CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,uCAI6C,+CAACJ,GAClDjB,EAAWF,WACP,0CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,qDAIgD,oDACpDnB,EAAWF,WACP,6CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,wCAI8C,kDAClDrB,EAAWF,WACP,2CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,sCAI4C,8CAACJ,GACjDjB,EAAWF,WACP,yCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,oDAI+C,mDACnDnB,EAAWF,WACP,4CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,uCAIuC,2CAC3CrB,EAAWF,WACP,oCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,yBAIqC,uCAACJ,GAC1CjB,EAAWF,WACP,kCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,uCAIwC,4CAC5CnB,EAAWF,WACP,qCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,0BAImD,uDACvDrB,EAAWF,WACP,gDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,wCAIoD,wDACxDrB,EAAWF,WACP,iDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,yCAIiD,mDAACJ,GACtDjB,EAAWF,WACP,8CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,sDAI2D,+DAC/DnB,EAAWF,WACP,wDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,gDAI4D,gEAChErB,EAAWF,WACP,yDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,iDAIyD,2DAACJ,GAC9DjB,EAAWF,WACP,sDACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,8DAIuD,2DAC3DnB,EAAWF,WACP,oDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oEAIqD,uDAACJ,GAC1DjB,EAAWF,WACP,kDACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,2EAIwD,4DAC5DnB,EAAWF,WACP,qDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,qEAKkD,sDACtDrB,EAAWF,WACP,+CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,sCAIgD,kDAACJ,GACrDjB,EAAWF,WACP,6CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,oDAImD,uDACvDnB,EAAWF,WACP,gDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,uCAI+C,mDACnDrB,EAAWF,WACP,4CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oCAI6C,+CAACJ,GAClDjB,EAAWF,WACP,0CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,kDAIgD,oDACpDnB,EAAWF,WACP,6CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,qCAI+C,mDACnDrB,EAAWF,WACP,4CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oCAI6C,+CAACJ,GAClDjB,EAAWF,WACP,0CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,sCAIgD,oDACpDnB,EAAWF,WACP,6CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,qCAIyC,6CAC7CrB,EAAWF,WACP,sCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,6BAIuC,yCAACJ,GAC5CjB,EAAWF,WACP,oCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,2CAI0C,8CAC9CnB,EAAWF,WACP,uCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAIuC,2CAC3CrB,EAAWF,WACP,oCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,2BAIqC,uCAACJ,GAC1CjB,EAAWF,WACP,kCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,yCAIwC,4CAC5CnB,EAAWF,WACP,qCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,4BAK2E,+EAC/ErB,EAAWF,WACP,wEACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,gDAIyE,2EAACJ,GAC9EjB,EAAWF,WACP,sEACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,8DAI4E,gFAChFnB,EAAWF,WACP,yEACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,iDAI2D,+DAC/DrB,EAAWF,WACP,wDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAIyD,2DAACJ,GAC9DjB,EAAWF,WACP,sDACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,4CAI4D,gEAChEnB,EAAWF,WACP,yDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,+BAK0C,8CAC9CrB,EAAWF,WACP,uCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAIwC,0CAACJ,GAC7CjB,EAAWF,WACP,qCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,4CAI2C,+CAC/CnB,EAAWF,WACP,wCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,+BAI8C,kDAClDrB,EAAWF,WACP,2CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,mCAI4C,8CAACJ,GACjDjB,EAAWF,WACP,yCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,iDAI+C,mDACnDnB,EAAWF,WACP,4CACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oCAKuC,2CAC3CrB,EAAWF,WACP,oCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,yBAIqC,uCAACJ,GAC1CjB,EAAWF,WACP,kCACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,uCAIwC,4CAC5CnB,EAAWF,WACP,qCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,0BAImD,uDACvDrB,EAAWF,WACP,gDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,sCAIiD,mDAACJ,GACtDjB,EAAWF,WACP,8CACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,oDAIoD,wDACxDnB,EAAWF,WACP,iDACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,uCAK4B,gCAChCrB,EAAWF,WACP,yBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAI0B,4BAACJ,GAC/BjB,EAAWF,WACP,uBACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,4CAI6B,iCACjCnB,EAAWF,WACP,0BACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,+BAI4B,gCAChCrB,EAAWF,WACP,yBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAI0B,4BAACJ,GAC/BjB,EAAWF,WACP,uBACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,4CAI6B,iCACjCnB,EAAWF,WACP,0BACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,+BAK2B,+BAC/BrB,EAAWF,WACP,wBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,6BAIyB,2BAACJ,GAC9BjB,EAAWF,WACP,sBACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,2CAI4B,gCAChCnB,EAAWF,WACP,yBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAI2B,+BAC/BrB,EAAWF,WACP,wBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,6BAIyB,2BAACJ,GAC9BjB,EAAWF,WACP,sBACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,2CAI4B,gCAChCnB,EAAWF,WACP,yBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAI2B,+BAC/BrB,EAAWF,WACP,wBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,6BAIyB,2BAACJ,GAC9BjB,EAAWF,WACP,sBACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,2CAI4B,gCAChCnB,EAAWF,WACP,yBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAIyB,6BAC7BrB,EAAWF,WACP,sBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,2BAIuB,yBAACJ,GAC5BjB,EAAWF,WACP,oBACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,yCAI0B,8BAC9BnB,EAAWF,WACP,uBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,4BAIwB,4BAC5BrB,EAAWF,WACP,qBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,0BAIsB,wBAACJ,GAC3BjB,EAAWF,WACP,mBACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,wCAIyB,6BAC7BnB,EAAWF,WACP,sBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,2BAI+B,mCACnCrB,EAAWF,WACP,4BACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,mCAI6B,+BAACJ,GAClCjB,EAAWF,WACP,0BACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,iDAIgC,oCACpCnB,EAAWF,WACP,6BACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,oCAIoC,wCACxCrB,EAAWF,WACP,iCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,wCAIkC,oCAACJ,GACvCjB,EAAWF,WACP,+BACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,sDAIqC,yCACzCnB,EAAWF,WACP,kCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,yCAIkC,sCACtCrB,EAAWF,WACP,+BACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,sCAIgC,kCAACJ,GACrCjB,EAAWF,WACP,6BACA,MACA,EACAjB,EAAaqC,YACbtC,EAAWuC,MACX,GACA,GACA,GACA,oDAImC,uCACvCnB,EAAWF,WACP,gCACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,uCAI2B,+BAC/BrB,EAAWF,WACP,wBACA,MACA,EACAjB,EAAa2C,MACb5C,EAAWyC,cACX,GACA,GACA,GACA,8BAIyB,2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","file":"static/js/14.6b9539dfceb97709b0f0.chunk.js","sourcesContent":["\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { StockCountJournal, StockCountJournalTransaction } from '../Entities/CommerceTypes.g';\r\n import { StockCountJournalClass, StockCountJournalTransactionClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function stockCountJournalsQuery(journalId?: string): DataServiceQuery {\r\n var key = (journalId) ? { JournalId: journalId } : null;\r\n return new DataServiceQuery(\"StockCountJournals\", \"StockCountJournal\", StockCountJournalClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: StockCountJournal): IDataServiceRequest {\r\n return stockCountJournalsQuery().create(entity);\r\n }\r\n\r\n export function createStockCountJournalAsync(context: IContext, entity: StockCountJournal): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: StockCountJournal): IDataServiceRequest {\r\n return stockCountJournalsQuery(entity.JournalId).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: StockCountJournal): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: StockCountJournal): IDataServiceRequest {\r\n return stockCountJournalsQuery(entity.JournalId).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: StockCountJournal): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(journalId: string): IDataServiceRequest {\r\n return stockCountJournalsQuery(journalId).read();\r\n }\r\n\r\n export function readAsync(context: IContext, journalId: string): AsyncResult {\r\n const request = createReadAsync(journalId);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return stockCountJournalsQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createSyncInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \r\n const query = stockCountJournalsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('Sync', true, StockCountJournalClass, 'true', {bypassCache: 'get', returnEntity: 'StockCountJournal'}, { });\r\n } \r\n \r\n export function syncAsync(context: IContext, ):AsyncResult {\r\n const request = createSyncInput(context.queryResultSettings, );\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createSyncTransactionsInput(queryResultSettings: IQueryResultSettings, journalId: string, ): IDataServiceRequest { \r\n const query = stockCountJournalsQuery(journalId).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('SyncTransactions', true, StockCountJournalTransactionClass, 'true', {bypassCache: 'get', returnEntity: 'StockCountJournalTransaction'}, { });\r\n } \r\n \r\n export function syncTransactionsAsync(context: IContext, journalId: string):AsyncResult {\r\n const request = createSyncTransactionsInput(context.queryResultSettings, journalId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createCalculateEstimatedOnHandInventoryInput(queryResultSettings: IQueryResultSettings, journalId: string, ): IDataServiceRequest { \r\n const query = stockCountJournalsQuery(journalId).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('CalculateEstimatedOnHandInventory', true, StockCountJournalTransactionClass, 'true', {bypassCache: 'get', returnEntity: 'StockCountJournalTransaction'}, { });\r\n } \r\n \r\n export function calculateEstimatedOnHandInventoryAsync(context: IContext, journalId: string):AsyncResult {\r\n const request = createCalculateEstimatedOnHandInventoryInput(context.queryResultSettings, journalId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createRemoveJournalInput(journalId: string, ): IDataServiceRequest { \r\n const query = stockCountJournalsQuery(journalId);\r\n return query.createDataServiceRequestForOperation('RemoveJournal', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\r\n } \r\n \r\n export function removeJournalAsync(context: IContext, journalId: string):AsyncResult {\r\n const request = createRemoveJournalInput(journalId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createRemoveTransactionInput(journalId: string, itemId?: string | null, inventSizeId?: string | null, inventColorId?: string | null, inventStyleId?: string | null, configurationId?: string | null): IDataServiceRequest { \r\n const query = stockCountJournalsQuery(journalId);\r\n return query.createDataServiceRequestForOperation('RemoveTransaction', true, '', '', {bypassCache: 'get', returnEntity: ''}, {itemId: itemId, inventSizeId: inventSizeId, inventColorId: inventColorId, inventStyleId: inventStyleId, configurationId: configurationId });\r\n } \r\n \r\n export function removeTransactionAsync(context: IContext, journalId: string, itemId?: string | null, inventSizeId?: string | null, inventColorId?: string | null, inventStyleId?: string | null, configurationId?: string | null):AsyncResult {\r\n const request = createRemoveTransactionInput(journalId, itemId, inventSizeId, inventColorId, inventStyleId, configurationId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createRemoveStockCountLineByLineIdInput(journalId: string, stockCountLineId: number): IDataServiceRequest { \r\n const query = stockCountJournalsQuery(journalId);\r\n return query.createDataServiceRequestForOperation('RemoveStockCountLineByLineId', true, '', '', {bypassCache: 'get', returnEntity: ''}, {stockCountLineId: stockCountLineId });\r\n } \r\n \r\n export function removeStockCountLineByLineIdAsync(context: IContext, journalId: string, stockCountLineId: number):AsyncResult {\r\n const request = createRemoveStockCountLineByLineIdInput(journalId, stockCountLineId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createRemoveStockCountLineByProductRecIdInput(journalId: string, productId: number): IDataServiceRequest { \r\n const query = stockCountJournalsQuery(journalId);\r\n return query.createDataServiceRequestForOperation('RemoveStockCountLineByProductRecId', true, '', '', {bypassCache: 'get', returnEntity: ''}, {productId: productId });\r\n } \r\n \r\n export function removeStockCountLineByProductRecIdAsync(context: IContext, journalId: string, productId: number):AsyncResult {\r\n const request = createRemoveStockCountLineByProductRecIdInput(journalId, productId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createCommitInput(journalId: string, ): IDataServiceRequest { \r\n const query = stockCountJournalsQuery(journalId);\r\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\r\n } \r\n \r\n export function commitAsync(context: IContext, journalId: string):AsyncResult {\r\n const request = createCommitInput(journalId);\r\n return executeAction(request, context);\r\n } \r\n \r\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, InventoryDocumentSearchCriteria, InventoryDocumentLineSearchCriteria, InventoryDocumentSerialNumberLineResetAction, InventoryDocumentSerialNumberLineUpdateAction, InventoryInboundOutboundDocumentLinesSummary, InventoryDocumentSerialNumberLinesSummary } from '../Entities/CommerceTypes.g';\n import { InventoryInboundOutboundDocumentClass, InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass, InventoryInboundOutboundDocumentLineClass, InventoryDocumentSerialNumberLineClass, InventoryDocumentValidationResultSummaryClass, InventoryDocumentValidationResultLineClass, 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 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 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 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 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","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { CommerceList, CommerceListLine, CommerceListContributor, CommerceListInvitation } from '../Entities/CommerceTypes.g';\r\n import { CommerceListClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function commerceListsQuery(id?: number): DataServiceQuery {\r\n var key = (id) ? { Id: id } : null;\r\n return new DataServiceQuery(\"CommerceLists\", \"CommerceList\", CommerceListClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: CommerceList): IDataServiceRequest {\r\n return commerceListsQuery().create(entity);\r\n }\r\n\r\n export function createCommerceListAsync(context: IContext, entity: CommerceList): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: CommerceList): IDataServiceRequest {\r\n return commerceListsQuery(entity.Id).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: CommerceList): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: CommerceList): IDataServiceRequest {\r\n return commerceListsQuery(entity.Id).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: CommerceList): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(id: number): IDataServiceRequest {\r\n return commerceListsQuery(id).read();\r\n }\r\n\r\n export function readAsync(context: IContext, id: number): AsyncResult {\r\n const request = createReadAsync(id);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return commerceListsQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createGetByCustomerInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest { \r\n const query = commerceListsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetByCustomer', true, CommerceListClass, 'true', {bypassCache: 'none', returnEntity: 'CommerceList'}, {customerId: customerId });\r\n } \r\n \r\n export function getByCustomerAsync(context: IContext, customerId?: string | null):AsyncResult {\r\n const request = createGetByCustomerInput(context.queryResultSettings, customerId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createAddLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \r\n const query = commerceListsQuery(id);\r\n return query.createDataServiceRequestForOperation('AddLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\r\n } \r\n \r\n export function addLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\r\n const request = createAddLinesInput(id, commerceListLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createUpdateLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \r\n const query = commerceListsQuery(id);\r\n return query.createDataServiceRequestForOperation('UpdateLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\r\n } \r\n \r\n export function updateLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\r\n const request = createUpdateLinesInput(id, commerceListLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createRemoveLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \r\n const query = commerceListsQuery(id);\r\n return query.createDataServiceRequestForOperation('RemoveLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\r\n } \r\n \r\n export function removeLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\r\n const request = createRemoveLinesInput(id, commerceListLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createMoveLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \r\n const query = commerceListsQuery();\r\n return query.createDataServiceRequestForOperation('MoveLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\r\n } \r\n \r\n export function moveLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\r\n const request = createMoveLinesInput(commerceListLines, destinationId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createCopyLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \r\n const query = commerceListsQuery();\r\n return query.createDataServiceRequestForOperation('CopyLines', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\r\n } \r\n \r\n export function copyLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\r\n const request = createCopyLinesInput(commerceListLines, destinationId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createAddContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \r\n const query = commerceListsQuery(id);\r\n return query.createDataServiceRequestForOperation('AddContributors', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\r\n } \r\n \r\n export function addContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\r\n const request = createAddContributorsInput(id, commerceListContributors);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createRemoveContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \r\n const query = commerceListsQuery(id);\r\n return query.createDataServiceRequestForOperation('RemoveContributors', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\r\n } \r\n \r\n export function removeContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\r\n const request = createRemoveContributorsInput(id, commerceListContributors);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createCreateInvitationsInput(id: number, commerceListInvitations?: CommerceListInvitation[] | null): IDataServiceRequest { \r\n const query = commerceListsQuery(id);\r\n return query.createDataServiceRequestForOperation('CreateInvitations', true, CommerceListClass, 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListInvitations: commerceListInvitations });\r\n } \r\n \r\n export function createInvitationsAsync(context: IContext, id: number, commerceListInvitations?: CommerceListInvitation[] | null):AsyncResult {\r\n const request = createCreateInvitationsInput(id, commerceListInvitations);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createAcceptInvitationInput(invitationToken?: string | null, customerId?: string | null): IDataServiceRequest { \r\n const query = commerceListsQuery();\r\n return query.createDataServiceRequestForOperation('AcceptInvitation', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invitationToken: invitationToken, customerId: customerId });\r\n } \r\n \r\n export function acceptInvitationAsync(context: IContext, invitationToken?: string | null, customerId?: string | null):AsyncResult {\r\n const request = createAcceptInvitationInput(invitationToken, customerId);\r\n return executeAction(request, context);\r\n } \r\n \r\n ","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { PurchaseOrder } from '../Entities/CommerceTypes.g';\r\n import { PurchaseOrderClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function purchaseOrdersQuery(orderId?: string): DataServiceQuery {\r\n var key = (orderId) ? { OrderId: orderId } : null;\r\n return new DataServiceQuery(\"PurchaseOrders\", \"PurchaseOrder\", PurchaseOrderClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: PurchaseOrder): IDataServiceRequest {\r\n return purchaseOrdersQuery().create(entity);\r\n }\r\n\r\n export function createPurchaseOrderAsync(context: IContext, entity: PurchaseOrder): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: PurchaseOrder): IDataServiceRequest {\r\n return purchaseOrdersQuery(entity.OrderId).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: PurchaseOrder): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: PurchaseOrder): IDataServiceRequest {\r\n return purchaseOrdersQuery(entity.OrderId).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: PurchaseOrder): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(orderId: string): IDataServiceRequest {\r\n return purchaseOrdersQuery(orderId).read();\r\n }\r\n\r\n export function readAsync(context: IContext, orderId: string): AsyncResult {\r\n const request = createReadAsync(orderId);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return purchaseOrdersQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createCommitInput(orderId: string, ): IDataServiceRequest { \r\n const query = purchaseOrdersQuery(orderId);\r\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\r\n } \r\n \r\n export function commitAsync(context: IContext, orderId: string):AsyncResult {\r\n const request = createCommitInput(orderId);\r\n return executeAction(request, context);\r\n } \r\n \r\n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Cart, TokenizedPaymentCard, CartTenderLine, SalesOrder, LoyaltyPointRedemptionEstimate, TenderLine, LineShippingAddress, SalesLineDeliveryOption, CartDeliveryPreferences, Address, DeliveryOption, LineDeliverySpecification, DeliverySpecification, ReasonCodeLine, CartLine, TenderDiscountLine, ReceiptRetrievalCriteria, Receipt, CartSearchCriteria, 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 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 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 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 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 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 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 ","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { SuspendedCart } from '../Entities/CommerceTypes.g';\r\n import { SuspendedCartClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function suspendedCartsQuery(id?: string): DataServiceQuery {\r\n var key = (id) ? { Id: id } : null;\r\n return new DataServiceQuery(\"SuspendedCarts\", \"SuspendedCart\", SuspendedCartClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: SuspendedCart): IDataServiceRequest {\r\n return suspendedCartsQuery().create(entity);\r\n }\r\n\r\n export function createSuspendedCartAsync(context: IContext, entity: SuspendedCart): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: SuspendedCart): IDataServiceRequest {\r\n return suspendedCartsQuery(entity.Id).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: SuspendedCart): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: SuspendedCart): IDataServiceRequest {\r\n return suspendedCartsQuery(entity.Id).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: SuspendedCart): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(id: string): IDataServiceRequest {\r\n return suspendedCartsQuery(id).read();\r\n }\r\n\r\n export function readAsync(context: IContext, id: string): AsyncResult {\r\n const request = createReadAsync(id);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return suspendedCartsQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createGetAllSuspendedCartsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \r\n const query = suspendedCartsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetAllSuspendedCarts', true, SuspendedCartClass, 'true', {bypassCache: 'none', returnEntity: 'SuspendedCart'}, { });\r\n } \r\n \r\n export function getAllSuspendedCartsAsync(context: IContext, ):AsyncResult {\r\n const request = createGetAllSuspendedCartsInput(context.queryResultSettings, );\r\n return executeAction(request, context);\r\n } \r\n ","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { Warehouse, WarehouseLocationSearchCriteria, WarehouseLocation } from '../Entities/CommerceTypes.g';\r\n import { WarehouseClass, WarehouseLocationClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function warehousesQuery(inventLocation?: string): DataServiceQuery {\r\n var key = (inventLocation) ? { InventLocation: inventLocation } : null;\r\n return new DataServiceQuery(\"Warehouses\", \"Warehouse\", WarehouseClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: Warehouse): IDataServiceRequest {\r\n return warehousesQuery().create(entity);\r\n }\r\n\r\n export function createWarehouseAsync(context: IContext, entity: Warehouse): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: Warehouse): IDataServiceRequest {\r\n return warehousesQuery(entity.InventLocation).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: Warehouse): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: Warehouse): IDataServiceRequest {\r\n return warehousesQuery(entity.InventLocation).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: Warehouse): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(inventLocation: string): IDataServiceRequest {\r\n return warehousesQuery(inventLocation).read();\r\n }\r\n\r\n export function readAsync(context: IContext, inventLocation: string): AsyncResult {\r\n const request = createReadAsync(inventLocation);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return warehousesQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createSearchWarehouseLocationsAsyncInput(queryResultSettings: IQueryResultSettings, searchCriteria?: WarehouseLocationSearchCriteria | null): IDataServiceRequest { \r\n const query = warehousesQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('SearchWarehouseLocationsAsync', true, WarehouseLocationClass, 'true', {bypassCache: 'none', returnEntity: 'WarehouseLocation'}, {searchCriteria: searchCriteria });\r\n } \r\n \r\n export function searchWarehouseLocationsAsyncAsync(context: IContext, searchCriteria?: WarehouseLocationSearchCriteria | null):AsyncResult {\r\n const request = createSearchWarehouseLocationsAsyncInput(context.queryResultSettings, searchCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetWarehouseByIdInput(inventLocation: string, ): IDataServiceRequest { \r\n const query = warehousesQuery(inventLocation);\r\n return query.createDataServiceRequestForOperation('GetWarehouseById', false, WarehouseClass, 'false', {bypassCache: 'none', returnEntity: 'Warehouse'}, { });\r\n } \r\n \r\n export function getWarehouseByIdAsync(context: IContext, inventLocation: string):AsyncResult {\r\n const request = createGetWarehouseByIdInput(inventLocation);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createSearchWarehousesInput(queryResultSettings: IQueryResultSettings, searchText?: string | null): IDataServiceRequest { \r\n const query = warehousesQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('SearchWarehouses', false, WarehouseClass, 'true', {bypassCache: 'none', returnEntity: 'Warehouse'}, {searchText: searchText });\r\n } \r\n \r\n export function searchWarehousesAsync(context: IContext, searchText?: string | null):AsyncResult {\r\n const request = createSearchWarehousesInput(context.queryResultSettings, searchText);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetLocationsInput(queryResultSettings: IQueryResultSettings, inventLocation: string, ): IDataServiceRequest { \r\n const query = warehousesQuery(inventLocation).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetLocations', false, WarehouseLocationClass, 'true', {bypassCache: 'none', returnEntity: 'WarehouseLocation'}, { });\r\n } \r\n \r\n export function getLocationsAsync(context: IContext, inventLocation: string):AsyncResult {\r\n const request = createGetLocationsInput(context.queryResultSettings, inventLocation);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createSearchLocationsInput(queryResultSettings: IQueryResultSettings, inventLocation: string, searchText?: string | null): IDataServiceRequest { \r\n const query = warehousesQuery(inventLocation).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('SearchLocations', false, WarehouseLocationClass, 'true', {bypassCache: 'none', returnEntity: 'WarehouseLocation'}, {searchText: searchText });\r\n } \r\n \r\n export function searchLocationsAsync(context: IContext, inventLocation: string, searchText?: string | null):AsyncResult {\r\n const request = createSearchLocationsInput(context.queryResultSettings, inventLocation, searchText);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetAvailableFulfillmentLocationsInput(queryResultSettings: IQueryResultSettings, deliveryModeTypeFilter: number): IDataServiceRequest { \r\n const query = warehousesQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetAvailableFulfillmentLocations', false, WarehouseClass, 'true', {bypassCache: 'none', returnEntity: 'Warehouse'}, {deliveryModeTypeFilter: deliveryModeTypeFilter });\r\n } \r\n \r\n export function getAvailableFulfillmentLocationsAsync(context: IContext, deliveryModeTypeFilter: number):AsyncResult {\r\n const request = createGetAvailableFulfillmentLocationsInput(context.queryResultSettings, deliveryModeTypeFilter);\r\n return executeAction(request, context);\r\n } \r\n \r\n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// tslint:disable:no-empty\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\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, RetailLogger } 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 RetailLogger.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 RetailLogger.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 RetailLogger.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","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { Recommendation, RecommendationCriteria, RecommendedElement } from '../Entities/CommerceTypes.g';\r\n import { RecommendationClass, RecommendedElementClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function recommendationsQuery(id?: string): DataServiceQuery {\r\n var key = (id) ? { Id: id } : null;\r\n return new DataServiceQuery(\"Recommendations\", \"Recommendation\", RecommendationClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: Recommendation): IDataServiceRequest {\r\n return recommendationsQuery().create(entity);\r\n }\r\n\r\n export function createRecommendationAsync(context: IContext, entity: Recommendation): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: Recommendation): IDataServiceRequest {\r\n return recommendationsQuery(entity.Id).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: Recommendation): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: Recommendation): IDataServiceRequest {\r\n return recommendationsQuery(entity.Id).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: Recommendation): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(id: string): IDataServiceRequest {\r\n return recommendationsQuery(id).read();\r\n }\r\n\r\n export function readAsync(context: IContext, id: string): AsyncResult {\r\n const request = createReadAsync(id);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return recommendationsQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createGetElementsInput(queryResultSettings: IQueryResultSettings, id: string, recommendationCriteria?: RecommendationCriteria | null): IDataServiceRequest { \r\n const query = recommendationsQuery(id).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetElements', true, RecommendedElementClass, 'true', {bypassCache: 'none', returnEntity: 'RecommendedElement'}, {recommendationCriteria: recommendationCriteria });\r\n } \r\n \r\n export function getElementsAsync(context: IContext, id: string, recommendationCriteria?: RecommendationCriteria | null):AsyncResult {\r\n const request = createGetElementsInput(context.queryResultSettings, id, recommendationCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IInternalTelemetry, LogLevel } from '@msdyn365-commerce/telemetry-internal';\n\nexport const logDebug = (debugMessage: string, telemetry: IInternalTelemetry | undefined): void => {\n telemetry && telemetry.log(LogLevel.Debug, debugMessage);\n};\n\nexport const logError = (errorMessage: string, telemetry: IInternalTelemetry | undefined): void => {\n telemetry && telemetry.log(LogLevel.Error, errorMessage);\n};\n\n/**\n * Returns true if the given string matches an URL pattern\n *\n * @param source The string to check against\n */\nexport const isAbsoluteUrl = (source: string): boolean => {\n return /^(http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?$/.test(source);\n};\n\nexport const isRelativeUrl = (source: string): boolean => {\n return /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/).*(\\.js){1}$/.test(source);\n};\n","\n import * as Entities from './CommerceTypes.g';\n import { jsonLightReadStringPropertyValue } from '../externals';\n\n \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 (Entities[className]) {\n this.Images[i] = new Entities[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 (Entities[className]) {\n this.NameTranslations[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * Cart entity class.\n */\n export class CartClass implements Entities.Cart {\n public AffiliationLines: Entities.AffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public AmountPaid: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public BeginDateTime: Date;\n public BusinessDate: Date;\n public CancellationChargeAmount: number;\n public EstimatedShippingAmount: number;\n public CartLines: Entities.CartLine[];\n public CartTypeValue: number;\n public ChannelId: number;\n public ChargeAmount: number;\n public CustomerOrderRemainingBalance: number;\n public ChargeLines: Entities.ChargeLine[];\n public TaxViewLines: Entities.TaxViewLine[];\n public Comment: string;\n public InvoiceComment: string;\n public Coupons: Entities.Coupon[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public DiscountCodes: string[];\n public Id: string;\n public SuspendedCartId: string;\n public TransactionTypeValue: number;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public IsReturnByReceipt: boolean;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsSuspended: boolean;\n public LoyaltyCardId: string;\n public ModifiedDateTime: Date;\n public Name: string;\n public OrderNumber: string;\n public AvailableDepositAmount: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentAppliedOnPickup: number;\n public PromotionLines: string[];\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public SalesId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public NetPrice: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxOnCancellationCharge: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public WarehouseId: string;\n public IsCreatedOffline: boolean;\n public CartStatusValue: number;\n public ReceiptTransactionTypeValue: number;\n public CommissionSalesGroup: string;\n public Version: number;\n public TotalItems: number;\n public HasTaxCalculationTriggered: boolean;\n public MerchantProperties: Entities.PaymentMerchantInformation[];\n public HasChargeCalculationTriggered: boolean;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 (Entities[className]) {\n this.AffiliationLines[i] = new Entities[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 (Entities[className]) {\n this.AttributeValues[i] = new Entities[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 (Entities[className]) {\n this.CartLines[i] = new Entities[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 (Entities[className]) {\n this.ChargeLines[i] = new Entities[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 (Entities[className]) {\n this.TaxViewLines[i] = new Entities[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 (Entities[className]) {\n this.Coupons[i] = new Entities[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 (Entities[className]) {\n this.CustomerAccountDepositLines[i] = new Entities[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 (Entities[className]) {\n this.IncomeExpenseLines[i] = new Entities[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.OrderNumber = \n odataObject.OrderNumber;\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentAppliedOnPickup = \n (odataObject.PrepaymentAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAppliedOnPickup) : undefined;\n \n this.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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.ShippingAddress = new Entities[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.TenderLines[i] = new Entities[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 (Entities[className]) {\n this.RefundableTenderLines[i] = new Entities[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 (Entities[className]) {\n this.MerchantProperties[i] = new Entities[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 (Entities[className]) {\n this.FiscalTransactions[i] = new Entities[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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.CustomerAffiliations[i] = new Entities[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 (Entities[className]) {\n this.Addresses[i] = new Entities[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 (Entities[className]) {\n this.Attributes[i] = new Entities[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 (Entities[className]) {\n this.Images[i] = new Entities[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 (Entities[className]) {\n this.Contacts[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Permissions = new Entities[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 (Entities[className]) {\n this.Images[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Tasks[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 SuspendedTransactionId: string;\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public InventoryLocationId: string;\n public IsCreatedOffline: boolean;\n public IsReturnByReceipt: boolean;\n public IsSuspended: boolean;\n public IsTaxIncludedInPrice: boolean;\n public IsTaxExemptedForPriceInclusive: boolean;\n public LineDiscount: number;\n public LineDiscountCalculationTypeValue: number;\n public LoyaltyCardId: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyManualDiscountAmount: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ModifiedDateTime: Date;\n public Name: string;\n public NetAmount: number;\n public NetAmountWithoutTax: number;\n public NetAmountWithNoTax: number;\n public NetAmountWithTax: number;\n public NumberOfItems: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PeriodicDiscountAmount: number;\n public TenderDiscountAmount: number;\n public PrepaymentAmountAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PrepaymentAmountPaid: number;\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public SalesId: string;\n public SalesPaymentDifference: number;\n public SalesLines: Entities.SalesLine[];\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public StatementCode: string;\n public StoreId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxAmountExclusive: number;\n public TaxAmountInclusive: number;\n public TaxLines: Entities.TaxLine[];\n public TaxOnCancellationCharge: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalDiscount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public TransactionTypeValue: number;\n public TaxCalculationTypeValue: number;\n public SalesInvoiceAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public HasTaxCalculationTriggered: boolean;\n public HasChargeCalculationTriggered: boolean;\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 (Entities[className]) {\n this.Shipments[i] = new Entities[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 (Entities[className]) {\n this.AggregateInventoryQuantities = new Entities[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 (Entities[className]) {\n this.UnifiedDeliveryInformation = new Entities[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 (Entities[className]) {\n this.AffiliationLoyaltyTierLines[i] = new Entities[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 (Entities[className]) {\n this.AttributeValues[i] = new Entities[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 (Entities[className]) {\n this.ChargeLines[i] = new Entities[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 (Entities[className]) {\n this.Coupons[i] = new Entities[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 (Entities[className]) {\n this.ContactInformationCollection[i] = new Entities[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 (Entities[className]) {\n this.CustomerAccountDepositLines[i] = new Entities[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.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 (Entities[className]) {\n this.IncomeExpenseLines[i] = new Entities[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 (Entities[className]) {\n this.LoyaltyRewardPointLines[i] = new Entities[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetAmountWithNoTax = \n (odataObject.NetAmountWithNoTax != null) ? parseFloat(odataObject.NetAmountWithNoTax) : undefined;\n \n this.NetAmountWithTax = \n (odataObject.NetAmountWithTax != null) ? parseFloat(odataObject.NetAmountWithTax) : undefined;\n \n this.NumberOfItems = \n (odataObject.NumberOfItems != null) ? parseFloat(odataObject.NumberOfItems) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PeriodicDiscountAmount = \n (odataObject.PeriodicDiscountAmount != null) ? parseFloat(odataObject.PeriodicDiscountAmount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.PrepaymentAmountAppliedOnPickup = \n (odataObject.PrepaymentAmountAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAmountAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.SalesLines[i] = new Entities[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 (Entities[className]) {\n this.ShippingAddress = new Entities[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 (Entities[className]) {\n this.TaxLines[i] = new Entities[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.TenderLines[i] = new Entities[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 (Entities[className]) {\n this.RefundableTenderLines[i] = new Entities[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.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 (Entities[className]) {\n this.FiscalTransactions[i] = new Entities[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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * Shift entity class.\n */\n export class ShiftClass implements Entities.Shift {\n public ShiftId: number;\n public TerminalId: string;\n public StartingAmountTotal: number;\n public FloatingEntryAmountTotal: number;\n public AddToTenderAmountTotal: number;\n public SafeDropTotal: number;\n public BankDropTotal: number;\n public RemoveTenderAmountTotal: number;\n public DeclareTenderAmountTotal: number;\n public OverShortTotal: number;\n public TenderedTotal: number;\n public ChangeTotal: number;\n public IncomeAccountTotal: number;\n public ExpenseAccountTotal: number;\n public CashDrawer: string;\n public StoreRecordId: number;\n public StoreId: string;\n public StaffId: string;\n public CurrentStaffId: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public CloseDateTime: Date;\n public ClosedAtTerminalId: string;\n public CurrentTerminalId: string;\n public SalesTotal: number;\n public StatusDateTime: Date;\n public ReturnsTotal: number;\n public PaidToAccountTotal: number;\n public TaxTotal: number;\n public ChargeTotal: number;\n public DiscountTotal: number;\n public RoundedAmountTotal: number;\n public CustomerCount: number;\n public SaleTransactionCount: number;\n public NoSaleTransactionCount: number;\n public VoidTransactionCount: number;\n public LogOnTransactionCount: number;\n public SuspendedTransactionCount: number;\n public TransactionCount: number;\n public ReceiptsCount: number;\n public ReturnsCount: number;\n public GoodsSoldQty: number;\n public ServicesSoldQty: number;\n public ReceiptCopiesCount: number;\n public ReceiptCopiesTotal: number;\n public PriceOverrideTotal: number;\n public SuspendedTotal: number;\n public SalesTotalIncludingTax: number;\n public SalesTotalExcludingTax: number;\n public SalesGrandTotal: number;\n public ReturnsGrandTotal: number;\n public TaxLines: Entities.ShiftTaxLine[];\n public TenderLines: Entities.ShiftTenderLine[];\n public AccountLines: Entities.ShiftAccountLine[];\n public IsShared: boolean;\n public StartingAmountRunningTotal: number;\n public GiftCardsTotal: number;\n public GiftCardCashOutTotal: number;\n public VoidedSalesTotal: number;\n public ShiftSalesTotal: number;\n public ShiftReturnsTotal: number;\n public HasPendingOfflineTransactions: number;\n public NumberOfUnreconciledLines: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.StartingAmountTotal = \n (odataObject.StartingAmountTotal != null) ? parseFloat(odataObject.StartingAmountTotal) : undefined;\n \n this.FloatingEntryAmountTotal = \n (odataObject.FloatingEntryAmountTotal != null) ? parseFloat(odataObject.FloatingEntryAmountTotal) : undefined;\n \n this.AddToTenderAmountTotal = \n (odataObject.AddToTenderAmountTotal != null) ? parseFloat(odataObject.AddToTenderAmountTotal) : undefined;\n \n this.SafeDropTotal = \n (odataObject.SafeDropTotal != null) ? parseFloat(odataObject.SafeDropTotal) : undefined;\n \n this.BankDropTotal = \n (odataObject.BankDropTotal != null) ? parseFloat(odataObject.BankDropTotal) : undefined;\n \n this.RemoveTenderAmountTotal = \n (odataObject.RemoveTenderAmountTotal != null) ? parseFloat(odataObject.RemoveTenderAmountTotal) : undefined;\n \n this.DeclareTenderAmountTotal = \n (odataObject.DeclareTenderAmountTotal != null) ? parseFloat(odataObject.DeclareTenderAmountTotal) : undefined;\n \n this.OverShortTotal = \n (odataObject.OverShortTotal != null) ? parseFloat(odataObject.OverShortTotal) : undefined;\n \n this.TenderedTotal = \n (odataObject.TenderedTotal != null) ? parseFloat(odataObject.TenderedTotal) : undefined;\n \n this.ChangeTotal = \n (odataObject.ChangeTotal != null) ? parseFloat(odataObject.ChangeTotal) : undefined;\n \n this.IncomeAccountTotal = \n (odataObject.IncomeAccountTotal != null) ? parseFloat(odataObject.IncomeAccountTotal) : undefined;\n \n this.ExpenseAccountTotal = \n (odataObject.ExpenseAccountTotal != null) ? parseFloat(odataObject.ExpenseAccountTotal) : undefined;\n \n this.CashDrawer = \n odataObject.CashDrawer;\n \n this.StoreRecordId = \n (odataObject.StoreRecordId != null) ? parseInt(odataObject.StoreRecordId, 10) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.CurrentStaffId = \n odataObject.CurrentStaffId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CloseDateTime = \n (odataObject.CloseDateTime instanceof Date) ? odataObject.CloseDateTime\n : (odataObject.CloseDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CloseDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ClosedAtTerminalId = \n odataObject.ClosedAtTerminalId;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this.SalesTotal = \n (odataObject.SalesTotal != null) ? parseFloat(odataObject.SalesTotal) : undefined;\n \n this.StatusDateTime = \n (odataObject.StatusDateTime instanceof Date) ? odataObject.StatusDateTime\n : (odataObject.StatusDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StatusDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReturnsTotal = \n (odataObject.ReturnsTotal != null) ? parseFloat(odataObject.ReturnsTotal) : undefined;\n \n this.PaidToAccountTotal = \n (odataObject.PaidToAccountTotal != null) ? parseFloat(odataObject.PaidToAccountTotal) : undefined;\n \n this.TaxTotal = \n (odataObject.TaxTotal != null) ? parseFloat(odataObject.TaxTotal) : undefined;\n \n this.ChargeTotal = \n (odataObject.ChargeTotal != null) ? parseFloat(odataObject.ChargeTotal) : undefined;\n \n this.DiscountTotal = \n (odataObject.DiscountTotal != null) ? parseFloat(odataObject.DiscountTotal) : undefined;\n \n this.RoundedAmountTotal = \n (odataObject.RoundedAmountTotal != null) ? parseFloat(odataObject.RoundedAmountTotal) : undefined;\n \n this.CustomerCount = \n odataObject.CustomerCount;\n \n this.SaleTransactionCount = \n odataObject.SaleTransactionCount;\n \n this.NoSaleTransactionCount = \n odataObject.NoSaleTransactionCount;\n \n this.VoidTransactionCount = \n odataObject.VoidTransactionCount;\n \n this.LogOnTransactionCount = \n odataObject.LogOnTransactionCount;\n \n this.SuspendedTransactionCount = \n odataObject.SuspendedTransactionCount;\n \n this.TransactionCount = \n odataObject.TransactionCount;\n \n this.ReceiptsCount = \n odataObject.ReceiptsCount;\n \n this.ReturnsCount = \n odataObject.ReturnsCount;\n \n this.GoodsSoldQty = \n (odataObject.GoodsSoldQty != null) ? parseFloat(odataObject.GoodsSoldQty) : undefined;\n \n this.ServicesSoldQty = \n (odataObject.ServicesSoldQty != null) ? parseFloat(odataObject.ServicesSoldQty) : undefined;\n \n this.ReceiptCopiesCount = \n odataObject.ReceiptCopiesCount;\n \n this.ReceiptCopiesTotal = \n (odataObject.ReceiptCopiesTotal != null) ? parseFloat(odataObject.ReceiptCopiesTotal) : undefined;\n \n this.PriceOverrideTotal = \n (odataObject.PriceOverrideTotal != null) ? parseFloat(odataObject.PriceOverrideTotal) : undefined;\n \n this.SuspendedTotal = \n (odataObject.SuspendedTotal != null) ? parseFloat(odataObject.SuspendedTotal) : undefined;\n \n this.SalesTotalIncludingTax = \n (odataObject.SalesTotalIncludingTax != null) ? parseFloat(odataObject.SalesTotalIncludingTax) : undefined;\n \n this.SalesTotalExcludingTax = \n (odataObject.SalesTotalExcludingTax != null) ? parseFloat(odataObject.SalesTotalExcludingTax) : undefined;\n \n this.SalesGrandTotal = \n (odataObject.SalesGrandTotal != null) ? parseFloat(odataObject.SalesGrandTotal) : undefined;\n \n this.ReturnsGrandTotal = \n (odataObject.ReturnsGrandTotal != null) ? parseFloat(odataObject.ReturnsGrandTotal) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.TaxLines[i] = new Entities[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 (Entities[className]) {\n this.TenderLines[i] = new Entities[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 (Entities[className]) {\n this.AccountLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.StockCountTransactionLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.OrgUnitAddress = new Entities[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 (Entities[className]) {\n this.ShippingWarehouseAddress = new Entities[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 (Entities[className]) {\n this.TaxRegistrations[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Rules = new Entities[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 (Entities[className]) {\n this.ChangeTrackingInformation = new Entities[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 (Entities[className]) {\n this.Image = new Entities[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 (Entities[className]) {\n this.LinkedProducts[i] = new Entities[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 (Entities[className]) {\n this.RetailContext = new Entities[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 (Entities[className]) {\n this.DisplayOrderInCategories[i] = new Entities[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 (Entities[className]) {\n this.RelatedProducts[i] = new Entities[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 (Entities[className]) {\n this.ProductsRelatedToThis[i] = new Entities[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 (Entities[className]) {\n this.ProductProperties[i] = new Entities[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 (Entities[className]) {\n this.CompositionInformation = new Entities[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 (Entities[className]) {\n this.ParentKits[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Images[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.CommerceListLines[i] = new Entities[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 (Entities[className]) {\n this.CommerceListContributors[i] = new Entities[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 (Entities[className]) {\n this.CommerceListInvitations[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ProductListLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.OrderLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.OrderLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.OrderLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Address = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Barcode = new Entities[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 (Entities[className]) {\n this.Product = new Entities[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 (Entities[className]) {\n this.LoyaltyCard = new Entities[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 (Entities[className]) {\n this.GiftCard = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\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 (Entities[className]) {\n this.Customer = new Entities[className](odataObject.Customer)\n }\n }\n\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\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 (Entities[className]) {\n this.SalesOrder = new Entities[className](odataObject.SalesOrder)\n }\n }\n\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 (Entities[className]) {\n this.SourceDocument = new Entities[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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\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 (Entities[className]) {\n this.Cart = new Entities[className](odataObject.Cart)\n }\n }\n\n \n }\n }\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 \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 \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 \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 \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 \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 \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 \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 \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 \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 \n /**\n * Address entity class.\n */\n export class AddressClass implements Entities.Address {\n public Name: 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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \n // Navigation properties names\n \n /**\n * Construct 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 }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 (Entities[className]) {\n this.Images[i] = new Entities[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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ItemBarcode = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Buttons[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \n /**\n * CartLine entity class.\n */\n export class CartLineClass implements Entities.CartLine {\n public LineId: string;\n public TaxOverrideCode: string;\n public ItemId: string;\n public Barcode: string;\n public EntryMethodTypeValue: number;\n public Description: string;\n public InventoryDimensionId: string;\n public Comment: string;\n public ProductId: number;\n public WarehouseId: string;\n public Quantity: number;\n public Price: number;\n public ExtendedPrice: number;\n public TaxAmount: number;\n public ItemTaxGroupId: string;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountAmountWithoutTax: number;\n public DiscountAmount: number;\n public LineDiscount: number;\n public LinePercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public UnitOfMeasureSymbol: string;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public WarrantiedId: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public IsVoided: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public IsGiftCardLine: boolean;\n public IsPriceKeyedIn: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public SalesStatusValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityCanceled: number;\n public FulfillmentStoreId: string;\n public SerialNumber: string;\n public ElectronicDeliveryEmail: string;\n public ElectronicDeliveryEmailContent: string;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public GiftCardBalance: number;\n public LineVersion: number;\n public PromotionLines: string[];\n public DiscountLines: Entities.DiscountLine[];\n public RelatedDiscountedLineIds: string[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TaxRatePercent: number;\n public IsCustomerAccountDeposit: boolean;\n public LinkedParentLineId: string;\n public QuantityReturnable: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n public LineNumber: number;\n public CommissionSalesGroup: string;\n public TrackingId: string;\n public StaffId: string;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public CatalogId: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public WarehouseLocation: string;\n \n // Navigation properties names\n \n /**\n * Construct 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 (Entities[className]) {\n this.ShippingAddress = new Entities[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.WarrantiedId = \n odataObject.WarrantiedId;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ElectronicDeliveryEmail = \n odataObject.ElectronicDeliveryEmail;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.DiscountLines[i] = new Entities[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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.ChargeLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\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 (className === 'AttributeTextValueClass') {\n this.AttributeValues[i] = new AttributeTextValueClass(odataObject.AttributeValues[i])\n }\n else if (Entities[className]) {\n this.AttributeValues[i] = new Entities[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 (Entities[className]) {\n this.ThirdPartyGiftCardInfo = new Entities[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 }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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 (Entities[className]) {\n this.PaymentCard = new Entities[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 (Entities[className]) {\n this.TokenizedPaymentCard = new Entities[className](odataObject.TokenizedPaymentCard)\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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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 (Entities[className]) {\n this.ChargeLineOverrides[i] = new Entities[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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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.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 (Entities[className]) {\n this.TaxLines[i] = new Entities[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 (Entities[className]) {\n this.TaxMeasures[i] = new Entities[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 (Entities[className]) {\n this.ReturnTaxLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Value = new Entities[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 (Entities[className]) {\n this.NameTranslations[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.MetadataFlags = new Entities[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 (Entities[className]) {\n this.NameTranslations[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.AttributeValue = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ProductAttributeComparisonEntries[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.SearchField = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Criteria[i] = new Entities[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 \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 (Entities[className]) {\n this.SearchField = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.SalesLines[i] = new Entities[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 (Entities[className]) {\n this.Shipments[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.DeliveryAddress = new Entities[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 (Entities[className]) {\n this.LatestCarrierTrackingInfo = new Entities[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 (Entities[className]) {\n this.ShipmentLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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.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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.Shifts[i] = new Entities[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 (Entities[className]) {\n this.DestinationShift = new Entities[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 (Entities[className]) {\n this.SourceShift = new Entities[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 \n /**\n * SearchConfiguration entity class.\n */\n export class SearchConfigurationClass implements Entities.SearchConfiguration {\n public ProductSortColumns: Entities.SortColumn[];\n public ProductSearchServiceTypeValue: 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.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 (Entities[className]) {\n this.ProductSortColumns[i] = new Entities[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 }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtDataType = new Entities[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 (Entities[className]) {\n this.TranslationDetails[i] = new Entities[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 (Entities[className]) {\n this.EnumerationDetails[i] = new Entities[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 (Entities[className]) {\n this.DefaultValue = new Entities[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 (Entities[className]) {\n this.UpperBound = new Entities[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 (Entities[className]) {\n this.LowerBound = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.AttributeEnumerationTranslations[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.TranslationDetails[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 SavedEffectiveAmount: number;\n public Percentage: number;\n public DealPrice: number;\n public DiscountLineTypeValue: number;\n public ManualDiscountTypeValue: number;\n public CustomerDiscountTypeValue: number;\n public PeriodicDiscountTypeValue: number;\n public DiscountApplicationGroup: string;\n public ConcurrencyModeValue: number;\n public IsCompoundable: boolean;\n public DiscountCode: string;\n public PricingPriorityNumber: number;\n public IsDiscountCodeRequired: boolean;\n public ThresholdAmountRequired: number;\n public BundleId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.DiscountCost = \n (odataObject.DiscountCost != null) ? parseFloat(odataObject.DiscountCost) : undefined;\n \n this.EffectiveAmount = \n (odataObject.EffectiveAmount != null) ? parseFloat(odataObject.EffectiveAmount) : undefined;\n \n this.SavedEffectiveAmount = \n (odataObject.SavedEffectiveAmount != null) ? parseFloat(odataObject.SavedEffectiveAmount) : undefined;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.DealPrice = \n (odataObject.DealPrice != null) ? parseFloat(odataObject.DealPrice) : undefined;\n \n this.DiscountLineTypeValue = \n odataObject.DiscountLineTypeValue;\n \n this.ManualDiscountTypeValue = \n odataObject.ManualDiscountTypeValue;\n \n this.CustomerDiscountTypeValue = \n odataObject.CustomerDiscountTypeValue;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.DiscountApplicationGroup = \n odataObject.DiscountApplicationGroup;\n \n this.ConcurrencyModeValue = \n odataObject.ConcurrencyModeValue;\n \n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ThresholdAmountRequired = \n (odataObject.ThresholdAmountRequired != null) ? parseFloat(odataObject.ThresholdAmountRequired) : undefined;\n \n this.BundleId = \n odataObject.BundleId;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Value = new Entities[className](odataObject.Value)\n }\n }\n\n \n }\n }\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 \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 (Entities[className]) {\n this.AddressFormatLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \n // Navigation properties names\n \n /**\n * Construct 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 (Entities[className]) {\n this.ScaleUnit = new Entities[className](odataObject.ScaleUnit)\n }\n }\n\n \n this.AADAuthority = \n odataObject.AADAuthority;\n \n }\n }\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 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.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 (Entities[className]) {\n this.HardwareConfigurations = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Printers[i] = new Entities[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 (Entities[className]) {\n this.Scanners[i] = new Entities[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 (Entities[className]) {\n this.FiscalIntegrationTechnicalProfiles[i] = new Entities[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 (Entities[className]) {\n this.CashDrawers[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * CardPaymentAcceptSettings entity class.\n */\n export class CardPaymentAcceptSettingsClass implements Entities.CardPaymentAcceptSettings {\n public HostPageOrigin: string;\n public AdaptorPath: string;\n public CardTokenizationEnabled: boolean;\n public CardPaymentEnabled: boolean;\n public PaymentAmount: number;\n public HideBillingAddress: boolean;\n public TenderTypeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HostPageOrigin = \n odataObject.HostPageOrigin;\n \n this.AdaptorPath = \n odataObject.AdaptorPath;\n \n this.CardTokenizationEnabled = \n odataObject.CardTokenizationEnabled;\n \n this.CardPaymentEnabled = \n odataObject.CardPaymentEnabled;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.HideBillingAddress = \n odataObject.HideBillingAddress;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n }\n }\n \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 \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 \n // Navigation properties names\n \n /**\n * 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 (Entities[className]) {\n this.TenderLine = new Entities[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 (Entities[className]) {\n this.TokenizedPaymentCard = new Entities[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 (Entities[className]) {\n this.PaymentSdkErrors[i] = new Entities[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 }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Printers[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * SalesLine entity class.\n */\n export class SalesLineClass implements Entities.SalesLine {\n public StaffId: string;\n public LineId: string;\n public Description: string;\n public OriginLineId: string;\n public TaxOverrideCode: string;\n public IsPriceKeyedIn: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public ProductId: number;\n public Barcode: string;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public EntryMethodTypeValue: number;\n public MasterProductId: number;\n public ListingId: number;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public Comment: string;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public InventoryLocationId: string;\n public WarehouseLocation: string;\n public InventoryStatusId: string;\n public LicensePlate: string;\n public InventoryDimensionId: string;\n public ItemType: number;\n public ReservationId: string;\n public LineNumber: number;\n public ReturnQuantity: number;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public LineVersion: number;\n public StatusValue: number;\n public SalesStatusValue: number;\n public ProductSourceValue: number;\n public IsGiftCardLine: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public IsInvoiceSettled: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public IsVoided: boolean;\n public IsPriceLocked: boolean;\n public ChargeLines: Entities.ChargeLine[];\n public BasePrice: number;\n public AgreementPrice: number;\n public AdjustedPrice: number;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public ReturnStore: string;\n public ReturnTerminalId: string;\n public ReturnChannelId: number;\n public FulfillmentStoreId: string;\n public SalesDate: Date;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public SavedQuantity: number;\n public IsSavedDiscount: boolean;\n public RecordId: number;\n public SerialNumber: string;\n public BatchId: string;\n public DeliveryModeChargeAmount: number;\n public UnitOfMeasureSymbol: string;\n public CatalogId: number;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyPercentageDiscount: number;\n public TenderDiscountAmount: number;\n public TenderDiscountPercentage: number;\n public GiftCardBalance: number;\n public IsCustomerAccountDeposit: boolean;\n public Blocked: boolean;\n public Found: boolean;\n public DateToActivateItem: Date;\n public LinePercentageDiscount: number;\n public PeriodicPercentageDiscount: number;\n public QuantityDiscounted: number;\n public UnitQuantity: number;\n public UnitOfMeasureConversion: Entities.UnitOfMeasureConversion;\n public DiscountLines: Entities.DiscountLine[];\n public PriceLines: Entities.PriceLine[];\n public PeriodicDiscountPossibilities: Entities.DiscountLine[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReturnLabelProperties: Entities.ReturnLabelContent;\n public LineMultilineDiscOnItem: string;\n public RelatedDiscountedLineIds: string[];\n public LinkedParentLineId: string;\n public LineMultilineDiscOnItemValue: number;\n public WasChanged: boolean;\n public OriginalSalesOrderUnitOfMeasure: string;\n public InventOrderUnitOfMeasure: string;\n public TrackingId: string;\n public IsLoyaltyDiscountApplied: boolean;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public QuantityReturnable: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ReturnLoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public DetailedLineStatusValue: number;\n public DetailedLineStatus: Entities.DetailedLineStatus;\n public 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 (Entities[className]) {\n this.ShippingAddress = new Entities[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comment = \n odataObject.Comment;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.InventoryStatusId = \n odataObject.InventoryStatusId;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.ReservationId = \n odataObject.ReservationId;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.ReturnQuantity = \n (odataObject.ReturnQuantity != null) ? parseFloat(odataObject.ReturnQuantity) : undefined;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.ProductSourceValue = \n odataObject.ProductSourceValue;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.IsInvoiceSettled = \n odataObject.IsInvoiceSettled;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsPriceLocked = \n odataObject.IsPriceLocked;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ChargeLines[i] = new Entities[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 (Entities[className]) {\n this.UnitOfMeasureConversion = new Entities[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 (Entities[className]) {\n this.DiscountLines[i] = new Entities[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 (Entities[className]) {\n this.PriceLines[i] = new Entities[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 (Entities[className]) {\n this.PeriodicDiscountPossibilities[i] = new Entities[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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.ReturnLabelProperties = new Entities[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 (Entities[className]) {\n this.AttributeValues[i] = new Entities[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 (Entities[className]) {\n this.ThirdPartyGiftCardInfo = new Entities[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 (Entities[className]) {\n this.LoyaltyRewardPointLines[i] = new Entities[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 (Entities[className]) {\n this.ReturnLoyaltyRewardPointLines[i] = new Entities[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 (Entities[className]) {\n this.FulfillmentStatus = new Entities[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 (Entities[className]) {\n this.DetailedLineStatus = new Entities[className](odataObject.DetailedLineStatus)\n }\n }\n\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 (Entities[className]) {\n this.TaxLines[i] = new Entities[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 (Entities[className]) {\n this.TaxMeasures[i] = new Entities[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 (Entities[className]) {\n this.ReturnTaxLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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 ChannelId: number;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.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.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.SearchValues[i] = new Entities[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 \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 (Entities[className]) {\n this.Value = new Entities[className](odataObject.Value)\n }\n }\n\n \n }\n }\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 (Entities[className]) {\n this.CustomFilters[i] = new Entities[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 \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 \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 \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 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.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\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 CustomerContextualPrice: number;\n public DiscountAmount: number;\n public CurrencyCode: string;\n public ItemId: string;\n public InventoryDimensionId: string;\n public UnitOfMeasure: string;\n public ValidFrom: Date;\n public ProductLookupId: number;\n public ChannelId: number;\n public CatalogId: number;\n public DiscountLines: Entities.DiscountLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.TradeAgreementPrice = \n (odataObject.TradeAgreementPrice != null) ? parseFloat(odataObject.TradeAgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.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 (Entities[className]) {\n this.DiscountLines[i] = new Entities[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.OrgUnitLocation = new Entities[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 (Entities[className]) {\n this.ItemAvailabilities[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ProductVariantPropertiesAsList[i] = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.JournalLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 (Entities[className]) {\n this.ProductDimensions[i] = new Entities[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.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 (Entities[className]) {\n this.SourceDocumentLine = new Entities[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 (Entities[className]) {\n this.SerialNumberLines[i] = new Entities[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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.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 (Entities[className]) {\n this.ProductDimensions[i] = new Entities[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 (Entities[className]) {\n this.SerialNumberLines[i] = new Entities[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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * InventoryDocumentLineSearchCriteria entity class.\n */\n export class InventoryDocumentLineSearchCriteriaClass implements Entities.InventoryDocumentLineSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ProductId: number;\n public AvailableSerializedLineOnly: boolean;\n public DocumentLineIds: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableSerializedLineOnly = \n odataObject.AvailableSerializedLineOnly;\n \n this.DocumentLineIds = undefined;\n if (odataObject.DocumentLineIds) {\n this.DocumentLineIds = [];\n for (var i = 0; i < odataObject.DocumentLineIds.length; i++) {\n if (odataObject.DocumentLineIds[i] != null) {\n this.DocumentLineIds[i] = \n odataObject.DocumentLineIds[i];\n } else {\n this.DocumentLineIds[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * InventoryDocumentSearchCriteria entity class.\n */\n export class InventoryDocumentSearchCriteriaClass implements Entities.InventoryDocumentSearchCriteria {\n public DocumentId: string;\n public DocumentStateValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentStateValue = \n odataObject.DocumentStateValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.UpdatedLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 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 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 (Entities[className]) {\n this.SourceLine = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.CategorySummaries[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.DimensionValue = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ProductDimensions[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Values[i] = new Entities[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 \n /**\n * ProductRefinerValue entity class.\n */\n export class ProductRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ProductRefinerValue {\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.ProductRefinerValue\";\n \n }\n }\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 (Entities[className]) {\n this.Values[i] = new Entities[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 \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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.LoyaltyGroups[i] = new Entities[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 (Entities[className]) {\n this.RewardPoints[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Product = new Entities[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 (Entities[className]) {\n this.Behavior = new Entities[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 (Entities[className]) {\n this.Dimensions[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Components[i] = new Entities[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 (Entities[className]) {\n this.Dimensions[i] = new Entities[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 (Entities[className]) {\n this.Behavior = new Entities[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 (Entities[className]) {\n this.LinkedProducts[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Behavior = new Entities[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 (Entities[className]) {\n this.Dimensions[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 DisplayOrder: number;\n public AttributeValues: Entities.AttributeValue[];\n public IsMasterProduct: boolean;\n public MasterProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.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 (Entities[className]) {\n this.AttributeValues[i] = new Entities[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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Value2 = new Entities[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 (Entities[className]) {\n this.Value3 = new Entities[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 (Entities[className]) {\n this.Value4 = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.RewardPointToRedeemList[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.LoyaltyTiers[i] = new Entities[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 (Entities[className]) {\n this.LoyaltyCardTiers[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.KitTransactionLines[i] = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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.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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\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 \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 (Entities[className]) {\n this.VariantInformation = new Entities[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 (Entities[className]) {\n this.KitDefinition = new Entities[className](odataObject.KitDefinition)\n }\n }\n\n \n }\n }\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 (Entities[className]) {\n this.Variants[i] = new Entities[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 (Entities[className]) {\n this.Dimensions[i] = new Entities[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 \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 \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 (Entities[className]) {\n this.DimensionValues[i] = new Entities[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 \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 \n // Navigation properties names\n \n /**\n * Construct 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 }\n }\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 (Entities[className]) {\n this.Items[i] = new Entities[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 \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 \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 (Entities[className]) {\n this.KitLineDefinitions[i] = new Entities[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 (Entities[className]) {\n this.KitLineProductToVariantMap[i] = new Entities[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 (Entities[className]) {\n this.KitVariantToComponentMap[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ComponentProperties[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.KitComponentKeyList[i] = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Contacts[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.DeliveryOptions[i] = new Entities[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 \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 (Entities[className]) {\n this.DeliveryChargeLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.DeliveryOptions[i] = new Entities[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 \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 (Entities[className]) {\n this.ChannelType = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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 EnableReturnPolicies: boolean;\n public InventAvailabilityCalculationMode: string;\n public IsPriceInclusiveTaxExemptCalculationEnabled: 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 (Entities[className]) {\n this.ProfileProperties[i] = new Entities[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 (Entities[className]) {\n this.Properties[i] = new Entities[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 (Entities[className]) {\n this.Languages[i] = new Entities[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.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.EnableReturnPolicies = \n odataObject.EnableReturnPolicies;\n \n this.InventAvailabilityCalculationMode = \n odataObject.InventAvailabilityCalculationMode;\n \n this.IsPriceInclusiveTaxExemptCalculationEnabled = \n odataObject.IsPriceInclusiveTaxExemptCalculationEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.DenominationDetails[i] = new Entities[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 \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 (Entities[className]) {\n this.TenderDetails[i] = new Entities[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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 \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 (Entities[className]) {\n this.ItemIds[i] = new Entities[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 (Entities[className]) {\n this.Refinement[i] = new Entities[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 (Entities[className]) {\n this.Context = new Entities[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 \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 (Entities[className]) {\n this.Context = new Entities[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 (Entities[className]) {\n this.Session = new Entities[className](odataObject.Session)\n }\n }\n\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\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 \n /**\n * SearchSuggestionCriteria entity class.\n */\n export class SearchSuggestionCriteriaClass implements Entities.SearchSuggestionCriteria {\n public ProductSearchCriteria: Entities.ProductSearchCriteria;\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 (Entities[className]) {\n this.ProductSearchCriteria = new Entities[className](odataObject.ProductSearchCriteria)\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 \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 \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 \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 (Entities[className]) {\n this.Images[i] = new Entities[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 (Entities[className]) {\n this.PropertiesAsList[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ButtonGridZones[i] = new Entities[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 (Entities[className]) {\n this.ImageZones[i] = new Entities[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 (Entities[className]) {\n this.ReportZones[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * SalesInvoice entity class.\n */\n export class SalesInvoiceClass implements Entities.SalesInvoice {\n public RecordId: number;\n public Id: string;\n public SalesId: string;\n public SalesType: string;\n public InvoiceDate: Date;\n public CurrencyCode: string;\n public Amount: number;\n public AmountPaid: 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.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.CurrencyCode = \n odataObject.CurrencyCode;\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.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 (Entities[className]) {\n this.SalesInvoiceLine[i] = new Entities[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 (Entities[className]) {\n this.ChargeLines[i] = new Entities[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 (Entities[className]) {\n this.TenderLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ReasonSubCodes[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Parameters[i] = new Entities[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 (Entities[className]) {\n this.Output[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Paging = new Entities[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 (Entities[className]) {\n this.Sorting = new Entities[className](odataObject.Sorting)\n }\n }\n\n \n }\n }\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 (Entities[className]) {\n this.Columns[i] = new Entities[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 \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 \n /**\n * PagingInfo entity class.\n */\n export class PagingInfoClass implements Entities.PagingInfo {\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.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 \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 (Entities[className]) {\n this.TranslatedProperties[i] = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Device = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.Artifacts[i] = new Entities[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 (Entities[className]) {\n this.MetadataPropertyValues[i] = new Entities[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 \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 (Entities[className]) {\n this.Children[i] = new Entities[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 \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 (Entities[className]) {\n this.Lines[i] = new Entities[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 (Entities[className]) {\n this.Hierarchy[i] = new Entities[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 \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 (Entities[className]) {\n this.Annotations[i] = new Entities[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 \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 \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 \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 (Entities[className]) {\n this.Arguments[i] = new Entities[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 \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 \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 (Entities[className]) {\n this.Scopes[i] = new Entities[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 (Entities[className]) {\n this.FormContextEntries[i] = new Entities[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 (Entities[className]) {\n this.RootScope = new Entities[className](odataObject.RootScope)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n }\n }\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 (Entities[className]) {\n this.FormContext = new Entities[className](odataObject.FormContext)\n }\n }\n\n \n }\n }\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 \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 (Entities[className]) {\n this.SelectedComponents[i] = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.TenderLineAdjustments[i] = new Entities[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 (Entities[className]) {\n this.SalesLineAdjustments[i] = new Entities[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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 (Entities[className]) {\n this.FulfillmentDeliveryType = new Entities[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 (Entities[className]) {\n this.FulfillmentStatus = new Entities[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 (Entities[className]) {\n this.ShippingAddress = new Entities[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.TenderTypePolicies[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.Warranties[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.WarrantyGroups[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.FulfillmentLine = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * UserAlert entity class.\n */\n export class UserAlertClass implements Entities.UserAlert {\n public AlertSourceIdValue: number;\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.AlertSourceIdValue = \n odataObject.AlertSourceIdValue;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n }\n }\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 (Entities[className]) {\n this.UserAlerts[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.UserAlerts[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Address = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.CardTokenInfo = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ShippingAddress = new Entities[className](odataObject.ShippingAddress)\n }\n }\n\n \n }\n }\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 (Entities[className]) {\n this.CartLineDeliveryPreferences[i] = new Entities[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 \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 (Entities[className]) {\n this.DeliverySpecification = new Entities[className](odataObject.DeliverySpecification)\n }\n }\n\n \n }\n }\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 (Entities[className]) {\n this.DeliveryAddress = new Entities[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 \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 (Entities[className]) {\n this.CustomFilters[i] = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 \n /**\n * SearchReceiptCriteria entity class.\n */\n export class SearchReceiptCriteriaClass implements Entities.SearchReceiptCriteria {\n public TransactionId: string;\n public ReceiptTypeValue: 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 }\n }\n \n /**\n * ElectronicAddress entity class.\n */\n export class ElectronicAddressClass implements Entities.ElectronicAddress {\n public AddressTypeValue: number;\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 this.Address = \n odataObject.Address;\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 \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 (Entities[className]) {\n this.DeletedListings[i] = new Entities[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 \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 (Entities[className]) {\n this.RatingDistribution[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.DeliveryOptions[i] = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.RegularStoreHours = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.CartLinePromotions[i] = new Entities[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 \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 (Entities[className]) {\n this.Promotion = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \n /**\n * ProductListSearchCriteria entity class.\n */\n export class ProductListSearchCriteriaClass implements Entities.ProductListSearchCriteria {\n public CustomerId: string;\n public ProductListId: string;\n \n // Navigation properties names\n \n /**\n * Construct 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 }\n }\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 \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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Refinement[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ImageUris[i] = new Entities[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 (Entities[className]) {\n this.Attributes[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Changes[i] = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.DownloadSessions[i] = new Entities[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 (Entities[className]) {\n this.FeatureControlList[i] = new Entities[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 (Entities[className]) {\n this.DataStore = new Entities[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\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 \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 (Entities[className]) {\n this.UploadJobPackageRequests[i] = new Entities[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 (Entities[className]) {\n this.FeatureControlList[i] = new Entities[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 (Entities[className]) {\n this.DataStore = new Entities[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.HardwareConfigurations = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.Lines[i] = new Entities[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 \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 DurationInMilliseconds: number;\n public Source: string;\n public EventMessage: string;\n public LogLevel: string;\n public Staff: string;\n public ShiftId: number;\n public ReferenceId: number;\n public RefChannel: number;\n public RefStore: string;\n public RefTerminal: string;\n public RefTransactionId: string;\n public AuditEventTypeValue: number;\n public FiscalTransactions: Entities.AuditEventFiscalTransaction[];\n public FiscalRegistrationLines: Entities.AuditEventFiscalRegistrationLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.EventIdString = \n odataObject.EventIdString;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.EventType = \n odataObject.EventType;\n \n this.DurationInMilliseconds = \n odataObject.DurationInMilliseconds;\n \n this.Source = \n odataObject.Source;\n \n this.EventMessage = \n odataObject.EventMessage;\n \n this.LogLevel = \n odataObject.LogLevel;\n \n this.Staff = \n odataObject.Staff;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ReferenceId = \n (odataObject.ReferenceId != null) ? parseInt(odataObject.ReferenceId, 10) : undefined;\n \n this.RefChannel = \n (odataObject.RefChannel != null) ? parseInt(odataObject.RefChannel, 10) : undefined;\n \n this.RefStore = \n odataObject.RefStore;\n \n this.RefTerminal = \n odataObject.RefTerminal;\n \n this.RefTransactionId = \n odataObject.RefTransactionId;\n \n this.AuditEventTypeValue = \n odataObject.AuditEventTypeValue;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.FiscalTransactions[i] = new Entities[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 (Entities[className]) {\n this.FiscalRegistrationLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ProductDimensions[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.NotificationDetails[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.DocumentContext = new Entities[className](odataObject.DocumentContext)\n }\n }\n\n \n }\n }\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 (Entities[className]) {\n this.FiscalConnectorTechnicalProfile = new Entities[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 (Entities[className]) {\n this.DocumentAdjustment = new Entities[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 (Entities[className]) {\n this.SequentialSignatureDataContext = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.DocumentAdjustment = new Entities[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 (Entities[className]) {\n this.ReasonCodeLines[i] = new Entities[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 (Entities[className]) {\n this.SequentialSignatureData = new Entities[className](odataObject.SequentialSignatureData)\n }\n }\n\n \n }\n }\n \n /**\n * FiscalIntegrationRegistrationProcess entity class.\n */\n export class FiscalIntegrationRegistrationProcessClass implements Entities.FiscalIntegrationRegistrationProcess {\n public RecordId: number;\n public RegistrationProcessId: string;\n public Description: string;\n public RegistrationProcessLines: Entities.FiscalIntegrationRegistrationProcessLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.Description = \n odataObject.Description;\n \n this.RegistrationProcessLines = undefined;\n if (odataObject.RegistrationProcessLines) {\n this.RegistrationProcessLines = [];\n for (var i = 0; i < odataObject.RegistrationProcessLines.length; i++) {\n if (odataObject.RegistrationProcessLines[i] != null) {\n if (odataObject.RegistrationProcessLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RegistrationProcessLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.RegistrationProcessLines[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * FiscalIntegrationTechnicalProfile entity class.\n */\n export class FiscalIntegrationTechnicalProfileClass implements Entities.FiscalIntegrationTechnicalProfile {\n public ProfileId: string;\n public Description: string;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public TechnicalProfile: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.Description = \n odataObject.Description;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.TechnicalProfile = \n odataObject.TechnicalProfile;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 \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 (Entities[className]) {\n this.FailureDetails = new Entities[className](odataObject.FailureDetails)\n }\n }\n\n \n this.FiscalIntegrationServiceInfo = \n odataObject.FiscalIntegrationServiceInfo;\n \n this.UserNotificationMessage = \n odataObject.UserNotificationMessage;\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ValidationPeriod = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.CategoryPath[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.AttachedServices[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.Types[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * ProductWarehouseInventoryInformation entity class.\n */\n export class ProductWarehouseInventoryInformationClass implements Entities.ProductWarehouseInventoryInformation {\n public ProductWarehouseInventoryAvailabilities: Entities.ProductWarehouseInventoryAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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 (Entities[className]) {\n this.ProductWarehouseInventoryAvailabilities[i] = new Entities[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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 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 (Entities[className]) {\n this.SearchArea = new Entities[className](odataObject.SearchArea)\n }\n }\n\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\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 (Entities[className]) {\n this.ExtensibleEnumerations[i] = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 \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 \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 \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 \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 \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 (Entities[className]) {\n this.Value[i] = new Entities[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 \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 (Entities[className]) {\n this.TextValueTranslations[i] = new Entities[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 \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 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 (Entities[className]) {\n this.BackColorAsARGB = new Entities[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 (Entities[className]) {\n this.BorderColorAsARGB = new Entities[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 (Entities[className]) {\n this.FontColorAsARGB = new Entities[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.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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 \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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.PackageWeight = new Entities[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 (Entities[className]) {\n this.DestinationAddress = new Entities[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 (Entities[className]) {\n this.OriginAddress = new Entities[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 (Entities[className]) {\n this.ShipmentProgress[i] = new Entities[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 \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 \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 (Entities[className]) {\n this.Location = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.CashDrawerConfigurations[i] = new Entities[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 (Entities[className]) {\n this.PrinterConfigurations[i] = new Entities[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 (Entities[className]) {\n this.PinPadConfiguration = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.DenominationDetails[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n \n /**\n * SalesInvoiceLine entity class.\n */\n export class SalesInvoiceLineClass implements Entities.SalesInvoiceLine {\n public RecordId: number;\n public ItemId: string;\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.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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.RowData[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 \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 \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 \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 \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 \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 \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 (Entities[className]) {\n this.MultiValue[i] = new Entities[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 (Entities[className]) {\n this.Links[i] = new Entities[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 \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 \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 \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 (Entities[className]) {\n this.Annotations[i] = new Entities[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 \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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.AttributeValue = new Entities[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 (Entities[className]) {\n this.NameTranslations[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.DeliveryAddress = new Entities[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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.AuditEvent = new Entities[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 (Entities[className]) {\n this.SignatureData[i] = new Entities[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 \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 (Entities[className]) {\n this.TenderLineAdjustments[i] = new Entities[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 (Entities[className]) {\n this.SalesLineAdjustments[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.RegistrationSettings = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 \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 (Entities[className]) {\n this.Segments[i] = new Entities[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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 IsInventoryAvailabilityQuantityReturned: boolean;\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.IsInventoryAvailabilityQuantityReturned = \n odataObject.IsInventoryAvailabilityQuantityReturned;\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \n /**\n * CartLineValidationResults entity class.\n */\n export class CartLineValidationResultsClass implements Entities.CartLineValidationResults {\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 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 (Entities[className]) {\n this.ValidationFailuresByCartLines[i] = new Entities[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 \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 \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 (Entities[className]) {\n this.ValidationResults[i] = new Entities[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 \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 (Entities[className]) {\n this.RequiredReasonCodes[i] = new Entities[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 (Entities[className]) {\n this.ReasonCodeRequirements[i] = new Entities[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 \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 \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 \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 \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 \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 \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 \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 \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 \n /**\n * PaymentException entity class.\n */\n export class PaymentExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentException {\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.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 (Entities[className]) {\n this.PaymentSdkErrors[i] = new Entities[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 \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 \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 \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 (Entities[className]) {\n this.TaskManagementErrors[i] = new Entities[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 \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 \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 \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 \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 \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 \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 \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 \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 \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 \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 \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 \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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 (Entities[className]) {\n this.ExtensionProperties[i] = new Entities[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\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 \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 (Entities[className]) {\n this.DataValidationFailure = new Entities[className](odataObject.DataValidationFailure)\n }\n }\n\n \n this.LineIndex = \n odataObject.LineIndex;\n \n }\n }\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 \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 ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { isNonceEnabled, SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport * as React from 'react';\nimport { isAbsoluteUrl, isRelativeUrl, logDebug, logError } from '../../utils/script-utils';\nimport { IDefaultInlineScriptProps } from './default-inline-script.props.autogenerated';\n\n/**\n *\n * DefaultScript\n * @extends {React.PureComponent>}\n */\nclass DefaultInlineScript extends React.PureComponent> {\n constructor(props: IDefaultInlineScriptProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n logDebug(`Adding script tags for '${this.props.id}/${this.props.typeName}'`, this.props.telemetry);\n const source = config.inlineScript;\n\n if (!source || source === '' || isAbsoluteUrl(source) || isRelativeUrl(source)) {\n logError(\n 'Invalid inline script - Empty inline source defined or a url is being used as a source. Use default-external-script to load scripts from an external or relative url.',\n this.props.telemetry\n );\n return null;\n }\n\n if (source.includes('')) {\n logError('Invalid inline script - inline script should not contain html tags', this.props.telemetry);\n return null;\n }\n\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\n const scriptHtml = ``;\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\n }\n}\n\nexport default DefaultInlineScript;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nimport { isNonceEnabled, SDK_FRAGMENT_NAME } from '@msdyn365-commerce/core-internal';\nimport { IDefaultMetatagsData } from './default-metatags.data';\nimport { IDefaultMetatagsProps } from './default-metatags.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component\n * @extends {React.PureComponent>}\n */\nclass DefaultMetaTags extends React.PureComponent> {\n public render(): JSX.Element {\n const { data, config } = this.props;\n const nonceToken = this.props.context && isNonceEnabled(this.props.context.request);\n let metaTagsHtml: string = '';\n let metaTags;\n if (config.metaTags) {\n metaTags = nonceToken ? this._addNonceToInlineScript(config.metaTags, nonceToken) : config.metaTags;\n metaTagsHtml = metaTags && metaTags.join('\\n');\n } else if (data.metaTags) {\n metaTags = data.metaTags;\n let metaTagsText = metaTags.map(simpleText => simpleText.text);\n metaTagsText = nonceToken ? this._addNonceToInlineScript(metaTagsText, nonceToken) : metaTagsText;\n metaTagsHtml = metaTagsText && metaTagsText.join('\\n');\n }\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: metaTagsHtml } });\n }\n\n private _addNonceToInlineScript(metaTags: string[], nonceToken: string): string[] {\n const inlineScripRegex = /(.*?)<\\/script>/g;\n return metaTags\n .map(metaTag => {\n if (inlineScripRegex.test(metaTag)) {\n return metaTag.replace(/`;\n\n return React.createElement(SDK_FRAGMENT_NAME, { key: this.props.id, dangerouslySetInnerHTML: { __html: scriptHtml } });\n }\n}\n\nexport default DefaultExternalScript;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// NOTE: no-any is disabled intentionally, as promises require valid use of the any type\n// tslint:disable:no-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 // @ts-ignore\n private _type: string = 'AsyncResult';\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 // @ts-ignore: Type overlap issue\n return resolve(result);\n }\n\n try {\n return resolve(onSuccess(result));\n } catch (e) {\n return reject(e);\n }\n },\n onFail: reason => {\n if (!onFail) {\n return reject(reason);\n }\n\n try {\n return resolve(onFail(reason));\n } catch (e) {\n return reject(e);\n }\n }\n });\n });\n\n // Always pass the metadata on a then\n asyncResult.metadata = this.metadata;\n\n return asyncResult;\n }\n\n /**\n * Hook to allow callback on the unsuccessful run of an executor\n * @param onFail Callback to run when executor fails\n */\n public catch(onFail?: ((reason: any) => TResult | PromiseLike) | undefined | null): AsyncResult {\n const defaultThen = (value: any) => value;\n return this.then(defaultThen, onFail);\n }\n\n /**\n * Hook to allow a callback to be executed on a successful or unsuccessful run of the executor\n * @param callback Callback to be run after original AsyncResult is completed\n */\n public finally(onfinally?: (() => void) | undefined | null): AsyncResult {\n return new AsyncResult((resolve, reject) => {\n let value: T | any;\n let failed: Boolean = false;\n\n return this.then(\n result => {\n value = result;\n return onfinally();\n },\n reason => {\n failed = true;\n value = reason;\n return onfinally();\n }\n ).then(() => {\n if (failed) {\n return reject(value);\n }\n\n return resolve(value);\n });\n });\n }\n\n public toString(): string {\n return `[object AsyncResult]`;\n }\n\n get [Symbol.toStringTag](): string {\n return '[object AsyncResult]';\n }\n\n private _attachHandler = (handler: IHandler) => {\n this._handlers.push(handler);\n\n this._executeHandlers();\n }\n\n private _executeHandlers = () => {\n if (this.status === 'LOADING') {\n return;\n }\n\n for (const handler of this._handlers) {\n if (this.status === 'FAILED') {\n handler.onFail(this.error);\n } else {\n handler.onSuccess(this.result as T);\n }\n }\n\n this._handlers = [];\n }\n\n private _resolve = (value?: T | PromiseLike) => {\n return this._updateStatus(value, 'SUCCESS');\n }\n\n private _reject = (reason: any) => {\n return this._updateStatus(reason, 'FAILED', true);\n }\n\n private _updateStatus(result: T | any, newStatus: AsyncResultStatus, isError: Boolean = false): void {\n // Wrap in setTimeout to ensure fully synchronous handlers\n // are still returned AFTER initial class construction\n setTimeout(() => {\n if (this.status !== 'LOADING') {\n return null;\n }\n\n if (isThenable(result)) {\n return (result as PromiseLike).then(this._resolve, this._reject);\n }\n\n if (isError) {\n this.error = result;\n } else {\n this.result = result;\n }\n\n this.status = newStatus;\n\n return this._executeHandlers();\n }, 0);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\nexport * from './IProductList';\nexport * from './IAddCartLinesParam';\nexport * from './IRemoveCartLinesParam';\nexport * from './IUpdateCartLinesParam';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nimport { HtmlHeadInclude, IAny, IGeneric } from '@msdyn365-commerce/core';\nimport { IDefaultPageSummaryData } from './default-page-summary.data';\nimport { IDefaultPageSummaryProps } from './default-page-summary.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component\n * @extends {React.PureComponent}\n */\nclass DefaultPageSummary extends React.PureComponent> {\n public render(): JSX.Element {\n if (this.props.data.pageSummary.result === undefined) {\n throw new Error('PageSummaryData input to page-summary is undefined. Unable to generate page-summary');\n }\n let {\n data: {\n pageSummary: {\n result: { title, description, keywords, sharingImageUrl, faviconUrl }\n }\n },\n } = this.props;\n\n const {\n config,\n context,\n data: {\n pageSummary: {\n result: { canonicalUrl }\n }\n },\n } = this.props;\n\n // Override values coming from data action if config values are provided\n title = config.title || title;\n description = config.description || description;\n keywords = config.keywords || keywords;\n sharingImageUrl = (config.sharingImage && config.sharingImage.src) || sharingImageUrl;\n faviconUrl = config.faviconUrl || faviconUrl;\n\n const pageTitle = this._constructPageTitle(title, context && context.request && context.request.app);\n return (\n \n \n {pageTitle && {pageTitle}}\n {description && }\n {keywords && }\n {canonicalUrl && }\n {faviconUrl && }\n \n {!config.disableOgTags && this._renderOgTags(pageTitle, description, sharingImageUrl)}\n {!config.disableTwitterTags && this._renderTwitterTags(pageTitle, description, sharingImageUrl)}\n \n );\n }\n\n private _renderOgTags(title: string | undefined, description: string | undefined, sharingImageUrl: string | undefined): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _renderTwitterTags(\n title: string | undefined,\n description: string | undefined,\n sharingImageUrl: string | undefined\n ): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n {}\n \n );\n }\n\n private _constructPageTitle(title: string | undefined, app: IGeneric): string | undefined {\n if(!title) {\n title = '';\n }\n\n const moduleConfig = this.props.config;\n if (moduleConfig && moduleConfig.ignoreTitleSuffixPrefix) {\n return title;\n }\n\n const appConfig = app && app.platform;\n if (appConfig) {\n if (appConfig.pageTitlePrefix) {\n title = (appConfig.pageTitlePrefix as string) + title;\n }\n if (appConfig.pageTitleSuffix) {\n title = title + (appConfig.pageTitleSuffix as string);\n }\n }\n\n return title;\n }\n}\n\nexport default DefaultPageSummary;\n","\n // \n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Affiliation, ReasonCodeLine, PaymentMerchantInformation, StoreSafe, ShiftReconciliationLineRetrievalCriteria, ShiftReconciliationLine, ReceiptMask, SearchSuggestionCriteria, SearchSuggestion, DeviceActivationResult, CreateHardwareStationTokenResult, ValidateHardwareStationTokenResult, Barcode, ButtonGrid, GetButtonGridsByIdsCriteria, CardTypeInfo, CityInfo, CountryRegionInfo, CountyInfo, CreditMemo, TerminalDataDownloadRequestInfo, DataDownloadParameters, TerminalDataUploadRequestInfo, DataUploadParameters, DownloadSession, 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, DiscountsSearchCriteria, Promotion, PickupTimeslotAvailabilitySearchCriteria, PickupTimeslotAvailability, CashDeclaration, CustomerGroup, DeliveryOption, ChannelDeliveryOptionConfiguration, ChannelIdentity, ChannelSearchCriteria, EnvironmentConfiguration, SearchConfiguration, ExtensionPackageDefinition, ExtensionProfile, DeviceConfiguration, VisualProfile, SupportedLanguage, SalesTaxGroup, TenderType, UnitOfMeasure, Currency, CommissionSalesGroup, ChannelInventoryConfiguration, ChannelPurchaseConfiguration, Device, UserDefinedSecretCertificateResult, MediaBlob, ExtensibleEnumerationContainer, AddressPurpose, ReturnPolicy, } from '../Entities/CommerceTypes.g';\n import { ReceiptMaskClass, AffiliationClass, PaymentMerchantInformationClass, StoreSafeClass, ShiftReconciliationLineClass, SearchSuggestionClass, DeviceActivationResultClass, CreateHardwareStationTokenResultClass, ValidateHardwareStationTokenResultClass, BarcodeClass, ButtonGridClass, CardTypeInfoClass, CityInfoClass, CountryRegionInfoClass, 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, PromotionClass, FiscalTransactionClass, PickupTimeslotAvailabilityClass, CashDeclarationClass, CustomerGroupClass, DeliveryOptionClass, ChannelDeliveryOptionConfigurationClass, ChannelIdentityClass, EnvironmentConfigurationClass, SearchConfigurationClass, ExtensionPackageDefinitionClass, ExtensionProfileClass, DeviceConfigurationClass, VisualProfileClass, SupportedLanguageClass, SalesTaxGroupClass, TenderTypeClass, UnitOfMeasureClass, CurrencyClass, CommissionSalesGroupClass, ChannelInventoryConfigurationClass, ChannelPurchaseConfigurationClass, DeviceClass, UserDefinedSecretCertificateResultClass, MediaBlobClass, ExtensibleEnumerationContainerClass, AddressPurposeClass, ReturnPolicyClass } 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 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 createGetMerchantPropertiesByServiceAccountIdInput(queryResultSettings: IQueryResultSettings, serviceAccountIds?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMerchantPropertiesByServiceAccountId', true, PaymentMerchantInformationClass, 'true', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {serviceAccountIds: serviceAccountIds });\n }\n\n export function getMerchantPropertiesByServiceAccountIdAsync(context: IContext, serviceAccountIds?: string[] | null):AsyncResult {\n const request = createGetMerchantPropertiesByServiceAccountIdInput(context.queryResultSettings, serviceAccountIds);\n return executeAction(request, context);\n }\n \n export function createGetStoreSafesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStoreSafes', true, StoreSafeClass, 'true', { bypassCache: 'none', returnEntity: 'StoreSafe'}, { });\n }\n\n export function getStoreSafesAsync(context: IContext):AsyncResult {\n const request = createGetStoreSafesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetShiftReconciliationLinesInput(queryResultSettings: IQueryResultSettings, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetShiftReconciliationLines', true, ShiftReconciliationLineClass, 'true', { bypassCache: 'none', returnEntity: 'ShiftReconciliationLine'}, {shiftReconciliationLineRetrievalCriteria: shiftReconciliationLineRetrievalCriteria });\n }\n\n export function getShiftReconciliationLinesAsync(context: IContext, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null):AsyncResult {\n const request = createGetShiftReconciliationLinesInput(context.queryResultSettings, shiftReconciliationLineRetrievalCriteria);\n return executeAction(request, context);\n }\n \n export function createReconcileLinesInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ReconcileLines', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines, Description: description });\n }\n\n export function reconcileLinesAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null):AsyncResult {\n const request = createReconcileLinesInput(shiftReconciliationLines, description);\n return executeAction(request, context);\n }\n \n export function createUndoReconciliationInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UndoReconciliation', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines });\n }\n\n export function undoReconciliationAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null):AsyncResult {\n const request = createUndoReconciliationInput(shiftReconciliationLines);\n return executeAction(request, context);\n }\n \n export function createGetReceiptMasksInput(queryResultSettings: IQueryResultSettings, receiptTransactionType?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptMasks', true, ReceiptMaskClass, 'true', { bypassCache: 'none', returnEntity: 'ReceiptMask'}, {receiptTransactionType: receiptTransactionType });\n }\n\n export function getReceiptMasksAsync(context: IContext, receiptTransactionType?: number | null):AsyncResult {\n const request = createGetReceiptMasksInput(context.queryResultSettings, receiptTransactionType);\n return executeAction(request, context);\n }\n \n export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, searchSuggestionCriteria?: SearchSuggestionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSearchSuggestions', true, SearchSuggestionClass, 'true', { bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {searchSuggestionCriteria: searchSuggestionCriteria });\n }\n\n export function getSearchSuggestionsAsync(context: IContext, searchSuggestionCriteria?: SearchSuggestionCriteria | null):AsyncResult {\n const request = createGetSearchSuggestionsInput(context.queryResultSettings, searchSuggestionCriteria);\n return executeAction(request, context);\n }\n \n export function createStartSessionInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('StartSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function startSessionAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createStartSessionInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createEndSessionInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('EndSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function endSessionAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createEndSessionInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createActivateDeviceInput(deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ActivateDevice', true, DeviceActivationResultClass, 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, forceActivate: forceActivate, deviceType: deviceType });\n }\n\n export function activateDeviceAsync(context: IContext, deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null):AsyncResult {\n const request = createActivateDeviceInput(deviceNumber, terminalId, deviceId, forceActivate, deviceType);\n return executeAction(request, context);\n }\n \n export function createMassActivateDeviceInput(deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('MassActivateDevice', true, DeviceActivationResultClass, 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, deviceType: deviceType });\n }\n\n export function massActivateDeviceAsync(context: IContext, deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null):AsyncResult {\n const request = createMassActivateDeviceInput(deviceNumber, terminalId, deviceId, deviceType);\n return executeAction(request, context);\n }\n \n export function createDeactivateDeviceInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeactivateDevice', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function deactivateDeviceAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createDeactivateDeviceInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createCreateHardwareStationTokenInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateHardwareStationToken', true, CreateHardwareStationTokenResultClass, 'false', { bypassCache: 'get', returnEntity: 'CreateHardwareStationTokenResult'}, { });\n }\n\n export function createHardwareStationTokenAsync(context: IContext):AsyncResult {\n const request = createCreateHardwareStationTokenInput();\n return executeAction(request, context);\n }\n \n export function createValidateHardwareStationTokenInput(deviceNumber?: string | null, hardwareStationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateHardwareStationToken', true, ValidateHardwareStationTokenResultClass, 'false', { bypassCache: 'get', returnEntity: 'ValidateHardwareStationTokenResult'}, {deviceNumber: deviceNumber, hardwareStationToken: hardwareStationToken });\n }\n\n export function validateHardwareStationTokenAsync(context: IContext, deviceNumber?: string | null, hardwareStationToken?: string | null):AsyncResult {\n const request = createValidateHardwareStationTokenInput(deviceNumber, hardwareStationToken);\n return executeAction(request, context);\n }\n \n export function createGetBarcodeByIdInput(barcodeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBarcodeById', true, BarcodeClass, 'false', { bypassCache: 'none', returnEntity: 'Barcode'}, {barcodeId: barcodeId });\n }\n\n export function getBarcodeByIdAsync(context: IContext, barcodeId?: string | null):AsyncResult {\n const request = createGetBarcodeByIdInput(barcodeId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridByIdInput(buttonGridId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetButtonGridById', true, ButtonGridClass, 'false', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {buttonGridId: buttonGridId });\n }\n\n export function getButtonGridByIdAsync(context: IContext, buttonGridId?: string | null):AsyncResult {\n const request = createGetButtonGridByIdInput(buttonGridId);\n return executeAction(request, context);\n }\n \n export function 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 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 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 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 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 createCreateFiscalTransactionInput(functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateFiscalTransaction', true, FiscalTransactionClass, 'false', { bypassCache: 'get', returnEntity: 'FiscalTransaction'}, {functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function createFiscalTransactionAsync(context: IContext, functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number):AsyncResult {\n const request = createCreateFiscalTransactionInput(functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetEstimatedPickupTimeslotAvailabilitiesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEstimatedPickupTimeslotAvailabilities', true, PickupTimeslotAvailabilityClass, 'true', { bypassCache: 'none', returnEntity: 'PickupTimeslotAvailability'}, {searchCriteria: searchCriteria });\n }\n\n export function getEstimatedPickupTimeslotAvailabilitiesAsync(context: IContext, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedPickupTimeslotAvailabilitiesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGrids', false, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, { });\n }\n\n export function getButtonGridsAsync(context: IContext):AsyncResult {\n const request = createGetButtonGridsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByScreenSizeInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByScreenSize', false, ButtonGridClass, 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsByScreenSizeAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsByScreenSizeInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function 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 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 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 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 ","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { ScanResult } from '../Entities/CommerceTypes.g';\r\n import { ScanResultClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function scanResultsQuery(scannedText?: string): DataServiceQuery {\r\n var key = (scannedText) ? { ScannedText: scannedText } : null;\r\n return new DataServiceQuery(\"ScanResults\", \"ScanResult\", ScanResultClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: ScanResult): IDataServiceRequest {\r\n return scanResultsQuery().create(entity);\r\n }\r\n\r\n export function createScanResultAsync(context: IContext, entity: ScanResult): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: ScanResult): IDataServiceRequest {\r\n return scanResultsQuery(entity.ScannedText).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: ScanResult): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: ScanResult): IDataServiceRequest {\r\n return scanResultsQuery(entity.ScannedText).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: ScanResult): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(scannedText: string): IDataServiceRequest {\r\n return scanResultsQuery(scannedText).read();\r\n }\r\n\r\n export function readAsync(context: IContext, scannedText: string): AsyncResult {\r\n const request = createReadAsync(scannedText);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return scanResultsQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\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): IDataServiceRequest { \n const query = checklistsQuery();\n return query.createDataServiceRequestForOperation('CreateTask', true, ChecklistTaskClass, 'false', {bypassCache: 'get', returnEntity: 'ChecklistTask'}, {createTask: createTask, userGraphToken: userGraphToken });\n } \n \n export function createTaskAsync(context: IContext, createTask?: ChecklistTask | null, userGraphToken?: string | null):AsyncResult {\n const request = createCreateTaskInput(createTask, userGraphToken);\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): IDataServiceRequest { \n const query = checklistsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('UpdateTasks', true, ChecklistTaskClass, 'true', {bypassCache: 'get', returnEntity: 'ChecklistTask'}, {updateTasks: updateTasks, userGraphToken: userGraphToken });\n } \n \n export function updateTasksAsync(context: IContext, updateTasks?: ChecklistTask[] | null, userGraphToken?: string | null):AsyncResult {\n const request = createUpdateTasksInput(context.queryResultSettings, updateTasks, userGraphToken);\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 { compare, EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { ProxyError } from './ProxyError';\n\n// TODO - refactor the logging completely to use const and trace instead of console and class\n\n/**\n * Error type enum.\n */\nexport class ErrorTypeEnum {\n public static Cash: string = '1';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDDEVICETOKEN: string = 'MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDDEVICE';\n\n // Client error codes mapped to locale strings\n public static APPLICATION_ERROR: string = 'string_29000';\n public static APPLICATION_STORE_INITIALIZATION_DATA_FAILED_TO_LOAD = 'string_29007';\n public static PRICE_CHECK_INITIALIZATION_DATA_FAILED_TO_LOAD = 'string_29022';\n public static CART_LINE_MISSING_PRODUCT_NAME_ERROR: string = 'string_1242';\n public static OPERATOR_ID_PASSWORD_NOT_SPECIFIED: string = 'string_29001';\n public static OPERATOR_PASSWORD_NOT_SPECIFIED: string = 'string_29019';\n public static SERVER_ERROR: string = 'string_29002';\n public static INVALID_URL: string = 'string_1330';\n public static INVALID_EMAIL: string = 'string_1331';\n public static INVALID_PHONE: string = 'string_1332';\n public static INVALID_NAME: string = 'string_1360';\n public static INVALID_NAME_FORMAT: string = 'string_1361';\n public static EMPTY_STREET: string = 'string_1333';\n public static EMPTY_CITY: string = 'string_1334';\n public static EMPTY_STATE: string = 'string_1335';\n public static EMPTY_COUNTRY: string = 'string_1336';\n public static EMPTY_ZIPCODE: string = 'string_1337';\n public static EMPTY_NAME: string = 'string_1338';\n public static LINE_ITEM_MISSING_PRODUCT_NAME_ERROR: string = 'string_3204';\n public static LOGOFF_ERROR: string = 'string_1353';\n public static AAD_AUTHENTICATION_FAILED: string = 'string_1442';\n public static DEVICE_ACTIVATION_DETAILS_NOT_SPECIFIED: string = 'string_1407';\n public static DEVICE_DEACTIVATION_INCOMPLETE_TRANSACTION_ERROR: string = 'string_1421';\n public static CHANGE_PASSWORD_DETAILS_NOT_SPECIFIED: string = 'string_6805';\n public static NEW_PASSWORD_AND_CONFIRMATION_NOT_MATCHING_ERROR: string = 'string_6806';\n public static RESET_PASSWORD_DETAILS_NOT_SPECIFIED: string = 'string_6810';\n public static OLD_AND_NEW_PASSWORD_MATCHING_ERROR: string = 'string_6607';\n public static OPERATION_ISSUE_CREDIT_MEMO_NOT_AVAILABLE: string = 'string_29801';\n public static PAYMENT_INFORMATION_INCOMPLETE: string = 'string_1137';\n public static PAYMENT_INVALID_NUMBER: string = 'string_1138';\n public static PAYMENT_CARD_NOT_SUPPORTED: string = 'string_1139';\n public static PAYMENT_CASH_PAYMENT_NOT_AVAILABLE: string = 'string_1142';\n public static PAYMENT_CARD_PAYMENT_NOT_AVAILABLE: string = 'string_1158';\n public static PAYMENT_UNABLE_TO_LOAD_CURRENCY_AMOUNTS: string = 'string_1143';\n public static PAYMENT_CUSTOMER_ACCOUNT_NOT_SET: string = 'string_1154';\n public static PAYMENT_AMOUNT_CANNOT_BE_EMPTY: string = 'string_1159';\n public static PAYMENT_CARD_TRACK_DATA_EMPTY: string = 'string_1166';\n public static PAYMENT_CARD_NUMBER_EMPTY: string = 'string_1167';\n public static PAYMENT_CARD_SECURITY_CODE_EMPTY: string = 'string_1168';\n public static PAYMENT_CREDIT_MEMO_NUMBER_EMPTY: string = 'string_1169';\n public static PAYMENT_LOYALTY_CARD_NUMBER_EMPTY: string = 'string_1170';\n public static PAYMENT_GIFT_CARD_NUMBER_EMPTY: string = 'string_1171';\n public static PAYMENT_CUSTOMER_ACCOUNT_EMPTY: string = 'string_1172';\n public static PAYMENT_INVALID_CARD_NUMBER: string = 'string_1175';\n public static PAYMENT_INVALID_SECURITY_CODE: string = 'string_1176';\n public static PAYMENT_INVALID_ZIP_CODE: string = 'string_1177';\n public static CART_IS_EMPTY: string = 'string_29008';\n public static RETAIL_SERVER_REDIRECT_ERROR = 'RETAIL_SERVER_REDIRECT_ERROR';\n public static OPERATION_NOT_VALID_FOR_BIG_ENDIAN_SYSTEM = 'string_29824';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_MANUALCARDNUMBERNOTALLOWED = 'string_29825';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TENDERLINECANNOTBEVOIDED = 'string_29826';\n public static INVALID_INCOME_EXPENSE_LINE_COLLECTION = 'string_4122';\n public static CARTLINE_DISCOUNTINUED = 'string_4452';\n public static SCALE_UNSPECIFIED_WITHOUT_MANUAL_ENTRY = 'string_5316';\n public static SCALE_RETURNED_ZERO_WITHOUT_MANUAL_ENTRY = 'string_5317';\n public static APPLICATION_CONFIGURATION_LOADING_ERROR: string = 'string_29951';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEMOMODEOPERATIONNOTSUPPORTED: string = 'string_29952';\n public static MANAGER_OVERRIDE_CANCELED_ERROR: string = 'string_29029';\n public static SELECTED_CARTLINES_CONTAINS_VOIDED_PRODUCTS: string = 'string_29832';\n public static CUSTOMERORDER_MANUAL_DEPOSIT_REQUIRED: string = 'string_29833';\n\n // Client error codes - store information and details\n public static STORE_NOT_FOUND = 'string_29016';\n\n // Client error codes - return - mapped to local strings\n public static DIMENSION_SELECTION_NOT_COMPLETED: string = 'string_821';\n public static RETURN_MULTIPLE_REASON_CODE_SETS_ARE_DEFINED: string = 'RETURN_MULTIPLE_REASON_CODE_SETS_ARE_DEFINED';\n public static RETURN_NO_ORDERS_FOUND: string = 'string_1218';\n public static RETURN_NO_SALES_LINES_IN_ORDER: string = 'string_1220';\n public static RETURN_ALL_SALES_LINES_IN_ORDER_RETURN: string = 'string_1237';\n public static RETURN_NO_REASON_CODES_ARE_DEFINED: string = 'string_1244';\n public static RETURN_NO_ITEM_SELECTED: string = 'string_1246';\n public static RETURN_MAX_RETURN_LINE_AMOUNT_EXCEEDED: string = 'string_29370';\n public static RETURN_MAX_RETURN_TOTAL_AMOUNT_EXCEEDED: string = 'string_29371';\n\n // Client error codes - payment\n public static CREDIT_MEMO_INVALID_AMOUNT: string = 'string_29800';\n\n // Client error codes - inventory\n public static NO_PRICECHECK_ON_PRODUCTS: string = 'string_3523';\n public static NO_PRODUCT_INFORMATION: string = 'string_3873';\n\n // Client error codes - salesOrders\n public static CART_UNAVAILABLE_FOR_PICK_UP: string = 'string_4539';\n public static CART_LINES_UNAVAILABLE_FOR_PICK_UP: string = 'string_4540';\n public static PICK_LIST_CAN_NOT_BE_CREATED: string = 'string_4544';\n public static PACK_SLIP_CAN_NOT_BE_CREATED: string = 'string_4546';\n public static CUSTOMER_ORDER_OPERATION_INVOICE_NOT_SUPPORTED = 'string_29028';\n public static CREATE_OR_EDIT_CUSTOMER_ORDER_OR_QUOTATION_ONLY = 'string_29032';\n public static EDIT_CUSTOMER_ORDER_OR_QUOTATION_ONLY = 'string_29033';\n public static NO_STORE_SELECTED_FOR_PICKUP = 'string_29034';\n public static ALL_PRODUCTS_SELECTED_PICKUP_OR_SHIP_SELECTED = 'string_29035';\n public static INVALID_SHIPPING_CHARGES = 'string_2543';\n public static NO_ADDRESSES_SELECTED_FOR_SHIP = 'string_29036';\n public static NO_SHIPPING_METHODS_SELECTED_FOR_SHIP = 'string_29037';\n public static CREATE_OR_EDIT_QUOTATION_ONLY = 'string_29042';\n public static EDIT_CUSTOMER_ORDER_ONLY = 'string_29043';\n\n // Client error codes - customer order cancellation\n public static CANCELLATION_CHARGE_IS_NOT_VALID: string = 'string_4542';\n public static CANCELLATION_CHARGE_INVALID_NEGATIVE_AMOUNT: string = 'string_29026';\n public static CANCELLATION_CHARGE_INVALID_OPERATION: string = 'string_29027';\n public static CART_UNAVAILABLE_FOR_CANCEL: string = 'string_4541';\n\n // Client error codes - discounts\n public static UNSUPPORTED_APPLY_DISCOUNT_OPERATION: string = 'string_5600';\n public static MISSING_CARTLINE_ON_APPLY_DISCOUNT: string = 'string_5601';\n public static MAXIMUM_LINE_DISCOUNT_AMOUNT_EXCEEDED: string = 'string_5602';\n public static MAXIMUM_LINE_DISCOUNT_PERCENT_EXCEEDED: string = 'string_5603';\n public static MAXIMUM_TOTAL_DISCOUNT_AMOUNT_EXCEEDED: string = 'string_5604';\n public static MAXIMUM_TOTAL_DISCOUNT_PERCENT_EXCEEDED: string = 'string_5605';\n public static MAXIMUM_LINE_DISCOUNT_AMOUNT_EXCEEDED_PRICE: string = 'string_5617';\n public static MAXIMUM_TOTAL_DISCOUNT_AMOUNT_EXCEEDED_SUBTOTAL: string = 'string_5618';\n\n // Client error codes - price override\n public static PRICE_OVERRIDE_NOT_VALID_ONE_OR_MORE_ITEMS: string = 'string_5705';\n public static PRICE_OVERRIDE_PRICE_EXCEEDS_MAXIMUM_DEVICE_PRICE: string = 'string_5715';\n public static PRICE_OVERRIDE_NO_ITEM_SELECTED: string = 'string_5716';\n public static PRICE_OVERRIDE_PRODUCT_IS_VOIDED: string = 'string_29803';\n public static PRICE_OVERRIDE_PRICE_CANNOT_BE_NEGATIVE: string = 'string_29009';\n public static PRICE_OVERRIDE_INVALID_PRICE: string = 'string_29010';\n public static PRICE_OVERRIDE_PRICE_NOT_A_NUMBER: string = 'string_29011';\n public static PRICE_OVERRIDE_PRODUCT_IS_FOR_A_RECEIPT: string = 'string_29804';\n public static PRICE_OVERRIDE_PRODUCT_IS_FOR_A_GIFT_CERTIFICATE: string = 'string_29805';\n public static PRICE_OVERRIDE_PRICE_CANNOT_BE_ZERO: string = 'string_5717';\n public static PRICE_OVERRIDE_PRICE_MUST_BE_POSITIVE: string = 'string_29020';\n public static PRICE_OVERRIDE_ONLY_LOWER_AMOUNTS_ALLOWED: string = 'string_5718';\n public static PRICE_OVERRIDE_ONLY_HIGHER_AMOUNTS_ALLOWED: string = 'string_5719';\n public static PRICE_OVERRIDE_ONLY_LOWER_OR_EQUAL_AMOUNTS_ALLOWED: string = 'string_5720';\n public static PRICE_OVERRIDE_ONLY_HIGHER_OR_EQUAL_AMOUNTS_ALLOWED: string = 'string_5721';\n public static PRICE_OVERRIDE_NOT_ALLOWED_FOR_PRODUCT: string = 'string_5722';\n public static PRICE_OVERRIDE_NONE_ALLOWED: string = 'string_5723';\n\n // Client error codes - change sales person\n public static CHANGE_SALES_PERSON_INVALID_CART_MODE: string = 'string_5733';\n\n // Client error codes - set quantity\n public static SET_QUANTITY_NOT_VALID_ONE_OR_MORE_ITEMS: string = 'string_5305';\n public static SET_QUANTITY_NOT_GREATER_THAN_ZERO: string = 'string_5308';\n public static SET_QUANTITY_NOT_IN_RANGE: string = 'string_5309';\n public static SET_QUANTITY_NOT_VALID_NO_ITEM_SELECTED: string = 'string_5310';\n public static SET_QUANTITY_NOT_A_NUMBER: string = 'string_5311';\n public static SET_QUANTITY_NOT_ZERO: string = 'string_5312';\n public static SET_QUANTITY_QUANTITY_EXCEEDS_MAXIMUM_DEVICE_QUANTITY: string = 'string_5313';\n public static SET_QUANTITY_NOT_VALID_FOR_UNIT_OF_MEASURE: string = 'string_5314';\n public static SET_QUANTITY_NOT_VALID_FOR_SERIALIZED_ITEM: string = 'string_5315';\n\n // Client error codes - unit of measure\n public static UNIT_OF_MEASURE_NOT_VALID_ONE_OR_MORE_ITEMS: string = 'string_3205';\n public static UNIT_OF_MEASURE_NOT_VALID_NO_ITEM_SELECTED: string = 'string_3206';\n public static UNIT_OF_MEASURE_NOT_VALID_NO_UNIT_OF_MEASURE: string = 'string_3207';\n public static UNIT_OF_MEASURE_NOT_VALID_NO_UNIT_OF_MEASURE_CONVERSIONS: string = 'string_3208';\n\n public static NOT_IMPLEMENTED: string = 'string_29003';\n\n // Client error codes - kit disassembly\n public static KIT_BLOCKED_FOR_DISASSEMBLY_AT_REGISTER: string = 'string_420';\n\n // Client error codes - peripherals\n public static PERIPHERALS_HARDWARESTATION_NOTCONFIGURED = 'string_4908';\n public static PERIPHERALS_BARCODE_SCANNER_NOTFOUND: string = 'string_4900';\n public static PERIPHERALS_BARCODE_SCANNER_ENABLE_FAILED: string = 'string_4901';\n public static PERIPHERALS_MSR_NOTFOUND: string = 'string_4902';\n public static PERIPHERALS_MSR_ENABLE_FAILED: string = 'string_4903';\n public static PERIPHERALS_PRINTER_FAILED: string = 'string_4904';\n public static PERIPHERAL_PAYMENT_UNKNOWN_ERROR: string = 'string_4919';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_PRINTER_ERROR = 'string_4904';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_CASHDRAWER_ERROR = 'string_4905';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_SCALE_ERROR = 'string_4906';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_PAYMENTTERMINAL_ERROR = 'string_4907';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_DUALDISPLAY_ERROR = 'string_4918';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_PERIPHERALNOTFOUND = 'string_4917';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_PAIRINGERROR = 'string_6011';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_TOKENVALIDATIONFAILED = 'string_6011';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_PINPAD_ERROR = 'string_4923';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_SIGNATURECAPTURE_ERROR = 'string_4924';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_LINEDISPLAY_ERROR = 'string_4925';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_LINEDISPLAY_CHARACTERSETNOTSUPPORTED = 'string_4926';\n public static MICROSOFT_DYNAMICS_COMMERCE_HARDWARESTATION_PERIPHERALISLOCKED = 'string_4927';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTCONNECTORNOTFOUND = 'string_4929';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CUSTOMERACCOUNTPAYMENTISNOTALLOWEDFORCUSTOMERORDERDEPOSITANDCANCELLATION =\n 'string_29021';\n\n // Client error codes - store operations\n public static AMOUNT_IS_NOT_VALID: string = 'string_4102';\n public static SHIFT_IS_NOT_VALID: string = 'string_4103';\n public static OPERATION_NOT_ALLOWED_PRODUCT_IS_VOIDED: string = 'string_29803';\n public static OPERATION_NOT_ALLOWED_PRODUCT_IS_FOR_A_RECEIPT: string = 'string_29804';\n public static OPERATION_NOT_ALLOWED_PRODUCT_IS_FOR_A_GIFT_CERTIFICATE: string = 'string_29805';\n public static OPERATION_NOT_ALLOWED_LINKED_PRODUCT: string = 'string_29806';\n public static OPERATION_NOT_ALLOWED_MULTIPLE_CART_LINES: string = 'string_29807';\n public static OPERATION_NOT_ALLOWED_INCOME_EXPENSE_TRANSACTION: string = 'string_29808';\n public static OPERATION_NOT_ALLOWED_TIME_CLOCK_DISABLED: string = 'string_29809';\n public static OPERATION_NOT_ALLOWED_FINISH_CURRENT_TRANSACTION: string = 'string_4125';\n public static RECEIPT_EMAIL_IS_EMPTY: string = 'string_4126';\n public static OPERATION_NOT_ALLOWED_PERMISSION_DENIED: string = 'string_511';\n public static OPERATION_VALIDATION_INVALID_ARGUMENTS: string = 'string_29018';\n public static OPERATION_NOT_ALLOWED_NO_CART_LINE_SELECTED: string = 'string_29822';\n public static OPERATION_NOT_ALLOWED_IN_NONDRAWER_MODE: string = 'string_4141';\n public static OPERATION_NOT_ALLOWED_NO_PAYMENT_LINE_SELECTED: string = 'string_29828';\n public static OPERATION_NOT_ALLOWED_MULTIPLE_PAYMENT_LINES: string = 'string_29829';\n public static OPERATION_NOT_ALLOWED_IN_OFFLINE_STATE: string = 'string_29831';\n\n // Client error codes - affiliation\n public static INVALID_AFFILIATION_COLLECTION: string = 'string_5205';\n\n // Client error codes - sales tax override\n public static MISSING_CARTLINE_ON_APPLY_TAX_OVERRDE: string = 'string_4423';\n public static NO_TAX_OVERRIDE_REASON_CODES_CONFIGURED: string = 'string_4422';\n\n // Client error code - Offline\n public static CANNOT_SWITCH_ONLINE_CART_IN_PROGRESS = 'string_6607';\n public static CANNOT_SWITCH_OFFLINE_NOT_AVAILABLE = 'string_6608';\n public static CANNOT_SWITCH_TRANSFER_FAILED = 'string_6609';\n\n // Client error codes - Signature\n public static SIGNATURE_INVALID_FORMAT: string = 'string_6906';\n\n // Async Client codes\n public static ASYNC_CLIENT_ZERO_DOWNLOAD_SESSION: string = 'string_29375';\n public static ASYNC_CLIENT_EMPTY_UPLOAD_JOB_DEFINITION: string = 'string_29376';\n public static ASYNC_CLIENT_NO_TRANSACTION_DATA: string = 'string_29377';\n public static ASYNC_CLIENT_CANNOT_LOAD_OFFLINE_TRANSACTION_DATA: string = 'string_29378';\n public static ASYNC_CLIENT_FAIL_PURGE_OFFLINE_TRANSACTION_DATA: string = 'string_29379';\n public static ASYNC_CLIENT_FAIL_DOWNLOAD_FILE: string = 'string_29380';\n public static ASYNC_CLIENT_FAIL_APPLY_FILE_TO_OFFLINE_DATABASE: string = 'string_29381';\n public static ASYNC_CLIENT_FAIL_UPDATE_DOWNLOAD_SESSION_STATUS: string = 'string_29382';\n public static ASYNC_CLIENT_FAIL_RETRIEVE_INITIAL_DATA_SYNC_INDICATOR: string = 'string_29383';\n public static ASYNC_CLIENT_OFFLINE_NOT_ENABLED_ON_TERMINAL: string = 'string_29384';\n\n // Transaction service errors comes already localized from Retail Server.\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_HEADQUARTERTRANSACTIONSERVICEMETHODCALLFAILURE: string =\n 'MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_HEADQUARTERTRANSACTIONSERVICEMETHODCALLFAILURE';\n\n // Employee errors\n public static EMPLOYEE_NOT_FOUND: string = 'string_29320';\n\n // Retail Server Error codes mapped to locale strings\n public static GENERICCOMMERCEERROR: string = 'string_29200';\n public static GENERICERRORMESSAGE: string = 'string_29201';\n public static GENERICVALIDATIONERROR: string = 'string_29202';\n public static ISASSOCIATEDVALIDATIONERROR: string = 'string_29203';\n public static ISNOTASSOCIATEDVALIDATIONERROR: string = 'string_29204';\n public static ISNOTAUTHENTICATEDVALIDATIONERROR: string = 'string_29205';\n public static ITEMSVALIDATIONERROR: string = 'string_29206';\n public static LINEIDSVALIDATIONERROR: string = 'string_29207';\n public static LISTINGSVALIDATIONERROR: string = 'string_29208';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DUPLICATEOBJECT: string = 'string_29209';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INSUFFICIENTQUANTITYONHAND: string = 'string_29210';\n public static INVALID_CURRENCY_AMOUNT: string = 'string_29012';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCARTSALESLINEADD: string = 'string_29211';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDFORMAT: string = 'string_29212';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_LASTCHANGEVERSIONMISMATCH: string = 'string_29213';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_OBJECTNOTFOUND: string = 'string_29214';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REQUIREDVALUENOTFOUND: string = 'string_29215';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNKNOWNREQUEST: string = 'string_29216';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNSUPPORTEDLANGUAGE: string = 'string_29217';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_VALUEOUTOFRANGE: string = 'string_29218';\n public static NAMEVALIDATIONERROR: string = 'string_29219';\n public static PAYMENTSVALIDATIONERROR: string = 'string_29220';\n public static PROMOTIONCODEVALIDATIONERROR: string = 'string_29221';\n public static SAVEDSHOPPINGCARTIDVALIDATIONERROR: string = 'string_29222';\n public static SHIPPINGOPTIONSLINEITEMSELECTION: string = 'string_29223';\n public static SHIPPINGOPTIONSPICKUP: string = 'string_29224';\n public static SHIPPINGOPTIONSSHIPTONEWADDRESS: string = 'string_29225';\n public static SHIPPINGOPTIONSVALIDATIONERROR: string = 'string_29226';\n public static SHOPPINGCARTIDSVALIDATIONERROR: string = 'string_29227';\n public static SHOPPINGCARTIDVALIDATIONERROR: string = 'string_29228';\n public static STORELOCATORBINGMAPSTOKENEMPTY: string = 'string_29229';\n public static STORELOCATORINVALIDDISTANCE: string = 'string_29230';\n public static STORELOCATORINVALIDLOCATION: string = 'string_29231';\n public static STORELOCATORUNABLETOGETCOORDINATES: string = 'string_29232';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCARTVERSION: string = 'string_29233';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_AGGREGATECOMMUNICATIONERROR: string = 'string_29234';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_APPLICATIONCOMPOSITIONFAILED: string = 'string_29235';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CANNOTRETURNMORETHANPURCHASED: string = 'string_5303';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CONFIGURATIONSETTINGNOTFOUND: string = 'string_29236';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DUPLICATEDEFAULTNOTIFICATIONHANDLERENCOUNTERED: string = 'string_29237';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_EMPTYINVENTORYUNITOFMEASUREFORITEM: string = 'string_29238';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_EXTERNALPROVIDERERROR: string = 'string_29239';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_HEADQUARTERCOMMUNICATIONFAILURE: string = 'string_29240';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_HEADQUARTERRESPONSEPARSINGERROR: string = 'string_29241';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCARTSTATE: string = 'string_29008';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCHANNELCONFIGURATION: string = 'string_29242';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCONFIGURATIONKEYFORMAT: string = 'string_29243';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCONNECTIONSTRING: string = 'string_29244';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDPIPELINECONFIGURATION: string = 'string_29245';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDPROVIDERCONFIGURATION: string = 'string_29246';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDRUNTIMECONTEXT: string = 'string_29247';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDSERVERRESPONSE: string = 'string_29248';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SERVICEINITIALIZATIONFAILED: string = 'string_29249';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SERVICENOTFOUND: string = 'string_29250';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNABLETOCOMPUTESALESTAXGROUPFORADDRESS: string = 'string_29251';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNABLETOFINDDEFAULTHANDLER: string = 'string_29252';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNABLETOFINDDELIVERYOPTIONS: string = 'string_29253';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNABLETOFINDINVENTORYFORITEM: string = 'string_29254';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_AGGREGATEVALIDATIONERROR: string = 'string_29255';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_AUTHENTICATIONFAILED: string = 'string_29256';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_AUTHORIZATIONFAILED: string = 'string_29257';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_COUPONISVALIDFORCURRENTSESSION: string = 'string_29258';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CRITICALSTORAGEERROR: string = 'string_29259';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DISCOUNTAMOUNTINVALIDATED: string = 'string_29260';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DISCOUNTISALLOWEDONLYFORCREATIONANDEDITION: string = 'string_5613';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_IDMISMATCH: string = 'string_29261';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INSUFFICIENTQUANTITYAVAILABLE: string = 'string_29262';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCHANGETRACKINGCONFIGURATION: string = 'string_29263';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDPRICEENCOUNTERED: string = 'string_29264';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDREQUEST: string = 'string_29265';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDSHIPPINGADDRESS: string = 'string_29266';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDSQLCOMMAND: string = 'string_29267';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_ITEMDISCONTINUEDFROMCHANNEL: string = 'string_29268';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_OBJECTVERSIONMISMATCHERROR: string = 'string_29269';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PROVIDERCOMMUNICATIONFAILURE: string = 'string_29270';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REQUESTEDITEMISOUTOFSTOCK: string = 'string_29271';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNITOFMEASURECONVERSIONNOTFOUND: string = 'string_29272';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEFAULTCUSTOMERNOTFOUND: string = 'string_29273';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_BARCODENOTFOUND: string = 'string_29368';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_LINKEDITEMSEARCHBYBARCODENOTSUPPORTED: string =\n 'MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_LINKEDITEMSEARCHBYBARCODENOTSUPPORTED';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_QUOTEMUSTNOTHAVEDEPOSITOVERRIDE: string = 'string_29282';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_QUOTEMUSTHAVEVALIDQUOTATIONEXPIRYDATE: string = 'string_4321';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDPICKUPDEPOSITOVERRIDEAMOUNT: string = 'string_29283';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SALESLINEMUSTHAVEPICKUPDELIVERYMODE: string = 'string_29820';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNABLETOPICKUPMORETHANQTYREMAINING: string = 'string_29821';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_ORDERWASNOTCREATEDWITHDEPOSITOVERRIDE: string = 'string_29299';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_MULTIPLEEMPLOYEETOTALDISCOUNTSNOTALLOWED: string = 'string_29294';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_MULTIPLEEMPLOYEELINEDISCOUNTSNOTALLOWED: string = 'string_29295';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CANNOTSUSPENDCARTWITHACTIVETENDERLINES: string = 'string_29304';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TERMINALHASANOPENSHIFT: string = 'string_29338';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CASHDRAWERHASANOPENSHIFT: string = 'string_29306';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SHIFTVALIDATIONERROR = 'string_29307';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SHIFTALREADYOPENONDIFFERENTTERMINAL = 'string_29334';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SHIFTSTARTINGAMOUNTNOTENTERED = 'string_29308';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SHIFTTENDERDECLARATIONAMOUNTNOTENTERED = 'string_29309';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CANNOTCHANGECUSTOMERIDWHENEDITINGCUSTOMERORDER: string = 'string_4420';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDSHIPPINGDATE: string = 'string_29810';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CURRENCYCHANNELORDERMISMATCH: string = 'string_29319';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CURRENCYNOTFOUND: string = 'string_29374';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEPOSITMUSTBEGREATERTHANZERO: string = 'string_29325';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEPOSITOVERRIDEMUSTNOTBEGREATERTHANTOTALAMOUNT: string = 'string_29324';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEPOSITOVERRIDEMAYNOTBECHANGED: string = 'string_29326';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEPOSITOVERRIDEMAYNOTBECLEARED: string = 'string_29327';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTUSINGUNAUTHORIZEDACCOUNT: string = 'string_29351';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_EMPLOYEEDISCOUNTEXCEEDED: string = 'string_29346';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_MAXCOUNTINGDIFFERENCEEXCEEDED: string = 'string_29367';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANGETENDERTYPENOTSUPPORTED: string = 'string_29369';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_ELEVATEDUSERSAMEASLOGGEDONUSER: string = 'string_29256';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNABLETOGENERATETOKEN: string = 'string_1175';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTKEYNOTFOUND: string = 'string_1195';\n\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 SERVICE_UNAVAILABLE: string = 'string_29278';\n public static SERVER_TIMEOUT: string = 'string_29279';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCARDEXPIRATIONDATE: string = 'string_1180';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNABLETOAUTHORIZEPAYMENT: string = 'string_29280';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_VOIDTRANSACTIONCONTAINSTENDEREDLINES: string = 'string_29281';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_LOYALTYCARDALREADYISSUED: string = 'string_29284';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CUSTOMERNOTFOUND: string = 'string_29285';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDLOYALTYCARDNUMBER: string = 'string_29286';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_BLOCKEDLOYALTYCARD: string = 'string_29287';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_NOTENDERLOYALTYCARD: string = 'string_29322';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CONFLICTLOYALTYCARDCUSTOMERANDTRANSACTIONCUSTOMER: string = 'string_29288';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDDEVICE: string = 'string_507';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CDXREALTIMESERVICEFAILURE = 'string_29289';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_NOTENOUGHREWARDPOINTS = 'string_29290';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_NOMORETHANONELOYALTYTENDER = 'string_29291';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_AMOUNTDUEMUSTBEPAIDBEFORECHECKOUT = 'string_29292';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDPAYMENTREQUEST = 'string_29293';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTALREADYVOIDED = 'string_29293';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDADDRESS: string = 'string_29296';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_NOPRICEOVERRIDEFORRETURNS = 'string_29297';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_NOPRICEOVERRIDEFORGIFTCARDS = 'string_29298';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTAMOUNTEXCEEDSGIFTBALANCE = 'string_29301';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_NOMORETHANONEOPERATIONWITHAGIFTCARD = 'string_29302';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CANNOTADDNONPRODUCTITEMTOCUSTOMERORDER = 'string_29811';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_USEEXISTINGSHIFTPERMISSIONDENIED = 'string_29303';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SHIFTNOTFOUND = 'string_29336';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CUSTOMERACCOUNTDEPOSITMULTIPLECARTLINESNOTALLOWED = 'string_29340';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CUSTOMERACCOUNTNUMBERISNOTSET = 'string_29341';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CANNOTPAYFORCUSTOMERACCOUNTDEPOSITWITHCUSTOMERACCOUNTPAYMENTMETHOD = 'string_29342';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CUSTOMERACCOUNTDEPOSITCANNOTBEVOIDED = 'string_29344';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CUSTOMERACCOUNTDEPOSITCARTTYPEMISMATCH = 'string_29345';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_NONDRAWEROPERATIONSONLY = 'string_2123';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CANNOTSUSPENDCARTWITHACTIVEGIFTCARDSALESLINES = 'string_29305';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_RETURNITEMPRICEEXCEEDED = 'string_29310';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_RETURNTRANSACTIONTOTALEXCEEDED = 'string_29311';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PROPERTYUPDATENOTALLOWED = 'string_29312';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDQUANTITY = 'string_29313';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCUSTOMERORDERMODEFORADDCARTLINE: string = 'string_29314';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDCUSTOMERORDERMODEFORVOIDPRODUCTS: string = 'string_29335';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REMOTEPRODUCTSNOTSUPPORTEDWITHCURRENTTRANSACTIONTYPE = 'string_29315';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REFUNDAMOUNTMORETHANALLOWED = 'string_29316';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_VIEWTIMECLOCKNOTENABLED = 'string_29317';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_ITEMQUANTITYEXCEEDED: string = 'string_29318';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TIMECLOCKNOTENABLED: string = 'string_29321';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDUNITOFMEASURE: string = 'string_29323';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SETTLEINVOICEFAILED = 'string_29330';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_NOPRICEOVERRIDEFORINVOICELINES = 'string_29331';\n public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = ErrorTypeEnum.GENERICERRORMESSAGE;\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CARTNOTFOUND: string = 'string_29314';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CARTNOTACTIVE: string = 'string_29834';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCOMEEXPENSECARTDOESNOTALLOWSALESLINE: string = 'string_29337';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCOMEEXPENSECARTDOESNOTALLOWCUSTOMER: string = 'string_29348';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_GIFTCARDUNLOCKFAILED: string = 'string_29339';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNLOCKREGISTERFAILED: string = 'string_29352';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_OFFLINEDATABASECHUNKFILENOTFOUND: string = 'string_29830';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANGEPASSWORDFAILED = 'string_6613';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_RESETPASSWORDFAILED = 'string_6614';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANNELDATABASECONNECTIONFAILED: string = 'string_1429';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REALTIMESERVICECONNECTIONFAILED: string = 'string_1429';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SALESMUSTHAVEQUANTITYGREATERTHANZERO: string = 'string_29353';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_UNABLETOCAPTUREPAYMENT: string = 'string_29354';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_SESSIONEXPIRED: string = 'string_29256';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDAMOUNT: string = 'string_29372';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INVALIDBAGNUMBER: string = 'string_29373';\n\n // Retail Server Payment Error codes mapped to locale strings\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_BALANCEAMOUNTEXCEEDSMAXIMUMALLOWEDVALUE: string = 'string_29355';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANGEBACKISNOTALLOWED: string = 'string_29356';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCORRECTPAYMENTAMOUNTSIGN: string = 'string_29357';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_OVERTENDERAMOUNTEXCEEDSMAXIMUMALLOWEDVALUE: string = 'string_29358';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTEXCEEDSMAXIMUMAMOUNTPERLINE: string = 'string_29359';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTEXCEEDSMAXIMUMAMOUNTPERTRANSACTION: string = 'string_29360';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTEXCEEDSMINIMUMAMOUNTPERLINE: string = 'string_29361';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTEXCEEDSMINIMUMAMOUNTPERTRANSACTION: string = 'string_29362';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PAYMENTMUSTBEUSEDTOFINALIZETRANSACTION: string = 'string_29363';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PRODUCTISNOTACTIVE: string = 'string_29364';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_PRODUCTISBLOCKED: string = 'string_29365';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CANNOTRETURNMULTIPLETRANSACTIONS: string = 'string_29366';\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 * Gets whether an error code is present in the error collection or not.\n * @param {string} errorType The error resource identifier.\n * @return {boolean} Whether an error code is present in the error collection or not.\n */\n public static hasError(errors: ProxyError[], errorType: string): boolean {\n if (hasElements(errors)) {\n for (const error of errors) {\n const errorTypeValue: string = error.ErrorCode != null ? ErrorTypeEnum[error.ErrorCode.toUpperCase()] : null;\n\n // compares both error resource id as well as label resource id\n if (!compare(errorType, error.ErrorCode, true) || !compare(errorType, errorTypeValue, true)) {\n // error found\n return true;\n }\n }\n }\n\n return false;\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(\n errorCode: string,\n errorMessage: string,\n localizedErrorMessage,\n canRetry: boolean,\n extraData: any,\n ...formatData: any[]\n ) {\n this._errorCode = errorCode;\n this._errorMessage = errorMessage;\n this._localizedErrorMessage = localizedErrorMessage;\n this._canRetry = canRetry;\n this._commerceException = null;\n this._formatData = formatData;\n this._extraData = extraData;\n }\n\n /**\n * Takes a proxy error and returns a proper JS error version of it\n * @param proxyError The proxyError\n */\n public static toError(proxyError: ProxyError): Error {\n const errorName = proxyError.ErrorCode || 'Proxy Error';\n const errorMessage = proxyError.ErrorMessage || proxyError.LocalizedErrorMessage;\n const e = new ProxyErrorSDK(errorName, errorMessage, proxyError.CanRetry);\n\n // Assign extra error details to error.\n // ts-ignoring as the standard error contract only supports name and message\n if (proxyError.extraData) {\n // @ts-ignore\n e.requestUri = proxyError.extraData.requestUri;\n\n // @ts-ignore\n e.data = proxyError.extraData.data;\n\n // @ts-ignore\n e.statusCode = proxyError.extraData.statusCode;\n }\n\n return e;\n }\n\n /**\n * Gets the commerce exception that caused this error.\n *\n * @return {any} The commerce exception.\n */\n public get commerceException(): any {\n return this._commerceException;\n }\n\n /**\n * Sets the commerce exception that caused this error.\n *\n * @param {any} exception The commerce exception.\n */\n public set commerceException(exception: any) {\n this._commerceException = exception;\n }\n\n /**\n * Gets the error code.\n *\n * @return {string} The error code.\n */\n public get ErrorCode(): string {\n return this._errorCode;\n }\n\n /**\n * Gets the error message.\n *\n * @return {string} The error message.\n */\n public get ErrorMessage(): string {\n return this._errorMessage;\n }\n\n /**\n * Gets the localized error message.\n *\n * @return {string} The localized error message.\n */\n public get LocalizedErrorMessage(): string {\n return this._localizedErrorMessage;\n }\n\n /**\n * Gets the format data used on formatted error messages.\n *\n * @return {any[]} The format data.\n */\n public get formatData(): any[] {\n return this._formatData;\n }\n\n /**\n * Gets the additional information the might be supplied by the error.\n *\n * @return {any} The extra data.\n */\n public get extraData(): any {\n return this._extraData;\n }\n\n /**\n * Gets the error title. Defaults to the resource string string_29004 for the error title if\n * no error title is mapped for the error.\n */\n public get ErrorTitleResourceId(): string {\n const errorTitleResourceId = 'string_29004'; // Error string: There is a problem with the server\n return errorTitleResourceId;\n }\n\n /**\n * Gets whether the action that generated the error can be retried.\n *\n * @return {string} Whether the action that generated the error can be retried.\n */\n public get CanRetry(): boolean {\n return this._canRetry;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// TODO - refactor to incorporate inbuilt JS extension method\n// TODO - integrate Trace.error\n\nexport const EMPTY = '';\n\nexport function convertToString(obj: any, accumulator: string[] = [], depth: number = 0): string {\n if (!obj) {\n return null;\n }\n\n if (typeof obj === 'string') {\n return obj;\n }\n\n if (typeof obj !== 'object') {\n return obj.toString();\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n const value = obj[prop];\n const stringifyValue = convertToString(value, accumulator, depth + 1);\n if (stringifyValue) {\n if (accumulator.length > 0 && depth === 0) {\n accumulator.push('&');\n }\n accumulator.push(prop);\n accumulator.push(typeof value === 'object' ? '.' : ':');\n accumulator.push(stringifyValue);\n }\n }\n }\n\n if (depth === 0) {\n return accumulator.join(EMPTY);\n }\n}\n\n/**\n * Verifies whether the object array has elements.\n *\n * @param {any[]} array The array.\n * @return {boolean} True if the object has elements, false otherwise.\n */\nexport function hasElements(array?: any[]): boolean {\n return !!array && array.length > 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isObjectNotEmptyOrNull(value: object): boolean {\n return value && typeof value === 'object' && Object.keys(value).length > 0;\n}\n\n/**\n * Verifies whether the string is empty, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty, false otherwise.\n */\nexport function isEmpty(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmpty() has received input parameter not of type string.\");\n }\n return object != null && object.length === 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isEmptyOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace() has received input parameter not of type string.\");\n }\n if (object) {\n // Make sure object is of type string\n object = object.toString();\n\n return typeof object.trim === 'function' && (object.trim() || '').length === 0;\n }\n return false;\n}\n\n/**\n * Verifies whether the string is null or whitespace.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is null or whitespace, false otherwise.\n */\nexport function isNullOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isNullOrWhitespace() has received input parameter not of type string.\");\n }\n let returnValue = true;\n try {\n returnValue = !object;\n if (!returnValue) {\n // Make sure object is of type string\n object = object.toString();\n returnValue = object.trim().length === 0;\n }\n } catch (err) {\n // Commerce.Proxy.Tracer.Error(\"StringExtensions.isNullOrWhitespace() caught exception = {0}\", err.message);\n }\n\n return returnValue;\n}\n\n/**\n * Pad left with padString until the required length is reached.\n */\nexport function padLeft(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padLeft() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object = padString + object;\n }\n return object;\n}\n\n/**\n * Pad right with padString until the required length is reached.\n */\nexport function padRight(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padRight() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object += padString;\n }\n return object;\n}\n\n/**\n * Basic C# like string format function.\n */\nexport function format(object: string, ...params: any[]): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace has received input parameter not of type string.\");\n }\n\n if (isNullOrWhitespace(object)) {\n return object;\n }\n\n if (params == null) {\n throw new Error('StringExtensions::format Invalid parameter (params) cannot be null.');\n }\n\n for (let index = 0; index < params.length; index++) {\n if (params[index] == null) {\n throw new Error('StringExtensions::format Invalid parameter (at index ' + index + ') cannot be null or undefined.');\n }\n\n // escape '$' to avoid '$0' issue, '$$$$' means '$$' escaped\n const param = params[index].toString().replace(/\\$/gi, '$$$$');\n const regexp = new RegExp('\\\\{' + index + '\\\\}', 'gi');\n object = object.replace(regexp, param);\n }\n\n return object;\n}\n\n/**\n * Returns an ordinal to indicate the ordering of the strings\n * -1: This object is less than comparison object\n * 0: This object is equal to the comparison object\n * 1: This object is greater than the comparison object\n */\nexport function compare(object: string, comparisonObject: string, ignoreCase?: boolean): number {\n if (!object && !comparisonObject) {\n return 0;\n } else if (!object) {\n return -1;\n } else if (!comparisonObject) {\n return 1;\n }\n\n const val1: string = ignoreCase ? object.toLowerCase() : object;\n const val2: string = ignoreCase ? comparisonObject.toLowerCase() : comparisonObject;\n\n return val1 < val2 ? -1 : val1 > val2 ? 1 : 0;\n}\n\n/**\n * Replaces new line character with
for display.\n */\nexport function replaceNewLineWithBr(text: string) {\n if (text) {\n return replaceAll(text, '\\n', '
');\n }\n\n return text;\n}\n\n/**\n * Replaces all instances of @txtToReplace\n */\nexport function replaceAll(txt, txtToReplace, valueToReplaceWith) {\n return txt.replace(new RegExp(txtToReplace, 'g'), valueToReplaceWith);\n}\n\n/**\n * Escapes single quote to be send as part of URLs.\n */\nexport function escapeSingleQuote(text: string) {\n return text.replace(/(')/g, '\\'$1');\n}\n\n/**\n * Removes the trailing slashes from the URI.\n *\n * @param {string} uri The URI to clean.\n * @return {string} The uri without trailing slashes.\n */\nexport function CleanUri(uri: string): string {\n if (isNullOrWhitespace(uri)) {\n return EMPTY;\n }\n\n // the cutoff index for the string\n let cutoffIndex = uri.length - 1;\n\n while (cutoffIndex >= 0 && (uri[cutoffIndex] === '/' || uri[cutoffIndex] === '\\\\')) {\n --cutoffIndex;\n }\n\n // if it ever becomes negative, cutoffIndex + 1 = 0\n return uri.substr(0, cutoffIndex + 1);\n}\n\n/**\n * Determines whether the end of string matches a specified string.\n *\n * @param {string} str: The string to search in.\n * @param {string} suffix: The string to compare to the substring at the end of str.\n * @param {boolean} caseSensitive: Determines if the comparison case sensitive (false, by default)\n * @return {boolean} true if suffix matches the end of str; otherwise, false.\n */\nexport function endsWith(str: string, suffix: string, caseSensitive: boolean = false): boolean {\n if (!str || !suffix) {\n return false;\n }\n if (suffix.length > str.length) {\n return false;\n }\n\n const originalString: string = caseSensitive ? str : str.toLowerCase();\n const subString: string = caseSensitive ? suffix : suffix.toLowerCase();\n return originalString.indexOf(subString, originalString.length - subString.length) !== -1;\n}\n","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { Employee, EmployeeActivitySearchCriteria, EmployeeActivity, OrgUnit, ClientBookCustomerSearchCriteria, ClientBookCustomer, ClientBookRefiner, ClientBookChanges } from '../Entities/CommerceTypes.g';\r\n import { EmployeeClass, EmployeeActivityClass, OrgUnitClass, ClientBookCustomerClass, ClientBookRefinerClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function employeesQuery(staffId?: string): DataServiceQuery {\r\n var key = (staffId) ? { StaffId: staffId } : null;\r\n return new DataServiceQuery(\"Employees\", \"Employee\", EmployeeClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: Employee): IDataServiceRequest {\r\n return employeesQuery().create(entity);\r\n }\r\n\r\n export function createEmployeeAsync(context: IContext, entity: Employee): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: Employee): IDataServiceRequest {\r\n return employeesQuery(entity.StaffId).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: Employee): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: Employee): IDataServiceRequest {\r\n return employeesQuery(entity.StaffId).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: Employee): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(staffId: string): IDataServiceRequest {\r\n return employeesQuery(staffId).read();\r\n }\r\n\r\n export function readAsync(context: IContext, staffId: string): AsyncResult {\r\n const request = createReadAsync(staffId);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return employeesQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createGetActivitiesInput(queryResultSettings: IQueryResultSettings, employeeActivitySearchCriteria?: EmployeeActivitySearchCriteria | null): IDataServiceRequest { \r\n const query = employeesQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetActivities', true, EmployeeActivityClass, 'true', {bypassCache: 'none', returnEntity: 'EmployeeActivity'}, {employeeActivitySearchCriteria: employeeActivitySearchCriteria });\r\n } \r\n \r\n export function getActivitiesAsync(context: IContext, employeeActivitySearchCriteria?: EmployeeActivitySearchCriteria | null):AsyncResult {\r\n const request = createGetActivitiesInput(context.queryResultSettings, employeeActivitySearchCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetManagerActivityViewInput(queryResultSettings: IQueryResultSettings, employeeActivitySearchCriteria?: EmployeeActivitySearchCriteria | null): IDataServiceRequest { \r\n const query = employeesQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetManagerActivityView', true, EmployeeActivityClass, 'true', {bypassCache: 'none', returnEntity: 'EmployeeActivity'}, {employeeActivitySearchCriteria: employeeActivitySearchCriteria });\r\n } \r\n \r\n export function getManagerActivityViewAsync(context: IContext, employeeActivitySearchCriteria?: EmployeeActivitySearchCriteria | null):AsyncResult {\r\n const request = createGetManagerActivityViewInput(context.queryResultSettings, employeeActivitySearchCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createRegisterActivityInput(staffId: string, employeeActivityType: number): IDataServiceRequest { \r\n const query = employeesQuery(staffId);\r\n return query.createDataServiceRequestForOperation('RegisterActivity', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {employeeActivityType: employeeActivityType });\r\n } \r\n \r\n export function registerActivityAsync(context: IContext, staffId: string, employeeActivityType: number):AsyncResult {\r\n const request = createRegisterActivityInput(staffId, employeeActivityType);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetAccessibleOrgUnitsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \r\n const query = employeesQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetAccessibleOrgUnits', true, OrgUnitClass, 'true', {bypassCache: 'none', returnEntity: 'OrgUnit'}, { });\r\n } \r\n \r\n export function getAccessibleOrgUnitsAsync(context: IContext, ):AsyncResult {\r\n const request = createGetAccessibleOrgUnitsInput(context.queryResultSettings, );\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetLatestActivityInput(): IDataServiceRequest { \r\n const query = employeesQuery();\r\n return query.createDataServiceRequestForOperation('GetLatestActivity', true, EmployeeActivityClass, 'false', {bypassCache: 'none', returnEntity: 'EmployeeActivity'}, { });\r\n } \r\n \r\n export function getLatestActivityAsync(context: IContext, ):AsyncResult {\r\n const request = createGetLatestActivityInput();\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createSearchClientBookCustomersInput(queryResultSettings: IQueryResultSettings, clientBookCustomerSearchCriteria?: ClientBookCustomerSearchCriteria | null): IDataServiceRequest { \r\n const query = employeesQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('SearchClientBookCustomers', true, ClientBookCustomerClass, 'true', {bypassCache: 'none', returnEntity: 'ClientBookCustomer'}, {clientBookCustomerSearchCriteria: clientBookCustomerSearchCriteria });\r\n } \r\n \r\n export function searchClientBookCustomersAsync(context: IContext, clientBookCustomerSearchCriteria?: ClientBookCustomerSearchCriteria | null):AsyncResult {\r\n const request = createSearchClientBookCustomersInput(context.queryResultSettings, clientBookCustomerSearchCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetClientBookSearchRefinersInput(queryResultSettings: IQueryResultSettings, refinerSourceTypes: number[], searchCriteria?: ClientBookCustomerSearchCriteria | null): IDataServiceRequest { \r\n const query = employeesQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetClientBookSearchRefiners', true, ClientBookRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'ClientBookRefiner'}, {refinerSourceTypes: refinerSourceTypes, searchCriteria: searchCriteria });\r\n } \r\n \r\n export function getClientBookSearchRefinersAsync(context: IContext, refinerSourceTypes: number[], searchCriteria?: ClientBookCustomerSearchCriteria | null):AsyncResult {\r\n const request = createGetClientBookSearchRefinersInput(context.queryResultSettings, refinerSourceTypes, searchCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createUpdateClientBookInput(clientBookChanges?: ClientBookChanges | null): IDataServiceRequest { \r\n const query = employeesQuery();\r\n return query.createDataServiceRequestForOperation('UpdateClientBook', true, '', '', {bypassCache: 'get', returnEntity: ''}, {clientBookChanges: clientBookChanges });\r\n } \r\n \r\n export function updateClientBookAsync(context: IContext, clientBookChanges?: ClientBookChanges | null):AsyncResult {\r\n const request = createUpdateClientBookInput(clientBookChanges);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetCurrentEmployeeInput(): IDataServiceRequest { \r\n const query = employeesQuery();\r\n return query.createDataServiceRequestForOperation('GetCurrentEmployee', false, EmployeeClass, 'false', {bypassCache: 'none', returnEntity: 'Employee'}, { });\r\n } \r\n \r\n export function getCurrentEmployeeAsync(context: IContext, ):AsyncResult {\r\n const request = createGetCurrentEmployeeInput();\r\n return executeAction(request, context);\r\n } \r\n \r\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, ProductDimension, ProductVariantResolutionOnKitSelectionContext, ProductDimensionValue, SimpleProduct, ComponentInSlotRelation, ProductComparisonLine, ProductSearchResult, ProductRefinerValue, ProductSearchCriteria, ProductRefiner, ChangedProductsSearchCriteria, ReadChangedProductsSession, DeletedListingsResult, ProductRating, ProductAssortmentInterval, Address, ProductDeliveryOptions, ListingPublishStatus, ProductPrice, ProductAvailableQuantity, ProjectionDomain, AffiliationLoyaltyTier, ProductComponent, CategoryPathLookup, CategoryPathResult, ProductLookupClause, SearchSuggestion, AttributeProduct, AttributeValue, MediaLocation, MediaBlob, ProductRelationType, UnitOfMeasure, ProductWarrantiesMapping, ProductWarehouse, ProductWarehouseInventoryInformation, InventoryAvailabilitySearchCriteria } from '../Entities/CommerceTypes.g';\n import { ProductClass, ProductDimensionValueClass, SimpleProductClass, ProductComparisonLineClass, ProductSearchResultClass, ProductRefinerClass, ReadChangedProductsSessionClass, DeletedListingsResultClass, ProductRatingClass, ProductAssortmentIntervalClass, ProductDeliveryOptionsClass, ProductPriceClass, ProductAvailableQuantityClass, ProductComponentClass, CategoryPathResultClass, SearchSuggestionClass, ProductRefinerValueClass, AttributeProductClass, AttributeValueClass, MediaLocationClass, MediaBlobClass, ProductRelationTypeClass, UnitOfMeasureClass, 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 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 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[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByIds', true, SimpleProductClass, 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productIds: productIds });\n } \n \n export function getByIdsAsync(context: IContext, channelId: number, productIds: number[]):AsyncResult {\n const request = createGetByIdsInput(context.queryResultSettings, channelId, productIds);\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 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 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 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 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 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 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): 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 });\n } \n \n export function getActivePricesAsync(context: IContext, projectDomain: ProjectionDomain | null, productIds: number[], activeDate: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null):AsyncResult {\n const request = createGetActivePricesInput(context.queryResultSettings, projectDomain, productIds, activeDate, customerId, affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice);\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 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 createSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByCategory', false, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId });\n } \n \n export function searchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number):AsyncResult {\n const request = createSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId);\n return executeAction(request, context);\n } \n \n export function createSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByText', false, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText });\n } \n \n export function searchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null):AsyncResult {\n const request = createSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText);\n return executeAction(request, context);\n } \n \n export function createSearchByCriteriaInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByCriteria', true, ProductSearchResultClass, 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {searchCriteria: searchCriteria });\n } \n \n export function searchByCriteriaAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createSearchByCriteriaInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByLookupClausesInput(queryResultSettings: IQueryResultSettings, channelId: number, productLookupClauses?: ProductLookupClause[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByLookupClauses', true, SimpleProductClass, 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productLookupClauses: productLookupClauses });\n } \n \n export function getByLookupClausesAsync(context: IContext, channelId: number, productLookupClauses?: ProductLookupClause[] | null):AsyncResult {\n const request = createGetByLookupClausesInput(context.queryResultSettings, channelId, productLookupClauses);\n return executeAction(request, context);\n } \n \n export function 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 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 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 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): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetEstimatedProductWarehouseAvailability', true, ProductWarehouseInventoryInformationClass, 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {productWarehouses: productWarehouses });\n } \n \n export function getEstimatedProductWarehouseAvailabilityAsync(context: IContext, productWarehouses?: ProductWarehouse[] | null):AsyncResult {\n const request = createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses);\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 ","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { ProductCatalog } from '../Entities/CommerceTypes.g';\r\n import { ProductCatalogClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function catalogsQuery(recordId?: number): DataServiceQuery {\r\n var key = (recordId) ? { RecordId: recordId } : null;\r\n return new DataServiceQuery(\"Catalogs\", \"ProductCatalog\", ProductCatalogClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: ProductCatalog): IDataServiceRequest {\r\n return catalogsQuery().create(entity);\r\n }\r\n\r\n export function createProductCatalogAsync(context: IContext, entity: ProductCatalog): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: ProductCatalog): IDataServiceRequest {\r\n return catalogsQuery(entity.RecordId).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: ProductCatalog): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: ProductCatalog): IDataServiceRequest {\r\n return catalogsQuery(entity.RecordId).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: ProductCatalog): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(recordId: number): IDataServiceRequest {\r\n return catalogsQuery(recordId).read();\r\n }\r\n\r\n export function readAsync(context: IContext, recordId: number): AsyncResult {\r\n const request = createReadAsync(recordId);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return catalogsQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createGetCatalogsInput(queryResultSettings: IQueryResultSettings, channelId: number, activeOnly: boolean): IDataServiceRequest { \r\n const query = catalogsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetCatalogs', true, ProductCatalogClass, 'true', {bypassCache: 'none', returnEntity: 'ProductCatalog'}, {channelId: channelId, activeOnly: activeOnly });\r\n } \r\n \r\n export function getCatalogsAsync(context: IContext, channelId: number, activeOnly: boolean):AsyncResult {\r\n const request = createGetCatalogsInput(context.queryResultSettings, channelId, activeOnly);\r\n return executeAction(request, context);\r\n } \r\n \r\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, BusinessPartnerProspect, BusinessPartnerUser, OrderShipments } from '../Entities/CommerceTypes.g';\n import { BusinessPartnerClass, BusinessPartnerProspectClass, BusinessPartnerUserClass, OrderShipmentsClass } 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 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 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 ","/*!\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 { RetailLogger, Tracer } from '../logging';\nimport { ErrorHelper, ErrorTypeEnum } 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(ErrorTypeEnum.SERVER_ERROR, 'The value of Content-Type on server response is not supported.', EMPTY, false, error)\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 === ErrorHelper.MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR) {\n commerceErrors = [\n new ProxyError(\n ErrorHelper.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(dataValidation.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR, EMPTY, dataValidation.LocalizedMessage, false, errorResponse)\n );\n break;\n\n case ErrorParser.StorageExceptionType:\n errors.push(new ProxyError(ErrorTypeEnum.SERVICE_UNAVAILABLE, EMPTY, serverException.LocalizedMessage, false, errorResponse));\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(failure.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR, failure.ErrorContext || '', failure.LocalizedMessage, false, {})\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 RetailLogger.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","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { SalesOrderContextualOperationsMap, OrderSearchCriteria, FulfillmentLineSearchCriteria, FulfillmentLineContextualOperationsMap } from '../Entities/CommerceTypes.g';\r\n import { SalesOrderContextualOperationsMapClass, FulfillmentLineContextualOperationsMapClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function applicableOperationsQuery(id?: string): DataServiceQuery {\r\n var key = (id) ? { Id: id } : null;\r\n return new DataServiceQuery(\"ApplicableOperations\", \"SalesOrderContextualOperationsMap\", SalesOrderContextualOperationsMapClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: SalesOrderContextualOperationsMap): IDataServiceRequest {\r\n return applicableOperationsQuery().create(entity);\r\n }\r\n\r\n export function createSalesOrderContextualOperationsMapAsync(context: IContext, entity: SalesOrderContextualOperationsMap): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: SalesOrderContextualOperationsMap): IDataServiceRequest {\r\n return applicableOperationsQuery(entity.Id).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: SalesOrderContextualOperationsMap): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: SalesOrderContextualOperationsMap): IDataServiceRequest {\r\n return applicableOperationsQuery(entity.Id).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: SalesOrderContextualOperationsMap): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(id: string): IDataServiceRequest {\r\n return applicableOperationsQuery(id).read();\r\n }\r\n\r\n export function readAsync(context: IContext, id: string): AsyncResult {\r\n const request = createReadAsync(id);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return applicableOperationsQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createGetOrdersInput(queryResultSettings: IQueryResultSettings, orderSearchCriteria?: OrderSearchCriteria | null): IDataServiceRequest { \r\n const query = applicableOperationsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetOrders', true, SalesOrderContextualOperationsMapClass, 'true', {bypassCache: 'none', returnEntity: 'SalesOrderContextualOperationsMap'}, {orderSearchCriteria: orderSearchCriteria });\r\n } \r\n \r\n export function getOrdersAsync(context: IContext, orderSearchCriteria?: OrderSearchCriteria | null):AsyncResult {\r\n const request = createGetOrdersInput(context.queryResultSettings, orderSearchCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetFulfillmentLinesInput(queryResultSettings: IQueryResultSettings, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null): IDataServiceRequest { \r\n const query = applicableOperationsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetFulfillmentLines', true, FulfillmentLineContextualOperationsMapClass, 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLineContextualOperationsMap'}, {fulfillmentLineSearchCriteria: fulfillmentLineSearchCriteria });\r\n } \r\n \r\n export function getFulfillmentLinesAsync(context: IContext, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null):AsyncResult {\r\n const request = createGetFulfillmentLinesInput(context.queryResultSettings, fulfillmentLineSearchCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { BusinessPartnerUser, AccountStatementRequest } from '../Entities/CommerceTypes.g';\n import { BusinessPartnerUserClass } 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 ","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { TransferOrder, TransferOrderLine, Comment, TransferOrderJournal, ReceiptRetrievalCriteria, Receipt } from '../Entities/CommerceTypes.g';\r\n import { TransferOrderClass, TransferOrderLineClass, CommentClass, TransferOrderJournalClass, ReceiptClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function transferOrdersQuery(orderId?: string): DataServiceQuery {\r\n var key = (orderId) ? { OrderId: orderId } : null;\r\n return new DataServiceQuery(\"TransferOrders\", \"TransferOrder\", TransferOrderClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: TransferOrder): IDataServiceRequest {\r\n return transferOrdersQuery().create(entity);\r\n }\r\n\r\n export function createTransferOrderAsync(context: IContext, entity: TransferOrder): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: TransferOrder): IDataServiceRequest {\r\n return transferOrdersQuery(entity.OrderId).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: TransferOrder): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: TransferOrder): IDataServiceRequest {\r\n return transferOrdersQuery(entity.OrderId).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: TransferOrder): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(orderId: string): IDataServiceRequest {\r\n return transferOrdersQuery(orderId).read();\r\n }\r\n\r\n export function readAsync(context: IContext, orderId: string): AsyncResult {\r\n const request = createReadAsync(orderId);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return transferOrdersQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createCommitInput(orderId: string, skipNotValidLines?: boolean | null): IDataServiceRequest { \r\n const query = transferOrdersQuery(orderId);\r\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, {skipNotValidLines: skipNotValidLines });\r\n } \r\n \r\n export function commitAsync(context: IContext, orderId: string, skipNotValidLines?: boolean | null):AsyncResult {\r\n const request = createCommitInput(orderId, skipNotValidLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetTransferOrderLinesInput(queryResultSettings: IQueryResultSettings, orderId: string, ): IDataServiceRequest { \r\n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetTransferOrderLines', true, TransferOrderLineClass, 'true', {bypassCache: 'none', returnEntity: 'TransferOrderLine'}, { });\r\n } \r\n \r\n export function getTransferOrderLinesAsync(context: IContext, orderId: string):AsyncResult {\r\n const request = createGetTransferOrderLinesInput(context.queryResultSettings, orderId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createCreateTransferOrderLinesInput(queryResultSettings: IQueryResultSettings, orderId: string, transferOrderLines?: TransferOrderLine[] | null): IDataServiceRequest { \r\n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('CreateTransferOrderLines', true, TransferOrderLineClass, 'true', {bypassCache: 'get', returnEntity: 'TransferOrderLine'}, {transferOrderLines: transferOrderLines });\r\n } \r\n \r\n export function createTransferOrderLinesAsync(context: IContext, orderId: string, transferOrderLines?: TransferOrderLine[] | null):AsyncResult {\r\n const request = createCreateTransferOrderLinesInput(context.queryResultSettings, orderId, transferOrderLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createUpdateTransferOrderLinesInput(queryResultSettings: IQueryResultSettings, orderId: string, transferOrderLines?: TransferOrderLine[] | null): IDataServiceRequest { \r\n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('UpdateTransferOrderLines', true, TransferOrderLineClass, 'true', {bypassCache: 'get', returnEntity: 'TransferOrderLine'}, {transferOrderLines: transferOrderLines });\r\n } \r\n \r\n export function updateTransferOrderLinesAsync(context: IContext, orderId: string, transferOrderLines?: TransferOrderLine[] | null):AsyncResult {\r\n const request = createUpdateTransferOrderLinesInput(context.queryResultSettings, orderId, transferOrderLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetTransferOrderCommentsInput(queryResultSettings: IQueryResultSettings, orderId: string, ): IDataServiceRequest { \r\n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetTransferOrderComments', true, CommentClass, 'true', {bypassCache: 'none', returnEntity: 'Comment'}, { });\r\n } \r\n \r\n export function getTransferOrderCommentsAsync(context: IContext, orderId: string):AsyncResult {\r\n const request = createGetTransferOrderCommentsInput(context.queryResultSettings, orderId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createAddTransferOrderCommentInput(orderId: string, authorStaffId?: string | null, commentText?: string | null): IDataServiceRequest { \r\n const query = transferOrdersQuery(orderId);\r\n return query.createDataServiceRequestForOperation('AddTransferOrderComment', true, CommentClass, 'false', {bypassCache: 'get', returnEntity: 'Comment'}, {AuthorStaffId: authorStaffId, CommentText: commentText });\r\n } \r\n \r\n export function addTransferOrderCommentAsync(context: IContext, orderId: string, authorStaffId?: string | null, commentText?: string | null):AsyncResult {\r\n const request = createAddTransferOrderCommentInput(orderId, authorStaffId, commentText);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createDeleteTransferOrderLinesInput(queryResultSettings: IQueryResultSettings, orderId: string, transferOrderLines?: TransferOrderLine[] | null): IDataServiceRequest { \r\n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('DeleteTransferOrderLines', true, TransferOrderLineClass, 'true', {bypassCache: 'get', returnEntity: 'TransferOrderLine'}, {transferOrderLines: transferOrderLines });\r\n } \r\n \r\n export function deleteTransferOrderLinesAsync(context: IContext, orderId: string, transferOrderLines?: TransferOrderLine[] | null):AsyncResult {\r\n const request = createDeleteTransferOrderLinesInput(context.queryResultSettings, orderId, transferOrderLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetTransferOrderJournalsInput(queryResultSettings: IQueryResultSettings, orderId: string, ): IDataServiceRequest { \r\n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetTransferOrderJournals', true, TransferOrderJournalClass, 'true', {bypassCache: 'none', returnEntity: 'TransferOrderJournal'}, { });\r\n } \r\n \r\n export function getTransferOrderJournalsAsync(context: IContext, orderId: string):AsyncResult {\r\n const request = createGetTransferOrderJournalsInput(context.queryResultSettings, orderId);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetTransferPackingSlipInput(queryResultSettings: IQueryResultSettings, orderId: string, voucherId?: string | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \r\n const query = transferOrdersQuery(orderId).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetTransferPackingSlip', true, ReceiptClass, 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {voucherId: voucherId, receiptRetrievalCriteria: receiptRetrievalCriteria });\r\n } \r\n \r\n export function getTransferPackingSlipAsync(context: IContext, orderId: string, voucherId?: string | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\r\n const request = createGetTransferPackingSlipInput(context.queryResultSettings, orderId, voucherId, receiptRetrievalCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { SalesOrder, SalesOrderSearchCriteria, OrderSearchCriteria, ReceiptRetrievalCriteria, Receipt, SearchReceiptCriteria, ElectronicAddress, ShipFulfillmentLine, FulfillmentLineParameter, FulfillmentLineSearchCriteria, FulfillmentLine, RejectFulfillmentLine, SalesInvoice, OrderInvoice, InvoiceSearchCriteria, InvoiceDetailsSearchCriteria, SalesLine, PickAndPackSalesLineParameter, PickingList, FulfillmentLineUserAlerts, PackingSlipData } from '../Entities/CommerceTypes.g';\n import { SalesOrderClass, ReceiptClass, FulfillmentLineClass, SalesInvoiceClass, OrderInvoiceClass, SalesLineClass, PickingListClass, FulfillmentLineUserAlertsClass, 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 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 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 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 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 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 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 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 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 /**\n * SalesStatus enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const 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 /**\n * InventoryInboundOutboundSourceDocumentStatus enum type.\n */\n export const 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 /**\n * InventorySourceDocumentType enum type.\n */\n export const 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 /**\n * InventoryInboundOutboundDocumentState enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const enum UserAlertSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Inventory_SerialNumberMissing_Warning member.\n */\n Inventory_SerialNumberMissing_Warning = 1,\n \n /**\n * The Inventory_SerialNumberMissing_Error member.\n */\n Inventory_SerialNumberMissing_Error = 2,\n \n /**\n * The Inventory_SerialNumberInsufficientStock_Warning member.\n */\n Inventory_SerialNumberInsufficientStock_Warning = 3,\n \n /**\n * The Inventory_SerialNumberInsufficientStock_Error member.\n */\n Inventory_SerialNumberInsufficientStock_Error = 4\n }\n \n /**\n * AddressType enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const enum RetailGiftCardType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The InternalGiftCard member.\n */\n InternalGiftCard = 1,\n \n /**\n * The ExternalGiftCard member.\n */\n ExternalGiftCard = 2\n }\n \n /**\n * DiscountLineType enum type.\n */\n export const 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 const 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 const enum CustomerDiscountType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The LineDiscount member.\n */\n LineDiscount = 1,\n \n /**\n * The MultilineDiscount member.\n */\n MultilineDiscount = 2,\n \n /**\n * The TotalDiscount member.\n */\n TotalDiscount = 3\n }\n \n /**\n * ConcurrencyMode enum type.\n */\n export const 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 /**\n * ReasonCodeInputType enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const enum RoundingMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Nearest member.\n */\n Nearest = 1,\n \n /**\n * The Up member.\n */\n Up = 2,\n \n /**\n * The Down member.\n */\n Down = 3\n }\n \n /**\n * PriceMethod enum type.\n */\n export const enum PriceMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Fixed member.\n */\n Fixed = 1,\n \n /**\n * The AmountOff member.\n */\n AmountOff = 2,\n \n /**\n * The PercentOff member.\n */\n PercentOff = 3\n }\n \n /**\n * LineMultilineDiscountOnItem enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 /**\n * RetailCustomerSearchMode enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const enum FiscalIntegrationConnectorType {\n \n /**\n * The Local member.\n */\n Local = 0,\n \n /**\n * The External member.\n */\n External = 1,\n \n /**\n * The Internal member.\n */\n Internal = 2\n }\n \n /**\n * ReceiptType enum type.\n */\n export const 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 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 * RetailAffiliationType enum type.\n */\n export const 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 const 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 const 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 const 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 /**\n * RefinerType enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 /**\n * InventAvailabilityCalculationMode enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const enum SalesInvoiceType {\n \n /**\n * The Journal member.\n */\n Journal = 0,\n \n /**\n * The Quotation member.\n */\n 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 Blanket member.\n */\n Blanket = 5,\n \n /**\n * The ItemRequirements member.\n */\n ItemRequirements = 6\n }\n \n /**\n * InvoiceType enum type.\n */\n export const 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 const 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 const 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 const enum TaxOverrideBy {\n \n /**\n * The Line member.\n */\n Line = 0,\n \n /**\n * The Cart member.\n */\n Cart = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * RetailOperation enum type.\n */\n export const 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 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 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 ApplicationExit member.\n */\n ApplicationExit = 900,\n \n /**\n * The PrintTaxFree member.\n */\n PrintTaxFree = 906,\n \n /**\n * The PrintPreviousSlip member.\n */\n PrintPreviousSlip = 907,\n \n /**\n * The PrintPreviousInvoice member.\n */\n PrintPreviousInvoice = 908,\n \n /**\n * The UploadPrinterLogo member.\n */\n UploadPrinterLogo = 909,\n \n /**\n * The RestartComputer member.\n */\n RestartComputer = 910,\n \n /**\n * The ShutdownComputer member.\n */\n ShutdownComputer = 911,\n \n /**\n * The DesignModeEnable member.\n */\n DesignModeEnable = 912,\n \n /**\n * The DesignModeDisable member.\n */\n DesignModeDisable = 913,\n \n /**\n * The MinimizePOSWindow member.\n */\n MinimizePOSWindow = 914,\n \n /**\n * The BlankOperation member.\n */\n BlankOperation = 915,\n \n /**\n * The WindowsWorkflowOperation member.\n */\n WindowsWorkflowOperation = 916,\n \n /**\n * The DatabaseConnectionStatus member.\n */\n DatabaseConnectionStatus = 917,\n \n /**\n * The ShowBlindClosedShifts member.\n */\n ShowBlindClosedShifts = 918,\n \n /**\n * The ExtendedLogOn member.\n */\n ExtendedLogOn = 919,\n \n /**\n * The TimeRegistration member.\n */\n TimeRegistration = 920,\n \n /**\n * The ViewTimeClockEntries member.\n */\n ViewTimeClockEntries = 921,\n \n /**\n * The ViewProductDetails member.\n */\n ViewProductDetails = 922,\n \n /**\n * The ViewOrderFulfillmentLines member.\n */\n ViewOrderFulfillmentLines = 928,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 1000,\n \n /**\n * The ViewReport member.\n */\n ViewReport = 1003,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 1052,\n \n /**\n * The BlindCloseShift member.\n */\n BlindCloseShift = 1053,\n \n /**\n * The SuspendShift member.\n */\n SuspendShift = 1054,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 1055,\n \n /**\n * The PrintX member.\n */\n PrintX = 1056,\n \n /**\n * The PrintZ member.\n */\n PrintZ = 1057,\n \n /**\n * The PrintFiscalX member.\n */\n PrintFiscalX = 1058,\n \n /**\n * The PrintFiscalZ member.\n */\n PrintFiscalZ = 1059,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 1100,\n \n /**\n * The DeclareStartAmount member.\n */\n DeclareStartAmount = 1200,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 1201,\n \n /**\n * The TenderRemoval member.\n */\n TenderRemoval = 1210,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 1211,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 1212,\n \n /**\n * The ShippingAddressSearch member.\n */\n ShippingAddressSearch = 1213,\n \n /**\n * The ShippingAddressAdd member.\n */\n ShippingAddressAdd = 1214,\n \n /**\n * The ChangePassword member.\n */\n ChangePassword = 1215,\n \n /**\n * The ResetPassword member.\n */\n ResetPassword = 1216,\n \n /**\n * The KitDisassembly member.\n */\n KitDisassembly = 1217,\n \n /**\n * The ForceUnlockPeripheral member.\n */\n ForceUnlockPeripheral = 1218,\n \n /**\n * The OpenURL member.\n */\n OpenURL = 1219,\n \n /**\n * The ManageSafe member.\n */\n ManageSafe = 1220,\n \n /**\n * The VoidSuspendedTransactions member.\n */\n VoidSuspendedTransactions = 1221,\n \n /**\n * The SkipFiscalRegistration member.\n */\n SkipFiscalRegistration = 1300,\n \n /**\n * The MarkFiscalEventRegistered member.\n */\n MarkFiscalEventRegistered = 1301,\n \n /**\n * The CompleteFiscalRegistrationProcess member.\n */\n CompleteFiscalRegistrationProcess = 1302,\n \n /**\n * The SkipHealthCheckError member.\n */\n SkipHealthCheckError = 1303,\n \n /**\n * The PostponeFiscalRegistration member.\n */\n PostponeFiscalRegistration = 1304,\n \n /**\n * The ManageChecklistsAndTasks member.\n */\n ManageChecklistsAndTasks = 1400,\n \n /**\n * The Invalid member.\n */\n Invalid = 65535\n }\n \n /**\n * ReasonCodeInputRequiredType enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 * CartType enum type.\n */\n export const 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 * CustomerOrderMode enum type.\n */\n export const 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 * CartStatus enum type.\n */\n export const 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 * CustomerType enum type.\n */\n export const 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 const 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 const 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 const 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 /**\n * ChecklistTaskStatus enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 /**\n * RecommendationType enum type.\n */\n export const 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 /**\n * PurchaseTransferOrderType enum type.\n */\n export const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const 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 const enum FiscalIntegrationDocumentGenerationResultType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Succeeded member.\n */\n Succeeded = 1,\n \n /**\n * The NotSupported member.\n */\n NotSupported = 2,\n \n /**\n * The NotRequired member.\n */\n NotRequired = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * FiscalIntegrationServiceCommunicationResultType enum type.\n */\n export const 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 const 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 const 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 const 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 * CartLineQuantityLimitsErrors enum type.\n */\n export const 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 /**\n * CommunicationErrors enum type.\n */\n export const 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 const 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 /**\n * DataValidationErrors enum type.\n */\n export const 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 /**\n * FeatureNotSupportedErrors enum type.\n */\n export const 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 const 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_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 const 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 /**\n * VersionNotSupportedErrors enum type.\n */\n export const 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 const 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 /**\n * CommerceDataExchangeErrors enum type.\n */\n export const 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 /**\n * TaskManagementErrorCode enum type.\n */\n export const 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 * BusinessPartnerOperationDeliveryType enum type.\n */\n export const 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 * WrongEndpointErrors enum type.\n */\n export const 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 const 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 /**\n * ExceptionSeverity enum type.\n */\n export const enum ExceptionSeverity {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Error member.\n */\n Error = 1,\n \n /**\n * The Warning member.\n */\n Warning = 2,\n \n /**\n * The Critical member.\n */\n Critical = 3,\n \n /**\n * The Informational member.\n */\n Informational = 4\n }\n \n /**\n * Category entity interface.\n */\n export interface Category {\n RecordId: number;\n OfflineImage?: string;\n Name?: string;\n ParentCategory?: number;\n DisplayOrder?: number;\n Images?: MediaLocation[];\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Cart entity interface.\n */\n export interface Cart {\n AffiliationLines?: AffiliationLoyaltyTier[];\n IsRequiredAmountPaid?: boolean;\n IsDiscountFullyCalculated?: boolean;\n IgnoreDiscountCalculation?: boolean;\n AmountDue?: number;\n AmountPaid?: number;\n AttributeValues?: AttributeValueBase[];\n BeginDateTime?: Date;\n BusinessDate?: Date;\n CancellationChargeAmount?: number;\n EstimatedShippingAmount?: number;\n CartLines?: CartLine[];\n CartTypeValue?: number;\n ChannelId?: number;\n ChargeAmount?: number;\n CustomerOrderRemainingBalance?: number;\n ChargeLines?: ChargeLine[];\n TaxViewLines?: TaxViewLine[];\n Comment?: string;\n InvoiceComment?: string;\n Coupons?: Coupon[];\n CustomerId?: string;\n CustomerOrderModeValue?: number;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n DiscountCodes?: string[];\n Id: string;\n SuspendedCartId?: string;\n TransactionTypeValue?: number;\n CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n IncomeExpenseLines?: IncomeExpenseLine[];\n IncomeExpenseTotalAmount?: number;\n IsReturnByReceipt?: boolean;\n ReturnTransactionHasLoyaltyPayment?: boolean;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsSuspended?: boolean;\n LoyaltyCardId?: string;\n ModifiedDateTime?: Date;\n Name?: string;\n OrderNumber?: string;\n AvailableDepositAmount?: number;\n OverriddenDepositAmount?: number;\n OverriddenDepositWithoutCarryoutAmount?: number;\n PrepaymentAmountPaid?: number;\n PrepaymentAppliedOnPickup?: number;\n PromotionLines?: string[];\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n RequestedDeliveryDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n SalesId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n NetPrice?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxOnCancellationCharge?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n WarehouseId?: string;\n IsCreatedOffline?: boolean;\n CartStatusValue?: number;\n ReceiptTransactionTypeValue?: number;\n CommissionSalesGroup?: string;\n Version?: number;\n TotalItems?: number;\n HasTaxCalculationTriggered?: boolean;\n MerchantProperties?: PaymentMerchantInformation[];\n HasChargeCalculationTriggered?: boolean;\n FiscalTransactions?: FiscalTransaction[];\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n 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 SuspendedTransactionId?: string;\n IncomeExpenseLines?: IncomeExpenseLine[];\n IncomeExpenseTotalAmount?: number;\n InventoryLocationId?: string;\n IsCreatedOffline?: boolean;\n IsReturnByReceipt?: boolean;\n IsSuspended?: boolean;\n IsTaxIncludedInPrice?: boolean;\n IsTaxExemptedForPriceInclusive?: boolean;\n LineDiscount?: number;\n LineDiscountCalculationTypeValue?: number;\n LoyaltyCardId?: string;\n LoyaltyDiscountAmount?: number;\n LoyaltyManualDiscountAmount?: number;\n LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n ModifiedDateTime?: Date;\n Name?: string;\n NetAmount?: number;\n NetAmountWithoutTax?: number;\n NetAmountWithNoTax?: number;\n NetAmountWithTax?: number;\n NumberOfItems?: number;\n OverriddenDepositAmount?: number;\n OverriddenDepositWithoutCarryoutAmount?: number;\n PeriodicDiscountAmount?: number;\n TenderDiscountAmount?: number;\n PrepaymentAmountAppliedOnPickup?: number;\n PrepaymentAmountInvoiced?: number;\n PrepaymentAmountPaid?: number;\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n ReceiptId?: string;\n RequestedDeliveryDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n ReturnTransactionHasLoyaltyPayment?: boolean;\n SalesId?: string;\n SalesPaymentDifference?: number;\n SalesLines?: SalesLine[];\n ShiftId?: number;\n ShiftTerminalId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n StatementCode?: string;\n StoreId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxAmountExclusive?: number;\n TaxAmountInclusive?: number;\n TaxLines?: TaxLine[];\n TaxOnCancellationCharge?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalDiscount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n TransactionTypeValue?: number;\n TaxCalculationTypeValue?: number;\n SalesInvoiceAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardBalance?: number;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n GiftCardIssueAmount?: number;\n GiftCardIdMasked?: string;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n HasTaxCalculationTriggered?: boolean;\n HasChargeCalculationTriggered?: boolean;\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n FiscalTransactions?: FiscalTransaction[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Shift entity interface.\n */\n export interface Shift {\n ShiftId: number;\n TerminalId: string;\n StartingAmountTotal: number;\n FloatingEntryAmountTotal: number;\n AddToTenderAmountTotal: number;\n SafeDropTotal: number;\n BankDropTotal: number;\n RemoveTenderAmountTotal: number;\n DeclareTenderAmountTotal: number;\n OverShortTotal: number;\n TenderedTotal: number;\n ChangeTotal: number;\n IncomeAccountTotal: number;\n ExpenseAccountTotal: number;\n CashDrawer?: string;\n StoreRecordId?: number;\n StoreId?: string;\n StaffId?: string;\n CurrentStaffId?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n CloseDateTime?: Date;\n ClosedAtTerminalId?: string;\n CurrentTerminalId?: string;\n SalesTotal?: number;\n StatusDateTime?: Date;\n ReturnsTotal?: number;\n PaidToAccountTotal?: number;\n TaxTotal?: number;\n ChargeTotal?: number;\n DiscountTotal?: number;\n RoundedAmountTotal?: number;\n CustomerCount?: number;\n SaleTransactionCount?: number;\n NoSaleTransactionCount?: number;\n VoidTransactionCount?: number;\n LogOnTransactionCount?: number;\n SuspendedTransactionCount?: number;\n TransactionCount?: number;\n ReceiptsCount?: number;\n ReturnsCount?: number;\n GoodsSoldQty?: number;\n ServicesSoldQty?: number;\n ReceiptCopiesCount?: number;\n ReceiptCopiesTotal?: number;\n PriceOverrideTotal?: number;\n SuspendedTotal?: number;\n SalesTotalIncludingTax?: number;\n SalesTotalExcludingTax?: number;\n SalesGrandTotal?: number;\n ReturnsGrandTotal?: number;\n TaxLines?: ShiftTaxLine[];\n TenderLines?: ShiftTenderLine[];\n AccountLines?: ShiftAccountLine[];\n IsShared?: boolean;\n StartingAmountRunningTotal?: number;\n GiftCardsTotal?: number;\n GiftCardCashOutTotal?: number;\n VoidedSalesTotal?: number;\n ShiftSalesTotal?: number;\n ShiftReturnsTotal?: number;\n HasPendingOfflineTransactions?: number;\n NumberOfUnreconciledLines?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StockCountJournal entity interface.\n */\n export interface StockCountJournal {\n JournalId: string;\n RecordId?: string;\n Description?: string;\n InventLocationId?: string;\n DataAreaId?: string;\n StockCountTransactionLines?: StockCountJournalTransaction[];\n Worker?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnit entity interface.\n */\n export interface OrgUnit {\n OrgUnitNumber: string;\n RecordId: number;\n InventoryLocationId?: string;\n OMOperatingUnitNumber?: string;\n TaxGroup?: string;\n FunctionalityProfileId?: string;\n UseCustomerBasedTax?: boolean;\n UseCustomerBasedTaxExemption?: boolean;\n UseDestinationBasedTax?: boolean;\n Currency?: string;\n TimeZoneCode?: number;\n OrgUnitAddress?: Address;\n OrgUnitFullAddress?: string;\n OrgUnitName?: string;\n Latitude?: number;\n Longitude?: number;\n EmailReceiptProfileId?: string;\n ShippingWarehouseAddress?: Address;\n TaxRegistrations?: TaxRegistration[];\n EventNotificationProfileId?: string;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Product entity interface.\n */\n export interface Product {\n RecordId: number;\n ProductName?: string;\n ProductNumber?: string;\n Description?: string;\n IsMasterProduct: boolean;\n IsKit: boolean;\n ItemId?: string;\n HasLinkedProducts: boolean;\n Rules: ProductRules;\n DefaultUnitOfMeasure?: string;\n Name?: string;\n Locale?: string;\n OfflineImage?: string;\n IsRemote?: boolean;\n ChangeTrackingInformation?: ProductChangeTrackingInformation;\n Image?: RichMediaLocations;\n UnitsOfMeasureSymbol?: string[];\n LinkedProducts?: LinkedProduct[];\n BasePrice?: number;\n Price?: number;\n AdjustedPrice?: number;\n RetailContext?: ProjectionDomain;\n PrimaryCategoryId?: number;\n CategoryIds?: number[];\n DisplayOrderInCategories?: DisplayOrderInCategory[];\n RelatedProducts?: RelatedProduct[];\n ProductsRelatedToThis?: RelatedProduct[];\n ProductSchema?: string[];\n ProductProperties?: ProductPropertyTranslation[];\n CompositionInformation?: ProductCompositionInformation;\n ParentKits?: KitComponent[];\n SearchName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductCatalog entity interface.\n */\n export interface ProductCatalog {\n RecordId: number;\n Name?: string;\n Description?: string;\n Language?: string;\n IsSnapshotEnabled: boolean;\n ValidFrom: Date;\n ValidTo: Date;\n CreatedOn: Date;\n ModifiedOn: Date;\n PublishedOn: Date;\n Images?: MediaLocation[];\n ChannelId?: number;\n DefaultImage?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceList entity interface.\n */\n export interface CommerceList {\n Id: number;\n Name?: string;\n CustomerId?: string;\n CustomerName?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n IsCollaborative?: boolean;\n CreatedDateTime?: Date;\n DueDateTime?: Date;\n CommerceListTypeValue?: number;\n CommerceListLines?: CommerceListLine[];\n CommerceListContributors?: CommerceListContributor[];\n CommerceListInvitations?: CommerceListInvitation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductList entity interface.\n */\n export interface ProductList {\n Id: string;\n Name?: string;\n CustomerId?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n ProductListTypeValue?: number;\n DataAreaId?: string;\n ProductListLines?: ProductListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Recommendation entity interface.\n */\n export interface Recommendation {\n Id: string;\n RecommendationTypeValue?: number;\n Title?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrder entity interface.\n */\n export interface TransferOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityShipRemaining?: number;\n QuantityReceiveRemaining?: number;\n ShipDate?: Date;\n ReceiveDate?: Date;\n DeliveryModeId?: string;\n OrderLines?: TransferOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseOrder entity interface.\n */\n export interface PurchaseOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n TotalReceived?: number;\n OrderLines?: PurchaseOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingList entity interface.\n */\n export interface PickingList {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationId?: string;\n DeliveryDate?: Date;\n DeliveryMode?: string;\n TotalReceived?: number;\n OrderLines?: PickingListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warehouse entity interface.\n */\n export interface Warehouse {\n InventLocation: string;\n Name?: string;\n IsWMSEnabled: boolean;\n DefaultInventoryStatus?: string;\n DefaultReceiptLocation?: string;\n DefaultLocationId?: string;\n DefaultIssueLocation?: string;\n Address?: Address;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScanResult entity interface.\n */\n export interface ScanResult {\n ScannedText: string;\n MaskTypeValue?: number;\n Barcode?: Barcode;\n Product?: SimpleProduct;\n LoyaltyCard?: LoyaltyCard;\n GiftCard?: GiftCard;\n ExtensionProperties?: CommerceProperty[];\n Customer?: Customer;\n }\n \n /**\n * SalesOrderContextualOperationsMap entity interface.\n */\n export interface SalesOrderContextualOperationsMap {\n Id: string;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n SalesOrder: SalesOrder;\n }\n \n /**\n * InventoryInboundOutboundDocument entity interface.\n */\n export interface InventoryInboundOutboundDocument {\n WorkDocumentId: string;\n TerminalId?: string;\n CommitRequestId?: string;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n OperationTypeValue?: number;\n StatusValue?: number;\n ReceiptId?: string;\n Note?: string;\n OperationResultMessage?: string;\n DocumentId?: string;\n LongVersion?: number;\n SourceDocument?: InventoryInboundOutboundSourceDocument;\n SourceDocumentTypeValue?: number;\n CreatedDateTime?: Date;\n 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 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 * 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 * Address entity interface.\n */\n export interface Address {\n Name?: 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 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 }\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 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 ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeValueBase entity interface.\n */\n export interface AttributeValueBase {\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Barcode entity interface.\n */\n export interface Barcode {\n BarcodeId?: string;\n BarcodePrice?: number;\n Quantity?: number;\n CustomerId?: string;\n EmployeeId?: string;\n SalespersonId?: string;\n EANLicenseId?: string;\n DataEntry?: string;\n DiscountCode?: string;\n GiftCardNumber?: string;\n LoyaltyCardNumber?: string;\n ItemBarcode?: ItemBarcode;\n EntryMethodTypeValue?: number;\n ItemType?: number;\n EnterDimensions?: boolean;\n ItemGroupId?: string;\n ItemDepartmentId?: string;\n ScaleItem?: boolean;\n ZeroPriceValid?: boolean;\n NegativeQuantity?: boolean;\n DiscountNotAllowed?: boolean;\n DateToBeBlocked?: Date;\n DateToBeActivated?: Date;\n CheckDigitValidated?: boolean;\n CouponId?: string;\n Message?: string;\n LineDiscountGroup?: string;\n MultilineDiscountGroup?: string;\n IncludedInTotalDiscount?: boolean;\n CostPrice?: number;\n BatchId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemBarcode entity interface.\n */\n export interface ItemBarcode {\n RecordId?: number;\n ItemId?: string;\n Description?: string;\n BarcodeSetupId?: string;\n ItemBarcodeValue?: string;\n InventoryDimensionId?: string;\n IsBlocked?: boolean;\n Display?: boolean;\n VariantId?: string;\n UnitId?: string;\n UseForInput?: boolean;\n UseForPrinting?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ButtonGrid entity interface.\n */\n export interface ButtonGrid {\n Id?: string;\n Name?: string;\n DefaultColor?: number;\n SpaceBetweenButtonsInPixels?: number;\n Buttons?: ButtonGridButton[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * GetButtonGridsByIdsCriteria entity interface.\n */\n export interface GetButtonGridsByIdsCriteria {\n ButtonGridIds?: string[];\n }\n \n /**\n * CartLine entity interface.\n */\n export interface CartLine {\n LineId?: string;\n TaxOverrideCode?: string;\n ItemId?: string;\n Barcode?: string;\n EntryMethodTypeValue?: number;\n Description?: string;\n InventoryDimensionId?: string;\n Comment?: string;\n ProductId?: number;\n WarehouseId?: string;\n Quantity?: number;\n Price?: number;\n ExtendedPrice?: number;\n TaxAmount?: number;\n ItemTaxGroupId?: string;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n NetPrice?: number;\n DiscountAmountWithoutTax?: number;\n DiscountAmount?: number;\n LineDiscount?: number;\n LinePercentageDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n UnitOfMeasureSymbol?: string;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n RequestedDeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n IsWarrantyLine?: boolean;\n WarrantableTransactionId?: string;\n WarrantableSalesId?: string;\n WarrantableLineNumber?: number;\n WarrantableSerialNumber?: string;\n WarrantiedId?: string;\n ReturnTransactionId?: string;\n ReturnLineNumber?: number;\n ReturnInventTransId?: string;\n IsVoided?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n IsGiftCardLine?: boolean;\n IsPriceKeyedIn?: boolean;\n GiftCardId?: string;\n GiftCardCurrencyCode?: string;\n GiftCardOperationValue?: number;\n GiftCardTypeValue?: number;\n SalesStatusValue?: number;\n QuantityOrdered?: number;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityCanceled?: number;\n FulfillmentStoreId?: string;\n SerialNumber?: string;\n ElectronicDeliveryEmail?: string;\n ElectronicDeliveryEmailContent?: string;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n IsInvoiceLine?: boolean;\n InvoiceId?: string;\n InvoiceAmount?: number;\n GiftCardBalance?: number;\n LineVersion?: number;\n PromotionLines?: string[];\n DiscountLines?: DiscountLine[];\n RelatedDiscountedLineIds?: string[];\n ReasonCodeLines?: ReasonCodeLine[];\n ChargeLines?: ChargeLine[];\n TaxRatePercent?: number;\n IsCustomerAccountDeposit?: boolean;\n LinkedParentLineId?: string;\n QuantityReturnable?: number;\n ExtensionProperties?: CommerceProperty[];\n LineNumber?: number;\n CommissionSalesGroup?: string;\n TrackingId?: string;\n StaffId?: string;\n QuantityRemained?: number;\n QuantityShipped?: number;\n CatalogId?: number;\n AttributeValues?: AttributeValueBase[];\n ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n InvoiceTypeValue?: number;\n InvoicedSalesId?: string;\n WarehouseLocation?: string;\n }\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 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 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 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 }\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 SavedEffectiveAmount?: number;\n Percentage?: number;\n DealPrice?: number;\n DiscountLineTypeValue?: number;\n ManualDiscountTypeValue?: number;\n CustomerDiscountTypeValue?: number;\n PeriodicDiscountTypeValue?: number;\n DiscountApplicationGroup?: string;\n ConcurrencyModeValue?: number;\n IsCompoundable?: boolean;\n DiscountCode?: string;\n PricingPriorityNumber?: number;\n IsDiscountCodeRequired?: boolean;\n ThresholdAmountRequired?: number;\n BundleId?: number;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmployeePermissions entity interface.\n */\n export interface EmployeePermissions {\n PriceOverrideRestrictionValue?: number;\n AllowPriceOverride?: number;\n MaximumDiscountPercentage?: number;\n MaximumLineDiscountAmount?: number;\n MaximumLineReturnAmount?: number;\n MaximumTotalDiscountAmount?: number;\n MaximumTotalDiscountPercentage?: number;\n MaxTotalReturnAmount?: number;\n StaffId?: string;\n Roles?: string[];\n AllowUseSharedShift?: boolean;\n AllowManageSharedShift?: boolean;\n AllowTaskGuides?: boolean;\n AllowSaleOutsideAssortment?: boolean;\n AllowPrintingReceiptCopy?: string;\n AllowSkipFiscalRegistration?: boolean;\n AllowSkipRegistrationOrMarkAsRegistered?: boolean;\n AllowPostponeRegistration?: boolean;\n AllowCreateTransferOrder?: boolean;\n AllowAcceptOrder?: boolean;\n AllowTaskManagement?: boolean;\n AllowRejectOrder?: boolean;\n AllowMassActivation?: boolean;\n 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 * 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 }\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 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 ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Device entity interface.\n */\n export interface Device {\n ChannelId: number;\n RecordId?: number;\n DeviceNumber?: string;\n DeviceId?: string;\n Description?: string;\n DeviceType?: number;\n TerminalRecordId?: number;\n TerminalId?: string;\n ChannelName?: string;\n UseInMemoryDeviceDataStorage?: boolean;\n AllowMassActivation?: boolean;\n TokenIssueTime?: Date;\n ActivationStatusValue?: number;\n Token?: string;\n CountryRegionIsoCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountCode entity interface.\n */\n export interface DiscountCode {\n RecordId: number;\n Barcode?: string;\n Code?: string;\n ConcurrencyMode?: number;\n Description?: string;\n Disclaimer?: string;\n IsDiscountCodeRequired?: boolean;\n Name?: string;\n OfferId?: string;\n IsEnabled?: boolean;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DistrictInfo entity interface.\n */\n export interface DistrictInfo {\n Name?: string;\n Description?: string;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n CityName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfile entity interface.\n */\n export interface HardwareProfile {\n RecordId?: number;\n LineDisplayDelayForLinkedItems?: number;\n LineDisplayBalanceText?: string;\n LineDisplayBinaryConversion?: boolean;\n LineDisplayCharacterSet?: number;\n LineDisplayClosedLine1?: string;\n LineDisplayClosedLine2?: string;\n LineDisplayDeviceDescription?: string;\n LineDisplayDeviceTypeValue?: number;\n LineDisplayDeviceName?: string;\n LineDisplayDisplayLinkedItem?: boolean;\n LineDisplayDisplayTerminalClosed?: boolean;\n LineDisplayTotalText?: string;\n DualDisplayActive?: boolean;\n DualDisplayWebBrowserUrl?: string;\n DualDisplayImageRotatorInterval?: number;\n DualDisplayImageRotatorPath?: string;\n DualDisplayReceiptWidthPercentage?: number;\n DualDisplayDisplayType?: string;\n EftTypeId?: number;\n EftCompanyId?: string;\n EftConfiguration?: number;\n EftPaymentConnectorName?: string;\n EftData?: string;\n EftDescription?: string;\n EftMerchantId?: string;\n EftPassword?: string;\n EftServerName?: string;\n EftServerPort?: string;\n EftUserId?: string;\n EftTestMode?: boolean;\n MsrEndTrack1?: string;\n MsrEndTrack2?: string;\n FiscalPrinterManagementReportPAFIdentification?: string;\n FiscalPrinterManagementReportConfigParameter?: string;\n FiscalPrinterManagementReportTenderType?: string;\n FiscalPrinterManagementReportGiftCard?: string;\n FiscalRegisterDeviceTypeValue?: number;\n FiscalRegisterConfiguration?: string;\n FiscalRegisterDeviceDescription?: string;\n FiscalRegisterDeviceName?: string;\n KeyboardMappingId?: string;\n KeyLockDeviceTypeValue?: number;\n KeyLockDeviceDescription?: string;\n KeyLockDeviceName?: string;\n MsrDeviceTypeValue?: number;\n MsrDeviceDescription?: string;\n MsrDeviceName?: string;\n MsrMake?: string;\n MsrModel?: string;\n MsrSeparator?: string;\n MsrStartTrack?: string;\n PinPadDeviceTypeValue?: number;\n PinPadDeviceName?: string;\n PinPadMake?: string;\n PinPadModel?: string;\n PinPadDeviceDescription?: string;\n ProfileDescription?: string;\n ProfileId?: string;\n RFIDDeviceTypeValue?: number;\n RFIDDeviceName?: string;\n RFIDDeviceDescription?: string;\n ScaleDeviceTypeValue?: number;\n ScaleDeviceName?: string;\n ScaleDeviceDescription?: string;\n ScaleManualInputAllowed?: boolean;\n ScaleTimeoutInSeconds?: number;\n SignatureCaptureDeviceTypeValue?: number;\n SignatureCaptureDeviceName?: string;\n SignatureCaptureMake?: string;\n SignatureCaptureModel?: string;\n SignatureCaptureDeviceDescription?: string;\n SignatureCaptureFormName?: string;\n Printers?: HardwareProfilePrinter[];\n Scanners?: HardwareProfileScanner[];\n FiscalIntegrationTechnicalProfiles?: FiscalIntegrationTechnicalProfile[];\n CashDrawers?: HardwareProfileCashDrawer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SupportedLanguage entity interface.\n */\n export interface SupportedLanguage {\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentCard entity interface.\n */\n export interface PaymentCard {\n UseShippingAddress?: boolean;\n CardNumber?: string;\n CCID?: string;\n Track1?: string;\n Track2?: string;\n Track3?: string;\n VoiceAuthorizationCode?: string;\n EncryptedPin?: string;\n AdditionalSecurityData?: string;\n IsSwipe?: boolean;\n Phone?: string;\n Country?: string;\n House?: string;\n Address1?: string;\n Address2?: string;\n City?: string;\n State?: string;\n Zip?: string;\n NameOnCard?: string;\n CardTypeId?: string;\n ExpirationMonth?: number;\n ExpirationYear?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardPaymentAcceptSettings entity interface.\n */\n export interface CardPaymentAcceptSettings {\n HostPageOrigin?: string;\n AdaptorPath?: string;\n CardTokenizationEnabled?: boolean;\n CardPaymentEnabled?: boolean;\n PaymentAmount?: number;\n HideBillingAddress?: boolean;\n TenderTypeId?: string;\n }\n \n /**\n * CardPaymentAcceptPoint entity interface.\n */\n export interface CardPaymentAcceptPoint {\n AcceptPageUrl?: string;\n AcceptPageSubmitUrl?: string;\n MessageOrigin?: string;\n AcceptPageContent?: string;\n PaymentConnectorId?: string;\n }\n \n /**\n * CardPaymentAcceptResult entity interface.\n */\n export interface CardPaymentAcceptResult {\n TenderLine?: TenderLine;\n TokenizedPaymentCard?: TokenizedPaymentCard;\n PaymentSdkErrors?: PaymentError[];\n AdditionalContext?: string;\n }\n \n /**\n * ReasonCodeLine entity interface.\n */\n export interface ReasonCodeLine {\n LineId?: string;\n Amount?: number;\n Information?: string;\n InformationAmount?: number;\n InputTypeValue?: number;\n ItemTender?: string;\n LineNumber?: number;\n LineTypeValue?: number;\n ParentLineId?: string;\n ReasonCodeId?: string;\n StatementCode?: string;\n SubReasonCodeId?: string;\n SourceCode?: string;\n SourceCode2?: string;\n SourceCode3?: string;\n TransactionId?: string;\n CreatedDateTime?: Date;\n FiscalTransactionParentGuid?: string;\n IsChanged?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonSubCode entity interface.\n */\n export interface ReasonSubCode {\n TriggerCode?: string;\n AmountPercent: number;\n ReasonCodeId?: string;\n SubCodeId?: string;\n Description?: string;\n TriggerFunctionTypeValue?: number;\n ProductId?: number;\n PriceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Receipt entity interface.\n */\n export interface Receipt {\n TransactionId?: string;\n Header?: string;\n Body?: string;\n Footer?: string;\n Width?: number;\n ReceiptId?: string;\n LayoutId?: string;\n ReceiptTitle?: string;\n ReceiptTypeValue?: number;\n ReceiptTypeStrValue?: string;\n Printers?: Printer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptMask entity interface.\n */\n export interface ReceiptMask {\n FunctionalityProfileId?: string;\n IsIndependent: boolean;\n ReceiptTransactionTypeValue: number;\n RecordId: number;\n Mask?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLine entity interface.\n */\n export interface SalesLine {\n StaffId?: string;\n LineId?: string;\n Description?: string;\n OriginLineId?: string;\n TaxOverrideCode?: string;\n IsPriceKeyedIn?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n ProductId?: number;\n Barcode?: string;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n EntryMethodTypeValue?: number;\n MasterProductId?: number;\n ListingId?: number;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n NetPrice?: number;\n TotalDiscount?: number;\n TotalPercentageDiscount?: number;\n LineDiscount?: number;\n PeriodicDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n Comment?: string;\n RequestedDeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n InventoryLocationId?: string;\n WarehouseLocation?: string;\n InventoryStatusId?: string;\n LicensePlate?: string;\n InventoryDimensionId?: string;\n ItemType?: number;\n ReservationId?: string;\n LineNumber?: number;\n ReturnQuantity?: number;\n QuantityRemained?: number;\n QuantityShipped?: number;\n LineVersion?: number;\n StatusValue?: number;\n SalesStatusValue?: number;\n ProductSourceValue?: number;\n IsGiftCardLine?: boolean;\n GiftCardId?: string;\n GiftCardCurrencyCode?: string;\n GiftCardOperationValue?: number;\n GiftCardTypeValue?: number;\n IsInvoiceLine?: boolean;\n InvoiceId?: string;\n InvoiceAmount?: number;\n IsInvoiceSettled?: boolean;\n InvoiceTypeValue?: number;\n InvoicedSalesId?: string;\n IsVoided?: boolean;\n IsPriceLocked?: boolean;\n ChargeLines?: ChargeLine[];\n BasePrice?: number;\n AgreementPrice?: number;\n AdjustedPrice?: number;\n IsWarrantyLine?: boolean;\n WarrantableTransactionId?: string;\n WarrantableSalesId?: string;\n WarrantableLineNumber?: number;\n WarrantableSerialNumber?: string;\n ReturnTransactionId?: string;\n ReturnLineNumber?: number;\n ReturnInventTransId?: string;\n ReturnStore?: string;\n ReturnTerminalId?: string;\n ReturnChannelId?: number;\n FulfillmentStoreId?: string;\n SalesDate?: Date;\n QuantityInvoiced?: number;\n QuantityOrdered?: number;\n QuantityCanceled?: number;\n SavedQuantity?: number;\n IsSavedDiscount?: boolean;\n RecordId?: number;\n SerialNumber?: string;\n BatchId?: string;\n DeliveryModeChargeAmount?: number;\n UnitOfMeasureSymbol?: string;\n CatalogId?: number;\n ElectronicDeliveryEmailAddress?: string;\n ElectronicDeliveryEmailContent?: string;\n LoyaltyDiscountAmount?: number;\n LoyaltyPercentageDiscount?: number;\n TenderDiscountAmount?: number;\n TenderDiscountPercentage?: number;\n GiftCardBalance?: number;\n IsCustomerAccountDeposit?: boolean;\n Blocked?: boolean;\n Found?: boolean;\n DateToActivateItem?: Date;\n LinePercentageDiscount?: number;\n PeriodicPercentageDiscount?: number;\n QuantityDiscounted?: number;\n UnitQuantity?: number;\n UnitOfMeasureConversion?: UnitOfMeasureConversion;\n DiscountLines?: DiscountLine[];\n PriceLines?: PriceLine[];\n PeriodicDiscountPossibilities?: DiscountLine[];\n ReasonCodeLines?: ReasonCodeLine[];\n ReturnLabelProperties?: ReturnLabelContent;\n LineMultilineDiscOnItem?: string;\n RelatedDiscountedLineIds?: string[];\n LinkedParentLineId?: string;\n LineMultilineDiscOnItemValue?: number;\n WasChanged?: boolean;\n OriginalSalesOrderUnitOfMeasure?: string;\n InventOrderUnitOfMeasure?: string;\n TrackingId?: string;\n IsLoyaltyDiscountApplied?: boolean;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n AttributeValues?: AttributeValueBase[];\n ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n QuantityReturnable?: number;\n LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n ReturnLoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n FulfillmentStatus?: FulfillmentLineStatus;\n FulfillmentStatusValue?: number;\n DetailedLineStatusValue?: number;\n DetailedLineStatus?: DetailedLineStatus;\n 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 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 ChannelId?: number;\n IsLinkedRefund?: boolean;\n LinkedPaymentStore?: string;\n LinkedPaymentTerminalId?: string;\n LinkedPaymentTransactionId?: string;\n LinkedPaymentLineNumber?: number;\n LinkedPaymentCurrency?: string;\n TenderLineId?: string;\n Amount?: number;\n CashBackAmount?: number;\n AmountInTenderedCurrency?: number;\n AmountInCompanyCurrency?: number;\n Currency?: string;\n ExchangeRate?: number;\n CompanyCurrencyExchangeRate?: number;\n TenderTypeId?: string;\n SignatureData?: string;\n ReasonCodeLines?: ReasonCodeLine[];\n LineNumber?: number;\n GiftCardId?: string;\n GiftCardPin?: string;\n GiftCardExpirationYear?: number;\n GiftCardExpirationMonth?: number;\n CreditMemoId?: string;\n CustomerId?: string;\n LoyaltyCardId?: string;\n CardTypeId?: string;\n IsChangeLine?: boolean;\n IsHistorical?: boolean;\n IsVoidable?: boolean;\n StatusValue?: number;\n VoidStatusValue?: number;\n AuthorizedAmount?: number;\n PaymentRefRecId?: number;\n CardPaymentAccountId?: string;\n ProcessingTypeValue?: number;\n CardProcessorStatusValue?: number;\n LinkedPaymentRefRecId?: number;\n IsPolicyBypassed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TextValueTranslation entity interface.\n */\n export interface TextValueTranslation {\n Language?: string;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UnitOfMeasure entity interface.\n */\n export interface UnitOfMeasure {\n DecimalPrecision?: number;\n Symbol?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecommendedElement entity interface.\n */\n export interface RecommendedElement {\n ElementId?: string;\n ElementTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecommendationCriteria entity interface.\n */\n export interface RecommendationCriteria {\n CustomerAccountNumber?: string;\n CatalogId?: number;\n ProductIds?: number[];\n CategoryIds?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductListLine entity interface.\n */\n export interface ProductListLine {\n ProductListId?: string;\n LineId?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListLine entity interface.\n */\n export interface CommerceListLine {\n CommerceListId?: number;\n LineId?: number;\n CustomerId?: string;\n CustomerName?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListContributor entity interface.\n */\n export interface CommerceListContributor {\n RecordId?: number;\n CustomerId?: string;\n CustomerName?: string;\n InvitationId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListInvitation entity interface.\n */\n export interface CommerceListInvitation {\n RecordId?: number;\n Invitee?: string;\n IsSent?: boolean;\n LastRequestDateTime?: Date;\n LastSentDateTime?: Date;\n StatusValue?: number;\n Token?: string;\n InvitationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchFilter entity interface.\n */\n export interface SearchFilter {\n Key?: string;\n FilterTypeValue: number;\n SearchValues?: SearchFilterValue[];\n }\n \n /**\n * SearchFilterValue entity interface.\n */\n export interface SearchFilterValue {\n Value?: CommercePropertyValue;\n }\n \n /**\n * TransactionSearchCriteria entity interface.\n */\n export interface TransactionSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n StartDateTime?: Date;\n EndDateTime?: Date;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SearchLocationTypeValue?: number;\n CustomFilters?: SearchFilter[];\n }\n \n /**\n * SalesOrderSearchCriteria entity interface.\n */\n export interface SalesOrderSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n SearchTypeValue?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n IncludeDetails?: boolean;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SalesTransactionTypeValues?: number[];\n SearchLocationTypeValue?: number;\n TransactionStatusTypeValues?: number[];\n }\n \n /**\n * SearchStoreCriteria entity interface.\n */\n export interface SearchStoreCriteria {\n ChannelId?: number;\n StoreNumber?: string;\n InventoryLocationId?: string;\n }\n \n /**\n * CustomerSearchCriteria entity interface.\n */\n export interface CustomerSearchCriteria {\n Keyword?: string;\n SearchOnlyCurrentCompany?: boolean;\n SearchLocationValue?: number;\n 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 CustomerContextualPrice?: number;\n DiscountAmount?: number;\n CurrencyCode?: string;\n ItemId?: string;\n InventoryDimensionId?: string;\n UnitOfMeasure?: string;\n ValidFrom?: Date;\n ProductLookupId?: number;\n ChannelId?: number;\n CatalogId?: number;\n DiscountLines?: DiscountLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAvailability entity interface.\n */\n export interface OrgUnitAvailability {\n OrgUnitLocation?: OrgUnitLocation;\n ItemAvailabilities?: ItemAvailability[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductVariantPropertySet entity interface.\n */\n export interface ProductVariantPropertySet {\n VariantId?: number;\n ProductVariantPropertiesAsList?: ProductPropertyTranslation[];\n }\n \n /**\n * PurchaseOrderLine entity interface.\n */\n export interface PurchaseOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseQuantity?: number;\n PurchaseUnit?: string;\n PurchaseReceived?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n UniqueIdentifier?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderLine entity interface.\n */\n export interface TransferOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityTransferred?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityRemainShip?: number;\n QuantityRemainReceive?: number;\n PurchaseUnit?: string;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderJournal entity interface.\n */\n export interface TransferOrderJournal {\n OrderId?: string;\n VoucherId?: string;\n UpdatedByWorker?: string;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n PostingDate?: Date;\n DeliveryMode?: string;\n Comments?: string;\n JournalLines?: TransferOrderJournalLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingListLine entity interface.\n */\n export interface PickingListLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Affiliation entity interface.\n */\n export interface Affiliation {\n RecordId?: number;\n AffiliationTypeValue?: number;\n Description?: string;\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity interface.\n */\n export interface InventoryInboundOutboundDocumentLinesSummary {\n InProgressQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity interface.\n */\n export interface InventoryDocumentSerialNumberLinesSummary {\n RegisteringQuantity?: number;\n RegisteredQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLine entity interface.\n */\n export interface InventoryInboundOutboundDocumentLine {\n WorkDocumentId?: string;\n LineId?: string;\n SourceDocumentRecordId?: number;\n SourceDocumentLineRecordId?: number;\n SourceDocumentTypeValue?: number;\n QuantityOrdered?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityCancelled?: number;\n QuantityToUpdate?: number;\n LocationId?: string;\n ItemId?: string;\n ProductId?: number;\n ItemName?: string;\n ItemPrimaryImageUrl?: string;\n IsLocationActive?: boolean;\n IsLocationAllowBlankReceiptEnabled?: boolean;\n IsLocationBlankIssueAllowed?: boolean;\n ProductDimensions?: ProductDimension[];\n Note?: string;\n OperationResultMessage?: string;\n IsCloseLine?: boolean;\n OriginTypeValue?: number;\n UnitOfMeasure?: string;\n SourceDocumentLine?: InventoryInboundOutboundSourceDocumentLine;\n SerialNumberLines?: InventoryDocumentSerialNumberLine[];\n LongVersion?: 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 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 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 ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineFilterCriteria entity interface.\n */\n export interface InventoryDocumentLineFilterCriteria {\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentUpdateLinesAction entity interface.\n */\n export interface InventoryDocumentUpdateLinesAction {\n Quantity?: number;\n ActionTypeValue?: number;\n LocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineOperationResultSettings entity interface.\n */\n export interface InventoryDocumentLineOperationResultSettings {\n ModeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineSearchCriteria entity interface.\n */\n export interface InventoryDocumentLineSearchCriteria {\n SourceDocumentId?: string;\n SourceDocumentTypeValue?: number;\n WorkDocumentId?: string;\n ProductId?: number;\n AvailableSerializedLineOnly?: boolean;\n DocumentLineIds?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSearchCriteria entity interface.\n */\n export interface InventoryDocumentSearchCriteria {\n DocumentId?: string;\n DocumentStateValue?: number;\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 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 * 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 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 }\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 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 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 DisplayOrder?: number;\n AttributeValues?: AttributeValue[];\n IsMasterProduct?: boolean;\n MasterProductId?: number;\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 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 }\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 VoidSuspendedTransactionsOnCloseShift?: number;\n EnableOmniChannelPayments?: boolean;\n UseAdvancedCashManagement?: boolean;\n EnableFiscalRegistrationStorageBackup?: boolean;\n UseSalesReceiptAsDefaultReceiptTypeInJournal?: boolean;\n SalesOrderHeaderAttributeGroups?: number[];\n SalesOrderLinesAttributeGroups?: number[];\n EnableReturnPolicies?: boolean;\n InventAvailabilityCalculationMode?: string;\n IsPriceInclusiveTaxExemptCalculationEnabled?: 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 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 Id?: string;\n SalesId?: string;\n SalesType?: string;\n InvoiceDate?: Date;\n CurrencyCode?: string;\n Amount?: number;\n AmountPaid?: 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 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 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 * 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 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 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 * 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 }\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 * 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 ExtensionProperties?: CommerceProperty[];\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 * 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 * 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 }\n \n /**\n * ElectronicAddress entity interface.\n */\n export interface ElectronicAddress {\n AddressTypeValue?: number;\n Address?: string;\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 }\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 * 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 * 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 * 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 DurationInMilliseconds?: number;\n Source?: string;\n EventMessage?: string;\n LogLevel?: string;\n Staff?: string;\n ShiftId?: number;\n ReferenceId?: number;\n RefChannel?: number;\n RefStore?: string;\n RefTerminal?: string;\n RefTransactionId?: string;\n AuditEventTypeValue?: number;\n FiscalTransactions?: AuditEventFiscalTransaction[];\n FiscalRegistrationLines?: AuditEventFiscalRegistrationLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemAvailability entity interface.\n */\n export interface ItemAvailability {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n InventoryLocationId?: string;\n ProductId?: number;\n AvailableQuantity?: number;\n OrderedSum?: number;\n PhysicalReserved?: number;\n UnitOfMeasure?: string;\n InventoryUnitOfMeasure?: string;\n InventoryUnitOfMeasureDescription?: string;\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryAvailableToPromise entity interface.\n */\n export interface InventoryAvailableToPromise extends ItemAvailability {\n Date?: string;\n }\n \n /**\n * NotificationItem entity interface.\n */\n export interface NotificationItem {\n Action?: number;\n ActionName?: string;\n NotificationDetails?: NotificationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity interface.\n */\n export interface FiscalIntegrationDocumentRetrievalCriteria {\n TransactionId?: string;\n IsRemoteTransaction?: boolean;\n QueryBySalesId?: boolean;\n FiscalRegistrationEventTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n DocumentContext?: FiscalIntegrationDocumentContext;\n }\n \n /**\n * FiscalIntegrationDocument entity interface.\n */\n export interface FiscalIntegrationDocument {\n Document?: string;\n DocumentGenerationResultTypeValue?: number;\n FiscalConnectorTechnicalProfile?: FiscalIntegrationTechnicalProfile;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n SequentialSignatureDataContext?: FiscalIntegrationSignatureDataContext;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationResult entity interface.\n */\n export interface FiscalIntegrationRegistrationResult {\n TransactionID?: string;\n AuditEventId?: string;\n Response?: string;\n SubmittedDocument?: string;\n RegisterInfo?: string;\n RegistrationStatusValue?: number;\n FiscalRegistrationEventTypeValue?: number;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n ReasonCodeLines?: ReasonCodeLine[];\n SequentialSignatureData?: FiscalIntegrationSequentialSignatureData;\n }\n \n /**\n * FiscalIntegrationRegistrationProcess entity interface.\n */\n export interface FiscalIntegrationRegistrationProcess {\n RecordId?: number;\n RegistrationProcessId?: string;\n Description?: string;\n RegistrationProcessLines?: FiscalIntegrationRegistrationProcessLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationSupportedEvents entity interface.\n */\n export interface FiscalIntegrationSupportedEvents {\n FunctionalityProfileGroupId?: string;\n SupportedFiscalEventTypes?: number[];\n SupportedNonFiscalEventTypes?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationTechnicalProfile entity interface.\n */\n export interface FiscalIntegrationTechnicalProfile {\n ProfileId?: string;\n Description?: string;\n ConnectorName?: string;\n ConnectorTypeValue?: number;\n TechnicalProfile?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationTechnicalProfileSearchCriteria entity interface.\n */\n export interface FiscalIntegrationTechnicalProfileSearchCriteria {\n ExcludeOptionalProcessLines?: boolean;\n FunctionalityProfileGroupIds?: string[];\n }\n \n /**\n * FiscalIntegrationServiceInfo entity interface.\n */\n export interface FiscalIntegrationServiceInfo {\n ServiceName?: string;\n ServiceProperties?: string;\n }\n \n /**\n * FiscalIntegrationServiceStatus entity interface.\n */\n export interface FiscalIntegrationServiceStatus {\n IsReady?: boolean;\n }\n \n /**\n * FiscalIntegrationServiceCommunicationResult entity interface.\n */\n export interface FiscalIntegrationServiceCommunicationResult {\n Response?: string;\n CommunicationResultTypeValue?: number;\n FailureDetails?: FiscalIntegrationServiceFailureDetails;\n FiscalIntegrationServiceInfo?: string;\n UserNotificationMessage?: string;\n }\n \n /**\n * FiscalIntegrationSequentialSignatureData entity interface.\n */\n export interface FiscalIntegrationSequentialSignatureData {\n LastRegisterResponse?: string;\n SequenceKey?: string;\n IsOffline?: boolean;\n SequentialNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountsSearchCriteria entity interface.\n */\n export interface DiscountsSearchCriteria {\n ChannelId?: number;\n Keyword?: string;\n IsDiscountCodeRequired?: boolean;\n StartDate?: Date;\n EndDate?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Promotion entity interface.\n */\n export interface Promotion {\n OfferId?: string;\n OfferName?: string;\n PeriodicDiscountTypeValue?: number;\n IsDiscountCodeRequired?: boolean;\n ValidationPeriodId?: string;\n AdditionalRestrictions?: string;\n Description?: string;\n ValidFromDate?: Date;\n ValidToDate?: Date;\n ValidationPeriod?: ValidationPeriod;\n CouponCodes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathLookup entity interface.\n */\n export interface CategoryPathLookup {\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathResult entity interface.\n */\n export interface CategoryPathResult {\n ProductId?: number;\n CategoryPath?: CategoryPath[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickupTimeslotAvailabilitySearchCriteria entity interface.\n */\n export interface PickupTimeslotAvailabilitySearchCriteria {\n DeliveryModeCode?: string;\n StoreId?: string;\n StartDate?: Date;\n EndDate?: Date;\n SearchOptionValue?: number;\n }\n \n /**\n * PickupTimeslotAvailability entity interface.\n */\n export interface PickupTimeslotAvailability {\n AvailableCapacity?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * 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 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 * ShiftRetrievalCriteria entity interface.\n */\n export interface ShiftRetrievalCriteria {\n ShiftStatusValue?: number;\n FilterByUserRole?: boolean;\n IncludeAllShiftsForStore?: boolean;\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 ExtensionProperties?: CommerceProperty[];\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 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 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 * 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 * 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 PictureAsBase64?: string;\n FontStyle?: number;\n FontSize?: number;\n EnableCustomFontForPOS?: boolean;\n HideButtonText?: boolean;\n Tooltip?: string;\n EnableLiveContent?: boolean;\n NotificationContentAlignment?: number;\n ImageAlignment?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ARGBColor entity interface.\n */\n export interface ARGBColor {\n A?: number;\n R?: number;\n G?: number;\n B?: number;\n }\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity interface.\n */\n export interface ExtensiblePeriodicDiscountOfferType extends ExtensibleEnumeration {\n }\n \n /**\n * ChargeLineOverride entity interface.\n */\n export interface ChargeLineOverride {\n OriginalAmount?: number;\n OverrideAmount?: number;\n OverrideReasonDescription?: string;\n OverrideDateTime?: Date;\n UserId?: string;\n }\n \n /**\n * TaxLineGTE entity interface.\n */\n export interface TaxLineGTE extends TaxLine {\n TaxComponent?: string;\n }\n \n /**\n * TaxMeasure entity interface.\n */\n export interface TaxMeasure {\n Path?: string;\n Value?: number;\n DataAreaId?: string;\n SaleLineNumber?: number;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardTokenInfo entity interface.\n */\n export interface CardTokenInfo {\n CardToken?: string;\n UniqueCardId?: string;\n ServiceAccountId?: string;\n MaskedCardNumber?: string;\n }\n \n /**\n * ProductAttributeMetadataFlags entity interface.\n */\n export interface ProductAttributeMetadataFlags {\n IsSearchable?: boolean;\n IsRetrievable?: boolean;\n IsQueryable?: boolean;\n IsRefinable?: boolean;\n IsSortable?: boolean;\n IsMultiValue?: boolean;\n IsTokenNormalization?: boolean;\n IsCompleteMatch?: boolean;\n }\n \n /**\n * UnitOfMeasureConversion entity interface.\n */\n export interface UnitOfMeasureConversion {\n ItemId?: string;\n FromUnitOfMeasureId?: string;\n ToUnitOfMeasureId?: string;\n FromUnitOfMeasureSymbol?: string;\n ToUnitOfMeasureSymbol?: string;\n IsBackward?: boolean;\n RecordId?: number;\n ProductRecordId?: number;\n Factor?: number;\n Numerator?: number;\n Denominator?: number;\n InnerOffset?: number;\n OuterOffset?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PriceLine entity interface.\n */\n export interface PriceLine {\n RecordId?: number;\n Value?: number;\n PriceMethod?: string;\n OriginId?: string;\n PriceChangedByExtensions?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BasePriceLine entity interface.\n */\n export interface BasePriceLine 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 * TradeAgreementPriceLine entity interface.\n */\n export interface TradeAgreementPriceLine extends PriceLine {\n }\n \n /**\n * ReturnLabelContent entity interface.\n */\n export interface ReturnLabelContent {\n ReturnLocationText?: string;\n ReturnWarehouseText?: string;\n ReturnReasonText?: string;\n ReturnPalleteText?: string;\n ItemId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyRewardPointLine entity interface.\n */\n export interface LoyaltyRewardPointLine {\n TransactionId?: string;\n SaleLineNumber?: number;\n LoyaltyGroupRecordId?: number;\n LoyaltyCardNumber?: string;\n CustomerAccount?: string;\n EntryDate?: Date;\n EntryTime?: number;\n EntryTypeValue?: number;\n ExpirationDate?: Date;\n LineNumber?: number;\n LoyaltyTierRecordId?: number;\n RewardPointRecordId?: number;\n RewardPointAmountQuantity?: number;\n RewardPointId?: string;\n RewardPointIsRedeemable?: boolean;\n RewardPointType?: string;\n RewardPointCurrency?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DetailedLineStatus entity interface.\n */\n export interface DetailedLineStatus extends ExtensibleEnumeration {\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 * 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 * ScaleUnitConfiguration entity interface.\n */\n export interface ScaleUnitConfiguration {\n Id?: string;\n Name?: string;\n Region?: string;\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 * PaymentError entity interface.\n */\n export interface PaymentError {\n Code?: string;\n Message?: string;\n IsLocalized?: boolean;\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 * 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 * 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 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 * 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 * 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 * 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 * 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 * 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 * 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 IsInventoryAvailabilityQuantityReturned?: boolean;\n SumUncountedTransactions?: 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 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 * PaymentException entity interface.\n */\n export interface PaymentException extends CommerceException {\n PaymentSdkErrors?: PaymentError[];\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 * 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 * 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 * StaffPasswordExpiredException entity interface.\n */\n export interface StaffPasswordExpiredException extends UserAuthenticationException {\n StaffId?: string;\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 * 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 ","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { ProductList, ProductListSearchCriteria, ProductListLine } from '../Entities/CommerceTypes.g';\r\n import { ProductListClass, ProductListLineClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function productListsQuery(id?: string): DataServiceQuery {\r\n var key = (id) ? { Id: id } : null;\r\n return new DataServiceQuery(\"ProductLists\", \"ProductList\", ProductListClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: ProductList): IDataServiceRequest {\r\n return productListsQuery().create(entity);\r\n }\r\n\r\n export function createProductListAsync(context: IContext, entity: ProductList): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: ProductList): IDataServiceRequest {\r\n return productListsQuery(entity.Id).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: ProductList): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: ProductList): IDataServiceRequest {\r\n return productListsQuery(entity.Id).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: ProductList): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(id: string): IDataServiceRequest {\r\n return productListsQuery(id).read();\r\n }\r\n\r\n export function readAsync(context: IContext, id: string): AsyncResult {\r\n const request = createReadAsync(id);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return productListsQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createSearchInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductListSearchCriteria | null): IDataServiceRequest { \r\n const query = productListsQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('Search', true, ProductListClass, 'true', {bypassCache: 'none', returnEntity: 'ProductList'}, {searchCriteria: searchCriteria });\r\n } \r\n \r\n export function searchAsync(context: IContext, searchCriteria?: ProductListSearchCriteria | null):AsyncResult {\r\n const request = createSearchInput(context.queryResultSettings, searchCriteria);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createGetProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, searchText?: string | null): IDataServiceRequest { \r\n const query = productListsQuery(id).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('GetProductListLines', true, ProductListLineClass, 'true', {bypassCache: 'none', returnEntity: 'ProductListLine'}, {searchText: searchText });\r\n } \r\n \r\n export function getProductListLinesAsync(context: IContext, id: string, searchText?: string | null):AsyncResult {\r\n const request = createGetProductListLinesInput(context.queryResultSettings, id, searchText);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createAddProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \r\n const query = productListsQuery(id).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('AddProductListLines', true, ProductListLineClass, 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\r\n } \r\n \r\n export function addProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\r\n const request = createAddProductListLinesInput(context.queryResultSettings, id, productListLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createUpdateProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \r\n const query = productListsQuery(id).resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation('UpdateProductListLines', true, ProductListLineClass, 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\r\n } \r\n \r\n export function updateProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\r\n const request = createUpdateProductListLinesInput(context.queryResultSettings, id, productListLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createRemoveProductListLinesInput(id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \r\n const query = productListsQuery(id);\r\n return query.createDataServiceRequestForOperation('RemoveProductListLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {productListLines: productListLines });\r\n } \r\n \r\n export function removeProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\r\n const request = createRemoveProductListLinesInput(id, productListLines);\r\n return executeAction(request, context);\r\n } \r\n \r\n export function createCopyCartToProductListInput(id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null): IDataServiceRequest { \r\n const query = productListsQuery(id);\r\n return query.createDataServiceRequestForOperation('CopyCartToProductList', true, ProductListClass, 'false', {bypassCache: 'get', returnEntity: 'ProductList'}, {cartId: cartId, isRewrite: isRewrite, isQuantityAggregate: isQuantityAggregate });\r\n } \r\n \r\n export function copyCartToProductListAsync(context: IContext, id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null):AsyncResult {\r\n const request = createCopyCartToProductListInput(id, cartId, isRewrite, isQuantityAggregate);\r\n return executeAction(request, context);\r\n } \r\n \r\n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// tslint:disable:no-any\nimport { toJS } from 'mobx';\n\nimport { ApiVersion, EntityIdentifier, SortColumn } from './Entities/CommerceTypes.g';\n\nimport { BypassCache, CacheType, ICallerContext, IDataServiceQueryInternal, IDataServiceRequest } from './Interfaces';\nimport { RetailLogger, Tracer, Utils } 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';\n\nexport const ODATA_TOTAL_COUNT_PROPERTY = '@odata.count';\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___';\n\nconst ApiTimeoutInMilliSecond = 10000;\nconst OPERATINGUNITNUMBER_HEADERNAME = 'OUN';\nconst AUTHORIZATION_HEADERNAME = 'Authorization';\nconst ACCEPT_LANGUAGE = 'Accept-Language';\nconst REQUEST_ID = 'RequestId';\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 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\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 // @ts-ignore\n if (!dateTime.__edmType || !dateTime.__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 // @ts-ignore\n dateTime.__edmType = 'Edm.DateTimeOffset';\n // @ts-ignore\n dateTime.__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 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 RetailLogger.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 RetailLogger.modelManagersRetailServerRequestFinished(requestId, this._requestUri);\n const resultSet = parseOdataResult(data, this._query.returnType);\n\n // Set the total count on the DataServiceRequest\n if (data && data[ODATA_TOTAL_COUNT_PROPERTY]) {\n this._totalCount = data[ODATA_TOTAL_COUNT_PROPERTY];\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 RetailLogger.modelManagersRetailServerRequestError(requestId, this._requestUri, error.message);\n reject(ErrorParser.parseErrorMessage(error));\n }\n );\n });\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 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 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 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 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 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, SalesOrder, OrderShipments, PurchaseHistory, CustomerSearchField, CustomerTimelineItemTypeMap, CustomerTimelineRefiner, CustomerTitle } from '../Entities/CommerceTypes.g';\n import { CustomerClass, GlobalCustomerClass, CustomerTimelineItemClass, 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 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, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderShipmentsHistory', true, OrderShipmentsClass, 'true', {bypassCache: 'none', returnEntity: 'OrderShipments'}, { });\n } \n \n export function getOrderShipmentsHistoryAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetOrderShipmentsHistoryInput(context.queryResultSettings, accountNumber);\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): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetTillLayout', true, TillLayoutClass, 'false', {bypassCache: 'none', returnEntity: 'TillLayout'}, {height: height, width: width });\n } \n \n export function getTillLayoutAsync(context: IContext, height?: number | null, width?: number | null):AsyncResult {\n const request = createGetTillLayoutInput(height, width);\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","\r\n // \r\n\r\n import { AsyncResult } from '../async-result';\r\n import { DataServiceQuery } from '../DataServiceQuery';\r\n import { PickingList } from '../Entities/CommerceTypes.g';\r\n import { PickingListClass } from '../Entities/CommerceModels.g';\r\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\r\n import { executeAction } from '../retail-action';\r\n\r\n \r\n \r\n function pickingListsQuery(orderId?: string): DataServiceQuery {\r\n var key = (orderId) ? { OrderId: orderId } : null;\r\n return new DataServiceQuery(\"PickingLists\", \"PickingList\", PickingListClass, key);\r\n }\r\n \r\n export function createCreateInput(entity: PickingList): IDataServiceRequest {\r\n return pickingListsQuery().create(entity);\r\n }\r\n\r\n export function createPickingListAsync(context: IContext, entity: PickingList): AsyncResult {\r\n const request = createCreateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createUpdateInput(entity: PickingList): IDataServiceRequest {\r\n return pickingListsQuery(entity.OrderId).update(entity);\r\n }\r\n\r\n export function updateAsync(context: IContext, entity: PickingList): AsyncResult {\r\n const request = createUpdateInput(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createDeleteAsync(entity: PickingList): IDataServiceRequest {\r\n return pickingListsQuery(entity.OrderId).delete();\r\n }\r\n\r\n export function deleteAsync(context: IContext, entity: PickingList): AsyncResult {\r\n const request = createDeleteAsync(entity);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAsync(orderId: string): IDataServiceRequest {\r\n return pickingListsQuery(orderId).read();\r\n }\r\n\r\n export function readAsync(context: IContext, orderId: string): AsyncResult {\r\n const request = createReadAsync(orderId);\r\n return executeAction(request, context);\r\n }\r\n\r\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\r\n return pickingListsQuery().resultSettings(queryResultSettings).read();\r\n }\r\n\r\n export function readAllAsync(context: IContext): AsyncResult {\r\n const request = createReadAllAsync(context.queryResultSettings);\r\n return executeAction(request, context);\r\n }\r\n \r\n export function createCommitInput(orderId: string, ): IDataServiceRequest { \r\n const query = pickingListsQuery(orderId);\r\n return query.createDataServiceRequestForOperation('Commit', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\r\n } \r\n \r\n export function commitAsync(context: IContext, orderId: string):AsyncResult {\r\n const request = createCommitInput(orderId);\r\n return executeAction(request, context);\r\n } \r\n \r\n "],"sourceRoot":""}