{"version":3,"file":"static/js/150.2e455b6a88666f19fb66.chunk.js","mappings":"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","sources":["webpack://@msdyn365-commerce-partners/fabrikam/../../src/Entities/CommerceModels.g.ts?1e76"],"sourcesContent":["\n import * as Entities from './CommerceTypes.g';\n import { jsonLightReadStringPropertyValue } from '../externals';\n\n const entityDictionary = {};\n \n /**\n * Category entity class.\n */\n export class CategoryClass implements Entities.Category {\n public RecordId: number;\n public OfflineImage: string;\n public Name: string;\n public ParentCategory: number;\n public DisplayOrder: number;\n public LocalizedDescription: string;\n public Images: Entities.MediaLocation[];\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.Name = \n odataObject.Name;\n \n this.ParentCategory = \n (odataObject.ParentCategory != null) ? parseInt(odataObject.ParentCategory, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.LocalizedDescription = \n odataObject.LocalizedDescription;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryClass'] = CategoryClass;\n \n /**\n * Cart entity class.\n */\n export class CartClass implements Entities.Cart {\n public AffiliationLines: Entities.AffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public AmountPaid: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public IsTaxIncludedInPrice: boolean;\n public BeginDateTime: Date;\n public BusinessDate: Date;\n public CancellationChargeAmount: number;\n public EstimatedShippingAmount: number;\n public CartLines: Entities.CartLine[];\n public CartTypeValue: number;\n public ChannelId: number;\n public ChargeAmount: number;\n public CustomerOrderRemainingBalance: number;\n public ChargeLines: Entities.ChargeLine[];\n public TaxViewLines: Entities.TaxViewLine[];\n public Comment: string;\n public InvoiceComment: string;\n public Coupons: Entities.Coupon[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public DiscountCodes: string[];\n public Id: string;\n public SuspendedCartId: string;\n public TransactionTypeValue: number;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public IsReturnByReceipt: boolean;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsSuspended: boolean;\n public LoyaltyCardId: string;\n public ModifiedDateTime: Date;\n public Name: string;\n public OrderNumber: string;\n public AvailableDepositAmount: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public PrepaymentAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PromotionLines: string[];\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public SalesId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public NetPrice: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public WarehouseId: string;\n public IsCreatedOffline: boolean;\n public CartStatusValue: number;\n public ReceiptTransactionTypeValue: number;\n public CommissionSalesGroup: string;\n public Version: number;\n public TotalItems: number;\n public HasTaxCalculationTriggered: boolean;\n public MerchantProperties: Entities.PaymentMerchantInformation[];\n public HasChargeCalculationTriggered: boolean;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationLines = undefined;\n if (odataObject.AffiliationLines) {\n this.AffiliationLines = [];\n for (var i = 0; i < odataObject.AffiliationLines.length; i++) {\n if (odataObject.AffiliationLines[i] != null) {\n if (odataObject.AffiliationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLines[i] = new entityDictionary[className](odataObject.AffiliationLines[i])\n }\n } else {\n this.AffiliationLines[i] = new AffiliationLoyaltyTierClass(odataObject.AffiliationLines[i]);\n }\n } else {\n this.AffiliationLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CancellationChargeAmount = \n (odataObject.CancellationChargeAmount != null) ? parseFloat(odataObject.CancellationChargeAmount) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.CartLines = undefined;\n if (odataObject.CartLines) {\n this.CartLines = [];\n for (var i = 0; i < odataObject.CartLines.length; i++) {\n if (odataObject.CartLines[i] != null) {\n if (odataObject.CartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLines[i] = new entityDictionary[className](odataObject.CartLines[i])\n }\n } else {\n this.CartLines[i] = new CartLineClass(odataObject.CartLines[i]);\n }\n } else {\n this.CartLines[i] = undefined;\n }\n }\n }\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxViewLines = undefined;\n if (odataObject.TaxViewLines) {\n this.TaxViewLines = [];\n for (var i = 0; i < odataObject.TaxViewLines.length; i++) {\n if (odataObject.TaxViewLines[i] != null) {\n if (odataObject.TaxViewLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxViewLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxViewLines[i] = new entityDictionary[className](odataObject.TaxViewLines[i])\n }\n } else {\n this.TaxViewLines[i] = new TaxViewLineClass(odataObject.TaxViewLines[i]);\n }\n } else {\n this.TaxViewLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.Id = \n odataObject.Id;\n \n this.SuspendedCartId = \n odataObject.SuspendedCartId;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.OrderNumber = \n odataObject.OrderNumber;\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.PrepaymentAppliedOnPickup = \n (odataObject.PrepaymentAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.SalesId = \n odataObject.SalesId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.CartStatusValue = \n odataObject.CartStatusValue;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.Version = \n (odataObject.Version != null) ? parseInt(odataObject.Version, 10) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.MerchantProperties = undefined;\n if (odataObject.MerchantProperties) {\n this.MerchantProperties = [];\n for (var i = 0; i < odataObject.MerchantProperties.length; i++) {\n if (odataObject.MerchantProperties[i] != null) {\n if (odataObject.MerchantProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.MerchantProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MerchantProperties[i] = new entityDictionary[className](odataObject.MerchantProperties[i])\n }\n } else {\n this.MerchantProperties[i] = new PaymentMerchantInformationClass(odataObject.MerchantProperties[i]);\n }\n } else {\n this.MerchantProperties[i] = undefined;\n }\n }\n }\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartClass'] = CartClass;\n \n /**\n * Customer entity class.\n */\n export class CustomerClass implements Entities.Customer {\n public AccountNumber: string;\n public RecordId: number;\n public CreatedDateTime: Date;\n public ChargeGroup: string;\n public PriceGroup: string;\n public IsCustomerTaxInclusive: boolean;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Cellphone: string;\n public Email: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public Name: string;\n public PersonNameId: number;\n public FirstName: string;\n public MiddleName: string;\n public LastName: string;\n public DirectoryPartyRecordId: number;\n public PartyNumber: string;\n public CustomerTypeValue: number;\n public Language: string;\n public CustomerGroup: string;\n public CurrencyCode: string;\n public CNPJCPFNumber: string;\n public IdentificationNumber: string;\n public InvoiceAccount: string;\n public MandatoryCreditLimit: boolean;\n public CreditRating: string;\n public CreditLimit: number;\n public Balance: number;\n public Blocked: boolean;\n public BlockedType: number;\n public UseOrderNumberReference: boolean;\n public OrganizationId: string;\n public UsePurchaseRequest: boolean;\n public MultilineDiscountGroup: string;\n public TotalDiscountGroup: string;\n public LineDiscountGroup: string;\n public TaxGroup: string;\n public SalesTaxGroup: string;\n public CommissionSalesGroupId: string;\n public TaxExemptNumber: string;\n public VatNumber: string;\n public TaxOffice: string;\n public NonChargeableAccount: boolean;\n public Tag: string;\n public ReceiptSettings: number;\n public ReceiptEmail: string;\n public OptOutPersonalization: boolean;\n public OptOutWebActivityTracking: boolean;\n public RetailCustomerTableRecordId: number;\n public OfflineImage: string;\n public IsAsyncCustomer: boolean;\n public NewCustomerPartyNumber: string;\n public CustomerAffiliations: Entities.CustomerAffiliation[];\n public Addresses: Entities.Address[];\n public Attributes: Entities.CustomerAttribute[];\n public Images: Entities.MediaLocation[];\n public TitleRecordId: number;\n public IsFloorLimitBlocked: boolean;\n public IsB2b: boolean;\n public IsB2bAdmin: boolean;\n public BusinessPartnerId: string;\n public Contacts: Entities.ContactInfo[];\n public AllowOnAccountPayment: boolean;\n public DefaultPaymentMethod: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.PriceGroup = \n odataObject.PriceGroup;\n \n this.IsCustomerTaxInclusive = \n odataObject.IsCustomerTaxInclusive;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Cellphone = \n odataObject.Cellphone;\n \n this.Email = \n odataObject.Email;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.PersonNameId = \n (odataObject.PersonNameId != null) ? parseInt(odataObject.PersonNameId, 10) : undefined;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.MiddleName = \n odataObject.MiddleName;\n \n this.LastName = \n odataObject.LastName;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Language = \n odataObject.Language;\n \n this.CustomerGroup = \n odataObject.CustomerGroup;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CNPJCPFNumber = \n odataObject.CNPJCPFNumber;\n \n this.IdentificationNumber = \n odataObject.IdentificationNumber;\n \n this.InvoiceAccount = \n odataObject.InvoiceAccount;\n \n this.MandatoryCreditLimit = \n odataObject.MandatoryCreditLimit;\n \n this.CreditRating = \n odataObject.CreditRating;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.BlockedType = \n odataObject.BlockedType;\n \n this.UseOrderNumberReference = \n odataObject.UseOrderNumberReference;\n \n this.OrganizationId = \n odataObject.OrganizationId;\n \n this.UsePurchaseRequest = \n odataObject.UsePurchaseRequest;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.TotalDiscountGroup = \n odataObject.TotalDiscountGroup;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.CommissionSalesGroupId = \n odataObject.CommissionSalesGroupId;\n \n this.TaxExemptNumber = \n odataObject.TaxExemptNumber;\n \n this.VatNumber = \n odataObject.VatNumber;\n \n this.TaxOffice = \n odataObject.TaxOffice;\n \n this.NonChargeableAccount = \n odataObject.NonChargeableAccount;\n \n this.Tag = \n odataObject.Tag;\n \n this.ReceiptSettings = \n odataObject.ReceiptSettings;\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.OptOutPersonalization = \n odataObject.OptOutPersonalization;\n \n this.OptOutWebActivityTracking = \n odataObject.OptOutWebActivityTracking;\n \n this.RetailCustomerTableRecordId = \n (odataObject.RetailCustomerTableRecordId != null) ? parseInt(odataObject.RetailCustomerTableRecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.NewCustomerPartyNumber = \n odataObject.NewCustomerPartyNumber;\n \n this.CustomerAffiliations = undefined;\n if (odataObject.CustomerAffiliations) {\n this.CustomerAffiliations = [];\n for (var i = 0; i < odataObject.CustomerAffiliations.length; i++) {\n if (odataObject.CustomerAffiliations[i] != null) {\n if (odataObject.CustomerAffiliations[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAffiliations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAffiliations[i] = new entityDictionary[className](odataObject.CustomerAffiliations[i])\n }\n } else {\n this.CustomerAffiliations[i] = new CustomerAffiliationClass(odataObject.CustomerAffiliations[i]);\n }\n } else {\n this.CustomerAffiliations[i] = undefined;\n }\n }\n }\n \n this.Addresses = undefined;\n if (odataObject.Addresses) {\n this.Addresses = [];\n for (var i = 0; i < odataObject.Addresses.length; i++) {\n if (odataObject.Addresses[i] != null) {\n if (odataObject.Addresses[i]['@odata.type'] != null) {\n var className: string = odataObject.Addresses[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Addresses[i] = new entityDictionary[className](odataObject.Addresses[i])\n }\n } else {\n this.Addresses[i] = new AddressClass(odataObject.Addresses[i]);\n }\n } else {\n this.Addresses[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.TitleRecordId = \n (odataObject.TitleRecordId != null) ? parseInt(odataObject.TitleRecordId, 10) : undefined;\n \n this.IsFloorLimitBlocked = \n odataObject.IsFloorLimitBlocked;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.IsB2bAdmin = \n odataObject.IsB2bAdmin;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new ContactInfoClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.AllowOnAccountPayment = \n odataObject.AllowOnAccountPayment;\n \n this.DefaultPaymentMethod = \n odataObject.DefaultPaymentMethod;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerClass'] = CustomerClass;\n \n /**\n * Employee entity class.\n */\n export class EmployeeClass implements Entities.Employee {\n public StaffId: string;\n public NameOnReceipt: string;\n public Name: string;\n public CultureName: string;\n public NumberOfDaysToPasswordExpiry: number;\n public Permissions: Entities.EmployeePermissions;\n public Images: Entities.MediaLocation[];\n public DefaultImage: string;\n public DefaultCommissionSalesGroup: string;\n public IdentifierTypeValue: number;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.NameOnReceipt = \n odataObject.NameOnReceipt;\n \n this.Name = \n odataObject.Name;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.NumberOfDaysToPasswordExpiry = \n odataObject.NumberOfDaysToPasswordExpiry;\n \n if (odataObject.Permissions == null) {\n this.Permissions = undefined;\n } else if (odataObject.Permissions['@odata.type'] == null) {\n this.Permissions = new EmployeePermissionsClass(odataObject.Permissions);\n } else {\n var className: string = odataObject.Permissions['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Permissions = new entityDictionary[className](odataObject.Permissions)\n }\n }\n\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.DefaultCommissionSalesGroup = \n odataObject.DefaultCommissionSalesGroup;\n \n this.IdentifierTypeValue = \n odataObject.IdentifierTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeClass'] = EmployeeClass;\n \n /**\n * Checklist entity class.\n */\n export class ChecklistClass implements Entities.Checklist {\n public RecordId: number;\n public Tasks: Entities.ChecklistTask[];\n public Version: string;\n public ProcessId: string;\n public Name: string;\n public Description: string;\n public AssignedToChannelId: number;\n public AssignedToWorkerPersonnelNumber: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public TargetDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Tasks = undefined;\n if (odataObject.Tasks) {\n this.Tasks = [];\n for (var i = 0; i < odataObject.Tasks.length; i++) {\n if (odataObject.Tasks[i] != null) {\n if (odataObject.Tasks[i]['@odata.type'] != null) {\n var className: string = odataObject.Tasks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Tasks[i] = new entityDictionary[className](odataObject.Tasks[i])\n }\n } else {\n this.Tasks[i] = new ChecklistTaskClass(odataObject.Tasks[i]);\n }\n } else {\n this.Tasks[i] = undefined;\n }\n }\n }\n \n this.Version = \n odataObject.Version;\n \n this.ProcessId = \n odataObject.ProcessId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.AssignedToChannelId = \n (odataObject.AssignedToChannelId != null) ? parseInt(odataObject.AssignedToChannelId, 10) : undefined;\n \n this.AssignedToWorkerPersonnelNumber = \n odataObject.AssignedToWorkerPersonnelNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TargetDateTime = \n (odataObject.TargetDateTime instanceof Date) ? odataObject.TargetDateTime\n : (odataObject.TargetDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TargetDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistClass'] = ChecklistClass;\n \n /**\n * SalesOrder entity class.\n */\n export class SalesOrderClass implements Entities.SalesOrder {\n public DocumentStatusValue: number;\n public RecordId: number;\n public StatusValue: number;\n public McrOrderStopped: boolean;\n public Shipments: Entities.Shipment[];\n public AggregateInventoryQuantities: Entities.InventoryQuantities;\n public UnifiedDeliveryInformation: Entities.DeliveryInformation;\n public PaymentStatusValue: number;\n public DetailedOrderStatusValue: number;\n public AffiliationLoyaltyTierLines: Entities.SalesAffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public EstimatedShippingAmount: number;\n public AmountPaid: number;\n public CustomerOrderRemainingBalance: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public AvailableDepositAmount: number;\n public BeginDateTime: Date;\n public CreatedDateTime: Date;\n public BusinessDate: Date;\n public CalculatedDepositAmount: number;\n public CancellationCharge: number;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public ChargeAmount: number;\n public ChargeLines: Entities.ChargeLine[];\n public Comment: string;\n public Coupons: Entities.Coupon[];\n public InvoiceComment: string;\n public ContactInformationCollection: Entities.ContactInformation[];\n public CurrencyCode: string;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public CustomerOrderTypeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountCodes: string[];\n public EntryStatusValue: number;\n public GrossAmount: number;\n public HasLoyaltyPayment: boolean;\n public Id: string;\n public InternalTransactionId: string;\n public SuspendedTransactionId: string;\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public InventoryLocationId: string;\n public IsCreatedOffline: boolean;\n public IsReturnByReceipt: boolean;\n public IsSuspended: boolean;\n public IsTaxIncludedInPrice: boolean;\n public IsTaxExemptedForPriceInclusive: boolean;\n public LineDiscount: number;\n public LineDiscountCalculationTypeValue: number;\n public LoyaltyCardId: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyManualDiscountAmount: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ModifiedDateTime: Date;\n public Name: string;\n public NetAmount: number;\n public NetAmountWithoutTax: number;\n public NetAmountWithNoTax: number;\n public NetAmountWithTax: number;\n public NumberOfItems: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PeriodicDiscountAmount: number;\n public TenderDiscountAmount: number;\n public PrepaymentAmountAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public SalesId: string;\n public SalesPaymentDifference: number;\n public SalesLines: Entities.SalesLine[];\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public StatementCode: string;\n public StoreId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxAmountExclusive: number;\n public TaxAmountInclusive: number;\n public TaxLines: Entities.TaxLine[];\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalDiscount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public TransactionTypeValue: number;\n public TaxCalculationTypeValue: number;\n public SalesInvoiceAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public HasTaxCalculationTriggered: boolean;\n public HasChargeCalculationTriggered: boolean;\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public CustomerName: string;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public LanguageId: string;\n public SalesAgreementRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.McrOrderStopped = \n odataObject.McrOrderStopped;\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n if (odataObject.AggregateInventoryQuantities == null) {\n this.AggregateInventoryQuantities = undefined;\n } else if (odataObject.AggregateInventoryQuantities['@odata.type'] == null) {\n this.AggregateInventoryQuantities = new InventoryQuantitiesClass(odataObject.AggregateInventoryQuantities);\n } else {\n var className: string = odataObject.AggregateInventoryQuantities['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregateInventoryQuantities = new entityDictionary[className](odataObject.AggregateInventoryQuantities)\n }\n }\n\n \n if (odataObject.UnifiedDeliveryInformation == null) {\n this.UnifiedDeliveryInformation = undefined;\n } else if (odataObject.UnifiedDeliveryInformation['@odata.type'] == null) {\n this.UnifiedDeliveryInformation = new DeliveryInformationClass(odataObject.UnifiedDeliveryInformation);\n } else {\n var className: string = odataObject.UnifiedDeliveryInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnifiedDeliveryInformation = new entityDictionary[className](odataObject.UnifiedDeliveryInformation)\n }\n }\n\n \n this.PaymentStatusValue = \n odataObject.PaymentStatusValue;\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.AffiliationLoyaltyTierLines = undefined;\n if (odataObject.AffiliationLoyaltyTierLines) {\n this.AffiliationLoyaltyTierLines = [];\n for (var i = 0; i < odataObject.AffiliationLoyaltyTierLines.length; i++) {\n if (odataObject.AffiliationLoyaltyTierLines[i] != null) {\n if (odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLoyaltyTierLines[i] = new entityDictionary[className](odataObject.AffiliationLoyaltyTierLines[i])\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = new SalesAffiliationLoyaltyTierClass(odataObject.AffiliationLoyaltyTierLines[i]);\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CalculatedDepositAmount = \n (odataObject.CalculatedDepositAmount != null) ? parseFloat(odataObject.CalculatedDepositAmount) : undefined;\n \n this.CancellationCharge = \n (odataObject.CancellationCharge != null) ? parseFloat(odataObject.CancellationCharge) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.ContactInformationCollection = undefined;\n if (odataObject.ContactInformationCollection) {\n this.ContactInformationCollection = [];\n for (var i = 0; i < odataObject.ContactInformationCollection.length; i++) {\n if (odataObject.ContactInformationCollection[i] != null) {\n if (odataObject.ContactInformationCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ContactInformationCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ContactInformationCollection[i] = new entityDictionary[className](odataObject.ContactInformationCollection[i])\n }\n } else {\n this.ContactInformationCollection[i] = new ContactInformationClass(odataObject.ContactInformationCollection[i]);\n }\n } else {\n this.ContactInformationCollection[i] = undefined;\n }\n }\n }\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.CustomerOrderTypeValue = \n odataObject.CustomerOrderTypeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.EntryStatusValue = \n odataObject.EntryStatusValue;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.HasLoyaltyPayment = \n odataObject.HasLoyaltyPayment;\n \n this.Id = \n odataObject.Id;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.SuspendedTransactionId = \n odataObject.SuspendedTransactionId;\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.IsTaxExemptedForPriceInclusive = \n odataObject.IsTaxExemptedForPriceInclusive;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LineDiscountCalculationTypeValue = \n odataObject.LineDiscountCalculationTypeValue;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyManualDiscountAmount = \n (odataObject.LoyaltyManualDiscountAmount != null) ? parseFloat(odataObject.LoyaltyManualDiscountAmount) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetAmountWithNoTax = \n (odataObject.NetAmountWithNoTax != null) ? parseFloat(odataObject.NetAmountWithNoTax) : undefined;\n \n this.NetAmountWithTax = \n (odataObject.NetAmountWithTax != null) ? parseFloat(odataObject.NetAmountWithTax) : undefined;\n \n this.NumberOfItems = \n (odataObject.NumberOfItems != null) ? parseFloat(odataObject.NumberOfItems) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PeriodicDiscountAmount = \n (odataObject.PeriodicDiscountAmount != null) ? parseFloat(odataObject.PeriodicDiscountAmount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.PrepaymentAmountAppliedOnPickup = \n (odataObject.PrepaymentAmountAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAmountAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPaymentDifference = \n (odataObject.SalesPaymentDifference != null) ? parseFloat(odataObject.SalesPaymentDifference) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TaxCalculationTypeValue = \n odataObject.TaxCalculationTypeValue;\n \n this.SalesInvoiceAmount = \n (odataObject.SalesInvoiceAmount != null) ? parseFloat(odataObject.SalesInvoiceAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.SalesAgreementRecordId = \n (odataObject.SalesAgreementRecordId != null) ? parseInt(odataObject.SalesAgreementRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderClass'] = SalesOrderClass;\n \n /**\n * Shift entity class.\n */\n export class ShiftClass implements Entities.Shift {\n public ShiftId: number;\n public TerminalId: string;\n public StartingAmountTotal: number;\n public FloatingEntryAmountTotal: number;\n public AddToTenderAmountTotal: number;\n public SafeDropTotal: number;\n public BankDropTotal: number;\n public RemoveTenderAmountTotal: number;\n public DeclareTenderAmountTotal: number;\n public OverShortTotal: number;\n public TenderedTotal: number;\n public ChangeTotal: number;\n public IncomeAccountTotal: number;\n public ExpenseAccountTotal: number;\n public CashDrawer: string;\n public StoreRecordId: number;\n public StoreId: string;\n public StaffId: string;\n public CurrentStaffId: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public CloseDateTime: Date;\n public ClosedAtTerminalId: string;\n public ClosedAtShiftId: number;\n public CurrentTerminalId: string;\n public SalesTotal: number;\n public StatusDateTime: Date;\n public ReturnsTotal: number;\n public PaidToAccountTotal: number;\n public TaxTotal: number;\n public ChargeTotal: number;\n public DiscountTotal: number;\n public RoundedAmountTotal: number;\n public CustomerCount: number;\n public SaleTransactionCount: number;\n public NoSaleTransactionCount: number;\n public VoidTransactionCount: number;\n public LogOnTransactionCount: number;\n public SuspendedTransactionCount: number;\n public TransactionCount: number;\n public ReceiptsCount: number;\n public ReturnsCount: number;\n public GoodsSoldQty: number;\n public ServicesSoldQty: number;\n public ReceiptCopiesCount: number;\n public ReceiptCopiesTotal: number;\n public PriceOverrideTotal: number;\n public SuspendedTotal: number;\n public SalesTotalIncludingTax: number;\n public SalesTotalExcludingTax: number;\n public SalesGrandTotal: number;\n public ReturnsGrandTotal: number;\n public TaxLines: Entities.ShiftTaxLine[];\n public TenderLines: Entities.ShiftTenderLine[];\n public AccountLines: Entities.ShiftAccountLine[];\n public IsShared: boolean;\n public StartingAmountRunningTotal: number;\n public GiftCardsTotal: number;\n public GiftCardCashOutTotal: number;\n public VoidedSalesTotal: number;\n public ShiftSalesTotal: number;\n public ShiftReturnsTotal: number;\n public HasPendingOfflineTransactions: number;\n public NumberOfUnreconciledLines: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.StartingAmountTotal = \n (odataObject.StartingAmountTotal != null) ? parseFloat(odataObject.StartingAmountTotal) : undefined;\n \n this.FloatingEntryAmountTotal = \n (odataObject.FloatingEntryAmountTotal != null) ? parseFloat(odataObject.FloatingEntryAmountTotal) : undefined;\n \n this.AddToTenderAmountTotal = \n (odataObject.AddToTenderAmountTotal != null) ? parseFloat(odataObject.AddToTenderAmountTotal) : undefined;\n \n this.SafeDropTotal = \n (odataObject.SafeDropTotal != null) ? parseFloat(odataObject.SafeDropTotal) : undefined;\n \n this.BankDropTotal = \n (odataObject.BankDropTotal != null) ? parseFloat(odataObject.BankDropTotal) : undefined;\n \n this.RemoveTenderAmountTotal = \n (odataObject.RemoveTenderAmountTotal != null) ? parseFloat(odataObject.RemoveTenderAmountTotal) : undefined;\n \n this.DeclareTenderAmountTotal = \n (odataObject.DeclareTenderAmountTotal != null) ? parseFloat(odataObject.DeclareTenderAmountTotal) : undefined;\n \n this.OverShortTotal = \n (odataObject.OverShortTotal != null) ? parseFloat(odataObject.OverShortTotal) : undefined;\n \n this.TenderedTotal = \n (odataObject.TenderedTotal != null) ? parseFloat(odataObject.TenderedTotal) : undefined;\n \n this.ChangeTotal = \n (odataObject.ChangeTotal != null) ? parseFloat(odataObject.ChangeTotal) : undefined;\n \n this.IncomeAccountTotal = \n (odataObject.IncomeAccountTotal != null) ? parseFloat(odataObject.IncomeAccountTotal) : undefined;\n \n this.ExpenseAccountTotal = \n (odataObject.ExpenseAccountTotal != null) ? parseFloat(odataObject.ExpenseAccountTotal) : undefined;\n \n this.CashDrawer = \n odataObject.CashDrawer;\n \n this.StoreRecordId = \n (odataObject.StoreRecordId != null) ? parseInt(odataObject.StoreRecordId, 10) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.CurrentStaffId = \n odataObject.CurrentStaffId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CloseDateTime = \n (odataObject.CloseDateTime instanceof Date) ? odataObject.CloseDateTime\n : (odataObject.CloseDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CloseDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ClosedAtTerminalId = \n odataObject.ClosedAtTerminalId;\n \n this.ClosedAtShiftId = \n (odataObject.ClosedAtShiftId != null) ? parseInt(odataObject.ClosedAtShiftId, 10) : undefined;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this.SalesTotal = \n (odataObject.SalesTotal != null) ? parseFloat(odataObject.SalesTotal) : undefined;\n \n this.StatusDateTime = \n (odataObject.StatusDateTime instanceof Date) ? odataObject.StatusDateTime\n : (odataObject.StatusDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StatusDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReturnsTotal = \n (odataObject.ReturnsTotal != null) ? parseFloat(odataObject.ReturnsTotal) : undefined;\n \n this.PaidToAccountTotal = \n (odataObject.PaidToAccountTotal != null) ? parseFloat(odataObject.PaidToAccountTotal) : undefined;\n \n this.TaxTotal = \n (odataObject.TaxTotal != null) ? parseFloat(odataObject.TaxTotal) : undefined;\n \n this.ChargeTotal = \n (odataObject.ChargeTotal != null) ? parseFloat(odataObject.ChargeTotal) : undefined;\n \n this.DiscountTotal = \n (odataObject.DiscountTotal != null) ? parseFloat(odataObject.DiscountTotal) : undefined;\n \n this.RoundedAmountTotal = \n (odataObject.RoundedAmountTotal != null) ? parseFloat(odataObject.RoundedAmountTotal) : undefined;\n \n this.CustomerCount = \n odataObject.CustomerCount;\n \n this.SaleTransactionCount = \n odataObject.SaleTransactionCount;\n \n this.NoSaleTransactionCount = \n odataObject.NoSaleTransactionCount;\n \n this.VoidTransactionCount = \n odataObject.VoidTransactionCount;\n \n this.LogOnTransactionCount = \n odataObject.LogOnTransactionCount;\n \n this.SuspendedTransactionCount = \n odataObject.SuspendedTransactionCount;\n \n this.TransactionCount = \n odataObject.TransactionCount;\n \n this.ReceiptsCount = \n odataObject.ReceiptsCount;\n \n this.ReturnsCount = \n odataObject.ReturnsCount;\n \n this.GoodsSoldQty = \n (odataObject.GoodsSoldQty != null) ? parseFloat(odataObject.GoodsSoldQty) : undefined;\n \n this.ServicesSoldQty = \n (odataObject.ServicesSoldQty != null) ? parseFloat(odataObject.ServicesSoldQty) : undefined;\n \n this.ReceiptCopiesCount = \n odataObject.ReceiptCopiesCount;\n \n this.ReceiptCopiesTotal = \n (odataObject.ReceiptCopiesTotal != null) ? parseFloat(odataObject.ReceiptCopiesTotal) : undefined;\n \n this.PriceOverrideTotal = \n (odataObject.PriceOverrideTotal != null) ? parseFloat(odataObject.PriceOverrideTotal) : undefined;\n \n this.SuspendedTotal = \n (odataObject.SuspendedTotal != null) ? parseFloat(odataObject.SuspendedTotal) : undefined;\n \n this.SalesTotalIncludingTax = \n (odataObject.SalesTotalIncludingTax != null) ? parseFloat(odataObject.SalesTotalIncludingTax) : undefined;\n \n this.SalesTotalExcludingTax = \n (odataObject.SalesTotalExcludingTax != null) ? parseFloat(odataObject.SalesTotalExcludingTax) : undefined;\n \n this.SalesGrandTotal = \n (odataObject.SalesGrandTotal != null) ? parseFloat(odataObject.SalesGrandTotal) : undefined;\n \n this.ReturnsGrandTotal = \n (odataObject.ReturnsGrandTotal != null) ? parseFloat(odataObject.ReturnsGrandTotal) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new ShiftTaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new ShiftTenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.AccountLines = undefined;\n if (odataObject.AccountLines) {\n this.AccountLines = [];\n for (var i = 0; i < odataObject.AccountLines.length; i++) {\n if (odataObject.AccountLines[i] != null) {\n if (odataObject.AccountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AccountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AccountLines[i] = new entityDictionary[className](odataObject.AccountLines[i])\n }\n } else {\n this.AccountLines[i] = new ShiftAccountLineClass(odataObject.AccountLines[i]);\n }\n } else {\n this.AccountLines[i] = undefined;\n }\n }\n }\n \n this.IsShared = \n odataObject.IsShared;\n \n this.StartingAmountRunningTotal = \n (odataObject.StartingAmountRunningTotal != null) ? parseFloat(odataObject.StartingAmountRunningTotal) : undefined;\n \n this.GiftCardsTotal = \n (odataObject.GiftCardsTotal != null) ? parseFloat(odataObject.GiftCardsTotal) : undefined;\n \n this.GiftCardCashOutTotal = \n (odataObject.GiftCardCashOutTotal != null) ? parseFloat(odataObject.GiftCardCashOutTotal) : undefined;\n \n this.VoidedSalesTotal = \n (odataObject.VoidedSalesTotal != null) ? parseFloat(odataObject.VoidedSalesTotal) : undefined;\n \n this.ShiftSalesTotal = \n (odataObject.ShiftSalesTotal != null) ? parseFloat(odataObject.ShiftSalesTotal) : undefined;\n \n this.ShiftReturnsTotal = \n (odataObject.ShiftReturnsTotal != null) ? parseFloat(odataObject.ShiftReturnsTotal) : undefined;\n \n this.HasPendingOfflineTransactions = \n odataObject.HasPendingOfflineTransactions;\n \n this.NumberOfUnreconciledLines = \n (odataObject.NumberOfUnreconciledLines != null) ? parseFloat(odataObject.NumberOfUnreconciledLines) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftClass'] = ShiftClass;\n \n /**\n * StockCountJournal entity class.\n */\n export class StockCountJournalClass implements Entities.StockCountJournal {\n public JournalId: string;\n public RecordId: string;\n public Description: string;\n public InventLocationId: string;\n public DataAreaId: string;\n public StockCountTransactionLines: Entities.StockCountJournalTransaction[];\n public Worker: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Description = \n odataObject.Description;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.StockCountTransactionLines = undefined;\n if (odataObject.StockCountTransactionLines) {\n this.StockCountTransactionLines = [];\n for (var i = 0; i < odataObject.StockCountTransactionLines.length; i++) {\n if (odataObject.StockCountTransactionLines[i] != null) {\n if (odataObject.StockCountTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.StockCountTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.StockCountTransactionLines[i] = new entityDictionary[className](odataObject.StockCountTransactionLines[i])\n }\n } else {\n this.StockCountTransactionLines[i] = new StockCountJournalTransactionClass(odataObject.StockCountTransactionLines[i]);\n }\n } else {\n this.StockCountTransactionLines[i] = undefined;\n }\n }\n }\n \n this.Worker = \n odataObject.Worker;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalClass'] = StockCountJournalClass;\n \n /**\n * OrgUnit entity class.\n */\n export class OrgUnitClass implements Entities.OrgUnit {\n public OrgUnitNumber: string;\n public RecordId: number;\n public InventoryLocationId: string;\n public OMOperatingUnitNumber: string;\n public TaxGroup: string;\n public FunctionalityProfileId: string;\n public UseCustomerBasedTax: boolean;\n public UseCustomerBasedTaxExemption: boolean;\n public UseDestinationBasedTax: boolean;\n public Currency: string;\n public TimeZoneCode: number;\n public OrgUnitAddress: Entities.Address;\n public OrgUnitFullAddress: string;\n public OrgUnitName: string;\n public Latitude: number;\n public Longitude: number;\n public EmailReceiptProfileId: string;\n public ShippingWarehouseAddress: Entities.Address;\n public TaxRegistrations: Entities.TaxRegistration[];\n public EventNotificationProfileId: string;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.OMOperatingUnitNumber = \n odataObject.OMOperatingUnitNumber;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseCustomerBasedTaxExemption = \n odataObject.UseCustomerBasedTaxExemption;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.Currency = \n odataObject.Currency;\n \n this.TimeZoneCode = \n odataObject.TimeZoneCode;\n \n if (odataObject.OrgUnitAddress == null) {\n this.OrgUnitAddress = undefined;\n } else if (odataObject.OrgUnitAddress['@odata.type'] == null) {\n this.OrgUnitAddress = new AddressClass(odataObject.OrgUnitAddress);\n } else {\n var className: string = odataObject.OrgUnitAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitAddress = new entityDictionary[className](odataObject.OrgUnitAddress)\n }\n }\n\n \n this.OrgUnitFullAddress = \n odataObject.OrgUnitFullAddress;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.EmailReceiptProfileId = \n odataObject.EmailReceiptProfileId;\n \n if (odataObject.ShippingWarehouseAddress == null) {\n this.ShippingWarehouseAddress = undefined;\n } else if (odataObject.ShippingWarehouseAddress['@odata.type'] == null) {\n this.ShippingWarehouseAddress = new AddressClass(odataObject.ShippingWarehouseAddress);\n } else {\n var className: string = odataObject.ShippingWarehouseAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingWarehouseAddress = new entityDictionary[className](odataObject.ShippingWarehouseAddress)\n }\n }\n\n \n this.TaxRegistrations = undefined;\n if (odataObject.TaxRegistrations) {\n this.TaxRegistrations = [];\n for (var i = 0; i < odataObject.TaxRegistrations.length; i++) {\n if (odataObject.TaxRegistrations[i] != null) {\n if (odataObject.TaxRegistrations[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxRegistrations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxRegistrations[i] = new entityDictionary[className](odataObject.TaxRegistrations[i])\n }\n } else {\n this.TaxRegistrations[i] = new TaxRegistrationClass(odataObject.TaxRegistrations[i]);\n }\n } else {\n this.TaxRegistrations[i] = undefined;\n }\n }\n }\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitClass'] = OrgUnitClass;\n \n /**\n * Product entity class.\n */\n export class ProductClass implements Entities.Product {\n public RecordId: number;\n public ProductName: string;\n public ProductNumber: string;\n public Description: string;\n public IsMasterProduct: boolean;\n public IsKit: boolean;\n public ItemId: string;\n public HasLinkedProducts: boolean;\n public Rules: Entities.ProductRules;\n public DefaultUnitOfMeasure: string;\n public Name: string;\n public Locale: string;\n public OfflineImage: string;\n public IsRemote: boolean;\n public ChangeTrackingInformation: Entities.ProductChangeTrackingInformation;\n public Image: Entities.RichMediaLocations;\n public UnitsOfMeasureSymbol: string[];\n public LinkedProducts: Entities.LinkedProduct[];\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public RetailContext: Entities.ProjectionDomain;\n public PrimaryCategoryId: number;\n public CategoryIds: number[];\n public DisplayOrderInCategories: Entities.DisplayOrderInCategory[];\n public RelatedProducts: Entities.RelatedProduct[];\n public ProductsRelatedToThis: Entities.RelatedProduct[];\n public ProductSchema: string[];\n public ProductProperties: Entities.ProductPropertyTranslation[];\n public CompositionInformation: Entities.ProductCompositionInformation;\n public ParentKits: Entities.KitComponent[];\n public SearchName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.Description = \n odataObject.Description;\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.IsKit = \n odataObject.IsKit;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n if (odataObject.Rules == null) {\n this.Rules = undefined;\n } else if (odataObject.Rules['@odata.type'] == null) {\n this.Rules = new ProductRulesClass(odataObject.Rules);\n } else {\n var className: string = odataObject.Rules['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Rules = new entityDictionary[className](odataObject.Rules)\n }\n }\n\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.Name = \n odataObject.Name;\n \n this.Locale = \n odataObject.Locale;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsRemote = \n odataObject.IsRemote;\n \n if (odataObject.ChangeTrackingInformation == null) {\n this.ChangeTrackingInformation = undefined;\n } else if (odataObject.ChangeTrackingInformation['@odata.type'] == null) {\n this.ChangeTrackingInformation = new ProductChangeTrackingInformationClass(odataObject.ChangeTrackingInformation);\n } else {\n var className: string = odataObject.ChangeTrackingInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChangeTrackingInformation = new entityDictionary[className](odataObject.ChangeTrackingInformation)\n }\n }\n\n \n if (odataObject.Image == null) {\n this.Image = undefined;\n } else if (odataObject.Image['@odata.type'] == null) {\n this.Image = new RichMediaLocationsClass(odataObject.Image);\n } else {\n var className: string = odataObject.Image['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Image = new entityDictionary[className](odataObject.Image)\n }\n }\n\n \n this.UnitsOfMeasureSymbol = undefined;\n if (odataObject.UnitsOfMeasureSymbol) {\n this.UnitsOfMeasureSymbol = [];\n for (var i = 0; i < odataObject.UnitsOfMeasureSymbol.length; i++) {\n if (odataObject.UnitsOfMeasureSymbol[i] != null) {\n this.UnitsOfMeasureSymbol[i] = \n odataObject.UnitsOfMeasureSymbol[i];\n } else {\n this.UnitsOfMeasureSymbol[i] = undefined;\n }\n }\n }\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new LinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n if (odataObject.RetailContext == null) {\n this.RetailContext = undefined;\n } else if (odataObject.RetailContext['@odata.type'] == null) {\n this.RetailContext = new ProjectionDomainClass(odataObject.RetailContext);\n } else {\n var className: string = odataObject.RetailContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RetailContext = new entityDictionary[className](odataObject.RetailContext)\n }\n }\n\n \n this.PrimaryCategoryId = \n (odataObject.PrimaryCategoryId != null) ? parseInt(odataObject.PrimaryCategoryId, 10) : undefined;\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.DisplayOrderInCategories = undefined;\n if (odataObject.DisplayOrderInCategories) {\n this.DisplayOrderInCategories = [];\n for (var i = 0; i < odataObject.DisplayOrderInCategories.length; i++) {\n if (odataObject.DisplayOrderInCategories[i] != null) {\n if (odataObject.DisplayOrderInCategories[i]['@odata.type'] != null) {\n var className: string = odataObject.DisplayOrderInCategories[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DisplayOrderInCategories[i] = new entityDictionary[className](odataObject.DisplayOrderInCategories[i])\n }\n } else {\n this.DisplayOrderInCategories[i] = new DisplayOrderInCategoryClass(odataObject.DisplayOrderInCategories[i]);\n }\n } else {\n this.DisplayOrderInCategories[i] = undefined;\n }\n }\n }\n \n this.RelatedProducts = undefined;\n if (odataObject.RelatedProducts) {\n this.RelatedProducts = [];\n for (var i = 0; i < odataObject.RelatedProducts.length; i++) {\n if (odataObject.RelatedProducts[i] != null) {\n if (odataObject.RelatedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.RelatedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RelatedProducts[i] = new entityDictionary[className](odataObject.RelatedProducts[i])\n }\n } else {\n this.RelatedProducts[i] = new RelatedProductClass(odataObject.RelatedProducts[i]);\n }\n } else {\n this.RelatedProducts[i] = undefined;\n }\n }\n }\n \n this.ProductsRelatedToThis = undefined;\n if (odataObject.ProductsRelatedToThis) {\n this.ProductsRelatedToThis = [];\n for (var i = 0; i < odataObject.ProductsRelatedToThis.length; i++) {\n if (odataObject.ProductsRelatedToThis[i] != null) {\n if (odataObject.ProductsRelatedToThis[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductsRelatedToThis[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductsRelatedToThis[i] = new entityDictionary[className](odataObject.ProductsRelatedToThis[i])\n }\n } else {\n this.ProductsRelatedToThis[i] = new RelatedProductClass(odataObject.ProductsRelatedToThis[i]);\n }\n } else {\n this.ProductsRelatedToThis[i] = undefined;\n }\n }\n }\n \n this.ProductSchema = undefined;\n if (odataObject.ProductSchema) {\n this.ProductSchema = [];\n for (var i = 0; i < odataObject.ProductSchema.length; i++) {\n if (odataObject.ProductSchema[i] != null) {\n this.ProductSchema[i] = \n odataObject.ProductSchema[i];\n } else {\n this.ProductSchema[i] = undefined;\n }\n }\n }\n \n this.ProductProperties = undefined;\n if (odataObject.ProductProperties) {\n this.ProductProperties = [];\n for (var i = 0; i < odataObject.ProductProperties.length; i++) {\n if (odataObject.ProductProperties[i] != null) {\n if (odataObject.ProductProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductProperties[i] = new entityDictionary[className](odataObject.ProductProperties[i])\n }\n } else {\n this.ProductProperties[i] = new ProductPropertyTranslationClass(odataObject.ProductProperties[i]);\n }\n } else {\n this.ProductProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.CompositionInformation == null) {\n this.CompositionInformation = undefined;\n } else if (odataObject.CompositionInformation['@odata.type'] == null) {\n this.CompositionInformation = new ProductCompositionInformationClass(odataObject.CompositionInformation);\n } else {\n var className: string = odataObject.CompositionInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CompositionInformation = new entityDictionary[className](odataObject.CompositionInformation)\n }\n }\n\n \n this.ParentKits = undefined;\n if (odataObject.ParentKits) {\n this.ParentKits = [];\n for (var i = 0; i < odataObject.ParentKits.length; i++) {\n if (odataObject.ParentKits[i] != null) {\n if (odataObject.ParentKits[i]['@odata.type'] != null) {\n var className: string = odataObject.ParentKits[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ParentKits[i] = new entityDictionary[className](odataObject.ParentKits[i])\n }\n } else {\n this.ParentKits[i] = new KitComponentClass(odataObject.ParentKits[i]);\n }\n } else {\n this.ParentKits[i] = undefined;\n }\n }\n }\n \n this.SearchName = \n odataObject.SearchName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductClass'] = ProductClass;\n \n /**\n * ProductCatalog entity class.\n */\n export class ProductCatalogClass implements Entities.ProductCatalog {\n public RecordId: number;\n public Name: string;\n public Description: string;\n public Language: string;\n public IsSnapshotEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public CreatedOn: Date;\n public ModifiedOn: Date;\n public PublishedOn: Date;\n public Images: Entities.MediaLocation[];\n public ChannelId: number;\n public DefaultImage: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.Language = \n odataObject.Language;\n \n this.IsSnapshotEnabled = \n odataObject.IsSnapshotEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedOn = \n (odataObject.CreatedOn instanceof Date) ? odataObject.CreatedOn\n : (odataObject.CreatedOn != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ModifiedOn = \n (odataObject.ModifiedOn instanceof Date) ? odataObject.ModifiedOn\n : (odataObject.ModifiedOn != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PublishedOn = \n (odataObject.PublishedOn instanceof Date) ? odataObject.PublishedOn\n : (odataObject.PublishedOn != null) ? jsonLightReadStringPropertyValue(odataObject.PublishedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductCatalogClass'] = ProductCatalogClass;\n \n /**\n * CommerceList entity class.\n */\n export class CommerceListClass implements Entities.CommerceList {\n public Id: number;\n public Name: string;\n public CustomerId: string;\n public CustomerName: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public IsCollaborative: boolean;\n public CreatedDateTime: Date;\n public DueDateTime: Date;\n public CommerceListTypeValue: number;\n public CommerceListLines: Entities.CommerceListLine[];\n public CommerceListContributors: Entities.CommerceListContributor[];\n public CommerceListInvitations: Entities.CommerceListInvitation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsCollaborative = \n odataObject.IsCollaborative;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommerceListTypeValue = \n odataObject.CommerceListTypeValue;\n \n this.CommerceListLines = undefined;\n if (odataObject.CommerceListLines) {\n this.CommerceListLines = [];\n for (var i = 0; i < odataObject.CommerceListLines.length; i++) {\n if (odataObject.CommerceListLines[i] != null) {\n if (odataObject.CommerceListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListLines[i] = new entityDictionary[className](odataObject.CommerceListLines[i])\n }\n } else {\n this.CommerceListLines[i] = new CommerceListLineClass(odataObject.CommerceListLines[i]);\n }\n } else {\n this.CommerceListLines[i] = undefined;\n }\n }\n }\n \n this.CommerceListContributors = undefined;\n if (odataObject.CommerceListContributors) {\n this.CommerceListContributors = [];\n for (var i = 0; i < odataObject.CommerceListContributors.length; i++) {\n if (odataObject.CommerceListContributors[i] != null) {\n if (odataObject.CommerceListContributors[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListContributors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListContributors[i] = new entityDictionary[className](odataObject.CommerceListContributors[i])\n }\n } else {\n this.CommerceListContributors[i] = new CommerceListContributorClass(odataObject.CommerceListContributors[i]);\n }\n } else {\n this.CommerceListContributors[i] = undefined;\n }\n }\n }\n \n this.CommerceListInvitations = undefined;\n if (odataObject.CommerceListInvitations) {\n this.CommerceListInvitations = [];\n for (var i = 0; i < odataObject.CommerceListInvitations.length; i++) {\n if (odataObject.CommerceListInvitations[i] != null) {\n if (odataObject.CommerceListInvitations[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListInvitations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListInvitations[i] = new entityDictionary[className](odataObject.CommerceListInvitations[i])\n }\n } else {\n this.CommerceListInvitations[i] = new CommerceListInvitationClass(odataObject.CommerceListInvitations[i]);\n }\n } else {\n this.CommerceListInvitations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListClass'] = CommerceListClass;\n \n /**\n * ProductList entity class.\n */\n export class ProductListClass implements Entities.ProductList {\n public Id: string;\n public Name: string;\n public CustomerId: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public ProductListTypeValue: number;\n public DataAreaId: string;\n public ProductListLines: Entities.ProductListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductListTypeValue = \n odataObject.ProductListTypeValue;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductListLines = undefined;\n if (odataObject.ProductListLines) {\n this.ProductListLines = [];\n for (var i = 0; i < odataObject.ProductListLines.length; i++) {\n if (odataObject.ProductListLines[i] != null) {\n if (odataObject.ProductListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductListLines[i] = new entityDictionary[className](odataObject.ProductListLines[i])\n }\n } else {\n this.ProductListLines[i] = new ProductListLineClass(odataObject.ProductListLines[i]);\n }\n } else {\n this.ProductListLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListClass'] = ProductListClass;\n \n /**\n * Recommendation entity class.\n */\n export class RecommendationClass implements Entities.Recommendation {\n public Id: string;\n public RecommendationTypeValue: number;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.RecommendationTypeValue = \n odataObject.RecommendationTypeValue;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationClass'] = RecommendationClass;\n \n /**\n * TransferOrder entity class.\n */\n export class TransferOrderClass implements Entities.TransferOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityShipRemaining: number;\n public QuantityReceiveRemaining: number;\n public ShipDate: Date;\n public ReceiveDate: Date;\n public DeliveryModeId: string;\n public OrderLines: Entities.TransferOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityShipRemaining = \n (odataObject.QuantityShipRemaining != null) ? parseFloat(odataObject.QuantityShipRemaining) : undefined;\n \n this.QuantityReceiveRemaining = \n (odataObject.QuantityReceiveRemaining != null) ? parseFloat(odataObject.QuantityReceiveRemaining) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new TransferOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderClass'] = TransferOrderClass;\n \n /**\n * PurchaseOrder entity class.\n */\n export class PurchaseOrderClass implements Entities.PurchaseOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public TotalReceived: number;\n public OrderLines: Entities.PurchaseOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PurchaseOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderClass'] = PurchaseOrderClass;\n \n /**\n * PickingList entity class.\n */\n export class PickingListClass implements Entities.PickingList {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationId: string;\n public DeliveryDate: Date;\n public DeliveryMode: string;\n public TotalReceived: number;\n public OrderLines: Entities.PickingListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PickingListLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListClass'] = PickingListClass;\n \n /**\n * Warehouse entity class.\n */\n export class WarehouseClass implements Entities.Warehouse {\n public InventLocation: string;\n public Name: string;\n public IsWMSEnabled: boolean;\n public DefaultInventoryStatus: string;\n public DefaultReceiptLocation: string;\n public DefaultLocationId: string;\n public DefaultIssueLocation: string;\n public Address: Entities.Address;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InventLocation = \n odataObject.InventLocation;\n \n this.Name = \n odataObject.Name;\n \n this.IsWMSEnabled = \n odataObject.IsWMSEnabled;\n \n this.DefaultInventoryStatus = \n odataObject.DefaultInventoryStatus;\n \n this.DefaultReceiptLocation = \n odataObject.DefaultReceiptLocation;\n \n this.DefaultLocationId = \n odataObject.DefaultLocationId;\n \n this.DefaultIssueLocation = \n odataObject.DefaultIssueLocation;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseClass'] = WarehouseClass;\n \n /**\n * ScanResult entity class.\n */\n export class ScanResultClass implements Entities.ScanResult {\n public ScannedText: string;\n public MaskTypeValue: number;\n public Barcode: Entities.Barcode;\n public Product: Entities.SimpleProduct;\n public LoyaltyCard: Entities.LoyaltyCard;\n public GiftCard: Entities.GiftCard;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Customer: Entities.Customer;\n \n // Navigation properties names\n public static customerPropertyName: string = \"Customer\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ScannedText = \n odataObject.ScannedText;\n \n this.MaskTypeValue = \n odataObject.MaskTypeValue;\n \n if (odataObject.Barcode == null) {\n this.Barcode = undefined;\n } else if (odataObject.Barcode['@odata.type'] == null) {\n this.Barcode = new BarcodeClass(odataObject.Barcode);\n } else {\n var className: string = odataObject.Barcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Barcode = new entityDictionary[className](odataObject.Barcode)\n }\n }\n\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n if (odataObject.LoyaltyCard == null) {\n this.LoyaltyCard = undefined;\n } else if (odataObject.LoyaltyCard['@odata.type'] == null) {\n this.LoyaltyCard = new LoyaltyCardClass(odataObject.LoyaltyCard);\n } else {\n var className: string = odataObject.LoyaltyCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCard = new entityDictionary[className](odataObject.LoyaltyCard)\n }\n }\n\n \n if (odataObject.GiftCard == null) {\n this.GiftCard = undefined;\n } else if (odataObject.GiftCard['@odata.type'] == null) {\n this.GiftCard = new GiftCardClass(odataObject.GiftCard);\n } else {\n var className: string = odataObject.GiftCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.GiftCard = new entityDictionary[className](odataObject.GiftCard)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Customer == null) {\n this.Customer = undefined;\n } else if (odataObject.Customer['@odata.type'] == null) {\n this.Customer = new CustomerClass(odataObject.Customer);\n } else {\n var className: string = odataObject.Customer['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Customer = new entityDictionary[className](odataObject.Customer)\n }\n }\n\n \n }\n }\n entityDictionary['ScanResultClass'] = ScanResultClass;\n \n /**\n * SalesOrderContextualOperationsMap entity class.\n */\n export class SalesOrderContextualOperationsMapClass implements Entities.SalesOrderContextualOperationsMap {\n public Id: string;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public SalesOrder: Entities.SalesOrder;\n \n // Navigation properties names\n public static salesOrderPropertyName: string = \"SalesOrder\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.SalesOrder == null) {\n this.SalesOrder = undefined;\n } else if (odataObject.SalesOrder['@odata.type'] == null) {\n this.SalesOrder = new SalesOrderClass(odataObject.SalesOrder);\n } else {\n var className: string = odataObject.SalesOrder['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesOrder = new entityDictionary[className](odataObject.SalesOrder)\n }\n }\n\n \n }\n }\n entityDictionary['SalesOrderContextualOperationsMapClass'] = SalesOrderContextualOperationsMapClass;\n \n /**\n * InventoryInboundOutboundDocument entity class.\n */\n export class InventoryInboundOutboundDocumentClass implements Entities.InventoryInboundOutboundDocument {\n public WorkDocumentId: string;\n public TerminalId: string;\n public CommitRequestId: string;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public OperationTypeValue: number;\n public StatusValue: number;\n public ReceiptId: string;\n public Note: string;\n public OperationResultMessage: string;\n public DocumentId: string;\n public LongVersion: number;\n public SourceDocument: Entities.InventoryInboundOutboundSourceDocument;\n public SourceDocumentTypeValue: number;\n public CreatedDateTime: Date;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public TransactionDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CommitRequestId = \n odataObject.CommitRequestId;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.Note = \n odataObject.Note;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n if (odataObject.SourceDocument == null) {\n this.SourceDocument = undefined;\n } else if (odataObject.SourceDocument['@odata.type'] == null) {\n this.SourceDocument = new InventoryInboundOutboundSourceDocumentClass(odataObject.SourceDocument);\n } else {\n var className: string = odataObject.SourceDocument['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocument = new entityDictionary[className](odataObject.SourceDocument)\n }\n }\n\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.TransactionDate = \n (odataObject.TransactionDate instanceof Date) ? odataObject.TransactionDate\n : (odataObject.TransactionDate != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentClass'] = InventoryInboundOutboundDocumentClass;\n \n /**\n * BusinessPartner entity class.\n */\n export class BusinessPartnerClass implements Entities.BusinessPartner {\n public BusinessPartnerId: string;\n public 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.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerClass'] = BusinessPartnerClass;\n \n /**\n * BusinessPartnerUser entity class.\n */\n export class BusinessPartnerUserClass implements Entities.BusinessPartnerUser {\n public B2BUserId: string;\n public BusinessPartnerId: string;\n public FirstName: string;\n public LastName: string;\n public Email: string;\n public SpendingLimit: number;\n public LastOperationId: string;\n public StatusValue: number;\n public IsAdmin: boolean;\n public AccountNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.B2BUserId = \n odataObject.B2BUserId;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.Email = \n odataObject.Email;\n \n this.SpendingLimit = \n (odataObject.SpendingLimit != null) ? parseFloat(odataObject.SpendingLimit) : undefined;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.IsAdmin = \n odataObject.IsAdmin;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerUserClass'] = BusinessPartnerUserClass;\n \n /**\n * SuspendedCart entity class.\n */\n export class SuspendedCartClass implements Entities.SuspendedCart {\n public Id: string;\n public ReceiptId: string;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Cart: Entities.Cart;\n \n // Navigation properties names\n public static cartPropertyName: string = \"Cart\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Cart == null) {\n this.Cart = undefined;\n } else if (odataObject.Cart['@odata.type'] == null) {\n this.Cart = new CartClass(odataObject.Cart);\n } else {\n var className: string = odataObject.Cart['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Cart = new entityDictionary[className](odataObject.Cart)\n }\n }\n\n \n }\n }\n entityDictionary['SuspendedCartClass'] = SuspendedCartClass;\n \n /**\n * CountryRegion entity class.\n */\n export class CountryRegionClass implements Entities.CountryRegion {\n public CountryRegionId: string;\n public IsoCode: string;\n public ShortName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsoCode = \n odataObject.IsoCode;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionClass'] = CountryRegionClass;\n \n /**\n * ExtensibleEnumeration entity class.\n */\n export class ExtensibleEnumerationClass implements Entities.ExtensibleEnumeration {\n public Name: string;\n public Value: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['ExtensibleEnumerationClass'] = ExtensibleEnumerationClass;\n \n /**\n * ExtensibleEnumeration_1OfT entity class.\n */\n export class ExtensibleEnumeration_1OfTClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleEnumeration_1OfT {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.Framework.ExtensibleEnumeration_1OfT\";\n \n }\n }\n entityDictionary['ExtensibleEnumeration_1OfTClass'] = ExtensibleEnumeration_1OfTClass;\n \n /**\n * ExtensibleTransactionType entity class.\n */\n export class ExtensibleTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleTransactionTypeClass'] = ExtensibleTransactionTypeClass;\n \n /**\n * ExtensibleSalesTransactionType entity class.\n */\n export class ExtensibleSalesTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleSalesTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleSalesTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleSalesTransactionTypeClass'] = ExtensibleSalesTransactionTypeClass;\n \n /**\n * FulfillmentLineStatus entity class.\n */\n export class FulfillmentLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineStatus\";\n \n }\n }\n entityDictionary['FulfillmentLineStatusClass'] = FulfillmentLineStatusClass;\n \n /**\n * FulfillmentLineDeliveryType entity class.\n */\n export class FulfillmentLineDeliveryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineDeliveryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineDeliveryType\";\n \n }\n }\n entityDictionary['FulfillmentLineDeliveryTypeClass'] = FulfillmentLineDeliveryTypeClass;\n \n /**\n * ExtensibleAddressType entity class.\n */\n export class ExtensibleAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAddressType\";\n \n }\n }\n entityDictionary['ExtensibleAddressTypeClass'] = ExtensibleAddressTypeClass;\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity class.\n */\n export class ExtensibleLoyaltyRewardPointActivityEntryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleLoyaltyRewardPointActivityEntryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleLoyaltyRewardPointActivityEntryType\";\n \n }\n }\n entityDictionary['ExtensibleLoyaltyRewardPointActivityEntryTypeClass'] = ExtensibleLoyaltyRewardPointActivityEntryTypeClass;\n \n /**\n * ExtensibleAttributeDataType entity class.\n */\n export class ExtensibleAttributeDataTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAttributeDataType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAttributeDataType\";\n \n }\n }\n entityDictionary['ExtensibleAttributeDataTypeClass'] = ExtensibleAttributeDataTypeClass;\n \n /**\n * ReleasedProductServiceType entity class.\n */\n export class ReleasedProductServiceTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReleasedProductServiceType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReleasedProductServiceType\";\n \n }\n }\n entityDictionary['ReleasedProductServiceTypeClass'] = ReleasedProductServiceTypeClass;\n \n /**\n * ExtensibleElectronicAddressType entity class.\n */\n export class ExtensibleElectronicAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleElectronicAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleElectronicAddressType\";\n \n }\n }\n entityDictionary['ExtensibleElectronicAddressTypeClass'] = ExtensibleElectronicAddressTypeClass;\n \n /**\n * ReceiptOutputFormatType entity class.\n */\n export class ReceiptOutputFormatTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReceiptOutputFormatType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReceiptOutputFormatType\";\n \n }\n }\n entityDictionary['ReceiptOutputFormatTypeClass'] = ReceiptOutputFormatTypeClass;\n \n /**\n * OrderLookupAdditionalCriteriaType entity class.\n */\n export class OrderLookupAdditionalCriteriaTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.OrderLookupAdditionalCriteriaType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrderLookupAdditionalCriteriaType\";\n \n }\n }\n entityDictionary['OrderLookupAdditionalCriteriaTypeClass'] = OrderLookupAdditionalCriteriaTypeClass;\n \n /**\n * Address entity class.\n */\n export class AddressClass implements Entities.Address {\n public Name: string;\n public Id: string;\n public FullAddress: string;\n public RecordId: number;\n public Street: string;\n public StreetNumber: string;\n public County: string;\n public CountyName: string;\n public City: string;\n public DistrictName: string;\n public State: string;\n public StateName: string;\n public ZipCode: string;\n public ThreeLetterISORegionName: string;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Email: string;\n public EmailContent: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public TwoLetterISORegionName: string;\n public Deactivate: boolean;\n public AttentionTo: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public TaxGroup: string;\n public AddressTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public PartyNumber: string;\n public IsAsyncAddress: boolean;\n public DirectoryPartyTableRecordId: number;\n public DirectoryPartyLocationRecordId: number;\n public DirectoryPartyLocationRoleRecordId: number;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public LogisticsLocationExtRecordId: number;\n public LogisticsLocationRoleRecordId: number;\n public PhoneLogisticsLocationRecordId: number;\n public PhoneLogisticsLocationId: string;\n public EmailLogisticsLocationRecordId: number;\n public EmailLogisticsLocationId: string;\n public UrlLogisticsLocationRecordId: number;\n public UrlLogisticsLocationId: string;\n public ExpireRecordId: number;\n public SortOrder: number;\n public RoleCount: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Id = \n odataObject.Id;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.ZipCode = \n odataObject.ZipCode;\n \n this.ThreeLetterISORegionName = \n odataObject.ThreeLetterISORegionName;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Email = \n odataObject.Email;\n \n this.EmailContent = \n odataObject.EmailContent;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.TwoLetterISORegionName = \n odataObject.TwoLetterISORegionName;\n \n this.Deactivate = \n odataObject.Deactivate;\n \n this.AttentionTo = \n odataObject.AttentionTo;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.IsAsyncAddress = \n odataObject.IsAsyncAddress;\n \n this.DirectoryPartyTableRecordId = \n (odataObject.DirectoryPartyTableRecordId != null) ? parseInt(odataObject.DirectoryPartyTableRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRecordId = \n (odataObject.DirectoryPartyLocationRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRoleRecordId = \n (odataObject.DirectoryPartyLocationRoleRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRoleRecordId, 10) : undefined;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.LogisticsLocationExtRecordId = \n (odataObject.LogisticsLocationExtRecordId != null) ? parseInt(odataObject.LogisticsLocationExtRecordId, 10) : undefined;\n \n this.LogisticsLocationRoleRecordId = \n (odataObject.LogisticsLocationRoleRecordId != null) ? parseInt(odataObject.LogisticsLocationRoleRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationRecordId = \n (odataObject.PhoneLogisticsLocationRecordId != null) ? parseInt(odataObject.PhoneLogisticsLocationRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationId = \n odataObject.PhoneLogisticsLocationId;\n \n this.EmailLogisticsLocationRecordId = \n (odataObject.EmailLogisticsLocationRecordId != null) ? parseInt(odataObject.EmailLogisticsLocationRecordId, 10) : undefined;\n \n this.EmailLogisticsLocationId = \n odataObject.EmailLogisticsLocationId;\n \n this.UrlLogisticsLocationRecordId = \n (odataObject.UrlLogisticsLocationRecordId != null) ? parseInt(odataObject.UrlLogisticsLocationRecordId, 10) : undefined;\n \n this.UrlLogisticsLocationId = \n odataObject.UrlLogisticsLocationId;\n \n this.ExpireRecordId = \n (odataObject.ExpireRecordId != null) ? parseInt(odataObject.ExpireRecordId, 10) : undefined;\n \n this.SortOrder = \n odataObject.SortOrder;\n \n this.RoleCount = \n odataObject.RoleCount;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressClass'] = AddressClass;\n \n /**\n * CustomerAffiliation entity class.\n */\n export class CustomerAffiliationClass implements Entities.CustomerAffiliation {\n public RecordId: number;\n public RetailAffiliationId: number;\n public Name: string;\n public Description: string;\n public HideInChannels: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RetailAffiliationId = \n (odataObject.RetailAffiliationId != null) ? parseInt(odataObject.RetailAffiliationId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.HideInChannels = \n odataObject.HideInChannels;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAffiliationClass'] = CustomerAffiliationClass;\n \n /**\n * CustomerBalances entity class.\n */\n export class CustomerBalancesClass implements Entities.CustomerBalances {\n public Balance: number;\n public PendingBalance: number;\n public CreditLimit: number;\n public InvoiceAccountBalance: number;\n public InvoiceAccountPendingBalance: number;\n public InvoiceAccountCreditLimit: number;\n public OpenInvoiceBalance: number;\n public OpenInvoiceCount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.PendingBalance = \n (odataObject.PendingBalance != null) ? parseFloat(odataObject.PendingBalance) : undefined;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.InvoiceAccountBalance = \n (odataObject.InvoiceAccountBalance != null) ? parseFloat(odataObject.InvoiceAccountBalance) : undefined;\n \n this.InvoiceAccountPendingBalance = \n (odataObject.InvoiceAccountPendingBalance != null) ? parseFloat(odataObject.InvoiceAccountPendingBalance) : undefined;\n \n this.InvoiceAccountCreditLimit = \n (odataObject.InvoiceAccountCreditLimit != null) ? parseFloat(odataObject.InvoiceAccountCreditLimit) : undefined;\n \n this.OpenInvoiceBalance = \n (odataObject.OpenInvoiceBalance != null) ? parseFloat(odataObject.OpenInvoiceBalance) : undefined;\n \n this.OpenInvoiceCount = \n odataObject.OpenInvoiceCount;\n \n }\n }\n entityDictionary['CustomerBalancesClass'] = CustomerBalancesClass;\n \n /**\n * GlobalCustomer entity class.\n */\n export class GlobalCustomerClass implements Entities.GlobalCustomer {\n public PartyNumber: string;\n public RecordId: number;\n public IsAsyncCustomer: boolean;\n public AccountNumber: string;\n public FullName: string;\n public FullAddress: string;\n public Phone: string;\n public Email: string;\n public CustomerTypeValue: number;\n public Images: Entities.MediaLocation[];\n public OfflineImage: string;\n public IsB2b: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.FullName = \n odataObject.FullName;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GlobalCustomerClass'] = GlobalCustomerClass;\n \n /**\n * AttributeValue entity class.\n */\n export class AttributeValueClass implements Entities.AttributeValue {\n public Name: string;\n public KeyName: string;\n public UnitOfMeasureSymbol: string;\n public DataTypeValue: number;\n public BooleanValue: boolean;\n public DateTimeOffsetValue: Date;\n public FloatValue: number;\n public IntegerValue: number;\n public TextValue: string;\n public CurrencyValue: number;\n public CurrencyCode: string;\n public AttributeValueId: number;\n public RecordId: number;\n public Swatches: Entities.AttributeSwatch[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FloatValue = \n (odataObject.FloatValue != null) ? parseFloat(odataObject.FloatValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.TextValue = \n odataObject.TextValue;\n \n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Swatches = undefined;\n if (odataObject.Swatches) {\n this.Swatches = [];\n for (var i = 0; i < odataObject.Swatches.length; i++) {\n if (odataObject.Swatches[i] != null) {\n if (odataObject.Swatches[i]['@odata.type'] != null) {\n var className: string = odataObject.Swatches[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Swatches[i] = new entityDictionary[className](odataObject.Swatches[i])\n }\n } else {\n this.Swatches[i] = new AttributeSwatchClass(odataObject.Swatches[i]);\n }\n } else {\n this.Swatches[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueClass'] = AttributeValueClass;\n \n /**\n * AttributeValueBase entity class.\n */\n export class AttributeValueBaseClass implements Entities.AttributeValueBase {\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueBaseClass'] = AttributeValueBaseClass;\n \n /**\n * Barcode entity class.\n */\n export class BarcodeClass implements Entities.Barcode {\n public BarcodeId: string;\n public BarcodePrice: number;\n public Quantity: number;\n public CustomerId: string;\n public EmployeeId: string;\n public SalespersonId: string;\n public EANLicenseId: string;\n public DataEntry: string;\n public DiscountCode: string;\n public GiftCardNumber: string;\n public LoyaltyCardNumber: string;\n public ItemBarcode: Entities.ItemBarcode;\n public EntryMethodTypeValue: number;\n public ItemType: number;\n public EnterDimensions: boolean;\n public ItemGroupId: string;\n public ItemDepartmentId: string;\n public ScaleItem: boolean;\n public ZeroPriceValid: boolean;\n public NegativeQuantity: boolean;\n public DiscountNotAllowed: boolean;\n public DateToBeBlocked: Date;\n public DateToBeActivated: Date;\n public CheckDigitValidated: boolean;\n public CouponId: string;\n public Message: string;\n public LineDiscountGroup: string;\n public MultilineDiscountGroup: string;\n public IncludedInTotalDiscount: boolean;\n public CostPrice: number;\n public BatchId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BarcodeId = \n odataObject.BarcodeId;\n \n this.BarcodePrice = \n (odataObject.BarcodePrice != null) ? parseFloat(odataObject.BarcodePrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.EmployeeId = \n odataObject.EmployeeId;\n \n this.SalespersonId = \n odataObject.SalespersonId;\n \n this.EANLicenseId = \n odataObject.EANLicenseId;\n \n this.DataEntry = \n odataObject.DataEntry;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.GiftCardNumber = \n odataObject.GiftCardNumber;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n if (odataObject.ItemBarcode == null) {\n this.ItemBarcode = undefined;\n } else if (odataObject.ItemBarcode['@odata.type'] == null) {\n this.ItemBarcode = new ItemBarcodeClass(odataObject.ItemBarcode);\n } else {\n var className: string = odataObject.ItemBarcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemBarcode = new entityDictionary[className](odataObject.ItemBarcode)\n }\n }\n\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.EnterDimensions = \n odataObject.EnterDimensions;\n \n this.ItemGroupId = \n odataObject.ItemGroupId;\n \n this.ItemDepartmentId = \n odataObject.ItemDepartmentId;\n \n this.ScaleItem = \n odataObject.ScaleItem;\n \n this.ZeroPriceValid = \n odataObject.ZeroPriceValid;\n \n this.NegativeQuantity = \n odataObject.NegativeQuantity;\n \n this.DiscountNotAllowed = \n odataObject.DiscountNotAllowed;\n \n this.DateToBeBlocked = \n (odataObject.DateToBeBlocked instanceof Date) ? odataObject.DateToBeBlocked\n : (odataObject.DateToBeBlocked != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeBlocked, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBeActivated = \n (odataObject.DateToBeActivated instanceof Date) ? odataObject.DateToBeActivated\n : (odataObject.DateToBeActivated != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeActivated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CheckDigitValidated = \n odataObject.CheckDigitValidated;\n \n this.CouponId = \n odataObject.CouponId;\n \n this.Message = \n odataObject.Message;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.IncludedInTotalDiscount = \n odataObject.IncludedInTotalDiscount;\n \n this.CostPrice = \n (odataObject.CostPrice != null) ? parseFloat(odataObject.CostPrice) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BarcodeClass'] = BarcodeClass;\n \n /**\n * ItemBarcode entity class.\n */\n export class ItemBarcodeClass implements Entities.ItemBarcode {\n public RecordId: number;\n public ItemId: string;\n public Description: string;\n public BarcodeSetupId: string;\n public ItemBarcodeValue: string;\n public InventoryDimensionId: string;\n public IsBlocked: boolean;\n public Display: boolean;\n public VariantId: string;\n public UnitId: string;\n public UseForInput: boolean;\n public UseForPrinting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.BarcodeSetupId = \n odataObject.BarcodeSetupId;\n \n this.ItemBarcodeValue = \n odataObject.ItemBarcodeValue;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.Display = \n odataObject.Display;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.UseForInput = \n odataObject.UseForInput;\n \n this.UseForPrinting = \n odataObject.UseForPrinting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemBarcodeClass'] = ItemBarcodeClass;\n \n /**\n * ButtonGrid entity class.\n */\n export class ButtonGridClass implements Entities.ButtonGrid {\n public Id: string;\n public Name: string;\n public DefaultColor: number;\n public SpaceBetweenButtonsInPixels: number;\n public Buttons: Entities.ButtonGridButton[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultColor = \n odataObject.DefaultColor;\n \n this.SpaceBetweenButtonsInPixels = \n odataObject.SpaceBetweenButtonsInPixels;\n \n this.Buttons = undefined;\n if (odataObject.Buttons) {\n this.Buttons = [];\n for (var i = 0; i < odataObject.Buttons.length; i++) {\n if (odataObject.Buttons[i] != null) {\n if (odataObject.Buttons[i]['@odata.type'] != null) {\n var className: string = odataObject.Buttons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Buttons[i] = new entityDictionary[className](odataObject.Buttons[i])\n }\n } else {\n this.Buttons[i] = new ButtonGridButtonClass(odataObject.Buttons[i]);\n }\n } else {\n this.Buttons[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridClass'] = ButtonGridClass;\n \n /**\n * GetButtonGridsByIdsCriteria entity class.\n */\n export class GetButtonGridsByIdsCriteriaClass implements Entities.GetButtonGridsByIdsCriteria {\n public ButtonGridIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridIds = undefined;\n if (odataObject.ButtonGridIds) {\n this.ButtonGridIds = [];\n for (var i = 0; i < odataObject.ButtonGridIds.length; i++) {\n if (odataObject.ButtonGridIds[i] != null) {\n this.ButtonGridIds[i] = \n odataObject.ButtonGridIds[i];\n } else {\n this.ButtonGridIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GetButtonGridsByIdsCriteriaClass'] = GetButtonGridsByIdsCriteriaClass;\n \n /**\n * CartLine entity class.\n */\n export class CartLineClass implements Entities.CartLine {\n public LineId: string;\n public TaxOverrideCode: string;\n public ItemId: string;\n public Barcode: string;\n public EntryMethodTypeValue: number;\n public Description: string;\n public InventoryDimensionId: string;\n public Comment: string;\n public ProductId: number;\n public WarehouseId: string;\n public Quantity: number;\n public Price: number;\n public ExtendedPrice: number;\n public TaxAmount: number;\n public ItemTaxGroupId: string;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountAmountWithoutTax: number;\n public DiscountAmount: number;\n public LineDiscount: number;\n public LinePercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public UnitOfMeasureSymbol: string;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public WarrantiedId: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public IsVoided: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public IsGiftCardLine: boolean;\n public IsPriceKeyedIn: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public SalesStatusValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityCanceled: number;\n public FulfillmentStoreId: string;\n public SerialNumber: string;\n public ElectronicDeliveryEmail: string;\n public ElectronicDeliveryEmailContent: string;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public GiftCardBalance: number;\n public LineVersion: number;\n public PromotionLines: string[];\n public PriceLines: Entities.PriceLine[];\n public DiscountLines: Entities.DiscountLine[];\n public RelatedDiscountedLineIds: string[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TaxLines: Entities.TaxLine[];\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxRatePercent: number;\n public IsCustomerAccountDeposit: boolean;\n public LinkedParentLineId: string;\n public QuantityReturnable: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n public LineNumber: number;\n public CommissionSalesGroup: string;\n public TrackingId: string;\n public StaffId: string;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public CatalogId: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public WarehouseLocation: string;\n public DetailedLineStatusValue: number;\n public SalesAgreementLineRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.Comment = \n odataObject.Comment;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ExtendedPrice = \n (odataObject.ExtendedPrice != null) ? parseFloat(odataObject.ExtendedPrice) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.WarrantiedId = \n odataObject.WarrantiedId;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ElectronicDeliveryEmail = \n odataObject.ElectronicDeliveryEmail;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['CartLineClass'] = CartLineClass;\n \n /**\n * ThirdPartyGiftCardInfo entity class.\n */\n export class ThirdPartyGiftCardInfoClass implements Entities.ThirdPartyGiftCardInfo {\n public Amount: number;\n public Authorization: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ThirdPartyGiftCardInfoClass'] = ThirdPartyGiftCardInfoClass;\n \n /**\n * CardTypeInfo entity class.\n */\n export class CardTypeInfoClass implements Entities.CardTypeInfo {\n public RecordId: number;\n public TypeId: string;\n public Name: string;\n public PaymentMethodId: string;\n public CardTypeValue: number;\n public Issuer: string;\n public NumberFrom: string;\n public NumberTo: string;\n public CashBackLimit: number;\n public AllowManualInput: boolean;\n public CheckModulus: boolean;\n public HasTenderDiscount: boolean;\n public IsPinRequired: boolean;\n public IsExpirationDateRequired: boolean;\n public ConnectorName: string;\n public PaymentProcessorMethod: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.Name = \n odataObject.Name;\n \n this.PaymentMethodId = \n odataObject.PaymentMethodId;\n \n this.CardTypeValue = \n odataObject.CardTypeValue;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.NumberFrom = \n odataObject.NumberFrom;\n \n this.NumberTo = \n odataObject.NumberTo;\n \n this.CashBackLimit = \n (odataObject.CashBackLimit != null) ? parseFloat(odataObject.CashBackLimit) : undefined;\n \n this.AllowManualInput = \n odataObject.AllowManualInput;\n \n this.CheckModulus = \n odataObject.CheckModulus;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.IsPinRequired = \n odataObject.IsPinRequired;\n \n this.IsExpirationDateRequired = \n odataObject.IsExpirationDateRequired;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.PaymentProcessorMethod = \n odataObject.PaymentProcessorMethod;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CardTypeInfoClass'] = CardTypeInfoClass;\n \n /**\n * CashDeclaration entity class.\n */\n export class CashDeclarationClass implements Entities.CashDeclaration {\n public RecordId: number;\n public Currency: string;\n public Amount: number;\n public CashTypeValue: number;\n public IncludeInQuickPayShortcuts: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashTypeValue = \n odataObject.CashTypeValue;\n \n this.IncludeInQuickPayShortcuts = \n odataObject.IncludeInQuickPayShortcuts;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CashDeclarationClass'] = CashDeclarationClass;\n \n /**\n * IncomeExpenseAccount entity class.\n */\n export class IncomeExpenseAccountClass implements Entities.IncomeExpenseAccount {\n public Amount: number;\n public AccountNumber: string;\n public AccountName: string;\n public AccountNameAlias: string;\n public AccountTypeValue: number;\n public Quantity: number;\n public Message1Line: string;\n public Message2Line: string;\n public SlipText1Line: string;\n public SlipText2Line: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.AccountName = \n odataObject.AccountName;\n \n this.AccountNameAlias = \n odataObject.AccountNameAlias;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Message1Line = \n odataObject.Message1Line;\n \n this.Message2Line = \n odataObject.Message2Line;\n \n this.SlipText1Line = \n odataObject.SlipText1Line;\n \n this.SlipText2Line = \n odataObject.SlipText2Line;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseAccountClass'] = IncomeExpenseAccountClass;\n \n /**\n * IncomeExpenseLine entity class.\n */\n export class IncomeExpenseLineClass implements Entities.IncomeExpenseLine {\n public Amount: number;\n public IncomeExpenseAccount: string;\n public StoreNumber: string;\n public AccountTypeValue: number;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.IncomeExpenseAccount = \n odataObject.IncomeExpenseAccount;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseLineClass'] = IncomeExpenseLineClass;\n \n /**\n * CartTenderLine entity class.\n */\n export class CartTenderLineClass implements Entities.CartTenderLine {\n public PaymentCard: Entities.PaymentCard;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public CardPaymentAcceptResult: Entities.CardPaymentAcceptResult;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.PaymentCard == null) {\n this.PaymentCard = undefined;\n } else if (odataObject.PaymentCard['@odata.type'] == null) {\n this.PaymentCard = new PaymentCardClass(odataObject.PaymentCard);\n } else {\n var className: string = odataObject.PaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentCard = new entityDictionary[className](odataObject.PaymentCard)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n if (odataObject.CardPaymentAcceptResult == null) {\n this.CardPaymentAcceptResult = undefined;\n } else if (odataObject.CardPaymentAcceptResult['@odata.type'] == null) {\n this.CardPaymentAcceptResult = new CardPaymentAcceptResultClass(odataObject.CardPaymentAcceptResult);\n } else {\n var className: string = odataObject.CardPaymentAcceptResult['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardPaymentAcceptResult = new entityDictionary[className](odataObject.CardPaymentAcceptResult)\n }\n }\n\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartTenderLineClass'] = CartTenderLineClass;\n \n /**\n * ChargeLine entity class.\n */\n export class ChargeLineClass implements Entities.ChargeLine {\n public ChargeLineId: string;\n public ChargeCode: string;\n public CurrencyCode: string;\n public ModuleTypeValue: number;\n public IsHeaderChargeProrated: boolean;\n public ChargeTypeValue: number;\n public ChargeMethodValue: number;\n public CalculatedAmount: number;\n public Value: number;\n public Description: string;\n public TransactionId: string;\n public MarkupAutoLineRecordId: number;\n public MarkupAutoTableRecId: number;\n public SaleLineNumber: number;\n public FromAmount: number;\n public ToAmount: number;\n public Keep: number;\n public AmountRefunded: number;\n public ChargeLineOverrides: Entities.ChargeLineOverride[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public IsOverridden: boolean;\n public IsInvoiced: boolean;\n public CalculatedProratedAmount: number;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeLineId = \n odataObject.ChargeLineId;\n \n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.IsHeaderChargeProrated = \n odataObject.IsHeaderChargeProrated;\n \n this.ChargeTypeValue = \n odataObject.ChargeTypeValue;\n \n this.ChargeMethodValue = \n odataObject.ChargeMethodValue;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.MarkupAutoLineRecordId = \n (odataObject.MarkupAutoLineRecordId != null) ? parseInt(odataObject.MarkupAutoLineRecordId, 10) : undefined;\n \n this.MarkupAutoTableRecId = \n (odataObject.MarkupAutoTableRecId != null) ? parseInt(odataObject.MarkupAutoTableRecId, 10) : undefined;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.FromAmount = \n (odataObject.FromAmount != null) ? parseFloat(odataObject.FromAmount) : undefined;\n \n this.ToAmount = \n (odataObject.ToAmount != null) ? parseFloat(odataObject.ToAmount) : undefined;\n \n this.Keep = \n odataObject.Keep;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.ChargeLineOverrides = undefined;\n if (odataObject.ChargeLineOverrides) {\n this.ChargeLineOverrides = [];\n for (var i = 0; i < odataObject.ChargeLineOverrides.length; i++) {\n if (odataObject.ChargeLineOverrides[i] != null) {\n if (odataObject.ChargeLineOverrides[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLineOverrides[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLineOverrides[i] = new entityDictionary[className](odataObject.ChargeLineOverrides[i])\n }\n } else {\n this.ChargeLineOverrides[i] = new ChargeLineOverrideClass(odataObject.ChargeLineOverrides[i]);\n }\n } else {\n this.ChargeLineOverrides[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.IsOverridden = \n odataObject.IsOverridden;\n \n this.IsInvoiced = \n odataObject.IsInvoiced;\n \n this.CalculatedProratedAmount = \n (odataObject.CalculatedProratedAmount != null) ? parseFloat(odataObject.CalculatedProratedAmount) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeLineClass'] = ChargeLineClass;\n \n /**\n * CityInfo entity class.\n */\n export class CityInfoClass implements Entities.CityInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CityInfoClass'] = CityInfoClass;\n \n /**\n * CommissionSalesGroup entity class.\n */\n export class CommissionSalesGroupClass implements Entities.CommissionSalesGroup {\n public GroupId: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.GroupId = \n odataObject.GroupId;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommissionSalesGroupClass'] = CommissionSalesGroupClass;\n \n /**\n * ContactInformation entity class.\n */\n export class ContactInformationClass implements Entities.ContactInformation {\n public Value: string;\n public ContactInformationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ContactInformationTypeValue = \n odataObject.ContactInformationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInformationClass'] = ContactInformationClass;\n \n /**\n * AttributeCategory entity class.\n */\n export class AttributeCategoryClass implements Entities.AttributeCategory {\n public Value: Entities.CommercePropertyValue;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeCategoryClass'] = AttributeCategoryClass;\n \n /**\n * AttributeProduct entity class.\n */\n export class AttributeProductClass implements Entities.AttributeProduct {\n public MetadataFlags: Entities.ProductAttributeMetadataFlags;\n public IsDimension: boolean;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.MetadataFlags == null) {\n this.MetadataFlags = undefined;\n } else if (odataObject.MetadataFlags['@odata.type'] == null) {\n this.MetadataFlags = new ProductAttributeMetadataFlagsClass(odataObject.MetadataFlags);\n } else {\n var className: string = odataObject.MetadataFlags['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataFlags = new entityDictionary[className](odataObject.MetadataFlags)\n }\n }\n\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeProductClass'] = AttributeProductClass;\n \n /**\n * ProductComparisonEntry entity class.\n */\n export class ProductComparisonEntryClass implements Entities.ProductComparisonEntry {\n public ProductId: number;\n public AttributeValue: Entities.AttributeValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new AttributeValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonEntryClass'] = ProductComparisonEntryClass;\n \n /**\n * ProductComparisonLine entity class.\n */\n export class ProductComparisonLineClass implements Entities.ProductComparisonLine {\n public AttributeRecordId: number;\n public AttributeName: string;\n public ProductAttributeComparisonEntries: Entities.ProductComparisonEntry[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.AttributeName = \n odataObject.AttributeName;\n \n this.ProductAttributeComparisonEntries = undefined;\n if (odataObject.ProductAttributeComparisonEntries) {\n this.ProductAttributeComparisonEntries = [];\n for (var i = 0; i < odataObject.ProductAttributeComparisonEntries.length; i++) {\n if (odataObject.ProductAttributeComparisonEntries[i] != null) {\n if (odataObject.ProductAttributeComparisonEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductAttributeComparisonEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductAttributeComparisonEntries[i] = new entityDictionary[className](odataObject.ProductAttributeComparisonEntries[i])\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = new ProductComparisonEntryClass(odataObject.ProductAttributeComparisonEntries[i]);\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonLineClass'] = ProductComparisonLineClass;\n \n /**\n * CustomerSearchField entity class.\n */\n export class CustomerSearchFieldClass implements Entities.CustomerSearchField {\n public IsShortcut: boolean;\n public DisplayName: string;\n public CanBeRefined: boolean;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsShortcut = \n odataObject.IsShortcut;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.CanBeRefined = \n odataObject.CanBeRefined;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchFieldClass'] = CustomerSearchFieldClass;\n \n /**\n * CustomerSearchByFieldCriteria entity class.\n */\n export class CustomerSearchByFieldCriteriaClass implements Entities.CustomerSearchByFieldCriteria {\n public Criteria: Entities.CustomerSearchByFieldCriterion[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Criteria = undefined;\n if (odataObject.Criteria) {\n this.Criteria = [];\n for (var i = 0; i < odataObject.Criteria.length; i++) {\n if (odataObject.Criteria[i] != null) {\n if (odataObject.Criteria[i]['@odata.type'] != null) {\n var className: string = odataObject.Criteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Criteria[i] = new entityDictionary[className](odataObject.Criteria[i])\n }\n } else {\n this.Criteria[i] = new CustomerSearchByFieldCriterionClass(odataObject.Criteria[i]);\n }\n } else {\n this.Criteria[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriteriaClass'] = CustomerSearchByFieldCriteriaClass;\n \n /**\n * CustomerSearchByFieldCriterion entity class.\n */\n export class CustomerSearchByFieldCriterionClass implements Entities.CustomerSearchByFieldCriterion {\n public SearchTerm: string;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchTerm = \n odataObject.SearchTerm;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriterionClass'] = CustomerSearchByFieldCriterionClass;\n \n /**\n * CustomerSearchFieldType entity class.\n */\n export class CustomerSearchFieldTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.CustomerSearchFieldType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerSearchFieldType\";\n \n }\n }\n entityDictionary['CustomerSearchFieldTypeClass'] = CustomerSearchFieldTypeClass;\n \n /**\n * OrderShipments entity class.\n */\n export class OrderShipmentsClass implements Entities.OrderShipments {\n public SalesId: string;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public StatusValue: number;\n public CurrencyCode: string;\n public CustomerId: string;\n public DeliveryMode: string;\n public GrossAmount: number;\n public InventoryLocationId: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public TotalAmount: number;\n public TaxAmount: number;\n public SalesLines: Entities.SalesLine[];\n public Shipments: Entities.Shipment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderShipmentsClass'] = OrderShipmentsClass;\n \n /**\n * Shipment entity class.\n */\n export class ShipmentClass implements Entities.Shipment {\n public SalesId: string;\n public ShipmentId: string;\n public DeliveryAddress: Entities.Address;\n public ShipDate: Date;\n public DeliveryMode: string;\n public TermsOfDelivery: string;\n public WeightUnit: string;\n public TrackingNumber: string;\n public TrackingUrl: string;\n public LatestCarrierTrackingInfo: Entities.TrackingInfo;\n public CarrierId: string;\n public CarrierName: string;\n public ShippingWeight: number;\n public ShipmentLines: Entities.ShipmentLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ShipmentId = \n odataObject.ShipmentId;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TermsOfDelivery = \n odataObject.TermsOfDelivery;\n \n this.WeightUnit = \n odataObject.WeightUnit;\n \n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n if (odataObject.LatestCarrierTrackingInfo == null) {\n this.LatestCarrierTrackingInfo = undefined;\n } else if (odataObject.LatestCarrierTrackingInfo['@odata.type'] == null) {\n this.LatestCarrierTrackingInfo = new TrackingInfoClass(odataObject.LatestCarrierTrackingInfo);\n } else {\n var className: string = odataObject.LatestCarrierTrackingInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LatestCarrierTrackingInfo = new entityDictionary[className](odataObject.LatestCarrierTrackingInfo)\n }\n }\n\n \n this.CarrierId = \n odataObject.CarrierId;\n \n this.CarrierName = \n odataObject.CarrierName;\n \n this.ShippingWeight = \n (odataObject.ShippingWeight != null) ? parseFloat(odataObject.ShippingWeight) : undefined;\n \n this.ShipmentLines = undefined;\n if (odataObject.ShipmentLines) {\n this.ShipmentLines = [];\n for (var i = 0; i < odataObject.ShipmentLines.length; i++) {\n if (odataObject.ShipmentLines[i] != null) {\n if (odataObject.ShipmentLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentLines[i] = new entityDictionary[className](odataObject.ShipmentLines[i])\n }\n } else {\n this.ShipmentLines[i] = new ShipmentLineClass(odataObject.ShipmentLines[i]);\n }\n } else {\n this.ShipmentLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentClass'] = ShipmentClass;\n \n /**\n * ShipmentLine entity class.\n */\n export class ShipmentLineClass implements Entities.ShipmentLine {\n public ShipmentLineId: string;\n public ItemId: string;\n public Description: string;\n public InventDimId: string;\n public OrderedQuantity: number;\n public DeliveredQuantity: number;\n public RemainingQuantity: number;\n public InventoryTransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShipmentLineId = \n odataObject.ShipmentLineId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.OrderedQuantity = \n (odataObject.OrderedQuantity != null) ? parseFloat(odataObject.OrderedQuantity) : undefined;\n \n this.DeliveredQuantity = \n (odataObject.DeliveredQuantity != null) ? parseFloat(odataObject.DeliveredQuantity) : undefined;\n \n this.RemainingQuantity = \n (odataObject.RemainingQuantity != null) ? parseFloat(odataObject.RemainingQuantity) : undefined;\n \n this.InventoryTransactionId = \n odataObject.InventoryTransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentLineClass'] = ShipmentLineClass;\n \n /**\n * Transaction entity class.\n */\n export class TransactionClass implements Entities.Transaction {\n public Id: string;\n public StoreId: string;\n public TerminalId: string;\n public IsCreatedOffline: boolean;\n public StaffId: string;\n public LanguageId: string;\n public ShiftId: string;\n public ShiftTerminalId: string;\n public Description: string;\n public ReceiptId: string;\n public GrossAmount: number;\n public TotalAmount: number;\n public CreatedDateTime: Date;\n public TransactionTypeValue: number;\n public TransactionStatusValue: number;\n public BeginDateTime: Date;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public FromSafe: string;\n public ToSafe: string;\n public FromShiftTerminalId: string;\n public ToShiftTerminalId: string;\n public FromShiftId: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n public ToShiftId: string;\n public TransactionDateTime: 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.Id = \n odataObject.Id;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ShiftId = \n odataObject.ShiftId;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.Description = \n odataObject.Description;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.FromSafe = \n odataObject.FromSafe;\n \n this.ToSafe = \n odataObject.ToSafe;\n \n this.FromShiftTerminalId = \n odataObject.FromShiftTerminalId;\n \n this.ToShiftTerminalId = \n odataObject.ToShiftTerminalId;\n \n this.FromShiftId = \n odataObject.FromShiftId;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n this.ToShiftId = \n odataObject.ToShiftId;\n \n this.TransactionDateTime = \n (odataObject.TransactionDateTime instanceof Date) ? odataObject.TransactionDateTime\n : (odataObject.TransactionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionClass'] = TransactionClass;\n \n /**\n * ShiftReconciliationLine entity class.\n */\n export class ShiftReconciliationLineClass\n extends TransactionClass\n implements Entities.ShiftReconciliationLine {\n public GroupId: number;\n public GroupDescription: string;\n public ShiftGroupLinesCount: number;\n public ShiftGroupLinesClosedCount: number;\n public AmountInOriginalCurrency: number;\n public TransactionCurrencyCode: string;\n public TenderType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object 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.AmountInOriginalCurrency = \n (odataObject.AmountInOriginalCurrency != null) ? parseFloat(odataObject.AmountInOriginalCurrency) : undefined;\n \n this.TransactionCurrencyCode = \n odataObject.TransactionCurrencyCode;\n \n this.TenderType = \n odataObject.TenderType;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShiftReconciliationLine\";\n \n }\n }\n entityDictionary['ShiftReconciliationLineClass'] = ShiftReconciliationLineClass;\n \n /**\n * ShiftReconciliationLineRetrievalCriteria entity class.\n */\n export class ShiftReconciliationLineRetrievalCriteriaClass implements Entities.ShiftReconciliationLineRetrievalCriteria {\n public TransactionTypeValues: number[];\n public ShiftReconciliationLineStatusValue: number;\n public Shifts: Entities.ShiftKey[];\n public DestinationShift: Entities.ShiftKey;\n public SourceShift: Entities.ShiftKey;\n public SourceSafe: string;\n public DestinationSafe: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionTypeValues = undefined;\n if (odataObject.TransactionTypeValues) {\n this.TransactionTypeValues = [];\n for (var i = 0; i < odataObject.TransactionTypeValues.length; i++) {\n if (odataObject.TransactionTypeValues[i] != null) {\n this.TransactionTypeValues[i] = \n odataObject.TransactionTypeValues[i];\n } else {\n this.TransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.ShiftReconciliationLineStatusValue = \n odataObject.ShiftReconciliationLineStatusValue;\n \n this.Shifts = undefined;\n if (odataObject.Shifts) {\n this.Shifts = [];\n for (var i = 0; i < odataObject.Shifts.length; i++) {\n if (odataObject.Shifts[i] != null) {\n if (odataObject.Shifts[i]['@odata.type'] != null) {\n var className: string = odataObject.Shifts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shifts[i] = new entityDictionary[className](odataObject.Shifts[i])\n }\n } else {\n this.Shifts[i] = new ShiftKeyClass(odataObject.Shifts[i]);\n }\n } else {\n this.Shifts[i] = undefined;\n }\n }\n }\n \n if (odataObject.DestinationShift == null) {\n this.DestinationShift = undefined;\n } else if (odataObject.DestinationShift['@odata.type'] == null) {\n this.DestinationShift = new ShiftKeyClass(odataObject.DestinationShift);\n } else {\n var className: string = odataObject.DestinationShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationShift = new entityDictionary[className](odataObject.DestinationShift)\n }\n }\n\n \n if (odataObject.SourceShift == null) {\n this.SourceShift = undefined;\n } else if (odataObject.SourceShift['@odata.type'] == null) {\n this.SourceShift = new ShiftKeyClass(odataObject.SourceShift);\n } else {\n var className: string = odataObject.SourceShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceShift = new entityDictionary[className](odataObject.SourceShift)\n }\n }\n\n \n this.SourceSafe = \n odataObject.SourceSafe;\n \n this.DestinationSafe = \n odataObject.DestinationSafe;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n }\n }\n entityDictionary['ShiftReconciliationLineRetrievalCriteriaClass'] = ShiftReconciliationLineRetrievalCriteriaClass;\n \n /**\n * SearchConfiguration entity class.\n */\n export class SearchConfigurationClass implements Entities.SearchConfiguration {\n public ProductSortColumns: Entities.SortColumn[];\n public ProductSearchServiceTypeValue: number;\n public ProductSortColumnsLabels: Entities.LocalizedText[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductSortColumns = undefined;\n if (odataObject.ProductSortColumns) {\n this.ProductSortColumns = [];\n for (var i = 0; i < odataObject.ProductSortColumns.length; i++) {\n if (odataObject.ProductSortColumns[i] != null) {\n if (odataObject.ProductSortColumns[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumns[i] = new entityDictionary[className](odataObject.ProductSortColumns[i])\n }\n } else {\n this.ProductSortColumns[i] = new SortColumnClass(odataObject.ProductSortColumns[i]);\n }\n } else {\n this.ProductSortColumns[i] = undefined;\n }\n }\n }\n \n this.ProductSearchServiceTypeValue = \n odataObject.ProductSearchServiceTypeValue;\n \n this.ProductSortColumnsLabels = undefined;\n if (odataObject.ProductSortColumnsLabels) {\n this.ProductSortColumnsLabels = [];\n for (var i = 0; i < odataObject.ProductSortColumnsLabels.length; i++) {\n if (odataObject.ProductSortColumnsLabels[i] != null) {\n if (odataObject.ProductSortColumnsLabels[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumnsLabels[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumnsLabels[i] = new entityDictionary[className](odataObject.ProductSortColumnsLabels[i])\n }\n } else {\n this.ProductSortColumnsLabels[i] = new LocalizedTextClass(odataObject.ProductSortColumnsLabels[i]);\n }\n } else {\n this.ProductSortColumnsLabels[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchConfigurationClass'] = SearchConfigurationClass;\n \n /**\n * CustomerTimelineItem entity class.\n */\n export class CustomerTimelineItemClass implements Entities.CustomerTimelineItem {\n public CustomerId: string;\n public Description: string;\n public Id: string;\n public EntityType: string;\n public TypeId: string;\n public StaffId: string;\n public StartDateTime: Date;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Description = \n odataObject.Description;\n \n this.Id = \n odataObject.Id;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemClass'] = CustomerTimelineItemClass;\n \n /**\n * AttributeDefinition entity class.\n */\n export class AttributeDefinitionClass implements Entities.AttributeDefinition {\n public RecordId: number;\n public Name: string;\n public AttributeTypeName: string;\n public ExtDataType: Entities.ExtensibleAttributeDataType;\n public DataTypeValue: number;\n public IsHidden: boolean;\n public IsMandatory: boolean;\n public IsMultiValue: boolean;\n public IsEnumeration: boolean;\n public TranslationDetails: Entities.AttributeTranslationDetails[];\n public EnumerationDetails: Entities.AttributeEnumeration[];\n public DefaultValue: Entities.CommercePropertyValue;\n public UpperBound: Entities.CommercePropertyValue;\n public LowerBound: Entities.CommercePropertyValue;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.AttributeTypeName = \n odataObject.AttributeTypeName;\n \n if (odataObject.ExtDataType == null) {\n this.ExtDataType = undefined;\n } else if (odataObject.ExtDataType['@odata.type'] == null) {\n this.ExtDataType = new ExtensibleAttributeDataTypeClass(odataObject.ExtDataType);\n } else {\n var className: string = odataObject.ExtDataType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtDataType = new entityDictionary[className](odataObject.ExtDataType)\n }\n }\n\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.IsHidden = \n odataObject.IsHidden;\n \n this.IsMandatory = \n odataObject.IsMandatory;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsEnumeration = \n odataObject.IsEnumeration;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.EnumerationDetails = undefined;\n if (odataObject.EnumerationDetails) {\n this.EnumerationDetails = [];\n for (var i = 0; i < odataObject.EnumerationDetails.length; i++) {\n if (odataObject.EnumerationDetails[i] != null) {\n if (odataObject.EnumerationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.EnumerationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.EnumerationDetails[i] = new entityDictionary[className](odataObject.EnumerationDetails[i])\n }\n } else {\n this.EnumerationDetails[i] = new AttributeEnumerationClass(odataObject.EnumerationDetails[i]);\n }\n } else {\n this.EnumerationDetails[i] = undefined;\n }\n }\n }\n \n if (odataObject.DefaultValue == null) {\n this.DefaultValue = undefined;\n } else if (odataObject.DefaultValue['@odata.type'] == null) {\n this.DefaultValue = new CommercePropertyValueClass(odataObject.DefaultValue);\n } else {\n var className: string = odataObject.DefaultValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DefaultValue = new entityDictionary[className](odataObject.DefaultValue)\n }\n }\n\n \n if (odataObject.UpperBound == null) {\n this.UpperBound = undefined;\n } else if (odataObject.UpperBound['@odata.type'] == null) {\n this.UpperBound = new CommercePropertyValueClass(odataObject.UpperBound);\n } else {\n var className: string = odataObject.UpperBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpperBound = new entityDictionary[className](odataObject.UpperBound)\n }\n }\n\n \n if (odataObject.LowerBound == null) {\n this.LowerBound = undefined;\n } else if (odataObject.LowerBound['@odata.type'] == null) {\n this.LowerBound = new CommercePropertyValueClass(odataObject.LowerBound);\n } else {\n var className: string = odataObject.LowerBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LowerBound = new entityDictionary[className](odataObject.LowerBound)\n }\n }\n\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionClass'] = AttributeDefinitionClass;\n \n /**\n * AttributeTranslationDetails entity class.\n */\n export class AttributeTranslationDetailsClass implements Entities.AttributeTranslationDetails {\n public AttributeRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeTranslationDetailsClass'] = AttributeTranslationDetailsClass;\n \n /**\n * AttributeEnumeration entity class.\n */\n export class AttributeEnumerationClass implements Entities.AttributeEnumeration {\n public OrdinalNumber: number;\n public EnumerationValue: string;\n public AttributeEnumerationTranslations: Entities.AttributeEnumerationTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrdinalNumber = \n odataObject.OrdinalNumber;\n \n this.EnumerationValue = \n odataObject.EnumerationValue;\n \n this.AttributeEnumerationTranslations = undefined;\n if (odataObject.AttributeEnumerationTranslations) {\n this.AttributeEnumerationTranslations = [];\n for (var i = 0; i < odataObject.AttributeEnumerationTranslations.length; i++) {\n if (odataObject.AttributeEnumerationTranslations[i] != null) {\n if (odataObject.AttributeEnumerationTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeEnumerationTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeEnumerationTranslations[i] = new entityDictionary[className](odataObject.AttributeEnumerationTranslations[i])\n }\n } else {\n this.AttributeEnumerationTranslations[i] = new AttributeEnumerationTranslationClass(odataObject.AttributeEnumerationTranslations[i]);\n }\n } else {\n this.AttributeEnumerationTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationClass'] = AttributeEnumerationClass;\n \n /**\n * AttributeEnumerationTranslation entity class.\n */\n export class AttributeEnumerationTranslationClass implements Entities.AttributeEnumerationTranslation {\n public LanguageId: string;\n public EnumerationTranslationValue: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.EnumerationTranslationValue = \n odataObject.EnumerationTranslationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationTranslationClass'] = AttributeEnumerationTranslationClass;\n \n /**\n * AttributeDefinitionCriteria entity class.\n */\n export class AttributeDefinitionCriteriaClass implements Entities.AttributeDefinitionCriteria {\n public AttributeGroupIdentifier: number;\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifier = \n (odataObject.AttributeGroupIdentifier != null) ? parseInt(odataObject.AttributeGroupIdentifier, 10) : undefined;\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionCriteriaClass'] = AttributeDefinitionCriteriaClass;\n \n /**\n * AttributeGroupDefinition entity class.\n */\n export class AttributeGroupDefinitionClass implements Entities.AttributeGroupDefinition {\n public RecordId: number;\n public Name: string;\n public TranslationDetails: Entities.AttributeGroupTranslationDetails[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeGroupTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionClass'] = AttributeGroupDefinitionClass;\n \n /**\n * AttributeGroupTranslationDetails entity class.\n */\n export class AttributeGroupTranslationDetailsClass implements Entities.AttributeGroupTranslationDetails {\n public AttributeGroupRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupRecordId = \n (odataObject.AttributeGroupRecordId != null) ? parseInt(odataObject.AttributeGroupRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupTranslationDetailsClass'] = AttributeGroupTranslationDetailsClass;\n \n /**\n * AttributeGroupDefinitionCriteria entity class.\n */\n export class AttributeGroupDefinitionCriteriaClass implements Entities.AttributeGroupDefinitionCriteria {\n public AttributeGroupIdentifiers: number[];\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifiers = undefined;\n if (odataObject.AttributeGroupIdentifiers) {\n this.AttributeGroupIdentifiers = [];\n for (var i = 0; i < odataObject.AttributeGroupIdentifiers.length; i++) {\n if (odataObject.AttributeGroupIdentifiers[i] != null) {\n this.AttributeGroupIdentifiers[i] = \n parseInt(odataObject.AttributeGroupIdentifiers[i], 10);\n } else {\n this.AttributeGroupIdentifiers[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionCriteriaClass'] = AttributeGroupDefinitionCriteriaClass;\n \n /**\n * CountyInfo entity class.\n */\n export class CountyInfoClass implements Entities.CountyInfo {\n public Name: string;\n public CountyId: string;\n public CountryRegionId: string;\n public StateId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountyInfoClass'] = CountyInfoClass;\n \n /**\n * CustomerGroup entity class.\n */\n export class CustomerGroupClass implements Entities.CustomerGroup {\n public CustomerGroupNumber: string;\n public CustomerGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerGroupNumber = \n odataObject.CustomerGroupNumber;\n \n this.CustomerGroupName = \n odataObject.CustomerGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerGroupClass'] = CustomerGroupClass;\n \n /**\n * DiscountLine entity class.\n */\n export class DiscountLineClass implements Entities.DiscountLine {\n public SaleLineNumber: number;\n public OfferId: string;\n public OfferName: string;\n public OfferDescription: string;\n public Amount: number;\n public DiscountCost: number;\n public EffectiveAmount: number;\n public EffectivePercentage: number;\n public LineNumber: number;\n public SavedEffectiveAmount: number;\n public Percentage: number;\n public DealPrice: number;\n public DiscountLineTypeValue: number;\n public ManualDiscountTypeValue: number;\n public CustomerDiscountTypeValue: number;\n public PeriodicDiscountTypeValue: number;\n public DiscountApplicationGroup: string;\n public ConcurrencyModeValue: number;\n public IsCompoundable: boolean;\n public DiscountCode: string;\n public PricingPriorityNumber: number;\n public PricingAttributeCombinationPriority: number;\n public IsDiscountCodeRequired: boolean;\n public ThresholdAmountRequired: number;\n public BundleId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.OfferDescription = \n odataObject.OfferDescription;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.DiscountCost = \n (odataObject.DiscountCost != null) ? parseFloat(odataObject.DiscountCost) : undefined;\n \n this.EffectiveAmount = \n (odataObject.EffectiveAmount != null) ? parseFloat(odataObject.EffectiveAmount) : undefined;\n \n this.EffectivePercentage = \n (odataObject.EffectivePercentage != null) ? parseFloat(odataObject.EffectivePercentage) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.SavedEffectiveAmount = \n (odataObject.SavedEffectiveAmount != null) ? parseFloat(odataObject.SavedEffectiveAmount) : undefined;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.DealPrice = \n (odataObject.DealPrice != null) ? parseFloat(odataObject.DealPrice) : undefined;\n \n this.DiscountLineTypeValue = \n odataObject.DiscountLineTypeValue;\n \n this.ManualDiscountTypeValue = \n odataObject.ManualDiscountTypeValue;\n \n this.CustomerDiscountTypeValue = \n odataObject.CustomerDiscountTypeValue;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.DiscountApplicationGroup = \n odataObject.DiscountApplicationGroup;\n \n this.ConcurrencyModeValue = \n odataObject.ConcurrencyModeValue;\n \n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.PricingAttributeCombinationPriority = \n (odataObject.PricingAttributeCombinationPriority != null) ? parseFloat(odataObject.PricingAttributeCombinationPriority) : undefined;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ThresholdAmountRequired = \n (odataObject.ThresholdAmountRequired != null) ? parseFloat(odataObject.ThresholdAmountRequired) : undefined;\n \n this.BundleId = \n odataObject.BundleId;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountLineClass'] = DiscountLineClass;\n \n /**\n * EmployeePermissions entity class.\n */\n export class EmployeePermissionsClass implements Entities.EmployeePermissions {\n public PriceOverrideRestrictionValue: number;\n public AllowPriceOverride: number;\n public MaximumDiscountPercentage: number;\n public MaximumLineDiscountAmount: number;\n public MaximumLineReturnAmount: number;\n public MaximumTotalDiscountAmount: number;\n public MaximumTotalDiscountPercentage: number;\n public MaxTotalReturnAmount: number;\n public StaffId: string;\n public Roles: string[];\n public AllowUseSharedShift: boolean;\n public AllowManageSharedShift: boolean;\n public AllowTaskGuides: boolean;\n public AllowSaleOutsideAssortment: boolean;\n public AllowPrintingReceiptCopy: string;\n public AllowSkipFiscalRegistration: boolean;\n public AllowSkipRegistrationOrMarkAsRegistered: boolean;\n public AllowPostponeRegistration: boolean;\n public AllowCreateTransferOrder: boolean;\n public AllowAcceptOrder: boolean;\n public AllowTaskManagement: boolean;\n public AllowRejectOrder: boolean;\n public AllowMassActivation: boolean;\n public AllowPostInventoryAdjustment: boolean;\n public AllowPostStockCounting: boolean;\n public AllowCreatePurchaseOrder: boolean;\n public AllowConfirmPurchaseOrder: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PriceOverrideRestrictionValue = \n odataObject.PriceOverrideRestrictionValue;\n \n this.AllowPriceOverride = \n odataObject.AllowPriceOverride;\n \n this.MaximumDiscountPercentage = \n (odataObject.MaximumDiscountPercentage != null) ? parseFloat(odataObject.MaximumDiscountPercentage) : undefined;\n \n this.MaximumLineDiscountAmount = \n (odataObject.MaximumLineDiscountAmount != null) ? parseFloat(odataObject.MaximumLineDiscountAmount) : undefined;\n \n this.MaximumLineReturnAmount = \n (odataObject.MaximumLineReturnAmount != null) ? parseFloat(odataObject.MaximumLineReturnAmount) : undefined;\n \n this.MaximumTotalDiscountAmount = \n (odataObject.MaximumTotalDiscountAmount != null) ? parseFloat(odataObject.MaximumTotalDiscountAmount) : undefined;\n \n this.MaximumTotalDiscountPercentage = \n (odataObject.MaximumTotalDiscountPercentage != null) ? parseFloat(odataObject.MaximumTotalDiscountPercentage) : undefined;\n \n this.MaxTotalReturnAmount = \n (odataObject.MaxTotalReturnAmount != null) ? parseFloat(odataObject.MaxTotalReturnAmount) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.Roles = undefined;\n if (odataObject.Roles) {\n this.Roles = [];\n for (var i = 0; i < odataObject.Roles.length; i++) {\n if (odataObject.Roles[i] != null) {\n this.Roles[i] = \n odataObject.Roles[i];\n } else {\n this.Roles[i] = undefined;\n }\n }\n }\n \n this.AllowUseSharedShift = \n odataObject.AllowUseSharedShift;\n \n this.AllowManageSharedShift = \n odataObject.AllowManageSharedShift;\n \n this.AllowTaskGuides = \n odataObject.AllowTaskGuides;\n \n this.AllowSaleOutsideAssortment = \n odataObject.AllowSaleOutsideAssortment;\n \n this.AllowPrintingReceiptCopy = \n odataObject.AllowPrintingReceiptCopy;\n \n this.AllowSkipFiscalRegistration = \n odataObject.AllowSkipFiscalRegistration;\n \n this.AllowSkipRegistrationOrMarkAsRegistered = \n odataObject.AllowSkipRegistrationOrMarkAsRegistered;\n \n this.AllowPostponeRegistration = \n odataObject.AllowPostponeRegistration;\n \n this.AllowCreateTransferOrder = \n odataObject.AllowCreateTransferOrder;\n \n this.AllowAcceptOrder = \n odataObject.AllowAcceptOrder;\n \n this.AllowTaskManagement = \n odataObject.AllowTaskManagement;\n \n this.AllowRejectOrder = \n odataObject.AllowRejectOrder;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.AllowPostInventoryAdjustment = \n odataObject.AllowPostInventoryAdjustment;\n \n this.AllowPostStockCounting = \n odataObject.AllowPostStockCounting;\n \n this.AllowCreatePurchaseOrder = \n odataObject.AllowCreatePurchaseOrder;\n \n this.AllowConfirmPurchaseOrder = \n odataObject.AllowConfirmPurchaseOrder;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeePermissionsClass'] = EmployeePermissionsClass;\n \n /**\n * CommerceProperty entity class.\n */\n export class CommercePropertyClass implements Entities.CommerceProperty {\n public Key: string;\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['CommercePropertyClass'] = CommercePropertyClass;\n \n /**\n * CommercePropertyValue entity class.\n */\n export class CommercePropertyValueClass implements Entities.CommercePropertyValue {\n public BooleanValue: boolean;\n public ByteValue: number;\n public DateTimeOffsetValue: Date;\n public DecimalValue: number;\n public IntegerValue: number;\n public LongValue: number;\n public StringValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.ByteValue = \n (odataObject.ByteValue != null) ? parseInt(odataObject.ByteValue, 10) : undefined;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DecimalValue = \n (odataObject.DecimalValue != null) ? parseFloat(odataObject.DecimalValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.LongValue = \n (odataObject.LongValue != null) ? parseInt(odataObject.LongValue, 10) : undefined;\n \n this.StringValue = \n odataObject.StringValue;\n \n }\n }\n entityDictionary['CommercePropertyValueClass'] = CommercePropertyValueClass;\n \n /**\n * CountryRegionInfo entity class.\n */\n export class CountryRegionInfoClass implements Entities.CountryRegionInfo {\n public CountryRegionId: string;\n public ShortName: string;\n public LongName: string;\n public ISOCode: string;\n public TimeZone: number;\n public LanguageId: string;\n public AddressFormatLines: Entities.AddressFormattingInfo[];\n public AddressFormatId: string;\n public AddressFormatName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.LongName = \n odataObject.LongName;\n \n this.ISOCode = \n odataObject.ISOCode;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AddressFormatLines = undefined;\n if (odataObject.AddressFormatLines) {\n this.AddressFormatLines = [];\n for (var i = 0; i < odataObject.AddressFormatLines.length; i++) {\n if (odataObject.AddressFormatLines[i] != null) {\n if (odataObject.AddressFormatLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AddressFormatLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AddressFormatLines[i] = new entityDictionary[className](odataObject.AddressFormatLines[i])\n }\n } else {\n this.AddressFormatLines[i] = new AddressFormattingInfoClass(odataObject.AddressFormatLines[i]);\n }\n } else {\n this.AddressFormatLines[i] = undefined;\n }\n }\n }\n \n this.AddressFormatId = \n odataObject.AddressFormatId;\n \n this.AddressFormatName = \n odataObject.AddressFormatName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionInfoClass'] = CountryRegionInfoClass;\n \n /**\n * CreditMemo entity class.\n */\n export class CreditMemoClass implements Entities.CreditMemo {\n public Id: string;\n public Balance: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreditMemoClass'] = CreditMemoClass;\n \n /**\n * Currency entity class.\n */\n export class CurrencyClass implements Entities.Currency {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public RoundOffPrice: number;\n public RoundOffSales: number;\n public RoundOffTypePrice: number;\n public RoundOffTypeSales: number;\n public NumberOfDecimals: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.RoundOffPrice = \n (odataObject.RoundOffPrice != null) ? parseFloat(odataObject.RoundOffPrice) : undefined;\n \n this.RoundOffSales = \n (odataObject.RoundOffSales != null) ? parseFloat(odataObject.RoundOffSales) : undefined;\n \n this.RoundOffTypePrice = \n odataObject.RoundOffTypePrice;\n \n this.RoundOffTypeSales = \n odataObject.RoundOffTypeSales;\n \n this.NumberOfDecimals = \n odataObject.NumberOfDecimals;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyClass'] = CurrencyClass;\n \n /**\n * CurrencyAmount entity class.\n */\n export class CurrencyAmountClass implements Entities.CurrencyAmount {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public ConvertedAmount: number;\n public RoundedConvertedAmount: number;\n public ExchangeRate: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.ConvertedAmount = \n (odataObject.ConvertedAmount != null) ? parseFloat(odataObject.ConvertedAmount) : undefined;\n \n this.RoundedConvertedAmount = \n (odataObject.RoundedConvertedAmount != null) ? parseFloat(odataObject.RoundedConvertedAmount) : undefined;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyAmountClass'] = CurrencyAmountClass;\n \n /**\n * ScaleUnitConfiguration entity class.\n */\n export class ScaleUnitConfigurationClass implements Entities.ScaleUnitConfiguration {\n public Id: string;\n public Name: string;\n public Region: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Region = \n odataObject.Region;\n \n }\n }\n entityDictionary['ScaleUnitConfigurationClass'] = ScaleUnitConfigurationClass;\n \n /**\n * EnvironmentConfiguration entity class.\n */\n export class EnvironmentConfigurationClass implements Entities.EnvironmentConfiguration {\n public EnvironmentId: string;\n public EnvironmentName: string;\n public TenantId: string;\n public ClientAppInsightsInstrumentationKey: string;\n public HardwareStationAppInsightsInstrumentationKey: string;\n public WindowsPhonePosAppInsightsInstrumentationKey: string;\n public BaseVersion: string;\n public ScaleUnit: Entities.ScaleUnitConfiguration;\n public AADAuthority: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.EnvironmentName = \n odataObject.EnvironmentName;\n \n this.TenantId = \n odataObject.TenantId;\n \n this.ClientAppInsightsInstrumentationKey = \n odataObject.ClientAppInsightsInstrumentationKey;\n \n this.HardwareStationAppInsightsInstrumentationKey = \n odataObject.HardwareStationAppInsightsInstrumentationKey;\n \n this.WindowsPhonePosAppInsightsInstrumentationKey = \n odataObject.WindowsPhonePosAppInsightsInstrumentationKey;\n \n this.BaseVersion = \n odataObject.BaseVersion;\n \n if (odataObject.ScaleUnit == null) {\n this.ScaleUnit = undefined;\n } else if (odataObject.ScaleUnit['@odata.type'] == null) {\n this.ScaleUnit = new ScaleUnitConfigurationClass(odataObject.ScaleUnit);\n } else {\n var className: string = odataObject.ScaleUnit['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ScaleUnit = new entityDictionary[className](odataObject.ScaleUnit)\n }\n }\n\n \n this.AADAuthority = \n odataObject.AADAuthority;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['EnvironmentConfigurationClass'] = EnvironmentConfigurationClass;\n \n /**\n * DeviceConfiguration entity class.\n */\n export class DeviceConfigurationClass implements Entities.DeviceConfiguration {\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowItemsAggregation: boolean;\n public AggregateItemsForPrinting: boolean;\n public AggregatePayments: boolean;\n public AlwaysExpandTransactionScreenLineDetails: boolean;\n public AuditEnabled: boolean;\n public DiscountAtTotal: string;\n public ProductDiscount: string;\n public ManuallyCalculateComplexDiscounts: boolean;\n public DisplaySecondaryTotalCurrency: boolean;\n public EndOfTransaction: string;\n public ItemNotOnFile: string;\n public LimitStaffListToStore: boolean;\n public LineItemTaxChange: string;\n public MarkUp: string;\n public MaximumPrice: number;\n public MaximumQuantity: number;\n public MinimumPasswordLength: number;\n public MustKeyInPriceIfZero: boolean;\n public NfcEContingencyModeEnabled: string;\n public NfcEVoided: string;\n public FunctionalityProfileDescription: string;\n public OverridePrice: string;\n public PrintVoidTransactionReceipts: boolean;\n public PrintReceiptsOnCardDecline: boolean;\n public PrintXZReportsOnTerminal: boolean;\n public PrintTenderDetailsOnXReport: boolean;\n public ProfileId: string;\n public RefundSale: string;\n public ReturnProduct: string;\n public SalesPerson: string;\n public SecondaryTotalCurrency: string;\n public SelectHardwareStationOnTendering: boolean;\n public SerialNumber: string;\n public ShowStaffListAtLogOn: boolean;\n public StaffBarcodeLogOn: boolean;\n public StaffBarcodeLogOnRequiresPassword: boolean;\n public StaffCardLogOn: boolean;\n public StaffCardLogOnRequiresPassword: boolean;\n public StartOfTransaction: string;\n public EnableTimeRegistration: boolean;\n public TenderDeclaration: string;\n public TransactionTaxChange: string;\n public VoidItem: string;\n public VoidPayment: string;\n public SalesModeDefaultsAsCustomerOrder: boolean;\n public CreateOfflineCustomerOrders: boolean;\n public CreateAsyncCustomers: boolean;\n public EnableAxCustomerSearch: boolean;\n public VoidTransaction: string;\n public CultureName: string;\n public SystemLegalTermsUrl: string;\n public SystemPrivacyStatementUrl: string;\n public HideTrainingMode: boolean;\n public StorePhone: string;\n public StatementMethod: string;\n public StoreNumber: string;\n public ChannelId: number;\n public StoreTaxGroup: string;\n public TaxIdNumber: string;\n public TaxOverrideGroup: number;\n public TenderDeclarationCalculation: number;\n public UseCustomerBasedTax: boolean;\n public UseDestinationBasedTax: boolean;\n public AutoLogOffTimeoutInMinutes: number;\n public AutoExitMethodValue: number;\n public CustomerDisplayText1: string;\n public CustomerDisplayText2: string;\n public EFTStoreId: number;\n public EFTTerminalId: string;\n public ExitAfterEachTransaction: boolean;\n public HardwareProfile: string;\n public Placement: string;\n public TerminalDescription: string;\n public OpenDrawer: string;\n public OpenDrawerAtLogOnLogOff: boolean;\n public PrintTaxRefundChecks: boolean;\n public StandAlone: boolean;\n public TerminalId: string;\n public TerminalStatement: boolean;\n public VisualProfile: string;\n public Currency: string;\n public InventLocationId: string;\n public IncludeKitComponents: boolean;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontScheme: number;\n public ShowAppBarLabel: boolean;\n public LogOnBackgroundPictureAsBase64: string;\n public LogOnBackgroundPicturePortraitAsBase64: string;\n public BackgroundPictureAsBase64: string;\n public LogonBackgroundPictureId: number;\n public LogonBackgroundPictureIdCompact: number;\n public LogonBackgroundPictureIdPortrait: number;\n public LogonBackgroundPictureIdCompactPortrait: number;\n public BackgroundPictureId: number;\n public RequireAmountDeclaration: boolean;\n public DecimalNotRequiredForMinorCurrencyUnit: boolean;\n public MaxTransactionSearchResults: number;\n public OfflineProfileId: number;\n public NewOfflineDatabaseCheckInterval: number;\n public OfflineTransactionUploadInterval: number;\n public ReconnectToOnlineInterval: number;\n public SwitchToOfflineTimeout: number;\n public OfflineSwitchApiPerformanceThresholdInSeconds: number;\n public ReconnectFromPerformanceInducedOfflineIntervalInSeconds: number;\n public RetentionDays: number;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public CreateRecording: boolean;\n public PlaybackRecording: boolean;\n public ShouldUseDefaultCommisionSalesGroup: boolean;\n public AskForSalesRepresentative: number;\n public IsSalesRepRequired: boolean;\n public ProhibitMixingSalesAndReturns: boolean;\n public ApplyDiscountsToPriceKeyedIn: boolean;\n public ApplyDiscountsToPriceOverrides: boolean;\n public IsProductSuggestionsEnabled: boolean;\n public ProductSearchType: string;\n public TerminalRecId: number;\n public DeviceRecId: number;\n public DenominationsToDisplayValue: number;\n public PromptOnSeamlessOffline: boolean;\n public RetryCountToOffline: number;\n public EnableAdvancedOfflineSwitching: boolean;\n public SystemHealthCheckInterval: number;\n public RejectOrderFulfillment: string;\n public ManuallyCalculateTaxes: boolean;\n public EmployeeLogonTypeValue: number;\n public StartAmountCalculation: number;\n public BankDropCalculation: number;\n public GenerateLoyaltyCardNumber: boolean;\n public FiscalRegistrationProcessId: string;\n public IncludeSalesOrderInvoices: boolean;\n public IncludeFreeTextInvoices: boolean;\n public IncludeProjectInvoices: boolean;\n public IncludeCreditNoteInvoices: boolean;\n public DisplayTaxExemptInLineDetails: boolean;\n public TaxExemptReceiptIndicator: string;\n public ManuallyCalculateCharges: boolean;\n public ChargeOverrideReasonCode: string;\n public ShiftReconcilation: string;\n public CustomerAccountFloorLimit: number;\n public VoidSuspendedTransactionsOnCloseShift: boolean;\n public ShowDateTime: boolean;\n public UseAdvancedCashManagement: boolean;\n public DefaultCustomerSearchModeValue: number;\n public AllowManualOfflineBeforeSignIn: boolean;\n public UseFinancialReconciliationInStore: boolean;\n public RequirePaymentForFulfillmentValue: number;\n public CardNotPresentProcessingConfigurationValue: number;\n public EnableQuickPayShortcuts: boolean;\n public ChangeDueBehaviorValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowItemsAggregation = \n odataObject.AllowItemsAggregation;\n \n this.AggregateItemsForPrinting = \n odataObject.AggregateItemsForPrinting;\n \n this.AggregatePayments = \n odataObject.AggregatePayments;\n \n this.AlwaysExpandTransactionScreenLineDetails = \n odataObject.AlwaysExpandTransactionScreenLineDetails;\n \n this.AuditEnabled = \n odataObject.AuditEnabled;\n \n this.DiscountAtTotal = \n odataObject.DiscountAtTotal;\n \n this.ProductDiscount = \n odataObject.ProductDiscount;\n \n this.ManuallyCalculateComplexDiscounts = \n odataObject.ManuallyCalculateComplexDiscounts;\n \n this.DisplaySecondaryTotalCurrency = \n odataObject.DisplaySecondaryTotalCurrency;\n \n this.EndOfTransaction = \n odataObject.EndOfTransaction;\n \n this.ItemNotOnFile = \n odataObject.ItemNotOnFile;\n \n this.LimitStaffListToStore = \n odataObject.LimitStaffListToStore;\n \n this.LineItemTaxChange = \n odataObject.LineItemTaxChange;\n \n this.MarkUp = \n odataObject.MarkUp;\n \n this.MaximumPrice = \n (odataObject.MaximumPrice != null) ? parseFloat(odataObject.MaximumPrice) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumPasswordLength = \n odataObject.MinimumPasswordLength;\n \n this.MustKeyInPriceIfZero = \n odataObject.MustKeyInPriceIfZero;\n \n this.NfcEContingencyModeEnabled = \n odataObject.NfcEContingencyModeEnabled;\n \n this.NfcEVoided = \n odataObject.NfcEVoided;\n \n this.FunctionalityProfileDescription = \n odataObject.FunctionalityProfileDescription;\n \n this.OverridePrice = \n odataObject.OverridePrice;\n \n this.PrintVoidTransactionReceipts = \n odataObject.PrintVoidTransactionReceipts;\n \n this.PrintReceiptsOnCardDecline = \n odataObject.PrintReceiptsOnCardDecline;\n \n this.PrintXZReportsOnTerminal = \n odataObject.PrintXZReportsOnTerminal;\n \n this.PrintTenderDetailsOnXReport = \n odataObject.PrintTenderDetailsOnXReport;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RefundSale = \n odataObject.RefundSale;\n \n this.ReturnProduct = \n odataObject.ReturnProduct;\n \n this.SalesPerson = \n odataObject.SalesPerson;\n \n this.SecondaryTotalCurrency = \n odataObject.SecondaryTotalCurrency;\n \n this.SelectHardwareStationOnTendering = \n odataObject.SelectHardwareStationOnTendering;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ShowStaffListAtLogOn = \n odataObject.ShowStaffListAtLogOn;\n \n this.StaffBarcodeLogOn = \n odataObject.StaffBarcodeLogOn;\n \n this.StaffBarcodeLogOnRequiresPassword = \n odataObject.StaffBarcodeLogOnRequiresPassword;\n \n this.StaffCardLogOn = \n odataObject.StaffCardLogOn;\n \n this.StaffCardLogOnRequiresPassword = \n odataObject.StaffCardLogOnRequiresPassword;\n \n this.StartOfTransaction = \n odataObject.StartOfTransaction;\n \n this.EnableTimeRegistration = \n odataObject.EnableTimeRegistration;\n \n this.TenderDeclaration = \n odataObject.TenderDeclaration;\n \n this.TransactionTaxChange = \n odataObject.TransactionTaxChange;\n \n this.VoidItem = \n odataObject.VoidItem;\n \n this.VoidPayment = \n odataObject.VoidPayment;\n \n this.SalesModeDefaultsAsCustomerOrder = \n odataObject.SalesModeDefaultsAsCustomerOrder;\n \n this.CreateOfflineCustomerOrders = \n odataObject.CreateOfflineCustomerOrders;\n \n this.CreateAsyncCustomers = \n odataObject.CreateAsyncCustomers;\n \n this.EnableAxCustomerSearch = \n odataObject.EnableAxCustomerSearch;\n \n this.VoidTransaction = \n odataObject.VoidTransaction;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.SystemLegalTermsUrl = \n odataObject.SystemLegalTermsUrl;\n \n this.SystemPrivacyStatementUrl = \n odataObject.SystemPrivacyStatementUrl;\n \n this.HideTrainingMode = \n odataObject.HideTrainingMode;\n \n this.StorePhone = \n odataObject.StorePhone;\n \n this.StatementMethod = \n odataObject.StatementMethod;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreTaxGroup = \n odataObject.StoreTaxGroup;\n \n this.TaxIdNumber = \n odataObject.TaxIdNumber;\n \n this.TaxOverrideGroup = \n (odataObject.TaxOverrideGroup != null) ? parseInt(odataObject.TaxOverrideGroup, 10) : undefined;\n \n this.TenderDeclarationCalculation = \n odataObject.TenderDeclarationCalculation;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.AutoLogOffTimeoutInMinutes = \n odataObject.AutoLogOffTimeoutInMinutes;\n \n this.AutoExitMethodValue = \n odataObject.AutoExitMethodValue;\n \n this.CustomerDisplayText1 = \n odataObject.CustomerDisplayText1;\n \n this.CustomerDisplayText2 = \n odataObject.CustomerDisplayText2;\n \n this.EFTStoreId = \n (odataObject.EFTStoreId != null) ? parseInt(odataObject.EFTStoreId, 10) : undefined;\n \n this.EFTTerminalId = \n odataObject.EFTTerminalId;\n \n this.ExitAfterEachTransaction = \n odataObject.ExitAfterEachTransaction;\n \n this.HardwareProfile = \n odataObject.HardwareProfile;\n \n this.Placement = \n odataObject.Placement;\n \n this.TerminalDescription = \n odataObject.TerminalDescription;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.OpenDrawerAtLogOnLogOff = \n odataObject.OpenDrawerAtLogOnLogOff;\n \n this.PrintTaxRefundChecks = \n odataObject.PrintTaxRefundChecks;\n \n this.StandAlone = \n odataObject.StandAlone;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TerminalStatement = \n odataObject.TerminalStatement;\n \n this.VisualProfile = \n odataObject.VisualProfile;\n \n this.Currency = \n odataObject.Currency;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.IncludeKitComponents = \n odataObject.IncludeKitComponents;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontScheme = \n odataObject.FontScheme;\n \n this.ShowAppBarLabel = \n odataObject.ShowAppBarLabel;\n \n this.LogOnBackgroundPictureAsBase64 = \n odataObject.LogOnBackgroundPictureAsBase64;\n \n this.LogOnBackgroundPicturePortraitAsBase64 = \n odataObject.LogOnBackgroundPicturePortraitAsBase64;\n \n this.BackgroundPictureAsBase64 = \n odataObject.BackgroundPictureAsBase64;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompact = \n (odataObject.LogonBackgroundPictureIdCompact != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompact, 10) : undefined;\n \n this.LogonBackgroundPictureIdPortrait = \n (odataObject.LogonBackgroundPictureIdPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdPortrait, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompactPortrait = \n (odataObject.LogonBackgroundPictureIdCompactPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompactPortrait, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.RequireAmountDeclaration = \n odataObject.RequireAmountDeclaration;\n \n this.DecimalNotRequiredForMinorCurrencyUnit = \n odataObject.DecimalNotRequiredForMinorCurrencyUnit;\n \n this.MaxTransactionSearchResults = \n odataObject.MaxTransactionSearchResults;\n \n this.OfflineProfileId = \n (odataObject.OfflineProfileId != null) ? parseInt(odataObject.OfflineProfileId, 10) : undefined;\n \n this.NewOfflineDatabaseCheckInterval = \n odataObject.NewOfflineDatabaseCheckInterval;\n \n this.OfflineTransactionUploadInterval = \n odataObject.OfflineTransactionUploadInterval;\n \n this.ReconnectToOnlineInterval = \n odataObject.ReconnectToOnlineInterval;\n \n this.SwitchToOfflineTimeout = \n odataObject.SwitchToOfflineTimeout;\n \n this.OfflineSwitchApiPerformanceThresholdInSeconds = \n odataObject.OfflineSwitchApiPerformanceThresholdInSeconds;\n \n this.ReconnectFromPerformanceInducedOfflineIntervalInSeconds = \n odataObject.ReconnectFromPerformanceInducedOfflineIntervalInSeconds;\n \n this.RetentionDays = \n odataObject.RetentionDays;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.CreateRecording = \n odataObject.CreateRecording;\n \n this.PlaybackRecording = \n odataObject.PlaybackRecording;\n \n this.ShouldUseDefaultCommisionSalesGroup = \n odataObject.ShouldUseDefaultCommisionSalesGroup;\n \n this.AskForSalesRepresentative = \n odataObject.AskForSalesRepresentative;\n \n this.IsSalesRepRequired = \n odataObject.IsSalesRepRequired;\n \n this.ProhibitMixingSalesAndReturns = \n odataObject.ProhibitMixingSalesAndReturns;\n \n this.ApplyDiscountsToPriceKeyedIn = \n odataObject.ApplyDiscountsToPriceKeyedIn;\n \n this.ApplyDiscountsToPriceOverrides = \n odataObject.ApplyDiscountsToPriceOverrides;\n \n this.IsProductSuggestionsEnabled = \n odataObject.IsProductSuggestionsEnabled;\n \n this.ProductSearchType = \n odataObject.ProductSearchType;\n \n this.TerminalRecId = \n (odataObject.TerminalRecId != null) ? parseInt(odataObject.TerminalRecId, 10) : undefined;\n \n this.DeviceRecId = \n (odataObject.DeviceRecId != null) ? parseInt(odataObject.DeviceRecId, 10) : undefined;\n \n this.DenominationsToDisplayValue = \n odataObject.DenominationsToDisplayValue;\n \n this.PromptOnSeamlessOffline = \n odataObject.PromptOnSeamlessOffline;\n \n this.RetryCountToOffline = \n odataObject.RetryCountToOffline;\n \n this.EnableAdvancedOfflineSwitching = \n odataObject.EnableAdvancedOfflineSwitching;\n \n this.SystemHealthCheckInterval = \n odataObject.SystemHealthCheckInterval;\n \n this.RejectOrderFulfillment = \n odataObject.RejectOrderFulfillment;\n \n this.ManuallyCalculateTaxes = \n odataObject.ManuallyCalculateTaxes;\n \n this.EmployeeLogonTypeValue = \n odataObject.EmployeeLogonTypeValue;\n \n this.StartAmountCalculation = \n odataObject.StartAmountCalculation;\n \n this.BankDropCalculation = \n odataObject.BankDropCalculation;\n \n this.GenerateLoyaltyCardNumber = \n odataObject.GenerateLoyaltyCardNumber;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IncludeSalesOrderInvoices = \n odataObject.IncludeSalesOrderInvoices;\n \n this.IncludeFreeTextInvoices = \n odataObject.IncludeFreeTextInvoices;\n \n this.IncludeProjectInvoices = \n odataObject.IncludeProjectInvoices;\n \n this.IncludeCreditNoteInvoices = \n odataObject.IncludeCreditNoteInvoices;\n \n this.DisplayTaxExemptInLineDetails = \n odataObject.DisplayTaxExemptInLineDetails;\n \n this.TaxExemptReceiptIndicator = \n odataObject.TaxExemptReceiptIndicator;\n \n this.ManuallyCalculateCharges = \n odataObject.ManuallyCalculateCharges;\n \n this.ChargeOverrideReasonCode = \n odataObject.ChargeOverrideReasonCode;\n \n this.ShiftReconcilation = \n odataObject.ShiftReconcilation;\n \n this.CustomerAccountFloorLimit = \n (odataObject.CustomerAccountFloorLimit != null) ? parseFloat(odataObject.CustomerAccountFloorLimit) : undefined;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.ShowDateTime = \n odataObject.ShowDateTime;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.DefaultCustomerSearchModeValue = \n odataObject.DefaultCustomerSearchModeValue;\n \n this.AllowManualOfflineBeforeSignIn = \n odataObject.AllowManualOfflineBeforeSignIn;\n \n this.UseFinancialReconciliationInStore = \n odataObject.UseFinancialReconciliationInStore;\n \n this.RequirePaymentForFulfillmentValue = \n odataObject.RequirePaymentForFulfillmentValue;\n \n this.CardNotPresentProcessingConfigurationValue = \n odataObject.CardNotPresentProcessingConfigurationValue;\n \n this.EnableQuickPayShortcuts = \n odataObject.EnableQuickPayShortcuts;\n \n this.ChangeDueBehaviorValue = \n odataObject.ChangeDueBehaviorValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceConfigurationClass'] = DeviceConfigurationClass;\n \n /**\n * VisualProfile entity class.\n */\n export class VisualProfileClass implements Entities.VisualProfile {\n public ChannelId: number;\n public TerminalId: string;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontSchemeTypeValue: number;\n public IsAppBarLabelVisible: boolean;\n public IsDateTimeVisible: boolean;\n public LogOnLayoutTypeValue: number;\n public LogOnKeyboardTypeValue: number;\n public LogonBackgroundPictureId: number;\n public CompactLogonBackgroundPictureId: number;\n public PortraitLogonBackgroundPictureId: number;\n public CompactPortraitLogonBackgroundPictureId: number;\n public BackgroundPictureId: number;\n public LogOnLogoPictureId: number;\n public IsProductIdVisibleOnCartLine: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontSchemeTypeValue = \n odataObject.FontSchemeTypeValue;\n \n this.IsAppBarLabelVisible = \n odataObject.IsAppBarLabelVisible;\n \n this.IsDateTimeVisible = \n odataObject.IsDateTimeVisible;\n \n this.LogOnLayoutTypeValue = \n odataObject.LogOnLayoutTypeValue;\n \n this.LogOnKeyboardTypeValue = \n odataObject.LogOnKeyboardTypeValue;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.CompactLogonBackgroundPictureId = \n (odataObject.CompactLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactLogonBackgroundPictureId, 10) : undefined;\n \n this.PortraitLogonBackgroundPictureId = \n (odataObject.PortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.PortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.CompactPortraitLogonBackgroundPictureId = \n (odataObject.CompactPortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactPortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.LogOnLogoPictureId = \n (odataObject.LogOnLogoPictureId != null) ? parseInt(odataObject.LogOnLogoPictureId, 10) : undefined;\n \n this.IsProductIdVisibleOnCartLine = \n odataObject.IsProductIdVisibleOnCartLine;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VisualProfileClass'] = VisualProfileClass;\n \n /**\n * OperationalInsightsConfiguration entity class.\n */\n export class OperationalInsightsConfigurationClass implements Entities.OperationalInsightsConfiguration {\n public InstrumentationKey: string;\n public EnvironmentId: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InstrumentationKey = \n odataObject.InstrumentationKey;\n \n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationalInsightsConfigurationClass'] = OperationalInsightsConfigurationClass;\n \n /**\n * Device entity class.\n */\n export class DeviceClass implements Entities.Device {\n public ChannelId: number;\n public RecordId: number;\n public DeviceNumber: string;\n public DeviceId: string;\n public Description: string;\n public DeviceType: number;\n public TerminalRecordId: number;\n public TerminalId: string;\n public ChannelName: string;\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowMassActivation: boolean;\n public TokenIssueTime: Date;\n public ActivationStatusValue: number;\n public Token: string;\n public CountryRegionIsoCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.DeviceId = \n odataObject.DeviceId;\n \n this.Description = \n odataObject.Description;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.TerminalRecordId = \n (odataObject.TerminalRecordId != null) ? parseInt(odataObject.TerminalRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ChannelName = \n odataObject.ChannelName;\n \n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.TokenIssueTime = \n (odataObject.TokenIssueTime instanceof Date) ? odataObject.TokenIssueTime\n : (odataObject.TokenIssueTime != null) ? jsonLightReadStringPropertyValue(odataObject.TokenIssueTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceClass'] = DeviceClass;\n \n /**\n * DiscountCode entity class.\n */\n export class DiscountCodeClass implements Entities.DiscountCode {\n public RecordId: number;\n public Barcode: string;\n public Code: string;\n public ConcurrencyMode: number;\n public Description: string;\n public Disclaimer: string;\n public IsDiscountCodeRequired: boolean;\n public Name: string;\n public OfferId: string;\n public IsEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.Code = \n odataObject.Code;\n \n this.ConcurrencyMode = \n odataObject.ConcurrencyMode;\n \n this.Description = \n odataObject.Description;\n \n this.Disclaimer = \n odataObject.Disclaimer;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.Name = \n odataObject.Name;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountCodeClass'] = DiscountCodeClass;\n \n /**\n * DistrictInfo entity class.\n */\n export class DistrictInfoClass implements Entities.DistrictInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DistrictInfoClass'] = DistrictInfoClass;\n \n /**\n * HardwareProfile entity class.\n */\n export class HardwareProfileClass implements Entities.HardwareProfile {\n public RecordId: number;\n public LineDisplayDelayForLinkedItems: number;\n public LineDisplayBalanceText: string;\n public LineDisplayBinaryConversion: boolean;\n public LineDisplayCharacterSet: number;\n public LineDisplayClosedLine1: string;\n public LineDisplayClosedLine2: string;\n public LineDisplayDeviceDescription: string;\n public LineDisplayDeviceTypeValue: number;\n public LineDisplayDeviceName: string;\n public LineDisplayDisplayLinkedItem: boolean;\n public LineDisplayDisplayTerminalClosed: boolean;\n public LineDisplayTotalText: string;\n public DualDisplayActive: boolean;\n public DualDisplayWebBrowserUrl: string;\n public DualDisplayImageRotatorInterval: number;\n public DualDisplayImageRotatorPath: string;\n public DualDisplayReceiptWidthPercentage: number;\n public DualDisplayDisplayType: string;\n public EftTypeId: number;\n public EftCompanyId: string;\n public EftConfiguration: number;\n public EftPaymentConnectorName: string;\n public EftData: string;\n public EftDescription: string;\n public EftMerchantId: string;\n public EftPassword: string;\n public EftServerName: string;\n public EftServerPort: string;\n public EftUserId: string;\n public EftTestMode: boolean;\n public MsrEndTrack1: string;\n public MsrEndTrack2: string;\n public FiscalPrinterManagementReportPAFIdentification: string;\n public FiscalPrinterManagementReportConfigParameter: string;\n public FiscalPrinterManagementReportTenderType: string;\n public FiscalPrinterManagementReportGiftCard: string;\n public FiscalRegisterDeviceTypeValue: number;\n public FiscalRegisterConfiguration: string;\n public FiscalRegisterDeviceDescription: string;\n public FiscalRegisterDeviceName: string;\n public KeyboardMappingId: string;\n public KeyLockDeviceTypeValue: number;\n public KeyLockDeviceDescription: string;\n public KeyLockDeviceName: string;\n public MsrDeviceTypeValue: number;\n public MsrDeviceDescription: string;\n public MsrDeviceName: string;\n public MsrMake: string;\n public MsrModel: string;\n public MsrSeparator: string;\n public MsrStartTrack: string;\n public PinPadDeviceTypeValue: number;\n public PinPadDeviceName: string;\n public PinPadMake: string;\n public PinPadModel: string;\n public PinPadDeviceDescription: string;\n public ProfileDescription: string;\n public ProfileId: string;\n public RFIDDeviceTypeValue: number;\n public RFIDDeviceName: string;\n public RFIDDeviceDescription: string;\n public ScaleDeviceTypeValue: number;\n public ScaleDeviceName: string;\n public ScaleDeviceDescription: string;\n public ScaleManualInputAllowed: boolean;\n public ScaleTimeoutInSeconds: number;\n public SignatureCaptureDeviceTypeValue: number;\n public SignatureCaptureDeviceName: string;\n public SignatureCaptureMake: string;\n public SignatureCaptureModel: string;\n public SignatureCaptureDeviceDescription: string;\n public SignatureCaptureFormName: string;\n public Printers: Entities.HardwareProfilePrinter[];\n public Scanners: Entities.HardwareProfileScanner[];\n public FiscalIntegrationTechnicalProfiles: Entities.FiscalIntegrationTechnicalProfile[];\n public CashDrawers: Entities.HardwareProfileCashDrawer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineDisplayDelayForLinkedItems = \n odataObject.LineDisplayDelayForLinkedItems;\n \n this.LineDisplayBalanceText = \n odataObject.LineDisplayBalanceText;\n \n this.LineDisplayBinaryConversion = \n odataObject.LineDisplayBinaryConversion;\n \n this.LineDisplayCharacterSet = \n odataObject.LineDisplayCharacterSet;\n \n this.LineDisplayClosedLine1 = \n odataObject.LineDisplayClosedLine1;\n \n this.LineDisplayClosedLine2 = \n odataObject.LineDisplayClosedLine2;\n \n this.LineDisplayDeviceDescription = \n odataObject.LineDisplayDeviceDescription;\n \n this.LineDisplayDeviceTypeValue = \n odataObject.LineDisplayDeviceTypeValue;\n \n this.LineDisplayDeviceName = \n odataObject.LineDisplayDeviceName;\n \n this.LineDisplayDisplayLinkedItem = \n odataObject.LineDisplayDisplayLinkedItem;\n \n this.LineDisplayDisplayTerminalClosed = \n odataObject.LineDisplayDisplayTerminalClosed;\n \n this.LineDisplayTotalText = \n odataObject.LineDisplayTotalText;\n \n this.DualDisplayActive = \n odataObject.DualDisplayActive;\n \n this.DualDisplayWebBrowserUrl = \n odataObject.DualDisplayWebBrowserUrl;\n \n this.DualDisplayImageRotatorInterval = \n odataObject.DualDisplayImageRotatorInterval;\n \n this.DualDisplayImageRotatorPath = \n odataObject.DualDisplayImageRotatorPath;\n \n this.DualDisplayReceiptWidthPercentage = \n (odataObject.DualDisplayReceiptWidthPercentage != null) ? parseFloat(odataObject.DualDisplayReceiptWidthPercentage) : undefined;\n \n this.DualDisplayDisplayType = \n odataObject.DualDisplayDisplayType;\n \n this.EftTypeId = \n odataObject.EftTypeId;\n \n this.EftCompanyId = \n odataObject.EftCompanyId;\n \n this.EftConfiguration = \n odataObject.EftConfiguration;\n \n this.EftPaymentConnectorName = \n odataObject.EftPaymentConnectorName;\n \n this.EftData = \n odataObject.EftData;\n \n this.EftDescription = \n odataObject.EftDescription;\n \n this.EftMerchantId = \n odataObject.EftMerchantId;\n \n this.EftPassword = \n odataObject.EftPassword;\n \n this.EftServerName = \n odataObject.EftServerName;\n \n this.EftServerPort = \n odataObject.EftServerPort;\n \n this.EftUserId = \n odataObject.EftUserId;\n \n this.EftTestMode = \n odataObject.EftTestMode;\n \n this.MsrEndTrack1 = \n odataObject.MsrEndTrack1;\n \n this.MsrEndTrack2 = \n odataObject.MsrEndTrack2;\n \n this.FiscalPrinterManagementReportPAFIdentification = \n odataObject.FiscalPrinterManagementReportPAFIdentification;\n \n this.FiscalPrinterManagementReportConfigParameter = \n odataObject.FiscalPrinterManagementReportConfigParameter;\n \n this.FiscalPrinterManagementReportTenderType = \n odataObject.FiscalPrinterManagementReportTenderType;\n \n this.FiscalPrinterManagementReportGiftCard = \n odataObject.FiscalPrinterManagementReportGiftCard;\n \n this.FiscalRegisterDeviceTypeValue = \n odataObject.FiscalRegisterDeviceTypeValue;\n \n this.FiscalRegisterConfiguration = \n odataObject.FiscalRegisterConfiguration;\n \n this.FiscalRegisterDeviceDescription = \n odataObject.FiscalRegisterDeviceDescription;\n \n this.FiscalRegisterDeviceName = \n odataObject.FiscalRegisterDeviceName;\n \n this.KeyboardMappingId = \n odataObject.KeyboardMappingId;\n \n this.KeyLockDeviceTypeValue = \n odataObject.KeyLockDeviceTypeValue;\n \n this.KeyLockDeviceDescription = \n odataObject.KeyLockDeviceDescription;\n \n this.KeyLockDeviceName = \n odataObject.KeyLockDeviceName;\n \n this.MsrDeviceTypeValue = \n odataObject.MsrDeviceTypeValue;\n \n this.MsrDeviceDescription = \n odataObject.MsrDeviceDescription;\n \n this.MsrDeviceName = \n odataObject.MsrDeviceName;\n \n this.MsrMake = \n odataObject.MsrMake;\n \n this.MsrModel = \n odataObject.MsrModel;\n \n this.MsrSeparator = \n odataObject.MsrSeparator;\n \n this.MsrStartTrack = \n odataObject.MsrStartTrack;\n \n this.PinPadDeviceTypeValue = \n odataObject.PinPadDeviceTypeValue;\n \n this.PinPadDeviceName = \n odataObject.PinPadDeviceName;\n \n this.PinPadMake = \n odataObject.PinPadMake;\n \n this.PinPadModel = \n odataObject.PinPadModel;\n \n this.PinPadDeviceDescription = \n odataObject.PinPadDeviceDescription;\n \n this.ProfileDescription = \n odataObject.ProfileDescription;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RFIDDeviceTypeValue = \n odataObject.RFIDDeviceTypeValue;\n \n this.RFIDDeviceName = \n odataObject.RFIDDeviceName;\n \n this.RFIDDeviceDescription = \n odataObject.RFIDDeviceDescription;\n \n this.ScaleDeviceTypeValue = \n odataObject.ScaleDeviceTypeValue;\n \n this.ScaleDeviceName = \n odataObject.ScaleDeviceName;\n \n this.ScaleDeviceDescription = \n odataObject.ScaleDeviceDescription;\n \n this.ScaleManualInputAllowed = \n odataObject.ScaleManualInputAllowed;\n \n this.ScaleTimeoutInSeconds = \n odataObject.ScaleTimeoutInSeconds;\n \n this.SignatureCaptureDeviceTypeValue = \n odataObject.SignatureCaptureDeviceTypeValue;\n \n this.SignatureCaptureDeviceName = \n odataObject.SignatureCaptureDeviceName;\n \n this.SignatureCaptureMake = \n odataObject.SignatureCaptureMake;\n \n this.SignatureCaptureModel = \n odataObject.SignatureCaptureModel;\n \n this.SignatureCaptureDeviceDescription = \n odataObject.SignatureCaptureDeviceDescription;\n \n this.SignatureCaptureFormName = \n odataObject.SignatureCaptureFormName;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new HardwareProfilePrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.Scanners = undefined;\n if (odataObject.Scanners) {\n this.Scanners = [];\n for (var i = 0; i < odataObject.Scanners.length; i++) {\n if (odataObject.Scanners[i] != null) {\n if (odataObject.Scanners[i]['@odata.type'] != null) {\n var className: string = odataObject.Scanners[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scanners[i] = new entityDictionary[className](odataObject.Scanners[i])\n }\n } else {\n this.Scanners[i] = new HardwareProfileScannerClass(odataObject.Scanners[i]);\n }\n } else {\n this.Scanners[i] = undefined;\n }\n }\n }\n \n this.FiscalIntegrationTechnicalProfiles = undefined;\n if (odataObject.FiscalIntegrationTechnicalProfiles) {\n this.FiscalIntegrationTechnicalProfiles = [];\n for (var i = 0; i < odataObject.FiscalIntegrationTechnicalProfiles.length; i++) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i] != null) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalIntegrationTechnicalProfiles[i] = new entityDictionary[className](odataObject.FiscalIntegrationTechnicalProfiles[i])\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalIntegrationTechnicalProfiles[i]);\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = undefined;\n }\n }\n }\n \n this.CashDrawers = undefined;\n if (odataObject.CashDrawers) {\n this.CashDrawers = [];\n for (var i = 0; i < odataObject.CashDrawers.length; i++) {\n if (odataObject.CashDrawers[i] != null) {\n if (odataObject.CashDrawers[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawers[i] = new entityDictionary[className](odataObject.CashDrawers[i])\n }\n } else {\n this.CashDrawers[i] = new HardwareProfileCashDrawerClass(odataObject.CashDrawers[i]);\n }\n } else {\n this.CashDrawers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileClass'] = HardwareProfileClass;\n \n /**\n * SupportedLanguage entity class.\n */\n export class SupportedLanguageClass implements Entities.SupportedLanguage {\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SupportedLanguageClass'] = SupportedLanguageClass;\n \n /**\n * PaymentCard entity class.\n */\n export class PaymentCardClass implements Entities.PaymentCard {\n public UseShippingAddress: boolean;\n public CardNumber: string;\n public CCID: string;\n public Track1: string;\n public Track2: string;\n public Track3: string;\n public VoiceAuthorizationCode: string;\n public EncryptedPin: string;\n public AdditionalSecurityData: string;\n public IsSwipe: boolean;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseShippingAddress = \n odataObject.UseShippingAddress;\n \n this.CardNumber = \n odataObject.CardNumber;\n \n this.CCID = \n odataObject.CCID;\n \n this.Track1 = \n odataObject.Track1;\n \n this.Track2 = \n odataObject.Track2;\n \n this.Track3 = \n odataObject.Track3;\n \n this.VoiceAuthorizationCode = \n odataObject.VoiceAuthorizationCode;\n \n this.EncryptedPin = \n odataObject.EncryptedPin;\n \n this.AdditionalSecurityData = \n odataObject.AdditionalSecurityData;\n \n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentCardClass'] = PaymentCardClass;\n \n /**\n * CardPaymentAcceptSettings entity class.\n */\n export class CardPaymentAcceptSettingsClass implements Entities.CardPaymentAcceptSettings {\n public HostPageOrigin: string;\n public AdaptorPath: string;\n public CardTokenizationEnabled: boolean;\n public CardPaymentEnabled: boolean;\n public PaymentAmount: number;\n public HideBillingAddress: boolean;\n public TenderTypeId: string;\n public Locale: string;\n public RequireShippingAddress: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HostPageOrigin = \n odataObject.HostPageOrigin;\n \n this.AdaptorPath = \n odataObject.AdaptorPath;\n \n this.CardTokenizationEnabled = \n odataObject.CardTokenizationEnabled;\n \n this.CardPaymentEnabled = \n odataObject.CardPaymentEnabled;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.HideBillingAddress = \n odataObject.HideBillingAddress;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Locale = \n odataObject.Locale;\n \n this.RequireShippingAddress = \n odataObject.RequireShippingAddress;\n \n }\n }\n entityDictionary['CardPaymentAcceptSettingsClass'] = CardPaymentAcceptSettingsClass;\n \n /**\n * CardPaymentAcceptPoint entity class.\n */\n export class CardPaymentAcceptPointClass implements Entities.CardPaymentAcceptPoint {\n public AcceptPageUrl: string;\n public AcceptPageSubmitUrl: string;\n public MessageOrigin: string;\n public AcceptPageContent: string;\n public PaymentConnectorId: string;\n public NotReloadAcceptPageContentWhenAmountChanged: 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.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 this.NotReloadAcceptPageContentWhenAmountChanged = \n odataObject.NotReloadAcceptPageContentWhenAmountChanged;\n \n }\n }\n entityDictionary['CardPaymentAcceptPointClass'] = CardPaymentAcceptPointClass;\n \n /**\n * CardPaymentAcceptResult entity class.\n */\n export class CardPaymentAcceptResultClass implements Entities.CardPaymentAcceptResult {\n public TenderLine: Entities.TenderLine;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public PaymentSdkErrors: Entities.PaymentError[];\n public AdditionalContext: string;\n public AccessCode: string;\n public Settings: Entities.RetrievePaymentResultSettings;\n public Email: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.TenderLine == null) {\n this.TenderLine = undefined;\n } else if (odataObject.TenderLine['@odata.type'] == null) {\n this.TenderLine = new TenderLineClass(odataObject.TenderLine);\n } else {\n var className: string = odataObject.TenderLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLine = new entityDictionary[className](odataObject.TenderLine)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.AccessCode = \n odataObject.AccessCode;\n \n if (odataObject.Settings == null) {\n this.Settings = undefined;\n } else if (odataObject.Settings['@odata.type'] == null) {\n this.Settings = new RetrievePaymentResultSettingsClass(odataObject.Settings);\n } else {\n var className: string = odataObject.Settings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Settings = new entityDictionary[className](odataObject.Settings)\n }\n }\n\n \n this.Email = \n odataObject.Email;\n \n }\n }\n entityDictionary['CardPaymentAcceptResultClass'] = CardPaymentAcceptResultClass;\n \n /**\n * ReasonCodeLine entity class.\n */\n export class ReasonCodeLineClass implements Entities.ReasonCodeLine {\n public LineId: string;\n public Amount: number;\n public Information: string;\n public InformationAmount: number;\n public InputTypeValue: number;\n public ItemTender: string;\n public LineNumber: number;\n public LineTypeValue: number;\n public ParentLineId: string;\n public ReasonCodeId: string;\n public StatementCode: string;\n public SubReasonCodeId: string;\n public SourceCode: string;\n public SourceCode2: string;\n public SourceCode3: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public FiscalTransactionParentGuid: string;\n public IsChanged: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Information = \n odataObject.Information;\n \n this.InformationAmount = \n (odataObject.InformationAmount != null) ? parseFloat(odataObject.InformationAmount) : undefined;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ItemTender = \n odataObject.ItemTender;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LineTypeValue = \n odataObject.LineTypeValue;\n \n this.ParentLineId = \n odataObject.ParentLineId;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.SubReasonCodeId = \n odataObject.SubReasonCodeId;\n \n this.SourceCode = \n odataObject.SourceCode;\n \n this.SourceCode2 = \n odataObject.SourceCode2;\n \n this.SourceCode3 = \n odataObject.SourceCode3;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FiscalTransactionParentGuid = \n odataObject.FiscalTransactionParentGuid;\n \n this.IsChanged = \n odataObject.IsChanged;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeLineClass'] = ReasonCodeLineClass;\n \n /**\n * ReasonSubCode entity class.\n */\n export class ReasonSubCodeClass implements Entities.ReasonSubCode {\n public TriggerCode: string;\n public AmountPercent: number;\n public ReasonCodeId: string;\n public SubCodeId: string;\n public Description: string;\n public TriggerFunctionTypeValue: number;\n public ProductId: number;\n public PriceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TriggerCode = \n odataObject.TriggerCode;\n \n this.AmountPercent = \n (odataObject.AmountPercent != null) ? parseFloat(odataObject.AmountPercent) : undefined;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SubCodeId = \n odataObject.SubCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.TriggerFunctionTypeValue = \n odataObject.TriggerFunctionTypeValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.PriceTypeValue = \n odataObject.PriceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonSubCodeClass'] = ReasonSubCodeClass;\n \n /**\n * Receipt entity class.\n */\n export class ReceiptClass implements Entities.Receipt {\n public TransactionId: string;\n public Header: string;\n public Body: string;\n public Footer: string;\n public Width: number;\n public ReceiptId: string;\n public LayoutId: string;\n public ReceiptTitle: string;\n public ReceiptTypeValue: number;\n public ReceiptTypeStrValue: string;\n public Printers: Entities.Printer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.Header = \n odataObject.Header;\n \n this.Body = \n odataObject.Body;\n \n this.Footer = \n odataObject.Footer;\n \n this.Width = \n odataObject.Width;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypeStrValue = \n odataObject.ReceiptTypeStrValue;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new PrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptClass'] = ReceiptClass;\n \n /**\n * ReceiptMask entity class.\n */\n export class ReceiptMaskClass implements Entities.ReceiptMask {\n public FunctionalityProfileId: string;\n public IsIndependent: boolean;\n public ReceiptTransactionTypeValue: number;\n public RecordId: number;\n public Mask: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.IsIndependent = \n odataObject.IsIndependent;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Mask = \n odataObject.Mask;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptMaskClass'] = ReceiptMaskClass;\n \n /**\n * SalesLine entity class.\n */\n export class SalesLineClass implements Entities.SalesLine {\n public StaffId: string;\n public LineId: string;\n public Description: string;\n public OriginLineId: string;\n public TaxOverrideCode: string;\n public IsPriceKeyedIn: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public ProductId: number;\n public Barcode: string;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public EntryMethodTypeValue: number;\n public MasterProductId: number;\n public ListingId: number;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public Comment: string;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public WarehouseLocation: string;\n public InventoryStatusId: string;\n public LicensePlate: string;\n public InventoryDimensionId: string;\n public InventoryTransactionId: string;\n public ItemType: number;\n public ReservationId: string;\n public LineNumber: number;\n public ReturnQuantity: number;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public LineVersion: number;\n public StatusValue: number;\n public SalesStatusValue: number;\n public ProductSourceValue: number;\n public IsGiftCardLine: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public IsInvoiceSettled: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public IsVoided: boolean;\n public IsPriceLocked: boolean;\n public ChargeLines: Entities.ChargeLine[];\n public BasePrice: number;\n public AgreementPrice: number;\n public AdjustedPrice: number;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public ReturnStore: string;\n public ReturnTerminalId: string;\n public ReturnChannelId: number;\n public FulfillmentStoreId: string;\n public SalesDate: Date;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public SavedQuantity: number;\n public IsSavedDiscount: boolean;\n public RecordId: number;\n public SerialNumber: string;\n public BatchId: string;\n public DeliveryModeChargeAmount: number;\n public UnitOfMeasureSymbol: string;\n public CatalogId: number;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyPercentageDiscount: number;\n public TenderDiscountAmount: number;\n public TenderDiscountPercentage: number;\n public GiftCardBalance: number;\n public IsCustomerAccountDeposit: boolean;\n public Blocked: boolean;\n public Found: boolean;\n public DateToActivateItem: Date;\n public LinePercentageDiscount: number;\n public PeriodicPercentageDiscount: number;\n public QuantityDiscounted: number;\n public UnitQuantity: number;\n public UnitOfMeasureConversion: Entities.UnitOfMeasureConversion;\n public DiscountLines: Entities.DiscountLine[];\n public PriceLines: Entities.PriceLine[];\n public AttainablePriceLines: Entities.PriceLine[];\n public PeriodicDiscountPossibilities: Entities.DiscountLine[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReturnLabelProperties: Entities.ReturnLabelContent;\n public LineMultilineDiscOnItem: string;\n public RelatedDiscountedLineIds: string[];\n public LinkedParentLineId: string;\n public LineMultilineDiscOnItemValue: number;\n public WasChanged: boolean;\n public OriginalSalesOrderUnitOfMeasure: string;\n public InventOrderUnitOfMeasure: string;\n public TrackingId: string;\n public IsLoyaltyDiscountApplied: boolean;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public QuantityReturnable: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ReturnLoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public DetailedLineStatusValue: number;\n public DetailedLineStatus: Entities.DetailedLineStatus;\n public LastReturnProcessedTime: Date;\n public SalesAgreementPrice: number;\n public SalesAgreementLineRecordId: number;\n public IsSalesAgreementSkipped: boolean;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Description = \n odataObject.Description;\n \n this.OriginLineId = \n odataObject.OriginLineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comment = \n odataObject.Comment;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.InventoryStatusId = \n odataObject.InventoryStatusId;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.InventoryTransactionId = \n odataObject.InventoryTransactionId;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.ReservationId = \n odataObject.ReservationId;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.ReturnQuantity = \n (odataObject.ReturnQuantity != null) ? parseFloat(odataObject.ReturnQuantity) : undefined;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.ProductSourceValue = \n odataObject.ProductSourceValue;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.IsInvoiceSettled = \n odataObject.IsInvoiceSettled;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsPriceLocked = \n odataObject.IsPriceLocked;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.AgreementPrice = \n (odataObject.AgreementPrice != null) ? parseFloat(odataObject.AgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.ReturnStore = \n odataObject.ReturnStore;\n \n this.ReturnTerminalId = \n odataObject.ReturnTerminalId;\n \n this.ReturnChannelId = \n (odataObject.ReturnChannelId != null) ? parseInt(odataObject.ReturnChannelId, 10) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SalesDate = \n (odataObject.SalesDate instanceof Date) ? odataObject.SalesDate\n : (odataObject.SalesDate != null) ? jsonLightReadStringPropertyValue(odataObject.SalesDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.SavedQuantity = \n (odataObject.SavedQuantity != null) ? parseFloat(odataObject.SavedQuantity) : undefined;\n \n this.IsSavedDiscount = \n odataObject.IsSavedDiscount;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyPercentageDiscount = \n (odataObject.LoyaltyPercentageDiscount != null) ? parseFloat(odataObject.LoyaltyPercentageDiscount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.TenderDiscountPercentage = \n (odataObject.TenderDiscountPercentage != null) ? parseFloat(odataObject.TenderDiscountPercentage) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.Found = \n odataObject.Found;\n \n this.DateToActivateItem = \n (odataObject.DateToActivateItem instanceof Date) ? odataObject.DateToActivateItem\n : (odataObject.DateToActivateItem != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivateItem, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.QuantityDiscounted = \n (odataObject.QuantityDiscounted != null) ? parseFloat(odataObject.QuantityDiscounted) : undefined;\n \n this.UnitQuantity = \n (odataObject.UnitQuantity != null) ? parseFloat(odataObject.UnitQuantity) : undefined;\n \n if (odataObject.UnitOfMeasureConversion == null) {\n this.UnitOfMeasureConversion = undefined;\n } else if (odataObject.UnitOfMeasureConversion['@odata.type'] == null) {\n this.UnitOfMeasureConversion = new UnitOfMeasureConversionClass(odataObject.UnitOfMeasureConversion);\n } else {\n var className: string = odataObject.UnitOfMeasureConversion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnitOfMeasureConversion = new entityDictionary[className](odataObject.UnitOfMeasureConversion)\n }\n }\n\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.AttainablePriceLines = undefined;\n if (odataObject.AttainablePriceLines) {\n this.AttainablePriceLines = [];\n for (var i = 0; i < odataObject.AttainablePriceLines.length; i++) {\n if (odataObject.AttainablePriceLines[i] != null) {\n if (odataObject.AttainablePriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AttainablePriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttainablePriceLines[i] = new entityDictionary[className](odataObject.AttainablePriceLines[i])\n }\n } else {\n this.AttainablePriceLines[i] = new PriceLineClass(odataObject.AttainablePriceLines[i]);\n }\n } else {\n this.AttainablePriceLines[i] = undefined;\n }\n }\n }\n \n this.PeriodicDiscountPossibilities = undefined;\n if (odataObject.PeriodicDiscountPossibilities) {\n this.PeriodicDiscountPossibilities = [];\n for (var i = 0; i < odataObject.PeriodicDiscountPossibilities.length; i++) {\n if (odataObject.PeriodicDiscountPossibilities[i] != null) {\n if (odataObject.PeriodicDiscountPossibilities[i]['@odata.type'] != null) {\n var className: string = odataObject.PeriodicDiscountPossibilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PeriodicDiscountPossibilities[i] = new entityDictionary[className](odataObject.PeriodicDiscountPossibilities[i])\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = new DiscountLineClass(odataObject.PeriodicDiscountPossibilities[i]);\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.ReturnLabelProperties == null) {\n this.ReturnLabelProperties = undefined;\n } else if (odataObject.ReturnLabelProperties['@odata.type'] == null) {\n this.ReturnLabelProperties = new ReturnLabelContentClass(odataObject.ReturnLabelProperties);\n } else {\n var className: string = odataObject.ReturnLabelProperties['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLabelProperties = new entityDictionary[className](odataObject.ReturnLabelProperties)\n }\n }\n\n \n this.LineMultilineDiscOnItem = \n odataObject.LineMultilineDiscOnItem;\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.LineMultilineDiscOnItemValue = \n odataObject.LineMultilineDiscOnItemValue;\n \n this.WasChanged = \n odataObject.WasChanged;\n \n this.OriginalSalesOrderUnitOfMeasure = \n odataObject.OriginalSalesOrderUnitOfMeasure;\n \n this.InventOrderUnitOfMeasure = \n odataObject.InventOrderUnitOfMeasure;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.IsLoyaltyDiscountApplied = \n odataObject.IsLoyaltyDiscountApplied;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ReturnLoyaltyRewardPointLines = undefined;\n if (odataObject.ReturnLoyaltyRewardPointLines) {\n this.ReturnLoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.ReturnLoyaltyRewardPointLines.length; i++) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i] != null) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.ReturnLoyaltyRewardPointLines[i])\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.ReturnLoyaltyRewardPointLines[i]);\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n if (odataObject.DetailedLineStatus == null) {\n this.DetailedLineStatus = undefined;\n } else if (odataObject.DetailedLineStatus['@odata.type'] == null) {\n this.DetailedLineStatus = new DetailedLineStatusClass(odataObject.DetailedLineStatus);\n } else {\n var className: string = odataObject.DetailedLineStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DetailedLineStatus = new entityDictionary[className](odataObject.DetailedLineStatus)\n }\n }\n\n \n this.LastReturnProcessedTime = \n (odataObject.LastReturnProcessedTime instanceof Date) ? odataObject.LastReturnProcessedTime\n : (odataObject.LastReturnProcessedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastReturnProcessedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n this.IsSalesAgreementSkipped = \n odataObject.IsSalesAgreementSkipped;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineClass'] = SalesLineClass;\n \n /**\n * SearchArea entity class.\n */\n export class SearchAreaClass implements Entities.SearchArea {\n public Longitude: number;\n public Latitude: number;\n public Radius: number;\n public DistanceUnitValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Radius = \n (odataObject.Radius != null) ? parseFloat(odataObject.Radius) : undefined;\n \n this.DistanceUnitValue = \n odataObject.DistanceUnitValue;\n \n }\n }\n entityDictionary['SearchAreaClass'] = SearchAreaClass;\n \n /**\n * ShiftAccountLine entity class.\n */\n export class ShiftAccountLineClass implements Entities.ShiftAccountLine {\n public AccountTypeValue: number;\n public AccountNumber: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftAccountLineClass'] = ShiftAccountLineClass;\n \n /**\n * ShiftTenderLine entity class.\n */\n export class ShiftTenderLineClass implements Entities.ShiftTenderLine {\n public TenderTypeId: string;\n public TenderTypeName: string;\n public CardTypeId: string;\n public TenderCurrency: string;\n public CountingRequired: boolean;\n public StartingAmountOfStoreCurrency: number;\n public StartingAmountOfTenderCurrency: number;\n public FloatingEntryAmountOfStoreCurrency: number;\n public FloatingEntryAmountOfTenderCurrency: number;\n public SafeDropAmountOfStoreCurrency: number;\n public SafeDropAmountOfTenderCurrency: number;\n public BankDropAmountOfStoreCurrency: number;\n public BankDropAmountOfTenderCurrency: number;\n public RemoveTenderAmountOfStoreCurrency: number;\n public RemoveTenderAmountOfTenderCurrency: number;\n public DeclareTenderAmountOfStoreCurrency: number;\n public DeclareTenderAmountOfTenderCurrency: number;\n public TenderedAmountOfStoreCurrency: number;\n public TenderedAmountOfTenderCurrency: number;\n public ChangeAmountOfStoreCurrency: number;\n public ChangeAmountOfTenderCurrency: number;\n public Count: number;\n public Notes: string;\n public Overridden: boolean;\n public OverriddenFloatEntryAmountInStoreCurrency: number;\n public OverriddenFloatEntryAmountInTenderedCurrency: number;\n public OverriddenBankDropAmountInStoreCurrency: number;\n public OverriddenBankDropAmountInTenderedCurrency: number;\n public OverriddenChangeAmountInStoreCurrency: number;\n public OverriddenChangeAmountInTenderedCurrency: number;\n public OverriddenDeclaredTenderAmountInStoreCurrency: number;\n public OverriddenDeclaredTenderAmountInTenderedCurrency: number;\n public OverriddenRemovedTenderAmountInStoreCurrency: number;\n public OverriddenRemovedTenderAmountInTenderedCurrency: number;\n public OverriddenSafeDropAmountInStoreCurrency: number;\n public OverriddenSafeDropAmountInTenderedCurrency: number;\n public OverriddenStartingAmountInStoreCurrency: number;\n public OverriddenStartingAmountInTenderedCurrency: number;\n public OverriddenTenderedAmountInStoreCurrency: number;\n public OverriddenTenderedAmountInTenderedCurrency: number;\n public OverShortAmountOfTenderCurrency: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderTypeName = \n odataObject.TenderTypeName;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.TenderCurrency = \n odataObject.TenderCurrency;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.StartingAmountOfStoreCurrency = \n (odataObject.StartingAmountOfStoreCurrency != null) ? parseFloat(odataObject.StartingAmountOfStoreCurrency) : undefined;\n \n this.StartingAmountOfTenderCurrency = \n (odataObject.StartingAmountOfTenderCurrency != null) ? parseFloat(odataObject.StartingAmountOfTenderCurrency) : undefined;\n \n this.FloatingEntryAmountOfStoreCurrency = \n (odataObject.FloatingEntryAmountOfStoreCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfStoreCurrency) : undefined;\n \n this.FloatingEntryAmountOfTenderCurrency = \n (odataObject.FloatingEntryAmountOfTenderCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfTenderCurrency) : undefined;\n \n this.SafeDropAmountOfStoreCurrency = \n (odataObject.SafeDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfStoreCurrency) : undefined;\n \n this.SafeDropAmountOfTenderCurrency = \n (odataObject.SafeDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfTenderCurrency) : undefined;\n \n this.BankDropAmountOfStoreCurrency = \n (odataObject.BankDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.BankDropAmountOfStoreCurrency) : undefined;\n \n this.BankDropAmountOfTenderCurrency = \n (odataObject.BankDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.BankDropAmountOfTenderCurrency) : undefined;\n \n this.RemoveTenderAmountOfStoreCurrency = \n (odataObject.RemoveTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfStoreCurrency) : undefined;\n \n this.RemoveTenderAmountOfTenderCurrency = \n (odataObject.RemoveTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfTenderCurrency) : undefined;\n \n this.DeclareTenderAmountOfStoreCurrency = \n (odataObject.DeclareTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfStoreCurrency) : undefined;\n \n this.DeclareTenderAmountOfTenderCurrency = \n (odataObject.DeclareTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfTenderCurrency) : undefined;\n \n this.TenderedAmountOfStoreCurrency = \n (odataObject.TenderedAmountOfStoreCurrency != null) ? parseFloat(odataObject.TenderedAmountOfStoreCurrency) : undefined;\n \n this.TenderedAmountOfTenderCurrency = \n (odataObject.TenderedAmountOfTenderCurrency != null) ? parseFloat(odataObject.TenderedAmountOfTenderCurrency) : undefined;\n \n this.ChangeAmountOfStoreCurrency = \n (odataObject.ChangeAmountOfStoreCurrency != null) ? parseFloat(odataObject.ChangeAmountOfStoreCurrency) : undefined;\n \n this.ChangeAmountOfTenderCurrency = \n (odataObject.ChangeAmountOfTenderCurrency != null) ? parseFloat(odataObject.ChangeAmountOfTenderCurrency) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.Notes = \n odataObject.Notes;\n \n this.Overridden = \n odataObject.Overridden;\n \n this.OverriddenFloatEntryAmountInStoreCurrency = \n (odataObject.OverriddenFloatEntryAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInStoreCurrency) : undefined;\n \n this.OverriddenFloatEntryAmountInTenderedCurrency = \n (odataObject.OverriddenFloatEntryAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInTenderedCurrency) : undefined;\n \n this.OverriddenBankDropAmountInStoreCurrency = \n (odataObject.OverriddenBankDropAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInStoreCurrency) : undefined;\n \n this.OverriddenBankDropAmountInTenderedCurrency = \n (odataObject.OverriddenBankDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenChangeAmountInStoreCurrency = \n (odataObject.OverriddenChangeAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInStoreCurrency) : undefined;\n \n this.OverriddenChangeAmountInTenderedCurrency = \n (odataObject.OverriddenChangeAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInTenderedCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInStoreCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInStoreCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInTenderedCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInStoreCurrency = \n (odataObject.OverriddenRemovedTenderAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInStoreCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInTenderedCurrency = \n (odataObject.OverriddenRemovedTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInStoreCurrency = \n (odataObject.OverriddenSafeDropAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInStoreCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInTenderedCurrency = \n (odataObject.OverriddenSafeDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenStartingAmountInStoreCurrency = \n (odataObject.OverriddenStartingAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInStoreCurrency) : undefined;\n \n this.OverriddenStartingAmountInTenderedCurrency = \n (odataObject.OverriddenStartingAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInTenderedCurrency) : undefined;\n \n this.OverriddenTenderedAmountInStoreCurrency = \n (odataObject.OverriddenTenderedAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenTenderedAmountInStoreCurrency) : undefined;\n \n this.OverriddenTenderedAmountInTenderedCurrency = \n (odataObject.OverriddenTenderedAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenTenderedAmountInTenderedCurrency) : undefined;\n \n this.OverShortAmountOfTenderCurrency = \n (odataObject.OverShortAmountOfTenderCurrency != null) ? parseFloat(odataObject.OverShortAmountOfTenderCurrency) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTenderLineClass'] = ShiftTenderLineClass;\n \n /**\n * StockCountJournalTransaction entity class.\n */\n export class StockCountJournalTransactionClass implements Entities.StockCountJournalTransaction {\n public JournalId: string;\n public RecordId: number;\n public OperationType: number;\n public ItemId: string;\n public DataAreaId: string;\n public ProductRecordId: number;\n public ItemName: string;\n public InventDimId: string;\n public Counted: number;\n public Quantity: number;\n public EstimatedOnHandQuantity: number;\n public OnHandCalculationDateTime: Date;\n public Unit: string;\n public UserId: string;\n public TerminalId: string;\n public CountedDate: Date;\n public Status: number;\n public InventBatchId: string;\n public WarehouseLocationId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public WarehousePalletId: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public InventSerialId: string;\n public TrackingGuid: string;\n public UpdatedInAx: boolean;\n public Message: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OperationType = \n odataObject.OperationType;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.Counted = \n (odataObject.Counted != null) ? parseFloat(odataObject.Counted) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.EstimatedOnHandQuantity = \n (odataObject.EstimatedOnHandQuantity != null) ? parseFloat(odataObject.EstimatedOnHandQuantity) : undefined;\n \n this.OnHandCalculationDateTime = \n (odataObject.OnHandCalculationDateTime instanceof Date) ? odataObject.OnHandCalculationDateTime\n : (odataObject.OnHandCalculationDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OnHandCalculationDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.UserId = \n odataObject.UserId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CountedDate = \n (odataObject.CountedDate instanceof Date) ? odataObject.CountedDate\n : (odataObject.CountedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CountedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WarehouseLocationId = \n odataObject.WarehouseLocationId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.WarehousePalletId = \n odataObject.WarehousePalletId;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.TrackingGuid = \n odataObject.TrackingGuid;\n \n this.UpdatedInAx = \n odataObject.UpdatedInAx;\n \n this.Message = \n odataObject.Message;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalTransactionClass'] = StockCountJournalTransactionClass;\n \n /**\n * TaxLine entity class.\n */\n export class TaxLineClass implements Entities.TaxLine {\n public TaxGroup: string;\n public Percentage: number;\n public IsExempt: boolean;\n public TaxBasis: number;\n public IsIncludedInPrice: boolean;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TaxCode: string;\n public Amount: number;\n public AmountRefunded: number;\n public IsTaxGroupRounding: 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.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.IsTaxGroupRounding = \n odataObject.IsTaxGroupRounding;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxLineClass'] = TaxLineClass;\n \n /**\n * TenderLine entity class.\n */\n export class TenderLineClass implements Entities.TenderLine {\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public InternalTransactionId: string;\n public RefundableAmount: number;\n public CaptureToken: string;\n public CardToken: string;\n public Authorization: string;\n public TransactionStatusValue: number;\n public IncomeExpenseAccountTypeValue: number;\n public MaskedCardNumber: string;\n public TenderDate: Date;\n public IsPreProcessed: boolean;\n public IsDeposit: boolean;\n public IsCustomerAccountFloorLimitUsed: boolean;\n public AuthorizationReferenceId: string;\n public IsIncrementalCaptureEnabled: boolean;\n public IsReauthorizationEnabled: boolean;\n public IncrementalOffsetAmount: number;\n public ChannelId: number;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public RoundingDifference: number;\n public RemainingLinkedRefundAmount: number;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.RefundableAmount = \n (odataObject.RefundableAmount != null) ? parseFloat(odataObject.RefundableAmount) : undefined;\n \n this.CaptureToken = \n odataObject.CaptureToken;\n \n this.CardToken = \n odataObject.CardToken;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.IncomeExpenseAccountTypeValue = \n odataObject.IncomeExpenseAccountTypeValue;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n this.TenderDate = \n (odataObject.TenderDate instanceof Date) ? odataObject.TenderDate\n : (odataObject.TenderDate != null) ? jsonLightReadStringPropertyValue(odataObject.TenderDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsPreProcessed = \n odataObject.IsPreProcessed;\n \n this.IsDeposit = \n odataObject.IsDeposit;\n \n this.IsCustomerAccountFloorLimitUsed = \n odataObject.IsCustomerAccountFloorLimitUsed;\n \n this.AuthorizationReferenceId = \n odataObject.AuthorizationReferenceId;\n \n this.IsIncrementalCaptureEnabled = \n odataObject.IsIncrementalCaptureEnabled;\n \n this.IsReauthorizationEnabled = \n odataObject.IsReauthorizationEnabled;\n \n this.IncrementalOffsetAmount = \n (odataObject.IncrementalOffsetAmount != null) ? parseFloat(odataObject.IncrementalOffsetAmount) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.RoundingDifference = \n (odataObject.RoundingDifference != null) ? parseFloat(odataObject.RoundingDifference) : undefined;\n \n this.RemainingLinkedRefundAmount = \n (odataObject.RemainingLinkedRefundAmount != null) ? parseFloat(odataObject.RemainingLinkedRefundAmount) : undefined;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderLineClass'] = TenderLineClass;\n \n /**\n * TextValueTranslation entity class.\n */\n export class TextValueTranslationClass implements Entities.TextValueTranslation {\n public Language: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Language = \n odataObject.Language;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TextValueTranslationClass'] = TextValueTranslationClass;\n \n /**\n * UnitOfMeasure entity class.\n */\n export class UnitOfMeasureClass implements Entities.UnitOfMeasure {\n public DecimalPrecision: number;\n public Symbol: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DecimalPrecision = \n odataObject.DecimalPrecision;\n \n this.Symbol = \n odataObject.Symbol;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureClass'] = UnitOfMeasureClass;\n \n /**\n * RecommendedElement entity class.\n */\n export class RecommendedElementClass implements Entities.RecommendedElement {\n public ElementId: string;\n public ElementTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ElementId = \n odataObject.ElementId;\n \n this.ElementTypeValue = \n odataObject.ElementTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendedElementClass'] = RecommendedElementClass;\n \n /**\n * RecommendationCriteria entity class.\n */\n export class RecommendationCriteriaClass implements Entities.RecommendationCriteria {\n public CustomerAccountNumber: string;\n public CatalogId: number;\n public ProductIds: number[];\n public CategoryIds: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationCriteriaClass'] = RecommendationCriteriaClass;\n \n /**\n * ProductListLine entity class.\n */\n export class ProductListLineClass implements Entities.ProductListLine {\n public ProductListId: string;\n public LineId: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductListId = \n odataObject.ProductListId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListLineClass'] = ProductListLineClass;\n \n /**\n * CommerceListLine entity class.\n */\n export class CommerceListLineClass implements Entities.CommerceListLine {\n public CommerceListId: number;\n public LineId: number;\n public CustomerId: string;\n public CustomerName: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CommerceListId = \n (odataObject.CommerceListId != null) ? parseInt(odataObject.CommerceListId, 10) : undefined;\n \n this.LineId = \n (odataObject.LineId != null) ? parseInt(odataObject.LineId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListLineClass'] = CommerceListLineClass;\n \n /**\n * CommerceListContributor entity class.\n */\n export class CommerceListContributorClass implements Entities.CommerceListContributor {\n public RecordId: number;\n public CustomerId: string;\n public CustomerName: string;\n public InvitationId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvitationId = \n (odataObject.InvitationId != null) ? parseInt(odataObject.InvitationId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListContributorClass'] = CommerceListContributorClass;\n \n /**\n * CommerceListInvitation entity class.\n */\n export class CommerceListInvitationClass implements Entities.CommerceListInvitation {\n public RecordId: number;\n public Invitee: string;\n public IsSent: boolean;\n public LastRequestDateTime: Date;\n public LastSentDateTime: Date;\n public StatusValue: number;\n public Token: string;\n public InvitationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Invitee = \n odataObject.Invitee;\n \n this.IsSent = \n odataObject.IsSent;\n \n this.LastRequestDateTime = \n (odataObject.LastRequestDateTime instanceof Date) ? odataObject.LastRequestDateTime\n : (odataObject.LastRequestDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastRequestDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastSentDateTime = \n (odataObject.LastSentDateTime instanceof Date) ? odataObject.LastSentDateTime\n : (odataObject.LastSentDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSentDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.InvitationTypeValue = \n odataObject.InvitationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListInvitationClass'] = CommerceListInvitationClass;\n \n /**\n * SearchFilter entity class.\n */\n export class SearchFilterClass implements Entities.SearchFilter {\n public Key: string;\n public FilterTypeValue: number;\n public SearchValues: Entities.SearchFilterValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.FilterTypeValue = \n odataObject.FilterTypeValue;\n \n this.SearchValues = undefined;\n if (odataObject.SearchValues) {\n this.SearchValues = [];\n for (var i = 0; i < odataObject.SearchValues.length; i++) {\n if (odataObject.SearchValues[i] != null) {\n if (odataObject.SearchValues[i]['@odata.type'] != null) {\n var className: string = odataObject.SearchValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchValues[i] = new entityDictionary[className](odataObject.SearchValues[i])\n }\n } else {\n this.SearchValues[i] = new SearchFilterValueClass(odataObject.SearchValues[i]);\n }\n } else {\n this.SearchValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchFilterClass'] = SearchFilterClass;\n \n /**\n * SearchFilterValue entity class.\n */\n export class SearchFilterValueClass implements Entities.SearchFilterValue {\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['SearchFilterValueClass'] = SearchFilterValueClass;\n \n /**\n * TransactionSearchCriteria entity class.\n */\n export class TransactionSearchCriteriaClass implements Entities.TransactionSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SearchLocationTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionSearchCriteriaClass'] = TransactionSearchCriteriaClass;\n \n /**\n * SalesOrderSearchCriteria entity class.\n */\n export class SalesOrderSearchCriteriaClass implements Entities.SalesOrderSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public SearchTypeValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public IncludeDetails: boolean;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SalesTransactionTypeValues: number[];\n public SearchLocationTypeValue: number;\n public TransactionStatusTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SearchTypeValue = \n odataObject.SearchTypeValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IncludeDetails = \n odataObject.IncludeDetails;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SalesTransactionTypeValues = undefined;\n if (odataObject.SalesTransactionTypeValues) {\n this.SalesTransactionTypeValues = [];\n for (var i = 0; i < odataObject.SalesTransactionTypeValues.length; i++) {\n if (odataObject.SalesTransactionTypeValues[i] != null) {\n this.SalesTransactionTypeValues[i] = \n odataObject.SalesTransactionTypeValues[i];\n } else {\n this.SalesTransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.TransactionStatusTypeValues = undefined;\n if (odataObject.TransactionStatusTypeValues) {\n this.TransactionStatusTypeValues = [];\n for (var i = 0; i < odataObject.TransactionStatusTypeValues.length; i++) {\n if (odataObject.TransactionStatusTypeValues[i] != null) {\n this.TransactionStatusTypeValues[i] = \n odataObject.TransactionStatusTypeValues[i];\n } else {\n this.TransactionStatusTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderSearchCriteriaClass'] = SalesOrderSearchCriteriaClass;\n \n /**\n * SearchStoreCriteria entity class.\n */\n export class SearchStoreCriteriaClass implements Entities.SearchStoreCriteria {\n public ChannelId: number;\n public StoreNumber: string;\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n }\n }\n entityDictionary['SearchStoreCriteriaClass'] = SearchStoreCriteriaClass;\n \n /**\n * CustomerSearchCriteria entity class.\n */\n export class CustomerSearchCriteriaClass implements Entities.CustomerSearchCriteria {\n public Keyword: string;\n public SearchOnlyCurrentCompany: boolean;\n public SearchLocationValue: number;\n public Refinements: Entities.CustomerRefinerValue[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Keyword = \n odataObject.Keyword;\n \n this.SearchOnlyCurrentCompany = \n odataObject.SearchOnlyCurrentCompany;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.Refinements = undefined;\n if (odataObject.Refinements) {\n this.Refinements = [];\n for (var i = 0; i < odataObject.Refinements.length; i++) {\n if (odataObject.Refinements[i] != null) {\n if (odataObject.Refinements[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinements[i] = new entityDictionary[className](odataObject.Refinements[i])\n }\n } else {\n this.Refinements[i] = new CustomerRefinerValueClass(odataObject.Refinements[i]);\n }\n } else {\n this.Refinements[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchCriteriaClass'] = CustomerSearchCriteriaClass;\n \n /**\n * ProductPrice entity class.\n */\n export class ProductPriceClass implements Entities.ProductPrice {\n public ProductId: number;\n public ListingId: number;\n public BasePrice: number;\n public TradeAgreementPrice: number;\n public AdjustedPrice: number;\n public MaxVariantPrice: number;\n public MinVariantPrice: number;\n public CustomerContextualPrice: number;\n public DiscountAmount: number;\n public CurrencyCode: string;\n public ItemId: string;\n public InventoryDimensionId: string;\n public UnitOfMeasure: string;\n public ValidFrom: Date;\n public ProductLookupId: number;\n public ChannelId: number;\n public CatalogId: number;\n public DiscountLines: Entities.DiscountLine[];\n public SalesAgreementPrice: number;\n public PriceSourceTypeValue: number;\n public AttainablePriceLines: Entities.PriceLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.TradeAgreementPrice = \n (odataObject.TradeAgreementPrice != null) ? parseFloat(odataObject.TradeAgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.CustomerContextualPrice = \n (odataObject.CustomerContextualPrice != null) ? parseFloat(odataObject.CustomerContextualPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductLookupId = \n (odataObject.ProductLookupId != null) ? parseInt(odataObject.ProductLookupId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.PriceSourceTypeValue = \n odataObject.PriceSourceTypeValue;\n \n this.AttainablePriceLines = undefined;\n if (odataObject.AttainablePriceLines) {\n this.AttainablePriceLines = [];\n for (var i = 0; i < odataObject.AttainablePriceLines.length; i++) {\n if (odataObject.AttainablePriceLines[i] != null) {\n if (odataObject.AttainablePriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AttainablePriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttainablePriceLines[i] = new entityDictionary[className](odataObject.AttainablePriceLines[i])\n }\n } else {\n this.AttainablePriceLines[i] = new PriceLineClass(odataObject.AttainablePriceLines[i]);\n }\n } else {\n this.AttainablePriceLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPriceClass'] = ProductPriceClass;\n \n /**\n * OrgUnitAvailability entity class.\n */\n export class OrgUnitAvailabilityClass implements Entities.OrgUnitAvailability {\n public OrgUnitLocation: Entities.OrgUnitLocation;\n public ItemAvailabilities: Entities.ItemAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.OrgUnitLocation == null) {\n this.OrgUnitLocation = undefined;\n } else if (odataObject.OrgUnitLocation['@odata.type'] == null) {\n this.OrgUnitLocation = new OrgUnitLocationClass(odataObject.OrgUnitLocation);\n } else {\n var className: string = odataObject.OrgUnitLocation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitLocation = new entityDictionary[className](odataObject.OrgUnitLocation)\n }\n }\n\n \n this.ItemAvailabilities = undefined;\n if (odataObject.ItemAvailabilities) {\n this.ItemAvailabilities = [];\n for (var i = 0; i < odataObject.ItemAvailabilities.length; i++) {\n if (odataObject.ItemAvailabilities[i] != null) {\n if (odataObject.ItemAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemAvailabilities[i] = new entityDictionary[className](odataObject.ItemAvailabilities[i])\n }\n } else {\n this.ItemAvailabilities[i] = new ItemAvailabilityClass(odataObject.ItemAvailabilities[i]);\n }\n } else {\n this.ItemAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitAvailabilityClass'] = OrgUnitAvailabilityClass;\n \n /**\n * ProductVariantPropertySet entity class.\n */\n export class ProductVariantPropertySetClass implements Entities.ProductVariantPropertySet {\n public VariantId: number;\n public ProductVariantPropertiesAsList: Entities.ProductPropertyTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.VariantId = \n (odataObject.VariantId != null) ? parseInt(odataObject.VariantId, 10) : undefined;\n \n this.ProductVariantPropertiesAsList = undefined;\n if (odataObject.ProductVariantPropertiesAsList) {\n this.ProductVariantPropertiesAsList = [];\n for (var i = 0; i < odataObject.ProductVariantPropertiesAsList.length; i++) {\n if (odataObject.ProductVariantPropertiesAsList[i] != null) {\n if (odataObject.ProductVariantPropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductVariantPropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductVariantPropertiesAsList[i] = new entityDictionary[className](odataObject.ProductVariantPropertiesAsList[i])\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.ProductVariantPropertiesAsList[i]);\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantPropertySetClass'] = ProductVariantPropertySetClass;\n \n /**\n * PurchaseOrderLine entity class.\n */\n export class PurchaseOrderLineClass implements Entities.PurchaseOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseQuantity: number;\n public PurchaseUnit: string;\n public PurchaseReceived: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public UniqueIdentifier: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseQuantity = \n (odataObject.PurchaseQuantity != null) ? parseFloat(odataObject.PurchaseQuantity) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.PurchaseReceived = \n (odataObject.PurchaseReceived != null) ? parseFloat(odataObject.PurchaseReceived) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.UniqueIdentifier = \n odataObject.UniqueIdentifier;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderLineClass'] = PurchaseOrderLineClass;\n \n /**\n * TransferOrderLine entity class.\n */\n export class TransferOrderLineClass implements Entities.TransferOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityTransferred: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityRemainShip: number;\n public QuantityRemainReceive: number;\n public PurchaseUnit: string;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityTransferred = \n (odataObject.QuantityTransferred != null) ? parseFloat(odataObject.QuantityTransferred) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityRemainShip = \n (odataObject.QuantityRemainShip != null) ? parseFloat(odataObject.QuantityRemainShip) : undefined;\n \n this.QuantityRemainReceive = \n (odataObject.QuantityRemainReceive != null) ? parseFloat(odataObject.QuantityRemainReceive) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderLineClass'] = TransferOrderLineClass;\n \n /**\n * TransferOrderJournal entity class.\n */\n export class TransferOrderJournalClass implements Entities.TransferOrderJournal {\n public OrderId: string;\n public VoucherId: string;\n public UpdatedByWorker: string;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public PostingDate: Date;\n public DeliveryMode: string;\n public Comments: string;\n public JournalLines: Entities.TransferOrderJournalLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.VoucherId = \n odataObject.VoucherId;\n \n this.UpdatedByWorker = \n odataObject.UpdatedByWorker;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.PostingDate = \n (odataObject.PostingDate instanceof Date) ? odataObject.PostingDate\n : (odataObject.PostingDate != null) ? jsonLightReadStringPropertyValue(odataObject.PostingDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comments = \n odataObject.Comments;\n \n this.JournalLines = undefined;\n if (odataObject.JournalLines) {\n this.JournalLines = [];\n for (var i = 0; i < odataObject.JournalLines.length; i++) {\n if (odataObject.JournalLines[i] != null) {\n if (odataObject.JournalLines[i]['@odata.type'] != null) {\n var className: string = odataObject.JournalLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.JournalLines[i] = new entityDictionary[className](odataObject.JournalLines[i])\n }\n } else {\n this.JournalLines[i] = new TransferOrderJournalLineClass(odataObject.JournalLines[i]);\n }\n } else {\n this.JournalLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalClass'] = TransferOrderJournalClass;\n \n /**\n * PickingListLine entity class.\n */\n export class PickingListLineClass implements Entities.PickingListLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListLineClass'] = PickingListLineClass;\n \n /**\n * Affiliation entity class.\n */\n export class AffiliationClass implements Entities.Affiliation {\n public RecordId: number;\n public AffiliationTypeValue: number;\n public Description: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationClass'] = AffiliationClass;\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity class.\n */\n export class InventoryInboundOutboundDocumentLinesSummaryClass implements Entities.InventoryInboundOutboundDocumentLinesSummary {\n public InProgressQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InProgressQuantity = \n (odataObject.InProgressQuantity != null) ? parseFloat(odataObject.InProgressQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLinesSummaryClass'] = InventoryInboundOutboundDocumentLinesSummaryClass;\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity class.\n */\n export class InventoryDocumentSerialNumberLinesSummaryClass implements Entities.InventoryDocumentSerialNumberLinesSummary {\n public RegisteringQuantity: number;\n public RegisteredQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegisteringQuantity = \n (odataObject.RegisteringQuantity != null) ? parseFloat(odataObject.RegisteringQuantity) : undefined;\n \n this.RegisteredQuantity = \n (odataObject.RegisteredQuantity != null) ? parseFloat(odataObject.RegisteredQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLinesSummaryClass'] = InventoryDocumentSerialNumberLinesSummaryClass;\n \n /**\n * InventoryInboundOutboundDocumentLine entity class.\n */\n export class InventoryInboundOutboundDocumentLineClass implements Entities.InventoryInboundOutboundDocumentLine {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentLineRecordId: number;\n public SourceDocumentTypeValue: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public QuantityToUpdate: number;\n public LocationId: string;\n public ItemId: string;\n public ProductId: number;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public OperationResultMessage: string;\n public IsCloseLine: boolean;\n public OriginTypeValue: number;\n public UnitOfMeasure: string;\n public SourceDocumentLine: Entities.InventoryInboundOutboundSourceDocumentLine;\n public SerialNumberLines: Entities.InventoryDocumentSerialNumberLine[];\n public LongVersion: number;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.QuantityToUpdate = \n (odataObject.QuantityToUpdate != null) ? parseFloat(odataObject.QuantityToUpdate) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.IsCloseLine = \n odataObject.IsCloseLine;\n \n this.OriginTypeValue = \n odataObject.OriginTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n if (odataObject.SourceDocumentLine == null) {\n this.SourceDocumentLine = undefined;\n } else if (odataObject.SourceDocumentLine['@odata.type'] == null) {\n this.SourceDocumentLine = new InventoryInboundOutboundSourceDocumentLineClass(odataObject.SourceDocumentLine);\n } else {\n var className: string = odataObject.SourceDocumentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocumentLine = new entityDictionary[className](odataObject.SourceDocumentLine)\n }\n }\n\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLineClass'] = InventoryInboundOutboundDocumentLineClass;\n \n /**\n * InventoryInboundOutboundSourceDocument entity class.\n */\n export class InventoryInboundOutboundSourceDocumentClass implements Entities.InventoryInboundOutboundSourceDocument {\n public RecordId: number;\n public DocumentTypeValue: number;\n public DocumentId: string;\n public StatusValue: number;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public TotalQuantityOrdered: number;\n public TotalQuantityShipped: number;\n public TotalQuantityReceived: number;\n public TotalQuantityCancelled: number;\n public DataAreaId: string;\n public Note: string;\n public TotalLines: number;\n public IsChangeAllowed: boolean;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalQuantityOrdered = \n (odataObject.TotalQuantityOrdered != null) ? parseFloat(odataObject.TotalQuantityOrdered) : undefined;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.TotalQuantityReceived = \n (odataObject.TotalQuantityReceived != null) ? parseFloat(odataObject.TotalQuantityReceived) : undefined;\n \n this.TotalQuantityCancelled = \n (odataObject.TotalQuantityCancelled != null) ? parseFloat(odataObject.TotalQuantityCancelled) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.TotalLines = \n (odataObject.TotalLines != null) ? parseInt(odataObject.TotalLines, 10) : undefined;\n \n this.IsChangeAllowed = \n odataObject.IsChangeAllowed;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentClass'] = InventoryInboundOutboundSourceDocumentClass;\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity class.\n */\n export class InventoryInboundOutboundSourceDocumentLineClass implements Entities.InventoryInboundOutboundSourceDocumentLine {\n public DocumentRecordId: number;\n public DocumentTypeValue: number;\n public RecordId: number;\n public LineNumber: number;\n public ItemId: string;\n public ProductId: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public LocationId: string;\n public OverDeliveryPercentage: number;\n public UnderDeliveryPercentage: number;\n public UnitId: string;\n public Receiver: string;\n public DataAreaId: string;\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentId: string;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public HasSerialNumber: boolean;\n public IsSerialNumberBlankReceiptAllowed: boolean;\n public IsSerialNumberDuplicateCheckEnabled: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public SerialNumberLines: Entities.InventoryDocumentSourceSerialNumberLine[];\n public StatusValue: number;\n public ToProductId: number;\n public ToLocationId: string;\n public InventoryDimensionId: string;\n public ToInventoryDimensionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentRecordId = \n (odataObject.DocumentRecordId != null) ? parseInt(odataObject.DocumentRecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.OverDeliveryPercentage = \n (odataObject.OverDeliveryPercentage != null) ? parseFloat(odataObject.OverDeliveryPercentage) : undefined;\n \n this.UnderDeliveryPercentage = \n (odataObject.UnderDeliveryPercentage != null) ? parseFloat(odataObject.UnderDeliveryPercentage) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsSerialNumberBlankReceiptAllowed = \n odataObject.IsSerialNumberBlankReceiptAllowed;\n \n this.IsSerialNumberDuplicateCheckEnabled = \n odataObject.IsSerialNumberDuplicateCheckEnabled;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ToProductId = \n (odataObject.ToProductId != null) ? parseInt(odataObject.ToProductId, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ToInventoryDimensionId = \n odataObject.ToInventoryDimensionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentLineClass'] = InventoryInboundOutboundSourceDocumentLineClass;\n \n /**\n * InventoryDocumentLineFilterCriteria entity class.\n */\n export class InventoryDocumentLineFilterCriteriaClass implements Entities.InventoryDocumentLineFilterCriteria {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineFilterCriteriaClass'] = InventoryDocumentLineFilterCriteriaClass;\n \n /**\n * InventoryDocumentUpdateLinesAction entity class.\n */\n export class InventoryDocumentUpdateLinesActionClass implements Entities.InventoryDocumentUpdateLinesAction {\n public Quantity: number;\n public ActionTypeValue: number;\n public LocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ActionTypeValue = \n odataObject.ActionTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentUpdateLinesActionClass'] = InventoryDocumentUpdateLinesActionClass;\n \n /**\n * InventoryDocumentLineOperationResultSettings entity class.\n */\n export class InventoryDocumentLineOperationResultSettingsClass implements Entities.InventoryDocumentLineOperationResultSettings {\n public ModeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModeValue = \n odataObject.ModeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineOperationResultSettingsClass'] = InventoryDocumentLineOperationResultSettingsClass;\n \n /**\n * InventoryDocumentLineSearchCriteria entity class.\n */\n export class InventoryDocumentLineSearchCriteriaClass implements Entities.InventoryDocumentLineSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ProductId: number;\n public ItemIds: string[];\n public AvailableSerializedLineOnly: boolean;\n public DocumentLineIds: string[];\n public DocumentOperationTypeValue: number;\n public OperationTypeValue: number;\n public LocationId: string;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n this.ItemIds[i] = \n odataObject.ItemIds[i];\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.AvailableSerializedLineOnly = \n odataObject.AvailableSerializedLineOnly;\n \n this.DocumentLineIds = undefined;\n if (odataObject.DocumentLineIds) {\n this.DocumentLineIds = [];\n for (var i = 0; i < odataObject.DocumentLineIds.length; i++) {\n if (odataObject.DocumentLineIds[i] != null) {\n this.DocumentLineIds[i] = \n odataObject.DocumentLineIds[i];\n } else {\n this.DocumentLineIds[i] = undefined;\n }\n }\n }\n \n this.DocumentOperationTypeValue = \n odataObject.DocumentOperationTypeValue;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineSearchCriteriaClass'] = InventoryDocumentLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSearchCriteria entity class.\n */\n export class InventoryDocumentSearchCriteriaClass implements Entities.InventoryDocumentSearchCriteria {\n public DocumentId: string;\n public TransferFromWarehouse: string;\n public ShipFromWarehouse: string;\n public TransferToWarehouse: string;\n public Description: string;\n public DocumentTypeIds: string[];\n public DocumentStateValue: number;\n public DocumentTypeValues: number[];\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.TransferFromWarehouse = \n odataObject.TransferFromWarehouse;\n \n this.ShipFromWarehouse = \n odataObject.ShipFromWarehouse;\n \n this.TransferToWarehouse = \n odataObject.TransferToWarehouse;\n \n this.Description = \n odataObject.Description;\n \n this.DocumentTypeIds = undefined;\n if (odataObject.DocumentTypeIds) {\n this.DocumentTypeIds = [];\n for (var i = 0; i < odataObject.DocumentTypeIds.length; i++) {\n if (odataObject.DocumentTypeIds[i] != null) {\n this.DocumentTypeIds[i] = \n odataObject.DocumentTypeIds[i];\n } else {\n this.DocumentTypeIds[i] = undefined;\n }\n }\n }\n \n this.DocumentStateValue = \n odataObject.DocumentStateValue;\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSearchCriteriaClass'] = InventoryDocumentSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity class.\n */\n export class InventoryDocumentSerialNumberLineSearchCriteriaClass implements Entities.InventoryDocumentSerialNumberLineSearchCriteria {\n public DocumentLineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineSearchCriteriaClass'] = InventoryDocumentSerialNumberLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity class.\n */\n export class InventoryDocumentSerialNumberLineUpdateActionClass implements Entities.InventoryDocumentSerialNumberLineUpdateAction {\n public DocumentLineId: string;\n public LineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineUpdateActionClass'] = InventoryDocumentSerialNumberLineUpdateActionClass;\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity class.\n */\n export class InventoryDocumentSerialNumberLineResetActionClass implements Entities.InventoryDocumentSerialNumberLineResetAction {\n public DocumentLineId: string;\n public LineId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineResetActionClass'] = InventoryDocumentSerialNumberLineResetActionClass;\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity class.\n */\n export class InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass implements Entities.InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n public UpdatedLines: Entities.InventoryInboundOutboundDocumentLine[];\n public TotalLinesUpdated: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UpdatedLines = undefined;\n if (odataObject.UpdatedLines) {\n this.UpdatedLines = [];\n for (var i = 0; i < odataObject.UpdatedLines.length; i++) {\n if (odataObject.UpdatedLines[i] != null) {\n if (odataObject.UpdatedLines[i]['@odata.type'] != null) {\n var className: string = odataObject.UpdatedLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpdatedLines[i] = new entityDictionary[className](odataObject.UpdatedLines[i])\n }\n } else {\n this.UpdatedLines[i] = new InventoryInboundOutboundDocumentLineClass(odataObject.UpdatedLines[i]);\n }\n } else {\n this.UpdatedLines[i] = undefined;\n }\n }\n }\n \n this.TotalLinesUpdated = \n odataObject.TotalLinesUpdated;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass'] = InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass;\n \n /**\n * WarehouseLocationSearchCriteria entity class.\n */\n export class WarehouseLocationSearchCriteriaClass implements Entities.WarehouseLocationSearchCriteria {\n public WarehouseIds: string[];\n public IsLocationProfileRequired: boolean;\n public SearchText: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarehouseIds = undefined;\n if (odataObject.WarehouseIds) {\n this.WarehouseIds = [];\n for (var i = 0; i < odataObject.WarehouseIds.length; i++) {\n if (odataObject.WarehouseIds[i] != null) {\n this.WarehouseIds[i] = \n odataObject.WarehouseIds[i];\n } else {\n this.WarehouseIds[i] = undefined;\n }\n }\n }\n \n this.IsLocationProfileRequired = \n odataObject.IsLocationProfileRequired;\n \n this.SearchText = \n odataObject.SearchText;\n \n }\n }\n entityDictionary['WarehouseLocationSearchCriteriaClass'] = WarehouseLocationSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLine entity class.\n */\n export class InventoryDocumentSerialNumberLineClass implements Entities.InventoryDocumentSerialNumberLine {\n public WorkDocumentId: string;\n public WorkDocumentLineId: string;\n public SourceLineId: string;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public ModifiedDateTime: Date;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public SourceLine: Entities.InventoryDocumentSourceSerialNumberLine;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.WorkDocumentLineId = \n odataObject.WorkDocumentLineId;\n \n this.SourceLineId = \n odataObject.SourceLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n if (odataObject.SourceLine == null) {\n this.SourceLine = undefined;\n } else if (odataObject.SourceLine['@odata.type'] == null) {\n this.SourceLine = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SourceLine);\n } else {\n var className: string = odataObject.SourceLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceLine = new entityDictionary[className](odataObject.SourceLine)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineClass'] = InventoryDocumentSerialNumberLineClass;\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity class.\n */\n export class InventoryDocumentValidationCategoryResultsSummaryClass implements Entities.InventoryDocumentValidationCategoryResultsSummary {\n public CategoryName: string;\n public SeverityValue: number;\n public TotalValidationResultCount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.TotalValidationResultCount = \n odataObject.TotalValidationResultCount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationCategoryResultsSummaryClass'] = InventoryDocumentValidationCategoryResultsSummaryClass;\n \n /**\n * InventoryDocumentValidationResultSummary entity class.\n */\n export class InventoryDocumentValidationResultSummaryClass implements Entities.InventoryDocumentValidationResultSummary {\n public DocumentId: string;\n public DocumentVersion: number;\n public CategorySummaries: Entities.InventoryDocumentValidationCategoryResultsSummary[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.CategorySummaries = undefined;\n if (odataObject.CategorySummaries) {\n this.CategorySummaries = [];\n for (var i = 0; i < odataObject.CategorySummaries.length; i++) {\n if (odataObject.CategorySummaries[i] != null) {\n if (odataObject.CategorySummaries[i]['@odata.type'] != null) {\n var className: string = odataObject.CategorySummaries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategorySummaries[i] = new entityDictionary[className](odataObject.CategorySummaries[i])\n }\n } else {\n this.CategorySummaries[i] = new InventoryDocumentValidationCategoryResultsSummaryClass(odataObject.CategorySummaries[i]);\n }\n } else {\n this.CategorySummaries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSummaryClass'] = InventoryDocumentValidationResultSummaryClass;\n \n /**\n * InventoryDocumentValidationResultLine entity class.\n */\n export class InventoryDocumentValidationResultLineClass implements Entities.InventoryDocumentValidationResultLine {\n public DocumentValidationResultLineId: string;\n public CategoryName: string;\n public SeverityValue: number;\n public ErrorCode: number;\n public ErrorMessage: string;\n public DocumentId: string;\n public DocumentLongVersion: number;\n public DocumentLineId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentValidationResultLineId = \n odataObject.DocumentValidationResultLineId;\n \n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentLongVersion = \n (odataObject.DocumentLongVersion != null) ? parseInt(odataObject.DocumentLongVersion, 10) : undefined;\n \n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultLineClass'] = InventoryDocumentValidationResultLineClass;\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity class.\n */\n export class InventoryDocumentValidationResultSearchCriteriaClass implements Entities.InventoryDocumentValidationResultSearchCriteria {\n public DocumentId: string;\n public DocumentVersion: number;\n public SeverityValue: number;\n public Categories: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.Categories = undefined;\n if (odataObject.Categories) {\n this.Categories = [];\n for (var i = 0; i < odataObject.Categories.length; i++) {\n if (odataObject.Categories[i] != null) {\n this.Categories[i] = \n odataObject.Categories[i];\n } else {\n this.Categories[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSearchCriteriaClass'] = InventoryDocumentValidationResultSearchCriteriaClass;\n \n /**\n * ProductDimensionValueInventoryAvailability entity class.\n */\n export class ProductDimensionValueInventoryAvailabilityClass implements Entities.ProductDimensionValueInventoryAvailability {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ProductIds: number[];\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n }\n }\n entityDictionary['ProductDimensionValueInventoryAvailabilityClass'] = ProductDimensionValueInventoryAvailabilityClass;\n \n /**\n * ProductDimension entity class.\n */\n export class ProductDimensionClass implements Entities.ProductDimension {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionClass'] = ProductDimensionClass;\n \n /**\n * ProductDimensionValue entity class.\n */\n export class ProductDimensionValueClass implements Entities.ProductDimensionValue {\n public RecordId: number;\n public Value: string;\n public DimensionId: string;\n public ColorHexCode: string;\n public ImageUrl: string;\n public RefinerGroup: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n odataObject.Value;\n \n this.DimensionId = \n odataObject.DimensionId;\n \n this.ColorHexCode = \n odataObject.ColorHexCode;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.RefinerGroup = \n odataObject.RefinerGroup;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionValueClass'] = ProductDimensionValueClass;\n \n /**\n * ProductDimensionCombination entity class.\n */\n export class ProductDimensionCombinationClass implements Entities.ProductDimensionCombination {\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionCombinationClass'] = ProductDimensionCombinationClass;\n \n /**\n * SearchRefiner entity class.\n */\n export class SearchRefinerClass implements Entities.SearchRefiner {\n public RecordId: number;\n public KeyName: string;\n public DataTypeValue: number;\n public RefinerTypeValue: number;\n public DisplayTemplateValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.RefinerTypeValue = \n odataObject.RefinerTypeValue;\n \n this.DisplayTemplateValue = \n odataObject.DisplayTemplateValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerClass'] = SearchRefinerClass;\n \n /**\n * SearchRefinerValue entity class.\n */\n export class SearchRefinerValueClass implements Entities.SearchRefinerValue {\n public RefinerRecordId: number;\n public DataTypeValue: number;\n public LeftValueBoundString: string;\n public RightValueBoundString: string;\n public UnitText: string;\n public RowNumber: number;\n public Count: number;\n public LeftValueBoundLocalizedString: string;\n public RightValueBoundLocalizedString: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinerRecordId = \n (odataObject.RefinerRecordId != null) ? parseInt(odataObject.RefinerRecordId, 10) : undefined;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.LeftValueBoundString = \n odataObject.LeftValueBoundString;\n \n this.RightValueBoundString = \n odataObject.RightValueBoundString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.RowNumber = \n odataObject.RowNumber;\n \n this.Count = \n odataObject.Count;\n \n this.LeftValueBoundLocalizedString = \n odataObject.LeftValueBoundLocalizedString;\n \n this.RightValueBoundLocalizedString = \n odataObject.RightValueBoundLocalizedString;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerValueClass'] = SearchRefinerValueClass;\n \n /**\n * ProductRefiner entity class.\n */\n export class ProductRefinerClass\n extends SearchRefinerClass\n implements Entities.ProductRefiner {\n public SourceValue: number;\n public Values: Entities.ProductRefinerValue[];\n public IsDimension: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ProductRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefiner\";\n \n }\n }\n entityDictionary['ProductRefinerClass'] = ProductRefinerClass;\n \n /**\n * ProductRefinerValue entity class.\n */\n export class ProductRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ProductRefinerValue {\n public RefinerSourceValue: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefinerValue\";\n \n }\n }\n entityDictionary['ProductRefinerValueClass'] = ProductRefinerValueClass;\n \n /**\n * ClientBookRefiner entity class.\n */\n export class ClientBookRefinerClass\n extends SearchRefinerClass\n implements Entities.ClientBookRefiner {\n public SourceValue: number;\n public Values: Entities.ClientBookRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ClientBookRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefiner\";\n \n }\n }\n entityDictionary['ClientBookRefinerClass'] = ClientBookRefinerClass;\n \n /**\n * ClientBookRefinerValue entity class.\n */\n export class ClientBookRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ClientBookRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefinerValue\";\n \n }\n }\n entityDictionary['ClientBookRefinerValueClass'] = ClientBookRefinerValueClass;\n \n /**\n * ProductRelationType entity class.\n */\n export class ProductRelationTypeClass implements Entities.ProductRelationType {\n public Name: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRelationTypeClass'] = ProductRelationTypeClass;\n \n /**\n * ComponentInSlotRelation entity class.\n */\n export class ComponentInSlotRelationClass implements Entities.ComponentInSlotRelation {\n public ComponentId: number;\n public SlotId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentId = \n (odataObject.ComponentId != null) ? parseInt(odataObject.ComponentId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentInSlotRelationClass'] = ComponentInSlotRelationClass;\n \n /**\n * ProductRules entity class.\n */\n export class ProductRulesClass implements Entities.ProductRules {\n public HasLinkedProducts: boolean;\n public IsSerialized: boolean;\n public IsActiveInSalesProcess: boolean;\n public IsBlocked: boolean;\n public DateOfBlocking: Date;\n public DateToActivate: Date;\n public DateToBlock: Date;\n public DefaultUnitOfMeasure: string;\n public PriceKeyingRequirementValue: number;\n public QuantityKeyingRequirementValue: number;\n public MustKeyInComment: boolean;\n public CanQuantityBecomeNegative: boolean;\n public MustScaleItem: boolean;\n public CanPriceBeZero: boolean;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n this.IsSerialized = \n odataObject.IsSerialized;\n \n this.IsActiveInSalesProcess = \n odataObject.IsActiveInSalesProcess;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.DateOfBlocking = \n (odataObject.DateOfBlocking instanceof Date) ? odataObject.DateOfBlocking\n : (odataObject.DateOfBlocking != null) ? jsonLightReadStringPropertyValue(odataObject.DateOfBlocking, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToActivate = \n (odataObject.DateToActivate instanceof Date) ? odataObject.DateToActivate\n : (odataObject.DateToActivate != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBlock = \n (odataObject.DateToBlock instanceof Date) ? odataObject.DateToBlock\n : (odataObject.DateToBlock != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBlock, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.PriceKeyingRequirementValue = \n odataObject.PriceKeyingRequirementValue;\n \n this.QuantityKeyingRequirementValue = \n odataObject.QuantityKeyingRequirementValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.CanQuantityBecomeNegative = \n odataObject.CanQuantityBecomeNegative;\n \n this.MustScaleItem = \n odataObject.MustScaleItem;\n \n this.CanPriceBeZero = \n odataObject.CanPriceBeZero;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRulesClass'] = ProductRulesClass;\n \n /**\n * LocalizedString entity class.\n */\n export class LocalizedStringClass implements Entities.LocalizedString {\n public RecordId: number;\n public LanguageId: string;\n public TextId: number;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedStringClass'] = LocalizedStringClass;\n \n /**\n * LoyaltyCard entity class.\n */\n export class LoyaltyCardClass implements Entities.LoyaltyCard {\n public CardNumber: string;\n public CardTenderTypeValue: number;\n public CustomerAccount: string;\n public LoyaltyGroups: Entities.LoyaltyGroup[];\n public RewardPoints: Entities.LoyaltyRewardPoint[];\n public LoyaltyEnrollmentDate: Date;\n public LoyaltyEnrollmentDateLocal: Date;\n public LoyaltyEnrollmentTime: number;\n public LoyaltyEnrollmentTimeLocal: number;\n public OmOperatingUnitId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardNumber = \n odataObject.CardNumber;\n \n this.CardTenderTypeValue = \n odataObject.CardTenderTypeValue;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.LoyaltyGroups = undefined;\n if (odataObject.LoyaltyGroups) {\n this.LoyaltyGroups = [];\n for (var i = 0; i < odataObject.LoyaltyGroups.length; i++) {\n if (odataObject.LoyaltyGroups[i] != null) {\n if (odataObject.LoyaltyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyGroups[i] = new entityDictionary[className](odataObject.LoyaltyGroups[i])\n }\n } else {\n this.LoyaltyGroups[i] = new LoyaltyGroupClass(odataObject.LoyaltyGroups[i]);\n }\n } else {\n this.LoyaltyGroups[i] = undefined;\n }\n }\n }\n \n this.RewardPoints = undefined;\n if (odataObject.RewardPoints) {\n this.RewardPoints = [];\n for (var i = 0; i < odataObject.RewardPoints.length; i++) {\n if (odataObject.RewardPoints[i] != null) {\n if (odataObject.RewardPoints[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPoints[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPoints[i] = new entityDictionary[className](odataObject.RewardPoints[i])\n }\n } else {\n this.RewardPoints[i] = new LoyaltyRewardPointClass(odataObject.RewardPoints[i]);\n }\n } else {\n this.RewardPoints[i] = undefined;\n }\n }\n }\n \n this.LoyaltyEnrollmentDate = \n (odataObject.LoyaltyEnrollmentDate instanceof Date) ? odataObject.LoyaltyEnrollmentDate\n : (odataObject.LoyaltyEnrollmentDate != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentDateLocal = \n (odataObject.LoyaltyEnrollmentDateLocal instanceof Date) ? odataObject.LoyaltyEnrollmentDateLocal\n : (odataObject.LoyaltyEnrollmentDateLocal != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDateLocal, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentTime = \n odataObject.LoyaltyEnrollmentTime;\n \n this.LoyaltyEnrollmentTimeLocal = \n odataObject.LoyaltyEnrollmentTimeLocal;\n \n this.OmOperatingUnitId = \n (odataObject.OmOperatingUnitId != null) ? parseInt(odataObject.OmOperatingUnitId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardClass'] = LoyaltyCardClass;\n \n /**\n * ProductComponent entity class.\n */\n export class ProductComponentClass implements Entities.ProductComponent {\n public ProductId: number;\n public SlotId: number;\n public Product: Entities.SimpleProduct;\n public AdditionalChargeForComponent: number;\n public Behavior: Entities.ProductBehavior;\n public Description: string;\n public Dimensions: Entities.ProductDimension[];\n public ItemId: string;\n public Name: string;\n public ProductTypeValue: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n this.AdditionalChargeForComponent = \n (odataObject.AdditionalChargeForComponent != null) ? parseFloat(odataObject.AdditionalChargeForComponent) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Description = \n odataObject.Description;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComponentClass'] = ProductComponentClass;\n \n /**\n * SimpleProduct entity class.\n */\n export class SimpleProductClass implements Entities.SimpleProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public MasterProductId: number;\n public Components: Entities.ProductComponent[];\n public IsGiftCard: boolean;\n public ProductNumber: string;\n public Dimensions: Entities.ProductDimension[];\n public Behavior: Entities.ProductBehavior;\n public LinkedProducts: Entities.SimpleLinkedProduct[];\n public PrimaryImageUrl: string;\n public ItemTypeValue: number;\n public ItemServiceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.Components = undefined;\n if (odataObject.Components) {\n this.Components = [];\n for (var i = 0; i < odataObject.Components.length; i++) {\n if (odataObject.Components[i] != null) {\n if (odataObject.Components[i]['@odata.type'] != null) {\n var className: string = odataObject.Components[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Components[i] = new entityDictionary[className](odataObject.Components[i])\n }\n } else {\n this.Components[i] = new ProductComponentClass(odataObject.Components[i]);\n }\n } else {\n this.Components[i] = undefined;\n }\n }\n }\n \n this.IsGiftCard = \n odataObject.IsGiftCard;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new SimpleLinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.ItemTypeValue = \n odataObject.ItemTypeValue;\n \n this.ItemServiceTypeValue = \n odataObject.ItemServiceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleProductClass'] = SimpleProductClass;\n \n /**\n * ProductBehavior entity class.\n */\n export class ProductBehaviorClass implements Entities.ProductBehavior {\n public HasSerialNumber: boolean;\n public IsDiscountAllowed: boolean;\n public IsManualDiscountAllowed: boolean;\n public IsKitDisassemblyAllowed: boolean;\n public IsNegativeQuantityAllowed: boolean;\n public IsReturnAllowed: boolean;\n public IsSaleAtPhysicalStoresAllowed: boolean;\n public IsZeroSalePriceAllowed: boolean;\n public KeyInPriceValue: number;\n public KeyInQuantityValue: number;\n public MustKeyInComment: boolean;\n public MustPrintIndividualShelfLabelsForVariants: boolean;\n public MustPromptForSerialNumberOnlyAtSale: boolean;\n public MustWeighProductAtSale: boolean;\n public ValidFromDateForSaleAtPhysicalStores: Date;\n public ValidToDateForSaleAtPhysicalStores: Date;\n public IsStorageDimensionGroupLocationActive: boolean;\n public IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n public AllowNegativePhysicalInventory: boolean;\n public IsStockedProduct: boolean;\n public IsBlankSerialNumberAllowed: boolean;\n public IsBlankSerialNumberReceiptAllowed: boolean;\n public IsSerialNumberControlEnabled: boolean;\n public IsStorageDimensionGroupLocationBlankIssueAllowed: boolean;\n public IsSerialNumberRequired: boolean;\n public DefaultQuantity: number;\n public MaximumQuantity: number;\n public MinimumQuantity: number;\n public MultipleOfQuantity: number;\n public InventoryLocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsDiscountAllowed = \n odataObject.IsDiscountAllowed;\n \n this.IsManualDiscountAllowed = \n odataObject.IsManualDiscountAllowed;\n \n this.IsKitDisassemblyAllowed = \n odataObject.IsKitDisassemblyAllowed;\n \n this.IsNegativeQuantityAllowed = \n odataObject.IsNegativeQuantityAllowed;\n \n this.IsReturnAllowed = \n odataObject.IsReturnAllowed;\n \n this.IsSaleAtPhysicalStoresAllowed = \n odataObject.IsSaleAtPhysicalStoresAllowed;\n \n this.IsZeroSalePriceAllowed = \n odataObject.IsZeroSalePriceAllowed;\n \n this.KeyInPriceValue = \n odataObject.KeyInPriceValue;\n \n this.KeyInQuantityValue = \n odataObject.KeyInQuantityValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.MustPrintIndividualShelfLabelsForVariants = \n odataObject.MustPrintIndividualShelfLabelsForVariants;\n \n this.MustPromptForSerialNumberOnlyAtSale = \n odataObject.MustPromptForSerialNumberOnlyAtSale;\n \n this.MustWeighProductAtSale = \n odataObject.MustWeighProductAtSale;\n \n this.ValidFromDateForSaleAtPhysicalStores = \n (odataObject.ValidFromDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidFromDateForSaleAtPhysicalStores\n : (odataObject.ValidFromDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDateForSaleAtPhysicalStores = \n (odataObject.ValidToDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidToDateForSaleAtPhysicalStores\n : (odataObject.ValidToDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsStorageDimensionGroupLocationActive = \n odataObject.IsStorageDimensionGroupLocationActive;\n \n this.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled = \n odataObject.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled;\n \n this.AllowNegativePhysicalInventory = \n odataObject.AllowNegativePhysicalInventory;\n \n this.IsStockedProduct = \n odataObject.IsStockedProduct;\n \n this.IsBlankSerialNumberAllowed = \n odataObject.IsBlankSerialNumberAllowed;\n \n this.IsBlankSerialNumberReceiptAllowed = \n odataObject.IsBlankSerialNumberReceiptAllowed;\n \n this.IsSerialNumberControlEnabled = \n odataObject.IsSerialNumberControlEnabled;\n \n this.IsStorageDimensionGroupLocationBlankIssueAllowed = \n odataObject.IsStorageDimensionGroupLocationBlankIssueAllowed;\n \n this.IsSerialNumberRequired = \n odataObject.IsSerialNumberRequired;\n \n this.DefaultQuantity = \n (odataObject.DefaultQuantity != null) ? parseFloat(odataObject.DefaultQuantity) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumQuantity = \n (odataObject.MinimumQuantity != null) ? parseFloat(odataObject.MinimumQuantity) : undefined;\n \n this.MultipleOfQuantity = \n (odataObject.MultipleOfQuantity != null) ? parseFloat(odataObject.MultipleOfQuantity) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductBehaviorClass'] = ProductBehaviorClass;\n \n /**\n * SimpleLinkedProduct entity class.\n */\n export class SimpleLinkedProductClass implements Entities.SimpleLinkedProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public Quantity: number;\n public Behavior: Entities.ProductBehavior;\n public Dimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleLinkedProductClass'] = SimpleLinkedProductClass;\n \n /**\n * ProductSearchResult entity class.\n */\n export class ProductSearchResultClass implements Entities.ProductSearchResult {\n public ItemId: string;\n public Name: string;\n public Price: number;\n public PrimaryImageUrl: string;\n public RecordId: number;\n public ProductNumber: string;\n public TrackingId: string;\n public AverageRating: number;\n public TotalRatings: number;\n public Description: string;\n public BasePrice: number;\n public MinVariantPrice: number;\n public MaxVariantPrice: number;\n public DisplayOrder: number;\n public AttributeValues: Entities.AttributeValue[];\n public IsMasterProduct: boolean;\n public MasterProductId: number;\n public DefaultUnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.Description = \n odataObject.Description;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductSearchResultClass'] = ProductSearchResultClass;\n \n /**\n * SearchSuggestion entity class.\n */\n export class SearchSuggestionClass implements Entities.SearchSuggestion {\n public Value: string;\n public Value2: Entities.CommerceProperty;\n public Value3: Entities.CommerceProperty;\n public Value4: Entities.CommerceProperty;\n public SuggestionType: string;\n public Id: string;\n public ImageUrl: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n if (odataObject.Value2 == null) {\n this.Value2 = undefined;\n } else if (odataObject.Value2['@odata.type'] == null) {\n this.Value2 = new CommercePropertyClass(odataObject.Value2);\n } else {\n var className: string = odataObject.Value2['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value2 = new entityDictionary[className](odataObject.Value2)\n }\n }\n\n \n if (odataObject.Value3 == null) {\n this.Value3 = undefined;\n } else if (odataObject.Value3['@odata.type'] == null) {\n this.Value3 = new CommercePropertyClass(odataObject.Value3);\n } else {\n var className: string = odataObject.Value3['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value3 = new entityDictionary[className](odataObject.Value3)\n }\n }\n\n \n if (odataObject.Value4 == null) {\n this.Value4 = undefined;\n } else if (odataObject.Value4['@odata.type'] == null) {\n this.Value4 = new CommercePropertyClass(odataObject.Value4);\n } else {\n var className: string = odataObject.Value4['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value4 = new entityDictionary[className](odataObject.Value4)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.Id = \n odataObject.Id;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchSuggestionClass'] = SearchSuggestionClass;\n \n /**\n * LoyaltyPointRedemptionEstimate entity class.\n */\n export class LoyaltyPointRedemptionEstimateClass implements Entities.LoyaltyPointRedemptionEstimate {\n public MaxCurrencyValueOfLoyaltyPoints: number;\n public RewardPointToRedeemList: Entities.LoyaltyRewardPointLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MaxCurrencyValueOfLoyaltyPoints = \n (odataObject.MaxCurrencyValueOfLoyaltyPoints != null) ? parseFloat(odataObject.MaxCurrencyValueOfLoyaltyPoints) : undefined;\n \n this.RewardPointToRedeemList = undefined;\n if (odataObject.RewardPointToRedeemList) {\n this.RewardPointToRedeemList = [];\n for (var i = 0; i < odataObject.RewardPointToRedeemList.length; i++) {\n if (odataObject.RewardPointToRedeemList[i] != null) {\n if (odataObject.RewardPointToRedeemList[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPointToRedeemList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPointToRedeemList[i] = new entityDictionary[className](odataObject.RewardPointToRedeemList[i])\n }\n } else {\n this.RewardPointToRedeemList[i] = new LoyaltyRewardPointLineClass(odataObject.RewardPointToRedeemList[i]);\n }\n } else {\n this.RewardPointToRedeemList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyPointRedemptionEstimateClass'] = LoyaltyPointRedemptionEstimateClass;\n \n /**\n * LoyaltyGroup entity class.\n */\n export class LoyaltyGroupClass implements Entities.LoyaltyGroup {\n public Description: string;\n public Name: string;\n public RecordId: number;\n public LoyaltyTiers: Entities.LoyaltyTier[];\n public LoyaltyCardTiers: Entities.LoyaltyCardTier[];\n public HighestActiveLoyaltyCardTier: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LoyaltyTiers = undefined;\n if (odataObject.LoyaltyTiers) {\n this.LoyaltyTiers = [];\n for (var i = 0; i < odataObject.LoyaltyTiers.length; i++) {\n if (odataObject.LoyaltyTiers[i] != null) {\n if (odataObject.LoyaltyTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyTiers[i] = new entityDictionary[className](odataObject.LoyaltyTiers[i])\n }\n } else {\n this.LoyaltyTiers[i] = new LoyaltyTierClass(odataObject.LoyaltyTiers[i]);\n }\n } else {\n this.LoyaltyTiers[i] = undefined;\n }\n }\n }\n \n this.LoyaltyCardTiers = undefined;\n if (odataObject.LoyaltyCardTiers) {\n this.LoyaltyCardTiers = [];\n for (var i = 0; i < odataObject.LoyaltyCardTiers.length; i++) {\n if (odataObject.LoyaltyCardTiers[i] != null) {\n if (odataObject.LoyaltyCardTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyCardTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCardTiers[i] = new entityDictionary[className](odataObject.LoyaltyCardTiers[i])\n }\n } else {\n this.LoyaltyCardTiers[i] = new LoyaltyCardTierClass(odataObject.LoyaltyCardTiers[i]);\n }\n } else {\n this.LoyaltyCardTiers[i] = undefined;\n }\n }\n }\n \n this.HighestActiveLoyaltyCardTier = \n (odataObject.HighestActiveLoyaltyCardTier != null) ? parseInt(odataObject.HighestActiveLoyaltyCardTier, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyGroupClass'] = LoyaltyGroupClass;\n \n /**\n * LoyaltyTier entity class.\n */\n export class LoyaltyTierClass implements Entities.LoyaltyTier {\n public Description: string;\n public RecordId: number;\n public TierId: string;\n public TierLevel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.TierLevel = \n (odataObject.TierLevel != null) ? parseFloat(odataObject.TierLevel) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyTierClass'] = LoyaltyTierClass;\n \n /**\n * LoyaltyCardTier entity class.\n */\n export class LoyaltyCardTierClass implements Entities.LoyaltyCardTier {\n public RecordId: number;\n public TierId: string;\n public LoyaltyTierRecordId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardTierClass'] = LoyaltyCardTierClass;\n \n /**\n * LoyaltyRewardPoint entity class.\n */\n export class LoyaltyRewardPointClass implements Entities.LoyaltyRewardPoint {\n public IsRedeemable: boolean;\n public RewardPointCurrency: string;\n public RewardPointTypeValue: number;\n public Description: string;\n public RewardPointId: string;\n public IssuedPoints: number;\n public UsedPoints: number;\n public ExpiredPoints: number;\n public ActivePoints: number;\n public PointsExpiringSoon: number;\n public UnvestedPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsRedeemable = \n odataObject.IsRedeemable;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.RewardPointTypeValue = \n odataObject.RewardPointTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.IssuedPoints = \n (odataObject.IssuedPoints != null) ? parseFloat(odataObject.IssuedPoints) : undefined;\n \n this.UsedPoints = \n (odataObject.UsedPoints != null) ? parseFloat(odataObject.UsedPoints) : undefined;\n \n this.ExpiredPoints = \n (odataObject.ExpiredPoints != null) ? parseFloat(odataObject.ExpiredPoints) : undefined;\n \n this.ActivePoints = \n (odataObject.ActivePoints != null) ? parseFloat(odataObject.ActivePoints) : undefined;\n \n this.PointsExpiringSoon = \n (odataObject.PointsExpiringSoon != null) ? parseFloat(odataObject.PointsExpiringSoon) : undefined;\n \n this.UnvestedPoints = \n (odataObject.UnvestedPoints != null) ? parseFloat(odataObject.UnvestedPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointClass'] = LoyaltyRewardPointClass;\n \n /**\n * LoyaltyCardTransaction entity class.\n */\n export class LoyaltyCardTransactionClass implements Entities.LoyaltyCardTransaction {\n public ChannelName: string;\n public EntryDateTime: Date;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public RewardPointAmountQuantity: number;\n public TransactionId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelName = \n odataObject.ChannelName;\n \n this.EntryDateTime = \n (odataObject.EntryDateTime instanceof Date) ? odataObject.EntryDateTime\n : (odataObject.EntryDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n }\n }\n entityDictionary['LoyaltyCardTransactionClass'] = LoyaltyCardTransactionClass;\n \n /**\n * GiftCard entity class.\n */\n export class GiftCardClass implements Entities.GiftCard {\n public Id: string;\n public Balance: number;\n public BalanceCurrencyCode: string;\n public BalanceInCardCurrency: number;\n public CardCurrencyCode: string;\n public GiftCardIssueAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.BalanceCurrencyCode = \n odataObject.BalanceCurrencyCode;\n \n this.BalanceInCardCurrency = \n (odataObject.BalanceInCardCurrency != null) ? parseFloat(odataObject.BalanceInCardCurrency) : undefined;\n \n this.CardCurrencyCode = \n odataObject.CardCurrencyCode;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GiftCardClass'] = GiftCardClass;\n \n /**\n * OperationPermission entity class.\n */\n export class OperationPermissionClass implements Entities.OperationPermission {\n public OperationName: string;\n public OperationId: number;\n public CheckUserAccess: boolean;\n public AllowAnonymousAccess: boolean;\n public AllowCustomerAccess: boolean;\n public AllowApplicationAccess: boolean;\n public IsEnabledForTaskManagement: boolean;\n public Permissions: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OperationName = \n odataObject.OperationName;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.CheckUserAccess = \n odataObject.CheckUserAccess;\n \n this.AllowAnonymousAccess = \n odataObject.AllowAnonymousAccess;\n \n this.AllowCustomerAccess = \n odataObject.AllowCustomerAccess;\n \n this.AllowApplicationAccess = \n odataObject.AllowApplicationAccess;\n \n this.IsEnabledForTaskManagement = \n odataObject.IsEnabledForTaskManagement;\n \n this.Permissions = undefined;\n if (odataObject.Permissions) {\n this.Permissions = [];\n for (var i = 0; i < odataObject.Permissions.length; i++) {\n if (odataObject.Permissions[i] != null) {\n this.Permissions[i] = \n odataObject.Permissions[i];\n } else {\n this.Permissions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationPermissionClass'] = OperationPermissionClass;\n \n /**\n * StateProvinceInfo entity class.\n */\n export class StateProvinceInfoClass implements Entities.StateProvinceInfo {\n public CountryRegionId: string;\n public StateId: string;\n public StateName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.StateName = \n odataObject.StateName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StateProvinceInfoClass'] = StateProvinceInfoClass;\n \n /**\n * TransactionLog entity class.\n */\n export class TransactionLogClass\n extends TransactionClass\n implements Entities.TransactionLog {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TransactionLog\";\n \n }\n }\n entityDictionary['TransactionLogClass'] = TransactionLogClass;\n \n /**\n * KitTransaction entity class.\n */\n export class KitTransactionClass\n extends TransactionLogClass\n implements Entities.KitTransaction {\n public KitTransactionLines: Entities.KitTransactionLine[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.KitTransactionLines = undefined;\n if (odataObject.KitTransactionLines) {\n this.KitTransactionLines = [];\n for (var i = 0; i < odataObject.KitTransactionLines.length; i++) {\n if (odataObject.KitTransactionLines[i] != null) {\n if (odataObject.KitTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.KitTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitTransactionLines[i] = new entityDictionary[className](odataObject.KitTransactionLines[i])\n }\n } else {\n this.KitTransactionLines[i] = new KitTransactionLineClass(odataObject.KitTransactionLines[i]);\n }\n } else {\n this.KitTransactionLines[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.KitTransaction\";\n \n }\n }\n entityDictionary['KitTransactionClass'] = KitTransactionClass;\n \n /**\n * SalesTaxGroup entity class.\n */\n export class SalesTaxGroupClass implements Entities.SalesTaxGroup {\n public RecordId: number;\n public TaxGroup: string;\n public TaxGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.TaxGroupName = \n odataObject.TaxGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesTaxGroupClass'] = SalesTaxGroupClass;\n \n /**\n * ProductProperty entity class.\n */\n export class ProductPropertyClass implements Entities.ProductProperty {\n public ValueString: string;\n public UnitText: string;\n public PropertyTypeValue: number;\n public KeyName: string;\n public FriendlyName: string;\n public RecordId: number;\n public IsDimensionProperty: boolean;\n public AttributeValueId: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public GroupId: number;\n public GroupTypeValue: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public ProductId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValueString = \n odataObject.ValueString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.PropertyTypeValue = \n odataObject.PropertyTypeValue;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsDimensionProperty = \n odataObject.IsDimensionProperty;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupTypeValue = \n odataObject.GroupTypeValue;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductPropertyClass'] = ProductPropertyClass;\n \n /**\n * ProductCompositionInformation entity class.\n */\n export class ProductCompositionInformationClass implements Entities.ProductCompositionInformation {\n public VariantInformation: Entities.ProductVariantInformation;\n public KitDefinition: Entities.KitDefinition;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.VariantInformation == null) {\n this.VariantInformation = undefined;\n } else if (odataObject.VariantInformation['@odata.type'] == null) {\n this.VariantInformation = new ProductVariantInformationClass(odataObject.VariantInformation);\n } else {\n var className: string = odataObject.VariantInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.VariantInformation = new entityDictionary[className](odataObject.VariantInformation)\n }\n }\n\n \n if (odataObject.KitDefinition == null) {\n this.KitDefinition = undefined;\n } else if (odataObject.KitDefinition['@odata.type'] == null) {\n this.KitDefinition = new KitDefinitionClass(odataObject.KitDefinition);\n } else {\n var className: string = odataObject.KitDefinition['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitDefinition = new entityDictionary[className](odataObject.KitDefinition)\n }\n }\n\n \n }\n }\n entityDictionary['ProductCompositionInformationClass'] = ProductCompositionInformationClass;\n \n /**\n * ProductVariantInformation entity class.\n */\n export class ProductVariantInformationClass implements Entities.ProductVariantInformation {\n public ActiveVariantProductId: number;\n public Variants: Entities.ProductVariant[];\n public Dimensions: Entities.ProductDimensionSet[];\n public ItemId: string;\n public MasterProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActiveVariantProductId = \n (odataObject.ActiveVariantProductId != null) ? parseInt(odataObject.ActiveVariantProductId, 10) : undefined;\n \n this.Variants = undefined;\n if (odataObject.Variants) {\n this.Variants = [];\n for (var i = 0; i < odataObject.Variants.length; i++) {\n if (odataObject.Variants[i] != null) {\n if (odataObject.Variants[i]['@odata.type'] != null) {\n var className: string = odataObject.Variants[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Variants[i] = new entityDictionary[className](odataObject.Variants[i])\n }\n } else {\n this.Variants[i] = new ProductVariantClass(odataObject.Variants[i]);\n }\n } else {\n this.Variants[i] = undefined;\n }\n }\n }\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionSetClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductVariantInformationClass'] = ProductVariantInformationClass;\n \n /**\n * ProductChangeTrackingInformation entity class.\n */\n export class ProductChangeTrackingInformationClass implements Entities.ProductChangeTrackingInformation {\n public ModifiedDateTime: Date;\n public ChangeActionValue: number;\n public RequestedActionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChangeActionValue = \n odataObject.ChangeActionValue;\n \n this.RequestedActionValue = \n odataObject.RequestedActionValue;\n \n }\n }\n entityDictionary['ProductChangeTrackingInformationClass'] = ProductChangeTrackingInformationClass;\n \n /**\n * ProductDimensionSet entity class.\n */\n export class ProductDimensionSetClass implements Entities.ProductDimensionSet {\n public DimensionKey: string;\n public DimensionValues: Entities.ProductDimensionValueSet[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionKey = \n odataObject.DimensionKey;\n \n this.DimensionValues = undefined;\n if (odataObject.DimensionValues) {\n this.DimensionValues = [];\n for (var i = 0; i < odataObject.DimensionValues.length; i++) {\n if (odataObject.DimensionValues[i] != null) {\n if (odataObject.DimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.DimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValues[i] = new entityDictionary[className](odataObject.DimensionValues[i])\n }\n } else {\n this.DimensionValues[i] = new ProductDimensionValueSetClass(odataObject.DimensionValues[i]);\n }\n } else {\n this.DimensionValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionSetClass'] = ProductDimensionSetClass;\n \n /**\n * ProductDimensionValueSet entity class.\n */\n export class ProductDimensionValueSetClass implements Entities.ProductDimensionValueSet {\n public DimensionId: string;\n public DimensionValue: string;\n public VariantSet: number[];\n public Language: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public SwatchRefinerGroupValue: string;\n public SwatchRefinerGroupTranslation: string;\n public SwatchRefinerGroupImageUrl: string;\n public SwatchRefinerGroupColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionId = \n odataObject.DimensionId;\n \n this.DimensionValue = \n odataObject.DimensionValue;\n \n this.VariantSet = undefined;\n if (odataObject.VariantSet) {\n this.VariantSet = [];\n for (var i = 0; i < odataObject.VariantSet.length; i++) {\n if (odataObject.VariantSet[i] != null) {\n this.VariantSet[i] = \n parseInt(odataObject.VariantSet[i], 10);\n } else {\n this.VariantSet[i] = undefined;\n }\n }\n }\n \n this.Language = \n odataObject.Language;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.SwatchRefinerGroupValue = \n odataObject.SwatchRefinerGroupValue;\n \n this.SwatchRefinerGroupTranslation = \n odataObject.SwatchRefinerGroupTranslation;\n \n this.SwatchRefinerGroupImageUrl = \n odataObject.SwatchRefinerGroupImageUrl;\n \n this.SwatchRefinerGroupColorHexCode = \n odataObject.SwatchRefinerGroupColorHexCode;\n \n }\n }\n entityDictionary['ProductDimensionValueSetClass'] = ProductDimensionValueSetClass;\n \n /**\n * RichMediaLocations entity class.\n */\n export class RichMediaLocationsClass implements Entities.RichMediaLocations {\n public Items: Entities.RichMediaLocationsRichMediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Items = undefined;\n if (odataObject.Items) {\n this.Items = [];\n for (var i = 0; i < odataObject.Items.length; i++) {\n if (odataObject.Items[i] != null) {\n if (odataObject.Items[i]['@odata.type'] != null) {\n var className: string = odataObject.Items[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Items[i] = new entityDictionary[className](odataObject.Items[i])\n }\n } else {\n this.Items[i] = new RichMediaLocationsRichMediaLocationClass(odataObject.Items[i]);\n }\n } else {\n this.Items[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RichMediaLocationsClass'] = RichMediaLocationsClass;\n \n /**\n * RichMediaLocationsRichMediaLocation entity class.\n */\n export class RichMediaLocationsRichMediaLocationClass implements Entities.RichMediaLocationsRichMediaLocation {\n public Url: string;\n public AltText: string;\n public IsSelfHosted: boolean;\n public IsDefault: boolean;\n public Priority: 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.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 this.Priority = \n odataObject.Priority;\n \n }\n }\n entityDictionary['RichMediaLocationsRichMediaLocationClass'] = RichMediaLocationsRichMediaLocationClass;\n \n /**\n * KitDefinition entity class.\n */\n export class KitDefinitionClass implements Entities.KitDefinition {\n public DisassembleAtRegister: boolean;\n public KitLineDefinitions: Entities.KitLineDefinition[];\n public KitLineProductToVariantMap: Entities.ComponentKitVariantSet[];\n public KitVariantToComponentMap: Entities.KitVariantContent[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DisassembleAtRegister = \n odataObject.DisassembleAtRegister;\n \n this.KitLineDefinitions = undefined;\n if (odataObject.KitLineDefinitions) {\n this.KitLineDefinitions = [];\n for (var i = 0; i < odataObject.KitLineDefinitions.length; i++) {\n if (odataObject.KitLineDefinitions[i] != null) {\n if (odataObject.KitLineDefinitions[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineDefinitions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineDefinitions[i] = new entityDictionary[className](odataObject.KitLineDefinitions[i])\n }\n } else {\n this.KitLineDefinitions[i] = new KitLineDefinitionClass(odataObject.KitLineDefinitions[i]);\n }\n } else {\n this.KitLineDefinitions[i] = undefined;\n }\n }\n }\n \n this.KitLineProductToVariantMap = undefined;\n if (odataObject.KitLineProductToVariantMap) {\n this.KitLineProductToVariantMap = [];\n for (var i = 0; i < odataObject.KitLineProductToVariantMap.length; i++) {\n if (odataObject.KitLineProductToVariantMap[i] != null) {\n if (odataObject.KitLineProductToVariantMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineProductToVariantMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineProductToVariantMap[i] = new entityDictionary[className](odataObject.KitLineProductToVariantMap[i])\n }\n } else {\n this.KitLineProductToVariantMap[i] = new ComponentKitVariantSetClass(odataObject.KitLineProductToVariantMap[i]);\n }\n } else {\n this.KitLineProductToVariantMap[i] = undefined;\n }\n }\n }\n \n this.KitVariantToComponentMap = undefined;\n if (odataObject.KitVariantToComponentMap) {\n this.KitVariantToComponentMap = [];\n for (var i = 0; i < odataObject.KitVariantToComponentMap.length; i++) {\n if (odataObject.KitVariantToComponentMap[i] != null) {\n if (odataObject.KitVariantToComponentMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitVariantToComponentMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitVariantToComponentMap[i] = new entityDictionary[className](odataObject.KitVariantToComponentMap[i])\n }\n } else {\n this.KitVariantToComponentMap[i] = new KitVariantContentClass(odataObject.KitVariantToComponentMap[i]);\n }\n } else {\n this.KitVariantToComponentMap[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitDefinitionClass'] = KitDefinitionClass;\n \n /**\n * ComponentKitVariantSet entity class.\n */\n export class ComponentKitVariantSetClass implements Entities.ComponentKitVariantSet {\n public KitLineProductId: number;\n public KitVariantIdList: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineProductId = \n (odataObject.KitLineProductId != null) ? parseInt(odataObject.KitLineProductId, 10) : undefined;\n \n this.KitVariantIdList = undefined;\n if (odataObject.KitVariantIdList) {\n this.KitVariantIdList = [];\n for (var i = 0; i < odataObject.KitVariantIdList.length; i++) {\n if (odataObject.KitVariantIdList[i] != null) {\n this.KitVariantIdList[i] = \n parseInt(odataObject.KitVariantIdList[i], 10);\n } else {\n this.KitVariantIdList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentKitVariantSetClass'] = ComponentKitVariantSetClass;\n \n /**\n * KitLineDefinition entity class.\n */\n export class KitLineDefinitionClass implements Entities.KitLineDefinition {\n public ComponentProductId: number;\n public KitLineIdentifier: number;\n public SubstituteProductIds: number[];\n public ComponentProperties: Entities.KitLineProductProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentProductId = \n (odataObject.ComponentProductId != null) ? parseInt(odataObject.ComponentProductId, 10) : undefined;\n \n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.SubstituteProductIds = undefined;\n if (odataObject.SubstituteProductIds) {\n this.SubstituteProductIds = [];\n for (var i = 0; i < odataObject.SubstituteProductIds.length; i++) {\n if (odataObject.SubstituteProductIds[i] != null) {\n this.SubstituteProductIds[i] = \n parseInt(odataObject.SubstituteProductIds[i], 10);\n } else {\n this.SubstituteProductIds[i] = undefined;\n }\n }\n }\n \n this.ComponentProperties = undefined;\n if (odataObject.ComponentProperties) {\n this.ComponentProperties = [];\n for (var i = 0; i < odataObject.ComponentProperties.length; i++) {\n if (odataObject.ComponentProperties[i] != null) {\n if (odataObject.ComponentProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ComponentProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ComponentProperties[i] = new entityDictionary[className](odataObject.ComponentProperties[i])\n }\n } else {\n this.ComponentProperties[i] = new KitLineProductPropertyClass(odataObject.ComponentProperties[i]);\n }\n } else {\n this.ComponentProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineDefinitionClass'] = KitLineDefinitionClass;\n \n /**\n * KitLineProductProperty entity class.\n */\n export class KitLineProductPropertyClass implements Entities.KitLineProductProperty {\n public KitLineIdentifier: number;\n public ProductId: number;\n public Unit: string;\n public Quantity: number;\n public Charge: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Charge = \n (odataObject.Charge != null) ? parseFloat(odataObject.Charge) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineProductPropertyClass'] = KitLineProductPropertyClass;\n \n /**\n * KitComponentKey entity class.\n */\n export class KitComponentKeyClass implements Entities.KitComponentKey {\n public KitLineIdentifier: number;\n public DistinctProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.DistinctProductId = \n (odataObject.DistinctProductId != null) ? parseInt(odataObject.DistinctProductId, 10) : undefined;\n \n }\n }\n entityDictionary['KitComponentKeyClass'] = KitComponentKeyClass;\n \n /**\n * KitVariantContent entity class.\n */\n export class KitVariantContentClass implements Entities.KitVariantContent {\n public KitVariantId: number;\n public KitComponentKeyList: Entities.KitComponentKey[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitVariantId = \n (odataObject.KitVariantId != null) ? parseInt(odataObject.KitVariantId, 10) : undefined;\n \n this.KitComponentKeyList = undefined;\n if (odataObject.KitComponentKeyList) {\n this.KitComponentKeyList = [];\n for (var i = 0; i < odataObject.KitComponentKeyList.length; i++) {\n if (odataObject.KitComponentKeyList[i] != null) {\n if (odataObject.KitComponentKeyList[i]['@odata.type'] != null) {\n var className: string = odataObject.KitComponentKeyList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitComponentKeyList[i] = new entityDictionary[className](odataObject.KitComponentKeyList[i])\n }\n } else {\n this.KitComponentKeyList[i] = new KitComponentKeyClass(odataObject.KitComponentKeyList[i]);\n }\n } else {\n this.KitComponentKeyList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitVariantContentClass'] = KitVariantContentClass;\n \n /**\n * ProductLookupClause entity class.\n */\n export class ProductLookupClauseClass implements Entities.ProductLookupClause {\n public ItemId: string;\n public InventDimensionId: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductLookupClauseClass'] = ProductLookupClauseClass;\n \n /**\n * ProductAssortmentInterval entity class.\n */\n export class ProductAssortmentIntervalClass implements Entities.ProductAssortmentInterval {\n public ProductId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAssortmentIntervalClass'] = ProductAssortmentIntervalClass;\n \n /**\n * OrgUnitLocation entity class.\n */\n export class OrgUnitLocationClass implements Entities.OrgUnitLocation {\n public Contacts: Entities.OrgUnitContact[];\n public ChannelId: number;\n public Latitude: number;\n public Longitude: number;\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n public Address: string;\n public Street: string;\n public StreetNumber: string;\n public City: string;\n public DistrictName: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public Zip: string;\n public County: string;\n public CountyName: string;\n public State: string;\n public StateName: string;\n public Country: string;\n public Distance: number;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public IsPickupLocation: boolean;\n public IsShippingLocation: boolean;\n public PostalAddressId: number;\n public OpenFrom: number;\n public OpenTo: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.Address = \n odataObject.Address;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.Zip = \n odataObject.Zip;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.Country = \n odataObject.Country;\n \n this.Distance = \n (odataObject.Distance != null) ? parseFloat(odataObject.Distance) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.IsPickupLocation = \n odataObject.IsPickupLocation;\n \n this.IsShippingLocation = \n odataObject.IsShippingLocation;\n \n this.PostalAddressId = \n (odataObject.PostalAddressId != null) ? parseInt(odataObject.PostalAddressId, 10) : undefined;\n \n this.OpenFrom = \n odataObject.OpenFrom;\n \n this.OpenTo = \n odataObject.OpenTo;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitLocationClass'] = OrgUnitLocationClass;\n \n /**\n * OrgUnitContact entity class.\n */\n export class OrgUnitContactClass implements Entities.OrgUnitContact {\n public ChannelId: number;\n public Locator: string;\n public LocatorExtension: string;\n public ContactTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Locator = \n odataObject.Locator;\n \n this.LocatorExtension = \n odataObject.LocatorExtension;\n \n this.ContactTypeValue = \n odataObject.ContactTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitContactClass'] = OrgUnitContactClass;\n \n /**\n * SalesLineDeliveryOption entity class.\n */\n export class SalesLineDeliveryOptionClass implements Entities.SalesLineDeliveryOption {\n public SalesLineId: string;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineId = \n odataObject.SalesLineId;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineDeliveryOptionClass'] = SalesLineDeliveryOptionClass;\n \n /**\n * DeliveryOption entity class.\n */\n export class DeliveryOptionClass implements Entities.DeliveryOption {\n public ChargeGroup: string;\n public Code: string;\n public Description: string;\n public RecordId: number;\n public DeliveryChargeLines: Entities.DeliveryChargeLine[];\n public TotalChargeAmount: number;\n public ShippingChargeAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.Code = \n odataObject.Code;\n \n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeliveryChargeLines = undefined;\n if (odataObject.DeliveryChargeLines) {\n this.DeliveryChargeLines = [];\n for (var i = 0; i < odataObject.DeliveryChargeLines.length; i++) {\n if (odataObject.DeliveryChargeLines[i] != null) {\n if (odataObject.DeliveryChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryChargeLines[i] = new entityDictionary[className](odataObject.DeliveryChargeLines[i])\n }\n } else {\n this.DeliveryChargeLines[i] = new DeliveryChargeLineClass(odataObject.DeliveryChargeLines[i]);\n }\n } else {\n this.DeliveryChargeLines[i] = undefined;\n }\n }\n }\n \n this.TotalChargeAmount = \n (odataObject.TotalChargeAmount != null) ? parseFloat(odataObject.TotalChargeAmount) : undefined;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryOptionClass'] = DeliveryOptionClass;\n \n /**\n * ChannelDeliveryOption entity class.\n */\n export class ChannelDeliveryOptionClass implements Entities.ChannelDeliveryOption {\n public ChannelId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionClass'] = ChannelDeliveryOptionClass;\n \n /**\n * ChannelIdentity entity class.\n */\n export class ChannelIdentityClass implements Entities.ChannelIdentity {\n public ChannelType: Entities.ExtensibleRetailChannelType;\n public Name: string;\n public OperatingUnitNumber: string;\n public DataAreaId: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ChannelType == null) {\n this.ChannelType = undefined;\n } else if (odataObject.ChannelType['@odata.type'] == null) {\n this.ChannelType = new ExtensibleRetailChannelTypeClass(odataObject.ChannelType);\n } else {\n var className: string = odataObject.ChannelType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelType = new entityDictionary[className](odataObject.ChannelType)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.OperatingUnitNumber = \n odataObject.OperatingUnitNumber;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelIdentityClass'] = ChannelIdentityClass;\n \n /**\n * ExtensibleRetailChannelType entity class.\n */\n export class ExtensibleRetailChannelTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleRetailChannelType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleRetailChannelType\";\n \n }\n }\n entityDictionary['ExtensibleRetailChannelTypeClass'] = ExtensibleRetailChannelTypeClass;\n \n /**\n * ChannelProfileProperty entity class.\n */\n export class ChannelProfilePropertyClass implements Entities.ChannelProfileProperty {\n public Key: number;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfilePropertyClass'] = ChannelProfilePropertyClass;\n \n /**\n * ChannelConfiguration entity class.\n */\n export class ChannelConfigurationClass implements Entities.ChannelConfiguration {\n public RecordId: number;\n public ChannelNaturalId: string;\n public MinimumDepositPercentage: number;\n public QuoteExpirationDays: number;\n public PickupDeliveryModeCode: string;\n public CarryoutDeliveryModeCode: string;\n public CancellationChargePercentage: number;\n public InventLocation: string;\n public InventLocationDataAreaId: string;\n public BingMapsApiKey: string;\n public BingMapsEnabled: boolean;\n public Currency: string;\n public CatalogDefaultImageTemplate: string;\n public CompanyCurrency: string;\n public PriceIncludesSalesTax: boolean;\n public CountryRegionId: string;\n public ChannelCountryRegionISOCode: string;\n public DefaultLanguageId: string;\n public TimeZoneInfoId: string;\n public EmailDeliveryModeCode: string;\n public GiftCardItemId: string;\n public EnableProductRecommendations: boolean;\n public RefundableShippingAmountWithoutApproval: number;\n public RefundShippingCharges: boolean;\n public ReceiptSettingsValue: number;\n public CustomerAttributeGroupId: number;\n public ClientBookAttributeGroupId: number;\n public NotificationRefreshInterval: number;\n public AllowExchangeOnReturnOrders: boolean;\n public FiscalRegistrationProcessId: string;\n public IsInventoryAutomaticValidationEnabled: boolean;\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public Properties: Entities.ChannelProperty[];\n public Languages: Entities.ChannelLanguage[];\n public UseAdvancedAutoCharges: boolean;\n public UseRTSForOnlineOrderCreation: boolean;\n public IsWarrantyAutoPromptEnabled: boolean;\n public EnableProductRatingsForRetailStores: boolean;\n public EnableFetchingPickingListsForPickingAndReceiving: boolean;\n public EnableReturnsForMultipleOrderInvoices: boolean;\n public EnableAnonymousOrderLookupByChannelReferenceId: boolean;\n public VoidSuspendedTransactionsOnCloseShift: number;\n public EnableOmniChannelPayments: boolean;\n public UseAdvancedCashManagement: boolean;\n public EnableFiscalRegistrationStorageBackup: boolean;\n public UseSalesReceiptAsDefaultReceiptTypeInJournal: boolean;\n public SalesOrderHeaderAttributeGroups: number[];\n public SalesOrderLinesAttributeGroups: number[];\n public CustomerAddressBooks: Entities.StoreAddressBook[];\n public EnableReturnPolicies: boolean;\n public InventAvailabilityCalculationMode: string;\n public IsPriceInclusiveTaxExemptCalculationEnabled: boolean;\n public EnableValidationOfSerialNumbersForInStoreReturns: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelNaturalId = \n odataObject.ChannelNaturalId;\n \n this.MinimumDepositPercentage = \n (odataObject.MinimumDepositPercentage != null) ? parseFloat(odataObject.MinimumDepositPercentage) : undefined;\n \n this.QuoteExpirationDays = \n odataObject.QuoteExpirationDays;\n \n this.PickupDeliveryModeCode = \n odataObject.PickupDeliveryModeCode;\n \n this.CarryoutDeliveryModeCode = \n odataObject.CarryoutDeliveryModeCode;\n \n this.CancellationChargePercentage = \n (odataObject.CancellationChargePercentage != null) ? parseFloat(odataObject.CancellationChargePercentage) : undefined;\n \n this.InventLocation = \n odataObject.InventLocation;\n \n this.InventLocationDataAreaId = \n odataObject.InventLocationDataAreaId;\n \n this.BingMapsApiKey = \n odataObject.BingMapsApiKey;\n \n this.BingMapsEnabled = \n odataObject.BingMapsEnabled;\n \n this.Currency = \n odataObject.Currency;\n \n this.CatalogDefaultImageTemplate = \n odataObject.CatalogDefaultImageTemplate;\n \n this.CompanyCurrency = \n odataObject.CompanyCurrency;\n \n this.PriceIncludesSalesTax = \n odataObject.PriceIncludesSalesTax;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ChannelCountryRegionISOCode = \n odataObject.ChannelCountryRegionISOCode;\n \n this.DefaultLanguageId = \n odataObject.DefaultLanguageId;\n \n this.TimeZoneInfoId = \n odataObject.TimeZoneInfoId;\n \n this.EmailDeliveryModeCode = \n odataObject.EmailDeliveryModeCode;\n \n this.GiftCardItemId = \n odataObject.GiftCardItemId;\n \n this.EnableProductRecommendations = \n odataObject.EnableProductRecommendations;\n \n this.RefundableShippingAmountWithoutApproval = \n (odataObject.RefundableShippingAmountWithoutApproval != null) ? parseFloat(odataObject.RefundableShippingAmountWithoutApproval) : undefined;\n \n this.RefundShippingCharges = \n odataObject.RefundShippingCharges;\n \n this.ReceiptSettingsValue = \n odataObject.ReceiptSettingsValue;\n \n this.CustomerAttributeGroupId = \n (odataObject.CustomerAttributeGroupId != null) ? parseInt(odataObject.CustomerAttributeGroupId, 10) : undefined;\n \n this.ClientBookAttributeGroupId = \n (odataObject.ClientBookAttributeGroupId != null) ? parseInt(odataObject.ClientBookAttributeGroupId, 10) : undefined;\n \n this.NotificationRefreshInterval = \n odataObject.NotificationRefreshInterval;\n \n this.AllowExchangeOnReturnOrders = \n odataObject.AllowExchangeOnReturnOrders;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IsInventoryAutomaticValidationEnabled = \n odataObject.IsInventoryAutomaticValidationEnabled;\n \n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.Properties = undefined;\n if (odataObject.Properties) {\n this.Properties = [];\n for (var i = 0; i < odataObject.Properties.length; i++) {\n if (odataObject.Properties[i] != null) {\n if (odataObject.Properties[i]['@odata.type'] != null) {\n var className: string = odataObject.Properties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Properties[i] = new entityDictionary[className](odataObject.Properties[i])\n }\n } else {\n this.Properties[i] = new ChannelPropertyClass(odataObject.Properties[i]);\n }\n } else {\n this.Properties[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n if (odataObject.Languages[i]['@odata.type'] != null) {\n var className: string = odataObject.Languages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Languages[i] = new entityDictionary[className](odataObject.Languages[i])\n }\n } else {\n this.Languages[i] = new ChannelLanguageClass(odataObject.Languages[i]);\n }\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n this.UseAdvancedAutoCharges = \n odataObject.UseAdvancedAutoCharges;\n \n this.UseRTSForOnlineOrderCreation = \n odataObject.UseRTSForOnlineOrderCreation;\n \n this.IsWarrantyAutoPromptEnabled = \n odataObject.IsWarrantyAutoPromptEnabled;\n \n this.EnableProductRatingsForRetailStores = \n odataObject.EnableProductRatingsForRetailStores;\n \n this.EnableFetchingPickingListsForPickingAndReceiving = \n odataObject.EnableFetchingPickingListsForPickingAndReceiving;\n \n this.EnableReturnsForMultipleOrderInvoices = \n odataObject.EnableReturnsForMultipleOrderInvoices;\n \n this.EnableAnonymousOrderLookupByChannelReferenceId = \n odataObject.EnableAnonymousOrderLookupByChannelReferenceId;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.EnableOmniChannelPayments = \n odataObject.EnableOmniChannelPayments;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.EnableFiscalRegistrationStorageBackup = \n odataObject.EnableFiscalRegistrationStorageBackup;\n \n this.UseSalesReceiptAsDefaultReceiptTypeInJournal = \n odataObject.UseSalesReceiptAsDefaultReceiptTypeInJournal;\n \n this.SalesOrderHeaderAttributeGroups = undefined;\n if (odataObject.SalesOrderHeaderAttributeGroups) {\n this.SalesOrderHeaderAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderHeaderAttributeGroups.length; i++) {\n if (odataObject.SalesOrderHeaderAttributeGroups[i] != null) {\n this.SalesOrderHeaderAttributeGroups[i] = \n parseInt(odataObject.SalesOrderHeaderAttributeGroups[i], 10);\n } else {\n this.SalesOrderHeaderAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.SalesOrderLinesAttributeGroups = undefined;\n if (odataObject.SalesOrderLinesAttributeGroups) {\n this.SalesOrderLinesAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderLinesAttributeGroups.length; i++) {\n if (odataObject.SalesOrderLinesAttributeGroups[i] != null) {\n this.SalesOrderLinesAttributeGroups[i] = \n parseInt(odataObject.SalesOrderLinesAttributeGroups[i], 10);\n } else {\n this.SalesOrderLinesAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.CustomerAddressBooks = undefined;\n if (odataObject.CustomerAddressBooks) {\n this.CustomerAddressBooks = [];\n for (var i = 0; i < odataObject.CustomerAddressBooks.length; i++) {\n if (odataObject.CustomerAddressBooks[i] != null) {\n if (odataObject.CustomerAddressBooks[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAddressBooks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAddressBooks[i] = new entityDictionary[className](odataObject.CustomerAddressBooks[i])\n }\n } else {\n this.CustomerAddressBooks[i] = new StoreAddressBookClass(odataObject.CustomerAddressBooks[i]);\n }\n } else {\n this.CustomerAddressBooks[i] = undefined;\n }\n }\n }\n \n this.EnableReturnPolicies = \n odataObject.EnableReturnPolicies;\n \n this.InventAvailabilityCalculationMode = \n odataObject.InventAvailabilityCalculationMode;\n \n this.IsPriceInclusiveTaxExemptCalculationEnabled = \n odataObject.IsPriceInclusiveTaxExemptCalculationEnabled;\n \n this.EnableValidationOfSerialNumbersForInStoreReturns = \n odataObject.EnableValidationOfSerialNumbersForInStoreReturns;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelConfigurationClass'] = ChannelConfigurationClass;\n \n /**\n * ChannelProperty entity class.\n */\n export class ChannelPropertyClass implements Entities.ChannelProperty {\n public Name: string;\n public Value: string;\n public Channel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPropertyClass'] = ChannelPropertyClass;\n \n /**\n * ChannelLanguage entity class.\n */\n export class ChannelLanguageClass implements Entities.ChannelLanguage {\n public LanguageId: string;\n public IsDefault: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelLanguageClass'] = ChannelLanguageClass;\n \n /**\n * ChannelDeliveryOptionConfiguration entity class.\n */\n export class ChannelDeliveryOptionConfigurationClass implements Entities.ChannelDeliveryOptionConfiguration {\n public PickupDeliveryModeCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PickupDeliveryModeCodes = undefined;\n if (odataObject.PickupDeliveryModeCodes) {\n this.PickupDeliveryModeCodes = [];\n for (var i = 0; i < odataObject.PickupDeliveryModeCodes.length; i++) {\n if (odataObject.PickupDeliveryModeCodes[i] != null) {\n this.PickupDeliveryModeCodes[i] = \n odataObject.PickupDeliveryModeCodes[i];\n } else {\n this.PickupDeliveryModeCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionConfigurationClass'] = ChannelDeliveryOptionConfigurationClass;\n \n /**\n * NonSalesTransaction entity class.\n */\n export class NonSalesTransactionClass\n extends TransactionClass\n implements Entities.NonSalesTransaction {\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Amount: number;\n public ForeignCurrency: string;\n public TenderTypeId: string;\n public OpenDrawer: boolean;\n public DenominationDetails: Entities.DenominationDetail[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.NonSalesTransaction\";\n \n }\n }\n entityDictionary['NonSalesTransactionClass'] = NonSalesTransactionClass;\n \n /**\n * DropAndDeclareTransaction entity class.\n */\n export class DropAndDeclareTransactionClass\n extends TransactionClass\n implements Entities.DropAndDeclareTransaction {\n public TenderDetails: Entities.TenderDetail[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public OpenDrawer: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderDetails = undefined;\n if (odataObject.TenderDetails) {\n this.TenderDetails = [];\n for (var i = 0; i < odataObject.TenderDetails.length; i++) {\n if (odataObject.TenderDetails[i] != null) {\n if (odataObject.TenderDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderDetails[i] = new entityDictionary[className](odataObject.TenderDetails[i])\n }\n } else {\n this.TenderDetails[i] = new TenderDetailClass(odataObject.TenderDetails[i]);\n }\n } else {\n this.TenderDetails[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DropAndDeclareTransaction\";\n \n }\n }\n entityDictionary['DropAndDeclareTransactionClass'] = DropAndDeclareTransactionClass;\n \n /**\n * ProductSearchCriteria entity class.\n */\n export class ProductSearchCriteriaClass implements Entities.ProductSearchCriteria {\n public Ids: number[];\n public CategoryIds: number[];\n public IncludeProductsFromDescendantCategories: boolean;\n public SearchCondition: string;\n public SkipVariantExpansion: boolean;\n public IncludeAttributes: boolean;\n public Barcodes: string[];\n public ItemIds: Entities.ProductLookupClause[];\n public Refinement: Entities.ProductRefinerValue[];\n public CustomerAccountNumber: string;\n public RecommendationListId: string;\n public DownloadProductData: boolean;\n public Context: Entities.ProjectionDomain;\n public Language: string;\n public IsOnline: boolean;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n this.Ids[i] = \n parseInt(odataObject.Ids[i], 10);\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.IncludeProductsFromDescendantCategories = \n odataObject.IncludeProductsFromDescendantCategories;\n \n this.SearchCondition = \n odataObject.SearchCondition;\n \n this.SkipVariantExpansion = \n odataObject.SkipVariantExpansion;\n \n this.IncludeAttributes = \n odataObject.IncludeAttributes;\n \n this.Barcodes = undefined;\n if (odataObject.Barcodes) {\n this.Barcodes = [];\n for (var i = 0; i < odataObject.Barcodes.length; i++) {\n if (odataObject.Barcodes[i] != null) {\n this.Barcodes[i] = \n odataObject.Barcodes[i];\n } else {\n this.Barcodes[i] = undefined;\n }\n }\n }\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n if (odataObject.ItemIds[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemIds[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemIds[i] = new entityDictionary[className](odataObject.ItemIds[i])\n }\n } else {\n this.ItemIds[i] = new ProductLookupClauseClass(odataObject.ItemIds[i]);\n }\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ProductRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.RecommendationListId = \n odataObject.RecommendationListId;\n \n this.DownloadProductData = \n odataObject.DownloadProductData;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.Language = \n odataObject.Language;\n \n this.IsOnline = \n odataObject.IsOnline;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ProductSearchCriteriaClass'] = ProductSearchCriteriaClass;\n \n /**\n * ChangedProductsSearchCriteria entity class.\n */\n export class ChangedProductsSearchCriteriaClass implements Entities.ChangedProductsSearchCriteria {\n public SynchronizationToken: string;\n public Context: Entities.ProjectionDomain;\n public AsListings: boolean;\n public Session: Entities.ReadChangedProductsSession;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SynchronizationToken = \n odataObject.SynchronizationToken;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.AsListings = \n odataObject.AsListings;\n \n if (odataObject.Session == null) {\n this.Session = undefined;\n } else if (odataObject.Session['@odata.type'] == null) {\n this.Session = new ReadChangedProductsSessionClass(odataObject.Session);\n } else {\n var className: string = odataObject.Session['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Session = new entityDictionary[className](odataObject.Session)\n }\n }\n\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ChangedProductsSearchCriteriaClass'] = ChangedProductsSearchCriteriaClass;\n \n /**\n * EmployeeActivitySearchCriteria entity class.\n */\n export class EmployeeActivitySearchCriteriaClass implements Entities.EmployeeActivitySearchCriteria {\n public FromDateTimeOffset: Date;\n public ToDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValues: number[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromDateTimeOffset = \n (odataObject.FromDateTimeOffset instanceof Date) ? odataObject.FromDateTimeOffset\n : (odataObject.FromDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.FromDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDateTimeOffset = \n (odataObject.ToDateTimeOffset instanceof Date) ? odataObject.ToDateTimeOffset\n : (odataObject.ToDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ToDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValues = undefined;\n if (odataObject.EmployeeActivityTypeValues) {\n this.EmployeeActivityTypeValues = [];\n for (var i = 0; i < odataObject.EmployeeActivityTypeValues.length; i++) {\n if (odataObject.EmployeeActivityTypeValues[i] != null) {\n this.EmployeeActivityTypeValues[i] = \n odataObject.EmployeeActivityTypeValues[i];\n } else {\n this.EmployeeActivityTypeValues[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['EmployeeActivitySearchCriteriaClass'] = EmployeeActivitySearchCriteriaClass;\n \n /**\n * SearchSuggestionCriteria entity class.\n */\n export class SearchSuggestionCriteriaClass implements Entities.SearchSuggestionCriteria {\n public ProductSearchCriteria: Entities.ProductSearchCriteria;\n public CustomerSearchCriteria: Entities.CustomerSearchCriteria;\n public SuggestionType: string;\n public HitPrefix: string;\n public HitSuffix: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ProductSearchCriteria == null) {\n this.ProductSearchCriteria = undefined;\n } else if (odataObject.ProductSearchCriteria['@odata.type'] == null) {\n this.ProductSearchCriteria = new ProductSearchCriteriaClass(odataObject.ProductSearchCriteria);\n } else {\n var className: string = odataObject.ProductSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSearchCriteria = new entityDictionary[className](odataObject.ProductSearchCriteria)\n }\n }\n\n \n if (odataObject.CustomerSearchCriteria == null) {\n this.CustomerSearchCriteria = undefined;\n } else if (odataObject.CustomerSearchCriteria['@odata.type'] == null) {\n this.CustomerSearchCriteria = new CustomerSearchCriteriaClass(odataObject.CustomerSearchCriteria);\n } else {\n var className: string = odataObject.CustomerSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerSearchCriteria = new entityDictionary[className](odataObject.CustomerSearchCriteria)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.HitPrefix = \n odataObject.HitPrefix;\n \n this.HitSuffix = \n odataObject.HitSuffix;\n \n }\n }\n entityDictionary['SearchSuggestionCriteriaClass'] = SearchSuggestionCriteriaClass;\n \n /**\n * CartLineDeliveryPreference entity class.\n */\n export class CartLineDeliveryPreferenceClass implements Entities.CartLineDeliveryPreference {\n public LineId: string;\n public DeliveryPreferenceTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.DeliveryPreferenceTypeValues = undefined;\n if (odataObject.DeliveryPreferenceTypeValues) {\n this.DeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.DeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.DeliveryPreferenceTypeValues[i] != null) {\n this.DeliveryPreferenceTypeValues[i] = \n odataObject.DeliveryPreferenceTypeValues[i];\n } else {\n this.DeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineDeliveryPreferenceClass'] = CartLineDeliveryPreferenceClass;\n \n /**\n * CartLinePromotion entity class.\n */\n export class CartLinePromotionClass implements Entities.CartLinePromotion {\n public LineId: string;\n public Promotions: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Promotions = undefined;\n if (odataObject.Promotions) {\n this.Promotions = [];\n for (var i = 0; i < odataObject.Promotions.length; i++) {\n if (odataObject.Promotions[i] != null) {\n this.Promotions[i] = \n odataObject.Promotions[i];\n } else {\n this.Promotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLinePromotionClass'] = CartLinePromotionClass;\n \n /**\n * ProductVariant entity class.\n */\n export class ProductVariantClass implements Entities.ProductVariant {\n public ItemId: string;\n public MasterProductId: number;\n public InventoryDimensionId: string;\n public AdjustedPrice: number;\n public BasePrice: number;\n public Price: number;\n public Color: string;\n public Style: string;\n public Size: string;\n public Configuration: string;\n public ColorId: string;\n public StyleId: string;\n public SizeId: string;\n public ConfigId: string;\n public VariantId: string;\n public Images: Entities.RichMediaLocations[];\n public DistinctProductVariantId: number;\n public ProductNumber: string;\n public PropertiesAsList: Entities.ProductPropertyTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.Color = \n odataObject.Color;\n \n this.Style = \n odataObject.Style;\n \n this.Size = \n odataObject.Size;\n \n this.Configuration = \n odataObject.Configuration;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new RichMediaLocationsClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DistinctProductVariantId = \n (odataObject.DistinctProductVariantId != null) ? parseInt(odataObject.DistinctProductVariantId, 10) : undefined;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.PropertiesAsList = undefined;\n if (odataObject.PropertiesAsList) {\n this.PropertiesAsList = [];\n for (var i = 0; i < odataObject.PropertiesAsList.length; i++) {\n if (odataObject.PropertiesAsList[i] != null) {\n if (odataObject.PropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.PropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PropertiesAsList[i] = new entityDictionary[className](odataObject.PropertiesAsList[i])\n }\n } else {\n this.PropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.PropertiesAsList[i]);\n }\n } else {\n this.PropertiesAsList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantClass'] = ProductVariantClass;\n \n /**\n * HardwareProfilePrinter entity class.\n */\n export class HardwareProfilePrinterClass implements Entities.HardwareProfilePrinter {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public DeviceDescription: string;\n public CharacterSet: number;\n public ReceiptProfileId: string;\n public BinaryConversion: boolean;\n public DocInsertRemovalTimeout: number;\n public Logo: string;\n public LogoAlignment: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.CharacterSet = \n odataObject.CharacterSet;\n \n this.ReceiptProfileId = \n odataObject.ReceiptProfileId;\n \n this.BinaryConversion = \n odataObject.BinaryConversion;\n \n this.DocInsertRemovalTimeout = \n odataObject.DocInsertRemovalTimeout;\n \n this.Logo = \n odataObject.Logo;\n \n this.LogoAlignment = \n odataObject.LogoAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfilePrinterClass'] = HardwareProfilePrinterClass;\n \n /**\n * HardwareProfileScanner entity class.\n */\n export class HardwareProfileScannerClass implements Entities.HardwareProfileScanner {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DecodeData: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DecodeData = \n odataObject.DecodeData;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileScannerClass'] = HardwareProfileScannerClass;\n \n /**\n * HardwareProfileCashDrawer entity class.\n */\n export class HardwareProfileCashDrawerClass implements Entities.HardwareProfileCashDrawer {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public IsSharedShiftDrawer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.IsSharedShiftDrawer = \n odataObject.IsSharedShiftDrawer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileCashDrawerClass'] = HardwareProfileCashDrawerClass;\n \n /**\n * TillLayout entity class.\n */\n export class TillLayoutClass implements Entities.TillLayout {\n public CashChangerLayoutXml: string;\n public CustomerLayoutId: string;\n public CustomerLayoutXml: string;\n public Height: number;\n public LayoutId: string;\n public LayoutTypeValue: number;\n public LayoutXml: string;\n public LayoutXmlPortrait: string;\n public Name: string;\n public ReceiptId: string;\n public ReceiptItemsLayoutXml: string;\n public ReceiptPaymentLayoutXml: string;\n public TotalId: string;\n public TotalsLayoutXml: string;\n public Width: number;\n public RecordId: number;\n public StartScreen: number;\n public ButtonGridZones: Entities.ButtonGridZone[];\n public ImageZones: Entities.ImageZone[];\n public ReportZones: Entities.ReportZone[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashChangerLayoutXml = \n odataObject.CashChangerLayoutXml;\n \n this.CustomerLayoutId = \n odataObject.CustomerLayoutId;\n \n this.CustomerLayoutXml = \n odataObject.CustomerLayoutXml;\n \n this.Height = \n odataObject.Height;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.LayoutTypeValue = \n odataObject.LayoutTypeValue;\n \n this.LayoutXml = \n odataObject.LayoutXml;\n \n this.LayoutXmlPortrait = \n odataObject.LayoutXmlPortrait;\n \n this.Name = \n odataObject.Name;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ReceiptItemsLayoutXml = \n odataObject.ReceiptItemsLayoutXml;\n \n this.ReceiptPaymentLayoutXml = \n odataObject.ReceiptPaymentLayoutXml;\n \n this.TotalId = \n odataObject.TotalId;\n \n this.TotalsLayoutXml = \n odataObject.TotalsLayoutXml;\n \n this.Width = \n odataObject.Width;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StartScreen = \n odataObject.StartScreen;\n \n this.ButtonGridZones = undefined;\n if (odataObject.ButtonGridZones) {\n this.ButtonGridZones = [];\n for (var i = 0; i < odataObject.ButtonGridZones.length; i++) {\n if (odataObject.ButtonGridZones[i] != null) {\n if (odataObject.ButtonGridZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ButtonGridZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ButtonGridZones[i] = new entityDictionary[className](odataObject.ButtonGridZones[i])\n }\n } else {\n this.ButtonGridZones[i] = new ButtonGridZoneClass(odataObject.ButtonGridZones[i]);\n }\n } else {\n this.ButtonGridZones[i] = undefined;\n }\n }\n }\n \n this.ImageZones = undefined;\n if (odataObject.ImageZones) {\n this.ImageZones = [];\n for (var i = 0; i < odataObject.ImageZones.length; i++) {\n if (odataObject.ImageZones[i] != null) {\n if (odataObject.ImageZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageZones[i] = new entityDictionary[className](odataObject.ImageZones[i])\n }\n } else {\n this.ImageZones[i] = new ImageZoneClass(odataObject.ImageZones[i]);\n }\n } else {\n this.ImageZones[i] = undefined;\n }\n }\n }\n \n this.ReportZones = undefined;\n if (odataObject.ReportZones) {\n this.ReportZones = [];\n for (var i = 0; i < odataObject.ReportZones.length; i++) {\n if (odataObject.ReportZones[i] != null) {\n if (odataObject.ReportZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ReportZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReportZones[i] = new entityDictionary[className](odataObject.ReportZones[i])\n }\n } else {\n this.ReportZones[i] = new ReportZoneClass(odataObject.ReportZones[i]);\n }\n } else {\n this.ReportZones[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TillLayoutClass'] = TillLayoutClass;\n \n /**\n * SalesInvoice entity class.\n */\n export class SalesInvoiceClass implements Entities.SalesInvoice {\n public RecordId: number;\n public ChannelId: number;\n public Id: string;\n public SalesId: string;\n public SalesType: string;\n public InvoiceDate: Date;\n public DueDate: Date;\n public CurrencyCode: string;\n public InvoiceSubtotal: number;\n public TotalCharges: number;\n public TotalTaxAmount: number;\n public TotalLineDiscount: number;\n public TotalDiscount: number;\n public Amount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public Account: string;\n public Name: string;\n public TotalManualDiscountPercentage: number;\n public TotalManualDiscountAmount: number;\n public SalesInvoiceLine: Entities.SalesInvoiceLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TenderLines: Entities.TenderLine[];\n public DeliveryModeChargeAmount: number;\n public OrderAccount: string;\n public OrderedByCustomerName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Id = \n odataObject.Id;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesType = \n odataObject.SalesType;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDate = \n (odataObject.DueDate instanceof Date) ? odataObject.DueDate\n : (odataObject.DueDate != null) ? jsonLightReadStringPropertyValue(odataObject.DueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceSubtotal = \n (odataObject.InvoiceSubtotal != null) ? parseFloat(odataObject.InvoiceSubtotal) : undefined;\n \n this.TotalCharges = \n (odataObject.TotalCharges != null) ? parseFloat(odataObject.TotalCharges) : undefined;\n \n this.TotalTaxAmount = \n (odataObject.TotalTaxAmount != null) ? parseFloat(odataObject.TotalTaxAmount) : undefined;\n \n this.TotalLineDiscount = \n (odataObject.TotalLineDiscount != null) ? parseFloat(odataObject.TotalLineDiscount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.Account = \n odataObject.Account;\n \n this.Name = \n odataObject.Name;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.SalesInvoiceLine = undefined;\n if (odataObject.SalesInvoiceLine) {\n this.SalesInvoiceLine = [];\n for (var i = 0; i < odataObject.SalesInvoiceLine.length; i++) {\n if (odataObject.SalesInvoiceLine[i] != null) {\n if (odataObject.SalesInvoiceLine[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesInvoiceLine[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesInvoiceLine[i] = new entityDictionary[className](odataObject.SalesInvoiceLine[i])\n }\n } else {\n this.SalesInvoiceLine[i] = new SalesInvoiceLineClass(odataObject.SalesInvoiceLine[i]);\n }\n } else {\n this.SalesInvoiceLine[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.OrderAccount = \n odataObject.OrderAccount;\n \n this.OrderedByCustomerName = \n odataObject.OrderedByCustomerName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceClass'] = SalesInvoiceClass;\n \n /**\n * OrderInvoice entity class.\n */\n export class OrderInvoiceClass implements Entities.OrderInvoice {\n public Id: string;\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public InvoiceDate: Date;\n public TotalAmount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public InvoiceTypeValue: number;\n public CurrencyCode: string;\n public InvoiceDueDate: Date;\n public InvoicePaidStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceDueDate = \n (odataObject.InvoiceDueDate instanceof Date) ? odataObject.InvoiceDueDate\n : (odataObject.InvoiceDueDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InvoicePaidStatusValue = \n odataObject.InvoicePaidStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderInvoiceClass'] = OrderInvoiceClass;\n \n /**\n * TaxOverride entity class.\n */\n export class TaxOverrideClass implements Entities.TaxOverride {\n public Code: string;\n public SourceTaxGroup: string;\n public DestinationTaxGroup: string;\n public SourceItemTaxGroup: string;\n public DestinationItemTaxGroup: string;\n public ChannelId: number;\n public AdditionalDescription: string;\n public Status: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.SourceTaxGroup = \n odataObject.SourceTaxGroup;\n \n this.DestinationTaxGroup = \n odataObject.DestinationTaxGroup;\n \n this.SourceItemTaxGroup = \n odataObject.SourceItemTaxGroup;\n \n this.DestinationItemTaxGroup = \n odataObject.DestinationItemTaxGroup;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.AdditionalDescription = \n odataObject.AdditionalDescription;\n \n this.Status = \n odataObject.Status;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxOverrideClass'] = TaxOverrideClass;\n \n /**\n * TenderType entity class.\n */\n export class TenderTypeClass implements Entities.TenderType {\n public Function: number;\n public TenderTypeId: string;\n public Name: string;\n public OperationId: number;\n public OperationName: string;\n public ChangeTenderTypeId: string;\n public AboveMinimumChangeAmount: number;\n public AboveMinimumChangeTenderTypeId: string;\n public OpenDrawer: boolean;\n public UseSignatureCaptureDevice: boolean;\n public MinimumSignatureCaptureAmount: number;\n public IsOvertenderAllowed: boolean;\n public IsUndertenderAllowed: boolean;\n public MaximumOvertenderAmount: number;\n public MaximumUndertenderAmount: number;\n public MaximumAmountPerTransaction: number;\n public MaximumAmountPerLine: number;\n public MinimumAmountPerTransaction: number;\n public MinimumAmountPerLine: number;\n public RoundOff: number;\n public CountingRequired: number;\n public TakenToBank: number;\n public TakenToSafe: number;\n public ConnectorId: string;\n public GiftCardItem: string;\n public GiftCardCashoutOutThreshold: number;\n public ChangeLineOnReceipt: string;\n public HideCardInputDetails: boolean;\n public CashDrawerLimitEnabled: boolean;\n public CashDrawerLimit: number;\n public RestrictReturnsWithoutReceipt: boolean;\n public HasTenderDiscount: boolean;\n public DefaultCardTypeId: string;\n public UseForDeclareStartAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Function = \n odataObject.Function;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Name = \n odataObject.Name;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.OperationName = \n odataObject.OperationName;\n \n this.ChangeTenderTypeId = \n odataObject.ChangeTenderTypeId;\n \n this.AboveMinimumChangeAmount = \n (odataObject.AboveMinimumChangeAmount != null) ? parseFloat(odataObject.AboveMinimumChangeAmount) : undefined;\n \n this.AboveMinimumChangeTenderTypeId = \n odataObject.AboveMinimumChangeTenderTypeId;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.UseSignatureCaptureDevice = \n odataObject.UseSignatureCaptureDevice;\n \n this.MinimumSignatureCaptureAmount = \n (odataObject.MinimumSignatureCaptureAmount != null) ? parseFloat(odataObject.MinimumSignatureCaptureAmount) : undefined;\n \n this.IsOvertenderAllowed = \n odataObject.IsOvertenderAllowed;\n \n this.IsUndertenderAllowed = \n odataObject.IsUndertenderAllowed;\n \n this.MaximumOvertenderAmount = \n (odataObject.MaximumOvertenderAmount != null) ? parseFloat(odataObject.MaximumOvertenderAmount) : undefined;\n \n this.MaximumUndertenderAmount = \n (odataObject.MaximumUndertenderAmount != null) ? parseFloat(odataObject.MaximumUndertenderAmount) : undefined;\n \n this.MaximumAmountPerTransaction = \n (odataObject.MaximumAmountPerTransaction != null) ? parseFloat(odataObject.MaximumAmountPerTransaction) : undefined;\n \n this.MaximumAmountPerLine = \n (odataObject.MaximumAmountPerLine != null) ? parseFloat(odataObject.MaximumAmountPerLine) : undefined;\n \n this.MinimumAmountPerTransaction = \n (odataObject.MinimumAmountPerTransaction != null) ? parseFloat(odataObject.MinimumAmountPerTransaction) : undefined;\n \n this.MinimumAmountPerLine = \n (odataObject.MinimumAmountPerLine != null) ? parseFloat(odataObject.MinimumAmountPerLine) : undefined;\n \n this.RoundOff = \n (odataObject.RoundOff != null) ? parseFloat(odataObject.RoundOff) : undefined;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.TakenToBank = \n odataObject.TakenToBank;\n \n this.TakenToSafe = \n odataObject.TakenToSafe;\n \n this.ConnectorId = \n odataObject.ConnectorId;\n \n this.GiftCardItem = \n odataObject.GiftCardItem;\n \n this.GiftCardCashoutOutThreshold = \n (odataObject.GiftCardCashoutOutThreshold != null) ? parseFloat(odataObject.GiftCardCashoutOutThreshold) : undefined;\n \n this.ChangeLineOnReceipt = \n odataObject.ChangeLineOnReceipt;\n \n this.HideCardInputDetails = \n odataObject.HideCardInputDetails;\n \n this.CashDrawerLimitEnabled = \n odataObject.CashDrawerLimitEnabled;\n \n this.CashDrawerLimit = \n (odataObject.CashDrawerLimit != null) ? parseFloat(odataObject.CashDrawerLimit) : undefined;\n \n this.RestrictReturnsWithoutReceipt = \n odataObject.RestrictReturnsWithoutReceipt;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.DefaultCardTypeId = \n odataObject.DefaultCardTypeId;\n \n this.UseForDeclareStartAmount = \n odataObject.UseForDeclareStartAmount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeClass'] = TenderTypeClass;\n \n /**\n * ReasonCode entity class.\n */\n export class ReasonCodeClass implements Entities.ReasonCode {\n public InputRequired: boolean;\n public LinkedReasonCodeId: string;\n public MaximumLength: number;\n public MaximumValue: number;\n public MinimumLength: number;\n public MinimumValue: number;\n public OncePerTransaction: boolean;\n public PrintInputNameOnReceipt: boolean;\n public PrintInputToReceipt: boolean;\n public PrintPromptToReceipt: boolean;\n public Prompt: string;\n public RandomFactor: number;\n public RetailUseReasonCode: boolean;\n public ReasonCodeId: string;\n public Description: string;\n public InputTypeValue: number;\n public ActivityValue: number;\n public IsMultiLineText: boolean;\n public ReasonSubCodes: Entities.ReasonSubCode[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InputRequired = \n odataObject.InputRequired;\n \n this.LinkedReasonCodeId = \n odataObject.LinkedReasonCodeId;\n \n this.MaximumLength = \n odataObject.MaximumLength;\n \n this.MaximumValue = \n (odataObject.MaximumValue != null) ? parseFloat(odataObject.MaximumValue) : undefined;\n \n this.MinimumLength = \n odataObject.MinimumLength;\n \n this.MinimumValue = \n (odataObject.MinimumValue != null) ? parseFloat(odataObject.MinimumValue) : undefined;\n \n this.OncePerTransaction = \n odataObject.OncePerTransaction;\n \n this.PrintInputNameOnReceipt = \n odataObject.PrintInputNameOnReceipt;\n \n this.PrintInputToReceipt = \n odataObject.PrintInputToReceipt;\n \n this.PrintPromptToReceipt = \n odataObject.PrintPromptToReceipt;\n \n this.Prompt = \n odataObject.Prompt;\n \n this.RandomFactor = \n (odataObject.RandomFactor != null) ? parseFloat(odataObject.RandomFactor) : undefined;\n \n this.RetailUseReasonCode = \n odataObject.RetailUseReasonCode;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ActivityValue = \n odataObject.ActivityValue;\n \n this.IsMultiLineText = \n odataObject.IsMultiLineText;\n \n this.ReasonSubCodes = undefined;\n if (odataObject.ReasonSubCodes) {\n this.ReasonSubCodes = [];\n for (var i = 0; i < odataObject.ReasonSubCodes.length; i++) {\n if (odataObject.ReasonSubCodes[i] != null) {\n if (odataObject.ReasonSubCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonSubCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonSubCodes[i] = new entityDictionary[className](odataObject.ReasonSubCodes[i])\n }\n } else {\n this.ReasonSubCodes[i] = new ReasonSubCodeClass(odataObject.ReasonSubCodes[i]);\n }\n } else {\n this.ReasonSubCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeClass'] = ReasonCodeClass;\n \n /**\n * ReportDataSet entity class.\n */\n export class ReportDataSetClass implements Entities.ReportDataSet {\n public ReportId: string;\n public Parameters: Entities.CommerceProperty[];\n public Locale: string;\n public Output: Entities.ReportRow[];\n public HasTotalRow: boolean;\n public HasDisclaimer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportId = \n odataObject.ReportId;\n \n this.Parameters = undefined;\n if (odataObject.Parameters) {\n this.Parameters = [];\n for (var i = 0; i < odataObject.Parameters.length; i++) {\n if (odataObject.Parameters[i] != null) {\n if (odataObject.Parameters[i]['@odata.type'] != null) {\n var className: string = odataObject.Parameters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Parameters[i] = new entityDictionary[className](odataObject.Parameters[i])\n }\n } else {\n this.Parameters[i] = new CommercePropertyClass(odataObject.Parameters[i]);\n }\n } else {\n this.Parameters[i] = undefined;\n }\n }\n }\n \n this.Locale = \n odataObject.Locale;\n \n this.Output = undefined;\n if (odataObject.Output) {\n this.Output = [];\n for (var i = 0; i < odataObject.Output.length; i++) {\n if (odataObject.Output[i] != null) {\n if (odataObject.Output[i]['@odata.type'] != null) {\n var className: string = odataObject.Output[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Output[i] = new entityDictionary[className](odataObject.Output[i])\n }\n } else {\n this.Output[i] = new ReportRowClass(odataObject.Output[i]);\n }\n } else {\n this.Output[i] = undefined;\n }\n }\n }\n \n this.HasTotalRow = \n odataObject.HasTotalRow;\n \n this.HasDisclaimer = \n odataObject.HasDisclaimer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportDataSetClass'] = ReportDataSetClass;\n \n /**\n * ZipCodeInfo entity class.\n */\n export class ZipCodeInfoClass implements Entities.ZipCodeInfo {\n public ZipPostalCode: string;\n public StreetName: string;\n public TimeZone: number;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public CityAlias: string;\n public District: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ZipPostalCode = \n odataObject.ZipPostalCode;\n \n this.StreetName = \n odataObject.StreetName;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.CityAlias = \n odataObject.CityAlias;\n \n this.District = \n odataObject.District;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ZipCodeInfoClass'] = ZipCodeInfoClass;\n \n /**\n * ReasonCodeRequirement entity class.\n */\n export class ReasonCodeRequirementClass implements Entities.ReasonCodeRequirement {\n public ReasonCodeId: string;\n public SourceId: string;\n public TableRefTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SourceId = \n odataObject.SourceId;\n \n this.TableRefTypeValue = \n odataObject.TableRefTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeRequirementClass'] = ReasonCodeRequirementClass;\n \n /**\n * QueryResultSettings entity class.\n */\n export class QueryResultSettingsClass implements Entities.QueryResultSettings {\n public Paging: Entities.PagingInfo;\n public Sorting: Entities.SortingInfo;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Paging == null) {\n this.Paging = undefined;\n } else if (odataObject.Paging['@odata.type'] == null) {\n this.Paging = new PagingInfoClass(odataObject.Paging);\n } else {\n var className: string = odataObject.Paging['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Paging = new entityDictionary[className](odataObject.Paging)\n }\n }\n\n \n if (odataObject.Sorting == null) {\n this.Sorting = undefined;\n } else if (odataObject.Sorting['@odata.type'] == null) {\n this.Sorting = new SortingInfoClass(odataObject.Sorting);\n } else {\n var className: string = odataObject.Sorting['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Sorting = new entityDictionary[className](odataObject.Sorting)\n }\n }\n\n \n }\n }\n entityDictionary['QueryResultSettingsClass'] = QueryResultSettingsClass;\n \n /**\n * SortingInfo entity class.\n */\n export class SortingInfoClass implements Entities.SortingInfo {\n public Columns: Entities.SortColumn[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Columns = undefined;\n if (odataObject.Columns) {\n this.Columns = [];\n for (var i = 0; i < odataObject.Columns.length; i++) {\n if (odataObject.Columns[i] != null) {\n if (odataObject.Columns[i]['@odata.type'] != null) {\n var className: string = odataObject.Columns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Columns[i] = new entityDictionary[className](odataObject.Columns[i])\n }\n } else {\n this.Columns[i] = new SortColumnClass(odataObject.Columns[i]);\n }\n } else {\n this.Columns[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SortingInfoClass'] = SortingInfoClass;\n \n /**\n * SortColumn entity class.\n */\n export class SortColumnClass implements Entities.SortColumn {\n public ColumnName: string;\n public IsDescending: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ColumnName = \n odataObject.ColumnName;\n \n this.IsDescending = \n odataObject.IsDescending;\n \n }\n }\n entityDictionary['SortColumnClass'] = SortColumnClass;\n \n /**\n * PagingInfo entity class.\n */\n export class PagingInfoClass implements Entities.PagingInfo {\n public NextPageToken: string;\n public Top: number;\n public Skip: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.NextPageToken = \n odataObject.NextPageToken;\n \n this.Top = \n (odataObject.Top != null) ? parseInt(odataObject.Top, 10) : undefined;\n \n this.Skip = \n (odataObject.Skip != null) ? parseInt(odataObject.Skip, 10) : undefined;\n \n }\n }\n entityDictionary['PagingInfoClass'] = PagingInfoClass;\n \n /**\n * ProductPropertyTranslation entity class.\n */\n export class ProductPropertyTranslationClass implements Entities.ProductPropertyTranslation {\n public TranslationLanguage: string;\n public TranslatedProperties: Entities.ProductProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TranslationLanguage = \n odataObject.TranslationLanguage;\n \n this.TranslatedProperties = undefined;\n if (odataObject.TranslatedProperties) {\n this.TranslatedProperties = [];\n for (var i = 0; i < odataObject.TranslatedProperties.length; i++) {\n if (odataObject.TranslatedProperties[i] != null) {\n if (odataObject.TranslatedProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslatedProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslatedProperties[i] = new entityDictionary[className](odataObject.TranslatedProperties[i])\n }\n } else {\n this.TranslatedProperties[i] = new ProductPropertyClass(odataObject.TranslatedProperties[i]);\n }\n } else {\n this.TranslatedProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPropertyTranslationClass'] = ProductPropertyTranslationClass;\n \n /**\n * NumberSequenceSeedData entity class.\n */\n export class NumberSequenceSeedDataClass implements Entities.NumberSequenceSeedData {\n public DataTypeValue: number;\n public DataValue: number;\n public LastTransactionDataValue: number;\n public LastTransactionCreatedDateTime: Date;\n public LastTransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.DataValue = \n (odataObject.DataValue != null) ? parseInt(odataObject.DataValue, 10) : undefined;\n \n this.LastTransactionDataValue = \n (odataObject.LastTransactionDataValue != null) ? parseInt(odataObject.LastTransactionDataValue, 10) : undefined;\n \n this.LastTransactionCreatedDateTime = \n (odataObject.LastTransactionCreatedDateTime instanceof Date) ? odataObject.LastTransactionCreatedDateTime\n : (odataObject.LastTransactionCreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastTransactionCreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastTransactionId = \n odataObject.LastTransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NumberSequenceSeedDataClass'] = NumberSequenceSeedDataClass;\n \n /**\n * ReceiptNumberResetInfo entity class.\n */\n export class ReceiptNumberResetInfoClass implements Entities.ReceiptNumberResetInfo {\n public ValidFrom: Date;\n public ValidTo: Date;\n public ResetDate: Date;\n public TypeValue: number;\n public Enabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResetDate = \n (odataObject.ResetDate instanceof Date) ? odataObject.ResetDate\n : (odataObject.ResetDate != null) ? jsonLightReadStringPropertyValue(odataObject.ResetDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Enabled = \n odataObject.Enabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptNumberResetInfoClass'] = ReceiptNumberResetInfoClass;\n \n /**\n * DeviceActivationResult entity class.\n */\n export class DeviceActivationResultClass implements Entities.DeviceActivationResult {\n public Device: Entities.Device;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Device == null) {\n this.Device = undefined;\n } else if (odataObject.Device['@odata.type'] == null) {\n this.Device = new DeviceClass(odataObject.Device);\n } else {\n var className: string = odataObject.Device['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Device = new entityDictionary[className](odataObject.Device)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceActivationResultClass'] = DeviceActivationResultClass;\n \n /**\n * PurchaseHistory entity class.\n */\n export class PurchaseHistoryClass implements Entities.PurchaseHistory {\n public DatePurchased: Date;\n public ImageUrl: string;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public ReceiptId: string;\n public SalesId: string;\n public ChannelId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DatePurchased = \n (odataObject.DatePurchased instanceof Date) ? odataObject.DatePurchased\n : (odataObject.DatePurchased != null) ? jsonLightReadStringPropertyValue(odataObject.DatePurchased, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseHistoryClass'] = PurchaseHistoryClass;\n \n /**\n * PurchaseHistorySearchCriteria entity class.\n */\n export class PurchaseHistorySearchCriteriaClass implements Entities.PurchaseHistorySearchCriteria {\n public StartDate: Date;\n public EndDate: Date;\n public CustomerAccountNumber: string;\n public ItemId: string;\n public ProductNameFilter: string;\n public ReceiptId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\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.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductNameFilter = \n odataObject.ProductNameFilter;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n }\n }\n entityDictionary['PurchaseHistorySearchCriteriaClass'] = PurchaseHistorySearchCriteriaClass;\n \n /**\n * Node entity class.\n */\n export class NodeClass implements Entities.Node {\n public ParentScopeId: string;\n public ParentSequence: number;\n public Id: string;\n public Sequence: number;\n public Description: string;\n public ScreenshotUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ParentScopeId = \n odataObject.ParentScopeId;\n \n this.ParentSequence = \n odataObject.ParentSequence;\n \n this.Id = \n odataObject.Id;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Description = \n odataObject.Description;\n \n this.ScreenshotUri = \n odataObject.ScreenshotUri;\n \n }\n }\n entityDictionary['NodeClass'] = NodeClass;\n \n /**\n * Line entity class.\n */\n export class LineClass implements Entities.Line {\n public ChildrenIds: number[];\n public Id: number;\n public Name: string;\n public Description: string;\n public IsLinked: boolean;\n public LineMetadataId: number;\n public Artifacts: Entities.ArtifactSummary[];\n public MetadataPropertyValues: Entities.MetadataPropertyValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChildrenIds = undefined;\n if (odataObject.ChildrenIds) {\n this.ChildrenIds = [];\n for (var i = 0; i < odataObject.ChildrenIds.length; i++) {\n if (odataObject.ChildrenIds[i] != null) {\n this.ChildrenIds[i] = \n parseInt(odataObject.ChildrenIds[i], 10);\n } else {\n this.ChildrenIds[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.IsLinked = \n odataObject.IsLinked;\n \n this.LineMetadataId = \n (odataObject.LineMetadataId != null) ? parseInt(odataObject.LineMetadataId, 10) : undefined;\n \n this.Artifacts = undefined;\n if (odataObject.Artifacts) {\n this.Artifacts = [];\n for (var i = 0; i < odataObject.Artifacts.length; i++) {\n if (odataObject.Artifacts[i] != null) {\n if (odataObject.Artifacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Artifacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Artifacts[i] = new entityDictionary[className](odataObject.Artifacts[i])\n }\n } else {\n this.Artifacts[i] = new ArtifactSummaryClass(odataObject.Artifacts[i]);\n }\n } else {\n this.Artifacts[i] = undefined;\n }\n }\n }\n \n this.MetadataPropertyValues = undefined;\n if (odataObject.MetadataPropertyValues) {\n this.MetadataPropertyValues = [];\n for (var i = 0; i < odataObject.MetadataPropertyValues.length; i++) {\n if (odataObject.MetadataPropertyValues[i] != null) {\n if (odataObject.MetadataPropertyValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MetadataPropertyValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataPropertyValues[i] = new entityDictionary[className](odataObject.MetadataPropertyValues[i])\n }\n } else {\n this.MetadataPropertyValues[i] = new MetadataPropertyValueClass(odataObject.MetadataPropertyValues[i]);\n }\n } else {\n this.MetadataPropertyValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineClass'] = LineClass;\n \n /**\n * MetadataText entity class.\n */\n export class MetadataTextClass implements Entities.MetadataText {\n public Id: string;\n public Text: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Text = \n odataObject.Text;\n \n }\n }\n entityDictionary['MetadataTextClass'] = MetadataTextClass;\n \n /**\n * MetadataHypertextLink entity class.\n */\n export class MetadataHypertextLinkClass implements Entities.MetadataHypertextLink {\n public Id: string;\n public DisplayName: string;\n public Url: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.Url = \n odataObject.Url;\n \n }\n }\n entityDictionary['MetadataHypertextLinkClass'] = MetadataHypertextLinkClass;\n \n /**\n * Scope entity class.\n */\n export class ScopeClass\n extends NodeClass\n implements Entities.Scope {\n public Name: string;\n public ScopeTypeValue: number;\n public Children: Entities.Node[];\n public ActiveCount: number;\n public IsForm: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ScopeTypeValue = \n odataObject.ScopeTypeValue;\n \n this.Children = undefined;\n if (odataObject.Children) {\n this.Children = [];\n for (var i = 0; i < odataObject.Children.length; i++) {\n if (odataObject.Children[i] != null) {\n if (odataObject.Children[i]['@odata.type'] != null) {\n var className: string = odataObject.Children[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Children[i] = new entityDictionary[className](odataObject.Children[i])\n }\n } else {\n this.Children[i] = new NodeClass(odataObject.Children[i]);\n }\n } else {\n this.Children[i] = undefined;\n }\n }\n }\n \n this.ActiveCount = \n odataObject.ActiveCount;\n \n this.IsForm = \n odataObject.IsForm;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Scope\";\n \n }\n }\n entityDictionary['ScopeClass'] = ScopeClass;\n \n /**\n * Framework entity class.\n */\n export class FrameworkClass implements Entities.Framework {\n public Lines: Entities.Line[];\n public Id: number;\n public Name: string;\n public Access: string;\n public Hierarchy: Entities.Line[];\n public Publisher: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Access = \n odataObject.Access;\n \n this.Hierarchy = undefined;\n if (odataObject.Hierarchy) {\n this.Hierarchy = [];\n for (var i = 0; i < odataObject.Hierarchy.length; i++) {\n if (odataObject.Hierarchy[i] != null) {\n if (odataObject.Hierarchy[i]['@odata.type'] != null) {\n var className: string = odataObject.Hierarchy[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Hierarchy[i] = new entityDictionary[className](odataObject.Hierarchy[i])\n }\n } else {\n this.Hierarchy[i] = new LineClass(odataObject.Hierarchy[i]);\n }\n } else {\n this.Hierarchy[i] = undefined;\n }\n }\n }\n \n this.Publisher = \n odataObject.Publisher;\n \n }\n }\n entityDictionary['FrameworkClass'] = FrameworkClass;\n \n /**\n * UserAction entity class.\n */\n export class UserActionClass\n extends NodeClass\n implements Entities.UserAction {\n public SystemGenerated: boolean;\n public GlobalId: string;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SystemGenerated = \n odataObject.SystemGenerated;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAction\";\n \n }\n }\n entityDictionary['UserActionClass'] = UserActionClass;\n \n /**\n * TaskUserAction entity class.\n */\n export class TaskUserActionClass\n extends UserActionClass\n implements Entities.TaskUserAction {\n public UserActionTypeValue: number;\n public Name: string;\n public Comment: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.UserActionTypeValue = \n odataObject.UserActionTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this.TaskId = \n odataObject.TaskId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskUserAction\";\n \n }\n }\n entityDictionary['TaskUserActionClass'] = TaskUserActionClass;\n \n /**\n * FormUserAction entity class.\n */\n export class FormUserActionClass\n extends UserActionClass\n implements Entities.FormUserAction {\n public FormId: string;\n public ControlLabel: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormUserAction\";\n \n }\n }\n entityDictionary['FormUserActionClass'] = FormUserActionClass;\n \n /**\n * CommandUserAction entity class.\n */\n export class CommandUserActionClass\n extends FormUserActionClass\n implements Entities.CommandUserAction {\n public ReturnTypeValue: number;\n public CommandName: string;\n public ControlName: string;\n public ControlType: string;\n public Arguments: Entities.CommandArgument[];\n public LabelId: string;\n public ReturnValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReturnTypeValue = \n odataObject.ReturnTypeValue;\n \n this.CommandName = \n odataObject.CommandName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.Arguments = undefined;\n if (odataObject.Arguments) {\n this.Arguments = [];\n for (var i = 0; i < odataObject.Arguments.length; i++) {\n if (odataObject.Arguments[i] != null) {\n if (odataObject.Arguments[i]['@odata.type'] != null) {\n var className: string = odataObject.Arguments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Arguments[i] = new entityDictionary[className](odataObject.Arguments[i])\n }\n } else {\n this.Arguments[i] = new CommandArgumentClass(odataObject.Arguments[i]);\n }\n } else {\n this.Arguments[i] = undefined;\n }\n }\n }\n \n this.LabelId = \n odataObject.LabelId;\n \n this.ReturnValue = \n odataObject.ReturnValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommandUserAction\";\n \n }\n }\n entityDictionary['CommandUserActionClass'] = CommandUserActionClass;\n \n /**\n * Annotation entity class.\n */\n export class AnnotationClass implements Entities.Annotation {\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['AnnotationClass'] = AnnotationClass;\n \n /**\n * Recording entity class.\n */\n export class RecordingClass implements Entities.Recording {\n public Scopes: Entities.Scope[];\n public FormContextEntries: Entities.FormContextDictionaryEntry[];\n public RootScope: Entities.Scope;\n public Name: string;\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Scopes = undefined;\n if (odataObject.Scopes) {\n this.Scopes = [];\n for (var i = 0; i < odataObject.Scopes.length; i++) {\n if (odataObject.Scopes[i] != null) {\n if (odataObject.Scopes[i]['@odata.type'] != null) {\n var className: string = odataObject.Scopes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scopes[i] = new entityDictionary[className](odataObject.Scopes[i])\n }\n } else {\n this.Scopes[i] = new ScopeClass(odataObject.Scopes[i]);\n }\n } else {\n this.Scopes[i] = undefined;\n }\n }\n }\n \n this.FormContextEntries = undefined;\n if (odataObject.FormContextEntries) {\n this.FormContextEntries = [];\n for (var i = 0; i < odataObject.FormContextEntries.length; i++) {\n if (odataObject.FormContextEntries[i] != null) {\n if (odataObject.FormContextEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.FormContextEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContextEntries[i] = new entityDictionary[className](odataObject.FormContextEntries[i])\n }\n } else {\n this.FormContextEntries[i] = new FormContextDictionaryEntryClass(odataObject.FormContextEntries[i]);\n }\n } else {\n this.FormContextEntries[i] = undefined;\n }\n }\n }\n \n if (odataObject.RootScope == null) {\n this.RootScope = undefined;\n } else if (odataObject.RootScope['@odata.type'] == null) {\n this.RootScope = new ScopeClass(odataObject.RootScope);\n } else {\n var className: string = odataObject.RootScope['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RootScope = new entityDictionary[className](odataObject.RootScope)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['RecordingClass'] = RecordingClass;\n \n /**\n * FormContextDictionaryEntry entity class.\n */\n export class FormContextDictionaryEntryClass implements Entities.FormContextDictionaryEntry {\n public FormId: string;\n public FormContext: Entities.FormContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n if (odataObject.FormContext == null) {\n this.FormContext = undefined;\n } else if (odataObject.FormContext['@odata.type'] == null) {\n this.FormContext = new FormContextClass(odataObject.FormContext);\n } else {\n var className: string = odataObject.FormContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContext = new entityDictionary[className](odataObject.FormContext)\n }\n }\n\n \n }\n }\n entityDictionary['FormContextDictionaryEntryClass'] = FormContextDictionaryEntryClass;\n \n /**\n * ProductVariantResolutionContext entity class.\n */\n export class ProductVariantResolutionContextClass implements Entities.ProductVariantResolutionContext {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ProductVariantResolutionContextClass'] = ProductVariantResolutionContextClass;\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity class.\n */\n export class ProductVariantResolutionOnKitSelectionContextClass\n extends ProductVariantResolutionContextClass\n implements Entities.ProductVariantResolutionOnKitSelectionContext {\n public SelectedComponents: Entities.ComponentInSlotRelation[];\n public SlotId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SelectedComponents = undefined;\n if (odataObject.SelectedComponents) {\n this.SelectedComponents = [];\n for (var i = 0; i < odataObject.SelectedComponents.length; i++) {\n if (odataObject.SelectedComponents[i] != null) {\n if (odataObject.SelectedComponents[i]['@odata.type'] != null) {\n var className: string = odataObject.SelectedComponents[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SelectedComponents[i] = new entityDictionary[className](odataObject.SelectedComponents[i])\n }\n } else {\n this.SelectedComponents[i] = new ComponentInSlotRelationClass(odataObject.SelectedComponents[i]);\n }\n } else {\n this.SelectedComponents[i] = undefined;\n }\n }\n }\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductVariantResolutionOnKitSelectionContext\";\n \n }\n }\n entityDictionary['ProductVariantResolutionOnKitSelectionContextClass'] = ProductVariantResolutionOnKitSelectionContextClass;\n \n /**\n * WarehouseLocation entity class.\n */\n export class WarehouseLocationClass implements Entities.WarehouseLocation {\n public LocationId: string;\n public IsLicensePlateControlled: boolean;\n public ProfileId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocationId = \n odataObject.LocationId;\n \n this.IsLicensePlateControlled = \n odataObject.IsLicensePlateControlled;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseLocationClass'] = WarehouseLocationClass;\n \n /**\n * FiscalTransaction entity class.\n */\n export class FiscalTransactionClass implements Entities.FiscalTransaction {\n public CreatedDateTime: Date;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TransDateTime: Date;\n public LineNumber: number;\n public RegisterResponse: string;\n public ReceiptCopy: boolean;\n public RecordGUID: string;\n public RegisterStoreId: string;\n public RegisterTerminalId: string;\n public StaffId: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public DocumentNumber: string;\n public RegistrationTypeValue: number;\n public ServiceName: string;\n public CountryRegionIsoCode: string;\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.ReceiptCopy = \n odataObject.ReceiptCopy;\n \n this.RecordGUID = \n odataObject.RecordGUID;\n \n this.RegisterStoreId = \n odataObject.RegisterStoreId;\n \n this.RegisterTerminalId = \n odataObject.RegisterTerminalId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.DocumentNumber = \n odataObject.DocumentNumber;\n \n this.RegistrationTypeValue = \n odataObject.RegistrationTypeValue;\n \n this.ServiceName = \n odataObject.ServiceName;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionClass'] = FiscalTransactionClass;\n \n /**\n * FulfillmentLine entity class.\n */\n export class FulfillmentLineClass implements Entities.FulfillmentLine {\n public SalesId: string;\n public SalesPersonStoreId: string;\n public SalesPersonId: string;\n public SalesPersonFirstName: string;\n public SalesPersonLastName: string;\n public SalesLineNumber: number;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public DeliveryModeCode: string;\n public DocumentStatusValue: number;\n public FulfillmentDeliveryType: Entities.FulfillmentLineDeliveryType;\n public DeliveryTypeValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public StoreInventoryTotalQuantity: number;\n public StoreInventoryReservedQuantity: number;\n public StoreInventoryOrderedQuantity: number;\n public ItemId: string;\n public ProductId: number;\n public ProductVariant: string;\n public ItemName: string;\n public SerialNumber: string;\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public UnitOfMeasureSymbol: string;\n public RequestedShipDate: Date;\n public RequestedDeliveryDate: Date;\n public RequestedReceiptDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public CreatedDate: Date;\n public TotalAmount: number;\n public Balance: number;\n public ShippingAddress: Entities.Address;\n public DetailedOrderStatusValue: number;\n public DetailedLineStatusValue: number;\n public ChannelTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPersonStoreId = \n odataObject.SalesPersonStoreId;\n \n this.SalesPersonId = \n odataObject.SalesPersonId;\n \n this.SalesPersonFirstName = \n odataObject.SalesPersonFirstName;\n \n this.SalesPersonLastName = \n odataObject.SalesPersonLastName;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n if (odataObject.FulfillmentDeliveryType == null) {\n this.FulfillmentDeliveryType = undefined;\n } else if (odataObject.FulfillmentDeliveryType['@odata.type'] == null) {\n this.FulfillmentDeliveryType = new FulfillmentLineDeliveryTypeClass(odataObject.FulfillmentDeliveryType);\n } else {\n var className: string = odataObject.FulfillmentDeliveryType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentDeliveryType = new entityDictionary[className](odataObject.FulfillmentDeliveryType)\n }\n }\n\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.StoreInventoryTotalQuantity = \n (odataObject.StoreInventoryTotalQuantity != null) ? parseFloat(odataObject.StoreInventoryTotalQuantity) : undefined;\n \n this.StoreInventoryReservedQuantity = \n (odataObject.StoreInventoryReservedQuantity != null) ? parseFloat(odataObject.StoreInventoryReservedQuantity) : undefined;\n \n this.StoreInventoryOrderedQuantity = \n (odataObject.StoreInventoryOrderedQuantity != null) ? parseFloat(odataObject.StoreInventoryOrderedQuantity) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductVariant = \n odataObject.ProductVariant;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.RequestedShipDate = \n (odataObject.RequestedShipDate instanceof Date) ? odataObject.RequestedShipDate\n : (odataObject.RequestedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptDate = \n (odataObject.RequestedReceiptDate instanceof Date) ? odataObject.RequestedReceiptDate\n : (odataObject.RequestedReceiptDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDate = \n (odataObject.CreatedDate instanceof Date) ? odataObject.CreatedDate\n : (odataObject.CreatedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.ChannelTypeValue = \n odataObject.ChannelTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineClass'] = FulfillmentLineClass;\n \n /**\n * FulfillmentLineSearchCriteria entity class.\n */\n export class FulfillmentLineSearchCriteriaClass implements Entities.FulfillmentLineSearchCriteria {\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public SalesId: string;\n public OrderCreatedStartDate: Date;\n public OrderCreatedEndDate: Date;\n public ReceiptId: string;\n public StoreId: string;\n public ChannelReferenceId: string;\n public RequestedReceiptStartDate: Date;\n public RequestedReceiptEndDate: Date;\n public RequestedDeliveryStartDate: Date;\n public RequestedDeliveryEndDate: Date;\n public FulfillmentStatusValues: number[];\n public DeliveryModeCode: string;\n public WarehouseId: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public DeliveryTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.OrderCreatedStartDate = \n (odataObject.OrderCreatedStartDate instanceof Date) ? odataObject.OrderCreatedStartDate\n : (odataObject.OrderCreatedStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OrderCreatedEndDate = \n (odataObject.OrderCreatedEndDate instanceof Date) ? odataObject.OrderCreatedEndDate\n : (odataObject.OrderCreatedEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.RequestedReceiptStartDate = \n (odataObject.RequestedReceiptStartDate instanceof Date) ? odataObject.RequestedReceiptStartDate\n : (odataObject.RequestedReceiptStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptEndDate = \n (odataObject.RequestedReceiptEndDate instanceof Date) ? odataObject.RequestedReceiptEndDate\n : (odataObject.RequestedReceiptEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryStartDate = \n (odataObject.RequestedDeliveryStartDate instanceof Date) ? odataObject.RequestedDeliveryStartDate\n : (odataObject.RequestedDeliveryStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryEndDate = \n (odataObject.RequestedDeliveryEndDate instanceof Date) ? odataObject.RequestedDeliveryEndDate\n : (odataObject.RequestedDeliveryEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FulfillmentStatusValues = undefined;\n if (odataObject.FulfillmentStatusValues) {\n this.FulfillmentStatusValues = [];\n for (var i = 0; i < odataObject.FulfillmentStatusValues.length; i++) {\n if (odataObject.FulfillmentStatusValues[i] != null) {\n this.FulfillmentStatusValues[i] = \n odataObject.FulfillmentStatusValues[i];\n } else {\n this.FulfillmentStatusValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineSearchCriteriaClass'] = FulfillmentLineSearchCriteriaClass;\n \n /**\n * Comment entity class.\n */\n export class CommentClass implements Entities.Comment {\n public RecordId: number;\n public AuthorStaffId: string;\n public AuthorName: string;\n public Text: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AuthorStaffId = \n odataObject.AuthorStaffId;\n \n this.AuthorName = \n odataObject.AuthorName;\n \n this.Text = \n odataObject.Text;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommentClass'] = CommentClass;\n \n /**\n * AddressPurpose entity class.\n */\n export class AddressPurposeClass implements Entities.AddressPurpose {\n public RecordId: number;\n public AddressType: number;\n public Name: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AddressType = \n odataObject.AddressType;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressPurposeClass'] = AddressPurposeClass;\n \n /**\n * DeliveryChargeLine entity class.\n */\n export class DeliveryChargeLineClass implements Entities.DeliveryChargeLine {\n public ChargeCode: string;\n public CurrencyCode: string;\n public CalculatedAmount: number;\n public Description: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryChargeLineClass'] = DeliveryChargeLineClass;\n \n /**\n * ExtensionPackageDefinition entity class.\n */\n export class ExtensionPackageDefinitionClass implements Entities.ExtensionPackageDefinition {\n public Name: string;\n public Publisher: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Publisher = \n odataObject.Publisher;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionPackageDefinitionClass'] = ExtensionPackageDefinitionClass;\n \n /**\n * ReturnPolicy entity class.\n */\n export class ReturnPolicyClass implements Entities.ReturnPolicy {\n public RecordId: number;\n public TenderTypePolicies: Entities.TenderTypePolicy[];\n public IsManagerOverrideEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TenderTypePolicies = undefined;\n if (odataObject.TenderTypePolicies) {\n this.TenderTypePolicies = [];\n for (var i = 0; i < odataObject.TenderTypePolicies.length; i++) {\n if (odataObject.TenderTypePolicies[i] != null) {\n if (odataObject.TenderTypePolicies[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderTypePolicies[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderTypePolicies[i] = new entityDictionary[className](odataObject.TenderTypePolicies[i])\n }\n } else {\n this.TenderTypePolicies[i] = new TenderTypePolicyClass(odataObject.TenderTypePolicies[i]);\n }\n } else {\n this.TenderTypePolicies[i] = undefined;\n }\n }\n }\n \n this.IsManagerOverrideEnabled = \n odataObject.IsManagerOverrideEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnPolicyClass'] = ReturnPolicyClass;\n \n /**\n * TenderTypeAmount entity class.\n */\n export class TenderTypeAmountClass implements Entities.TenderTypeAmount {\n public TenderTypeId: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeAmountClass'] = TenderTypeAmountClass;\n \n /**\n * FeatureState entity class.\n */\n export class FeatureStateClass implements Entities.FeatureState {\n public Name: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FeatureStateClass'] = FeatureStateClass;\n \n /**\n * Warranty entity class.\n */\n export class WarrantyClass\n extends SimpleProductClass\n implements Entities.Warranty {\n public DurationUnitValue: number;\n public Duration: number;\n public ApplicablePriceRangeBaseTypeValue: number;\n public ApplicablePriceRangeMin: number;\n public ApplicablePriceRangeMax: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.DurationUnitValue = \n odataObject.DurationUnitValue;\n \n this.Duration = \n odataObject.Duration;\n \n this.ApplicablePriceRangeBaseTypeValue = \n odataObject.ApplicablePriceRangeBaseTypeValue;\n \n this.ApplicablePriceRangeMin = \n (odataObject.ApplicablePriceRangeMin != null) ? parseFloat(odataObject.ApplicablePriceRangeMin) : undefined;\n \n this.ApplicablePriceRangeMax = \n (odataObject.ApplicablePriceRangeMax != null) ? parseFloat(odataObject.ApplicablePriceRangeMax) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Warranty\";\n \n }\n }\n entityDictionary['WarrantyClass'] = WarrantyClass;\n \n /**\n * RecallInvoicedSalesLineLookup entity class.\n */\n export class RecallInvoicedSalesLineLookupClass implements Entities.RecallInvoicedSalesLineLookup {\n public InvoicedLineId: number;\n public Quantity: number;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoicedLineId = \n (odataObject.InvoicedLineId != null) ? parseInt(odataObject.InvoicedLineId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecallInvoicedSalesLineLookupClass'] = RecallInvoicedSalesLineLookupClass;\n \n /**\n * WarrantyGroup entity class.\n */\n export class WarrantyGroupClass implements Entities.WarrantyGroup {\n public Warranties: Entities.Warranty[];\n public RecordId: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Warranties = undefined;\n if (odataObject.Warranties) {\n this.Warranties = [];\n for (var i = 0; i < odataObject.Warranties.length; i++) {\n if (odataObject.Warranties[i] != null) {\n if (odataObject.Warranties[i]['@odata.type'] != null) {\n var className: string = odataObject.Warranties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Warranties[i] = new entityDictionary[className](odataObject.Warranties[i])\n }\n } else {\n this.Warranties[i] = new WarrantyClass(odataObject.Warranties[i]);\n }\n } else {\n this.Warranties[i] = undefined;\n }\n }\n }\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarrantyGroupClass'] = WarrantyGroupClass;\n \n /**\n * ProductWarrantiesMapping entity class.\n */\n export class ProductWarrantiesMappingClass implements Entities.ProductWarrantiesMapping {\n public WarrantyGroups: Entities.WarrantyGroup[];\n public WarrantableProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarrantyGroups = undefined;\n if (odataObject.WarrantyGroups) {\n this.WarrantyGroups = [];\n for (var i = 0; i < odataObject.WarrantyGroups.length; i++) {\n if (odataObject.WarrantyGroups[i] != null) {\n if (odataObject.WarrantyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.WarrantyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.WarrantyGroups[i] = new entityDictionary[className](odataObject.WarrantyGroups[i])\n }\n } else {\n this.WarrantyGroups[i] = new WarrantyGroupClass(odataObject.WarrantyGroups[i]);\n }\n } else {\n this.WarrantyGroups[i] = undefined;\n }\n }\n }\n \n this.WarrantableProductId = \n (odataObject.WarrantableProductId != null) ? parseInt(odataObject.WarrantableProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarrantiesMappingClass'] = ProductWarrantiesMappingClass;\n \n /**\n * FulfillmentLineContextualOperationsMap entity class.\n */\n export class FulfillmentLineContextualOperationsMapClass implements Entities.FulfillmentLineContextualOperationsMap {\n public FulfillmentLine: Entities.FulfillmentLine;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.FulfillmentLine == null) {\n this.FulfillmentLine = undefined;\n } else if (odataObject.FulfillmentLine['@odata.type'] == null) {\n this.FulfillmentLine = new FulfillmentLineClass(odataObject.FulfillmentLine);\n } else {\n var className: string = odataObject.FulfillmentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentLine = new entityDictionary[className](odataObject.FulfillmentLine)\n }\n }\n\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineContextualOperationsMapClass'] = FulfillmentLineContextualOperationsMapClass;\n \n /**\n * UserAlert entity class.\n */\n export class UserAlertClass implements Entities.UserAlert {\n public AlertSourceIdValue: number;\n public LocalizedMessage: string;\n public IsBlocking: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AlertSourceIdValue = \n odataObject.AlertSourceIdValue;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.IsBlocking = \n odataObject.IsBlocking;\n \n }\n }\n entityDictionary['UserAlertClass'] = UserAlertClass;\n \n /**\n * CartLineUserAlerts entity class.\n */\n export class CartLineUserAlertsClass implements Entities.CartLineUserAlerts {\n public LineIndex: number;\n public LineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIndex = \n odataObject.LineIndex;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineUserAlertsClass'] = CartLineUserAlertsClass;\n \n /**\n * FulfillmentLineUserAlerts entity class.\n */\n export class FulfillmentLineUserAlertsClass implements Entities.FulfillmentLineUserAlerts {\n public SalesId: string;\n public SalesLineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineUserAlertsClass'] = FulfillmentLineUserAlertsClass;\n \n /**\n * BusinessPartnerProspect entity class.\n */\n export class BusinessPartnerProspectClass implements Entities.BusinessPartnerProspect {\n public FirstName: string;\n public LastName: string;\n public CompanyName: string;\n public Address: Entities.Address;\n public JobTitle: string;\n public Department: string;\n public CompanySize: number;\n public Comments: string;\n public LastOperationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.CompanyName = \n odataObject.CompanyName;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.JobTitle = \n odataObject.JobTitle;\n \n this.Department = \n odataObject.Department;\n \n this.CompanySize = \n odataObject.CompanySize;\n \n this.Comments = \n odataObject.Comments;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerProspectClass'] = BusinessPartnerProspectClass;\n \n /**\n * ChannelSearchCriteria entity class.\n */\n export class ChannelSearchCriteriaClass implements Entities.ChannelSearchCriteria {\n public SearchLocationValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelSearchCriteriaClass'] = ChannelSearchCriteriaClass;\n \n /**\n * BusinessPartnerOperation entity class.\n */\n export class BusinessPartnerOperationClass implements Entities.BusinessPartnerOperation {\n public TypeValue: number;\n public StatusValue: number;\n public Value: string;\n public Description: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Value = \n odataObject.Value;\n \n this.Description = \n odataObject.Description;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationClass'] = BusinessPartnerOperationClass;\n \n /**\n * BusinessPartnerOperationRequest entity class.\n */\n export class BusinessPartnerOperationRequestClass implements Entities.BusinessPartnerOperationRequest {\n public TypeValue: number;\n public StatusValue: number;\n public CreatedDateTime: Date;\n public Details: Entities.BusinessPartnerOperationRequestDetails;\n public UserId: string;\n public UserFirstName: string;\n public UserLastName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.Details == null) {\n this.Details = undefined;\n } else if (odataObject.Details['@odata.type'] == null) {\n this.Details = new BusinessPartnerOperationRequestDetailsClass(odataObject.Details);\n } else {\n var className: string = odataObject.Details['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Details = new entityDictionary[className](odataObject.Details)\n }\n }\n\n \n this.UserId = \n odataObject.UserId;\n \n this.UserFirstName = \n odataObject.UserFirstName;\n \n this.UserLastName = \n odataObject.UserLastName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestClass'] = BusinessPartnerOperationRequestClass;\n \n /**\n * ReceiptTypesByFormatType entity class.\n */\n export class ReceiptTypesByFormatTypeClass implements Entities.ReceiptTypesByFormatType {\n public ReceiptOutputFormatType: Entities.ReceiptOutputFormatType;\n public ReceiptTypesValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ReceiptOutputFormatType == null) {\n this.ReceiptOutputFormatType = undefined;\n } else if (odataObject.ReceiptOutputFormatType['@odata.type'] == null) {\n this.ReceiptOutputFormatType = new ReceiptOutputFormatTypeClass(odataObject.ReceiptOutputFormatType);\n } else {\n var className: string = odataObject.ReceiptOutputFormatType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptOutputFormatType = new entityDictionary[className](odataObject.ReceiptOutputFormatType)\n }\n }\n\n \n this.ReceiptTypesValues = undefined;\n if (odataObject.ReceiptTypesValues) {\n this.ReceiptTypesValues = [];\n for (var i = 0; i < odataObject.ReceiptTypesValues.length; i++) {\n if (odataObject.ReceiptTypesValues[i] != null) {\n this.ReceiptTypesValues[i] = \n odataObject.ReceiptTypesValues[i];\n } else {\n this.ReceiptTypesValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptTypesByFormatTypeClass'] = ReceiptTypesByFormatTypeClass;\n \n /**\n * InventoryJournalNameSearchCriteria entity class.\n */\n export class InventoryJournalNameSearchCriteriaClass implements Entities.InventoryJournalNameSearchCriteria {\n public JournalNameIds: string[];\n public DocumentTypeValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalNameIds = undefined;\n if (odataObject.JournalNameIds) {\n this.JournalNameIds = [];\n for (var i = 0; i < odataObject.JournalNameIds.length; i++) {\n if (odataObject.JournalNameIds[i] != null) {\n this.JournalNameIds[i] = \n odataObject.JournalNameIds[i];\n } else {\n this.JournalNameIds[i] = undefined;\n }\n }\n }\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameSearchCriteriaClass'] = InventoryJournalNameSearchCriteriaClass;\n \n /**\n * AssortedProductIdentity entity class.\n */\n export class AssortedProductIdentityClass implements Entities.AssortedProductIdentity {\n public ProductId: number;\n public IsRemoteProduct: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.IsRemoteProduct = \n odataObject.IsRemoteProduct;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AssortedProductIdentityClass'] = AssortedProductIdentityClass;\n \n /**\n * ProductExistenceId entity class.\n */\n export class ProductExistenceIdClass implements Entities.ProductExistenceId {\n public ProductId: number;\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceIdClass'] = ProductExistenceIdClass;\n \n /**\n * ProductExistenceCriteria entity class.\n */\n export class ProductExistenceCriteriaClass implements Entities.ProductExistenceCriteria {\n public ChannelId: number;\n public CatalogId: number;\n public Ids: Entities.ProductExistenceId[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n if (odataObject.Ids[i]['@odata.type'] != null) {\n var className: string = odataObject.Ids[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Ids[i] = new entityDictionary[className](odataObject.Ids[i])\n }\n } else {\n this.Ids[i] = new ProductExistenceIdClass(odataObject.Ids[i]);\n }\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceCriteriaClass'] = ProductExistenceCriteriaClass;\n \n /**\n * ChecklistTask entity class.\n */\n export class ChecklistTaskClass implements Entities.ChecklistTask {\n public Version: string;\n public InstructionsVersion: string;\n public AssignedToPersonnelNumbers: string[];\n public AssignedToExternalSubId: string;\n public Id: string;\n public Name: string;\n public Description: string;\n public DueDateTime: Date;\n public DeepLinkTypeValue: number;\n public DeepLink: string;\n public DeepLinkPosOperationName: string;\n public ContactPersonPersonnelNumber: string;\n public Instructions: string;\n public StatusValue: number;\n public CompletionDateTime: Date;\n public ResolvedByPersonnelNumber: string;\n public ChecklistId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Version = \n odataObject.Version;\n \n this.InstructionsVersion = \n odataObject.InstructionsVersion;\n \n this.AssignedToPersonnelNumbers = undefined;\n if (odataObject.AssignedToPersonnelNumbers) {\n this.AssignedToPersonnelNumbers = [];\n for (var i = 0; i < odataObject.AssignedToPersonnelNumbers.length; i++) {\n if (odataObject.AssignedToPersonnelNumbers[i] != null) {\n this.AssignedToPersonnelNumbers[i] = \n odataObject.AssignedToPersonnelNumbers[i];\n } else {\n this.AssignedToPersonnelNumbers[i] = undefined;\n }\n }\n }\n \n this.AssignedToExternalSubId = \n odataObject.AssignedToExternalSubId;\n \n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeepLinkTypeValue = \n odataObject.DeepLinkTypeValue;\n \n this.DeepLink = \n odataObject.DeepLink;\n \n this.DeepLinkPosOperationName = \n odataObject.DeepLinkPosOperationName;\n \n this.ContactPersonPersonnelNumber = \n odataObject.ContactPersonPersonnelNumber;\n \n this.Instructions = \n odataObject.Instructions;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CompletionDateTime = \n (odataObject.CompletionDateTime instanceof Date) ? odataObject.CompletionDateTime\n : (odataObject.CompletionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CompletionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResolvedByPersonnelNumber = \n odataObject.ResolvedByPersonnelNumber;\n \n this.ChecklistId = \n odataObject.ChecklistId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskClass'] = ChecklistTaskClass;\n \n /**\n * MediaLocation entity class.\n */\n export class MediaLocationClass implements Entities.MediaLocation {\n public Uri: string;\n public AltText: string;\n public IsDefault: boolean;\n public IsSelfHosted: boolean;\n public Priority: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Uri = \n odataObject.Uri;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.Priority = \n odataObject.Priority;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaLocationClass'] = MediaLocationClass;\n \n /**\n * EmployeeActivity entity class.\n */\n export class EmployeeActivityClass implements Entities.EmployeeActivity {\n public StaffId: string;\n public StaffName: string;\n public Activity: string;\n public ActivityDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValue: number;\n public BreakCategory: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.StaffName = \n odataObject.StaffName;\n \n this.Activity = \n odataObject.Activity;\n \n this.ActivityDateTimeOffset = \n (odataObject.ActivityDateTimeOffset instanceof Date) ? odataObject.ActivityDateTimeOffset\n : (odataObject.ActivityDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValue = \n odataObject.EmployeeActivityTypeValue;\n \n this.BreakCategory = \n odataObject.BreakCategory;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeActivityClass'] = EmployeeActivityClass;\n \n /**\n * CustomerRefiner entity class.\n */\n export class CustomerRefinerClass\n extends SearchRefinerClass\n implements Entities.CustomerRefiner {\n public SourceValue: number;\n public Values: Entities.CustomerRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new CustomerRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefiner\";\n \n }\n }\n entityDictionary['CustomerRefinerClass'] = CustomerRefinerClass;\n \n /**\n * TokenizedPaymentCard entity class.\n */\n export class TokenizedPaymentCardClass implements Entities.TokenizedPaymentCard {\n public IsSwipe: boolean;\n public TenderType: string;\n public CardTokenInfo: Entities.CardTokenInfo;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.TenderType = \n odataObject.TenderType;\n \n if (odataObject.CardTokenInfo == null) {\n this.CardTokenInfo = undefined;\n } else if (odataObject.CardTokenInfo['@odata.type'] == null) {\n this.CardTokenInfo = new CardTokenInfoClass(odataObject.CardTokenInfo);\n } else {\n var className: string = odataObject.CardTokenInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardTokenInfo = new entityDictionary[className](odataObject.CardTokenInfo)\n }\n }\n\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TokenizedPaymentCardClass'] = TokenizedPaymentCardClass;\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity class.\n */\n export class ProductDimensionAvailabilitySearchCriteriaClass implements Entities.ProductDimensionAvailabilitySearchCriteria {\n public RequestedDimensionTypeValue: number;\n public MatchingDimensionValues: Entities.ProductDimension[];\n public DefaultWarehouseOnly: boolean;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedDimensionTypeValue = \n odataObject.RequestedDimensionTypeValue;\n \n this.MatchingDimensionValues = undefined;\n if (odataObject.MatchingDimensionValues) {\n this.MatchingDimensionValues = [];\n for (var i = 0; i < odataObject.MatchingDimensionValues.length; i++) {\n if (odataObject.MatchingDimensionValues[i] != null) {\n if (odataObject.MatchingDimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MatchingDimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MatchingDimensionValues[i] = new entityDictionary[className](odataObject.MatchingDimensionValues[i])\n }\n } else {\n this.MatchingDimensionValues[i] = new ProductDimensionClass(odataObject.MatchingDimensionValues[i]);\n }\n } else {\n this.MatchingDimensionValues[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductDimensionAvailabilitySearchCriteriaClass'] = ProductDimensionAvailabilitySearchCriteriaClass;\n \n /**\n * LineShippingAddress entity class.\n */\n export class LineShippingAddressClass implements Entities.LineShippingAddress {\n public LineId: string;\n public ShippingAddress: Entities.Address;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n }\n }\n entityDictionary['LineShippingAddressClass'] = LineShippingAddressClass;\n \n /**\n * CartDeliveryPreferences entity class.\n */\n export class CartDeliveryPreferencesClass implements Entities.CartDeliveryPreferences {\n public HeaderDeliveryPreferenceTypeValues: number[];\n public CartLineDeliveryPreferences: Entities.CartLineDeliveryPreference[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderDeliveryPreferenceTypeValues = undefined;\n if (odataObject.HeaderDeliveryPreferenceTypeValues) {\n this.HeaderDeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.HeaderDeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.HeaderDeliveryPreferenceTypeValues[i] != null) {\n this.HeaderDeliveryPreferenceTypeValues[i] = \n odataObject.HeaderDeliveryPreferenceTypeValues[i];\n } else {\n this.HeaderDeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n this.CartLineDeliveryPreferences = undefined;\n if (odataObject.CartLineDeliveryPreferences) {\n this.CartLineDeliveryPreferences = [];\n for (var i = 0; i < odataObject.CartLineDeliveryPreferences.length; i++) {\n if (odataObject.CartLineDeliveryPreferences[i] != null) {\n if (odataObject.CartLineDeliveryPreferences[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLineDeliveryPreferences[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLineDeliveryPreferences[i] = new entityDictionary[className](odataObject.CartLineDeliveryPreferences[i])\n }\n } else {\n this.CartLineDeliveryPreferences[i] = new CartLineDeliveryPreferenceClass(odataObject.CartLineDeliveryPreferences[i]);\n }\n } else {\n this.CartLineDeliveryPreferences[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartDeliveryPreferencesClass'] = CartDeliveryPreferencesClass;\n \n /**\n * LineDeliverySpecification entity class.\n */\n export class LineDeliverySpecificationClass implements Entities.LineDeliverySpecification {\n public LineId: string;\n public DeliverySpecification: Entities.DeliverySpecification;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.DeliverySpecification == null) {\n this.DeliverySpecification = undefined;\n } else if (odataObject.DeliverySpecification['@odata.type'] == null) {\n this.DeliverySpecification = new DeliverySpecificationClass(odataObject.DeliverySpecification);\n } else {\n var className: string = odataObject.DeliverySpecification['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliverySpecification = new entityDictionary[className](odataObject.DeliverySpecification)\n }\n }\n\n \n }\n }\n entityDictionary['LineDeliverySpecificationClass'] = LineDeliverySpecificationClass;\n \n /**\n * DeliverySpecification entity class.\n */\n export class DeliverySpecificationClass implements Entities.DeliverySpecification {\n public DeliveryModeId: string;\n public DeliveryPreferenceTypeValue: number;\n public DeliveryAddress: Entities.Address;\n public RequestedDeliveryDate: Date;\n public PickUpStoreId: string;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public ShipFromStoreId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.DeliveryPreferenceTypeValue = \n odataObject.DeliveryPreferenceTypeValue;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickUpStoreId = \n odataObject.PickUpStoreId;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.ShipFromStoreId = \n odataObject.ShipFromStoreId;\n \n }\n }\n entityDictionary['DeliverySpecificationClass'] = DeliverySpecificationClass;\n \n /**\n * OrderSearchCriteria entity class.\n */\n export class OrderSearchCriteriaClass implements Entities.OrderSearchCriteria {\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public EmailAddress: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public SalesId: string;\n public ReceiptId: string;\n public OrderStatusValues: number[];\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ChannelReferenceId: string;\n public StoreId: string;\n public OrderType: number;\n public CustomFilters: Entities.SearchFilter[];\n public FulfillmentTypeValues: number[];\n public DeliveryMode: string;\n public PickupStartDate: Date;\n public PickupEndDate: Date;\n public PickupTimeslotStartTime: number;\n public PickupTimeslotEndTime: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.OrderStatusValues = undefined;\n if (odataObject.OrderStatusValues) {\n this.OrderStatusValues = [];\n for (var i = 0; i < odataObject.OrderStatusValues.length; i++) {\n if (odataObject.OrderStatusValues[i] != null) {\n this.OrderStatusValues[i] = \n odataObject.OrderStatusValues[i];\n } else {\n this.OrderStatusValues[i] = undefined;\n }\n }\n }\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.OrderType = \n odataObject.OrderType;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.FulfillmentTypeValues = undefined;\n if (odataObject.FulfillmentTypeValues) {\n this.FulfillmentTypeValues = [];\n for (var i = 0; i < odataObject.FulfillmentTypeValues.length; i++) {\n if (odataObject.FulfillmentTypeValues[i] != null) {\n this.FulfillmentTypeValues[i] = \n odataObject.FulfillmentTypeValues[i];\n } else {\n this.FulfillmentTypeValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.PickupStartDate = \n (odataObject.PickupStartDate instanceof Date) ? odataObject.PickupStartDate\n : (odataObject.PickupStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupEndDate = \n (odataObject.PickupEndDate instanceof Date) ? odataObject.PickupEndDate\n : (odataObject.PickupEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartTime = \n odataObject.PickupTimeslotStartTime;\n \n this.PickupTimeslotEndTime = \n odataObject.PickupTimeslotEndTime;\n \n }\n }\n entityDictionary['OrderSearchCriteriaClass'] = OrderSearchCriteriaClass;\n \n /**\n * ChecklistSearchCriteria entity class.\n */\n export class ChecklistSearchCriteriaClass implements Entities.ChecklistSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public ChecklistIds: string[];\n public StatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.ChecklistIds = undefined;\n if (odataObject.ChecklistIds) {\n this.ChecklistIds = [];\n for (var i = 0; i < odataObject.ChecklistIds.length; i++) {\n if (odataObject.ChecklistIds[i] != null) {\n this.ChecklistIds[i] = \n odataObject.ChecklistIds[i];\n } else {\n this.ChecklistIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistSearchCriteriaClass'] = ChecklistSearchCriteriaClass;\n \n /**\n * TaskSearchCriteria entity class.\n */\n export class TaskSearchCriteriaClass implements Entities.TaskSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public TaskIds: string[];\n public StatusValues: number[];\n public FilterMyTasks: boolean;\n public FilterOverdueTasks: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.TaskIds = undefined;\n if (odataObject.TaskIds) {\n this.TaskIds = [];\n for (var i = 0; i < odataObject.TaskIds.length; i++) {\n if (odataObject.TaskIds[i] != null) {\n this.TaskIds[i] = \n odataObject.TaskIds[i];\n } else {\n this.TaskIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.FilterMyTasks = \n odataObject.FilterMyTasks;\n \n this.FilterOverdueTasks = \n odataObject.FilterOverdueTasks;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaskSearchCriteriaClass'] = TaskSearchCriteriaClass;\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity class.\n */\n export class ChecklistTaskTeamsIntegrationConfigurationClass implements Entities.ChecklistTaskTeamsIntegrationConfiguration {\n public IsEnabled: boolean;\n public MicrosoftGraphResource: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.MicrosoftGraphResource = \n odataObject.MicrosoftGraphResource;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskTeamsIntegrationConfigurationClass'] = ChecklistTaskTeamsIntegrationConfigurationClass;\n \n /**\n * ReturnCartLine entity class.\n */\n export class ReturnCartLineClass implements Entities.ReturnCartLine {\n public Description: string;\n public ItemId: string;\n public ProductId: number;\n public Quantity: number;\n public ReturnLineNumber: number;\n public ReturnTransactionId: string;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Price: number;\n public IsPriceKeyedIn: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n }\n }\n entityDictionary['ReturnCartLineClass'] = ReturnCartLineClass;\n \n /**\n * TenderDiscountLine entity class.\n */\n export class TenderDiscountLineClass implements Entities.TenderDiscountLine {\n public DiscountAmount: number;\n public PaymentAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDiscountLineClass'] = TenderDiscountLineClass;\n \n /**\n * ReceiptRetrievalCriteria entity class.\n */\n export class ReceiptRetrievalCriteriaClass implements Entities.ReceiptRetrievalCriteria {\n public IsCopy: boolean;\n public IsRemoteTransaction: boolean;\n public IsPreview: boolean;\n public QueryBySalesId: boolean;\n public ReceiptTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public HardwareProfileId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsCopy = \n odataObject.IsCopy;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.IsPreview = \n odataObject.IsPreview;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n }\n }\n entityDictionary['ReceiptRetrievalCriteriaClass'] = ReceiptRetrievalCriteriaClass;\n \n /**\n * CartSearchCriteria entity class.\n */\n export class CartSearchCriteriaClass implements Entities.CartSearchCriteria {\n public CartId: string;\n public ExpectedCartVersion: number;\n public CustomerAccountNumber: string;\n public IncludeAnonymous: boolean;\n public SuspendedOnly: boolean;\n public CartTypeValue: number;\n public LastModifiedDateTimeFrom: Date;\n public LastModifiedDateTimeTo: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CartId = \n odataObject.CartId;\n \n this.ExpectedCartVersion = \n (odataObject.ExpectedCartVersion != null) ? parseInt(odataObject.ExpectedCartVersion, 10) : undefined;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.IncludeAnonymous = \n odataObject.IncludeAnonymous;\n \n this.SuspendedOnly = \n odataObject.SuspendedOnly;\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.LastModifiedDateTimeFrom = \n (odataObject.LastModifiedDateTimeFrom instanceof Date) ? odataObject.LastModifiedDateTimeFrom\n : (odataObject.LastModifiedDateTimeFrom != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastModifiedDateTimeTo = \n (odataObject.LastModifiedDateTimeTo instanceof Date) ? odataObject.LastModifiedDateTimeTo\n : (odataObject.LastModifiedDateTimeTo != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['CartSearchCriteriaClass'] = CartSearchCriteriaClass;\n \n /**\n * RetrievePaymentResultSettings entity class.\n */\n export class RetrievePaymentResultSettingsClass implements Entities.RetrievePaymentResultSettings {\n public ReturnUrl: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnUrl = \n odataObject.ReturnUrl;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['RetrievePaymentResultSettingsClass'] = RetrievePaymentResultSettingsClass;\n \n /**\n * SearchReceiptCriteria entity class.\n */\n export class SearchReceiptCriteriaClass implements Entities.SearchReceiptCriteria {\n public TransactionId: string;\n public ReceiptTypeValue: number;\n public ReceiptTypesByFormatTypeCollection: Entities.ReceiptTypesByFormatType[];\n public IsCopy: boolean;\n public GiftReceiptLineNumbers: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypesByFormatTypeCollection = undefined;\n if (odataObject.ReceiptTypesByFormatTypeCollection) {\n this.ReceiptTypesByFormatTypeCollection = [];\n for (var i = 0; i < odataObject.ReceiptTypesByFormatTypeCollection.length; i++) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i] != null) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptTypesByFormatTypeCollection[i] = new entityDictionary[className](odataObject.ReceiptTypesByFormatTypeCollection[i])\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = new ReceiptTypesByFormatTypeClass(odataObject.ReceiptTypesByFormatTypeCollection[i]);\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = undefined;\n }\n }\n }\n \n this.IsCopy = \n odataObject.IsCopy;\n \n this.GiftReceiptLineNumbers = undefined;\n if (odataObject.GiftReceiptLineNumbers) {\n this.GiftReceiptLineNumbers = [];\n for (var i = 0; i < odataObject.GiftReceiptLineNumbers.length; i++) {\n if (odataObject.GiftReceiptLineNumbers[i] != null) {\n this.GiftReceiptLineNumbers[i] = \n parseFloat(odataObject.GiftReceiptLineNumbers[i]);\n } else {\n this.GiftReceiptLineNumbers[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchReceiptCriteriaClass'] = SearchReceiptCriteriaClass;\n \n /**\n * ElectronicAddress entity class.\n */\n export class ElectronicAddressClass implements Entities.ElectronicAddress {\n public AddressTypeValue: number;\n public ExtensibleEAddressType: Entities.ExtensibleElectronicAddressType;\n public Address: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n if (odataObject.ExtensibleEAddressType == null) {\n this.ExtensibleEAddressType = undefined;\n } else if (odataObject.ExtensibleEAddressType['@odata.type'] == null) {\n this.ExtensibleEAddressType = new ExtensibleElectronicAddressTypeClass(odataObject.ExtensibleEAddressType);\n } else {\n var className: string = odataObject.ExtensibleEAddressType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEAddressType = new entityDictionary[className](odataObject.ExtensibleEAddressType)\n }\n }\n\n \n this.Address = \n odataObject.Address;\n \n }\n }\n entityDictionary['ElectronicAddressClass'] = ElectronicAddressClass;\n \n /**\n * ChannelReferenceLookupCriteria entity class.\n */\n export class ChannelReferenceLookupCriteriaClass implements Entities.ChannelReferenceLookupCriteria {\n public ChannelReferenceId: string;\n public SearchLocationValue: number;\n public ChannelReferenceAdditionalLookupCriteria: Entities.ChannelReferenceAdditionalLookupCriteria[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ChannelReferenceAdditionalLookupCriteria = undefined;\n if (odataObject.ChannelReferenceAdditionalLookupCriteria) {\n this.ChannelReferenceAdditionalLookupCriteria = [];\n for (var i = 0; i < odataObject.ChannelReferenceAdditionalLookupCriteria.length; i++) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i] != null) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new entityDictionary[className](odataObject.ChannelReferenceAdditionalLookupCriteria[i])\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new ChannelReferenceAdditionalLookupCriteriaClass(odataObject.ChannelReferenceAdditionalLookupCriteria[i]);\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelReferenceLookupCriteriaClass'] = ChannelReferenceLookupCriteriaClass;\n \n /**\n * FulfillmentLineParameter entity class.\n */\n export class FulfillmentLineParameterClass implements Entities.FulfillmentLineParameter {\n public SalesId: string;\n public SalesLineNumber: number;\n public Quantity: number;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineParameterClass'] = FulfillmentLineParameterClass;\n \n /**\n * ShipFulfillmentLine entity class.\n */\n export class ShipFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.ShipFulfillmentLine {\n public ProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShipFulfillmentLine\";\n \n }\n }\n entityDictionary['ShipFulfillmentLineClass'] = ShipFulfillmentLineClass;\n \n /**\n * RejectFulfillmentLine entity class.\n */\n export class RejectFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.RejectFulfillmentLine {\n public RejectedQuantity: number;\n public InfoCodeId: string;\n public SubInfoCodeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RejectedQuantity = \n (odataObject.RejectedQuantity != null) ? parseFloat(odataObject.RejectedQuantity) : undefined;\n \n this.InfoCodeId = \n odataObject.InfoCodeId;\n \n this.SubInfoCodeId = \n odataObject.SubInfoCodeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.RejectFulfillmentLine\";\n \n }\n }\n entityDictionary['RejectFulfillmentLineClass'] = RejectFulfillmentLineClass;\n \n /**\n * ReadChangedProductsSession entity class.\n */\n export class ReadChangedProductsSessionClass implements Entities.ReadChangedProductsSession {\n public Id: string;\n public TotalNumberOfProducts: number;\n public NumberOfProductsRead: number;\n public NumberOfProductsReadInCurrentPage: number;\n public NumberOfChangedProductsAcrossCatalogs: 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.NumberOfChangedProductsAcrossCatalogs = \n odataObject.NumberOfChangedProductsAcrossCatalogs;\n \n this.NextSynchronizationToken = \n odataObject.NextSynchronizationToken;\n \n this.IsInitialSync = \n odataObject.IsInitialSync;\n \n }\n }\n entityDictionary['ReadChangedProductsSessionClass'] = ReadChangedProductsSessionClass;\n \n /**\n * DeletedListingsResult entity class.\n */\n export class DeletedListingsResultClass implements Entities.DeletedListingsResult {\n public HasMorePublishedListings: boolean;\n public DeletedListings: Entities.ListingIdentity[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasMorePublishedListings = \n odataObject.HasMorePublishedListings;\n \n this.DeletedListings = undefined;\n if (odataObject.DeletedListings) {\n this.DeletedListings = [];\n for (var i = 0; i < odataObject.DeletedListings.length; i++) {\n if (odataObject.DeletedListings[i] != null) {\n if (odataObject.DeletedListings[i]['@odata.type'] != null) {\n var className: string = odataObject.DeletedListings[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeletedListings[i] = new entityDictionary[className](odataObject.DeletedListings[i])\n }\n } else {\n this.DeletedListings[i] = new ListingIdentityClass(odataObject.DeletedListings[i]);\n }\n } else {\n this.DeletedListings[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeletedListingsResultClass'] = DeletedListingsResultClass;\n \n /**\n * ProductRating entity class.\n */\n export class ProductRatingClass implements Entities.ProductRating {\n public ProductId: number;\n public AverageRating: number;\n public TotalRatings: number;\n public RatingDistribution: Entities.ProductRatingCount[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.RatingDistribution = undefined;\n if (odataObject.RatingDistribution) {\n this.RatingDistribution = [];\n for (var i = 0; i < odataObject.RatingDistribution.length; i++) {\n if (odataObject.RatingDistribution[i] != null) {\n if (odataObject.RatingDistribution[i]['@odata.type'] != null) {\n var className: string = odataObject.RatingDistribution[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RatingDistribution[i] = new entityDictionary[className](odataObject.RatingDistribution[i])\n }\n } else {\n this.RatingDistribution[i] = new ProductRatingCountClass(odataObject.RatingDistribution[i]);\n }\n } else {\n this.RatingDistribution[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingClass'] = ProductRatingClass;\n \n /**\n * ProductDeliveryOptions entity class.\n */\n export class ProductDeliveryOptionsClass implements Entities.ProductDeliveryOptions {\n public ProductId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDeliveryOptionsClass'] = ProductDeliveryOptionsClass;\n \n /**\n * ListingPublishStatus entity class.\n */\n export class ListingPublishStatusClass implements Entities.ListingPublishStatus {\n public PublishStatusValue: number;\n public ListingModifiedDateTime: Date;\n public ChannelListingId: string;\n public ChannelId: number;\n public CatalogId: number;\n public ProductId: number;\n public LanguageId: string;\n public AppliedActionValue: number;\n public StatusMessage: string;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PublishStatusValue = \n odataObject.PublishStatusValue;\n \n this.ListingModifiedDateTime = \n (odataObject.ListingModifiedDateTime instanceof Date) ? odataObject.ListingModifiedDateTime\n : (odataObject.ListingModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ListingModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelListingId = \n odataObject.ChannelListingId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AppliedActionValue = \n odataObject.AppliedActionValue;\n \n this.StatusMessage = \n odataObject.StatusMessage;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingPublishStatusClass'] = ListingPublishStatusClass;\n \n /**\n * OrgUnitLocationSearchCriteria entity class.\n */\n export class OrgUnitLocationSearchCriteriaClass implements Entities.OrgUnitLocationSearchCriteria {\n public OrgUnitNumber: string;\n public OrgUnitName: string;\n public InventoryLocationIds: string[];\n public DeliveryModeTypeFilterValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.InventoryLocationIds = undefined;\n if (odataObject.InventoryLocationIds) {\n this.InventoryLocationIds = [];\n for (var i = 0; i < odataObject.InventoryLocationIds.length; i++) {\n if (odataObject.InventoryLocationIds[i] != null) {\n this.InventoryLocationIds[i] = \n odataObject.InventoryLocationIds[i];\n } else {\n this.InventoryLocationIds[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n }\n }\n entityDictionary['OrgUnitLocationSearchCriteriaClass'] = OrgUnitLocationSearchCriteriaClass;\n \n /**\n * StoreHours entity class.\n */\n export class StoreHoursClass implements Entities.StoreHours {\n public RegularStoreHours: Entities.RegularStoreHours;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegularStoreHours == null) {\n this.RegularStoreHours = undefined;\n } else if (odataObject.RegularStoreHours['@odata.type'] == null) {\n this.RegularStoreHours = new RegularStoreHoursClass(odataObject.RegularStoreHours);\n } else {\n var className: string = odataObject.RegularStoreHours['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegularStoreHours = new entityDictionary[className](odataObject.RegularStoreHours)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreHoursClass'] = StoreHoursClass;\n \n /**\n * CartPromotions entity class.\n */\n export class CartPromotionsClass implements Entities.CartPromotions {\n public HeaderPromotions: string[];\n public CartLinePromotions: Entities.CartLinePromotion[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderPromotions = undefined;\n if (odataObject.HeaderPromotions) {\n this.HeaderPromotions = [];\n for (var i = 0; i < odataObject.HeaderPromotions.length; i++) {\n if (odataObject.HeaderPromotions[i] != null) {\n this.HeaderPromotions[i] = \n odataObject.HeaderPromotions[i];\n } else {\n this.HeaderPromotions[i] = undefined;\n }\n }\n }\n \n this.CartLinePromotions = undefined;\n if (odataObject.CartLinePromotions) {\n this.CartLinePromotions = [];\n for (var i = 0; i < odataObject.CartLinePromotions.length; i++) {\n if (odataObject.CartLinePromotions[i] != null) {\n if (odataObject.CartLinePromotions[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLinePromotions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLinePromotions[i] = new entityDictionary[className](odataObject.CartLinePromotions[i])\n }\n } else {\n this.CartLinePromotions[i] = new CartLinePromotionClass(odataObject.CartLinePromotions[i]);\n }\n } else {\n this.CartLinePromotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionsClass'] = CartPromotionsClass;\n \n /**\n * CartPromotionLine entity class.\n */\n export class CartPromotionLineClass implements Entities.CartPromotionLine {\n public LineId: string;\n public Promotion: Entities.Promotion;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.Promotion == null) {\n this.Promotion = undefined;\n } else if (odataObject.Promotion['@odata.type'] == null) {\n this.Promotion = new PromotionClass(odataObject.Promotion);\n } else {\n var className: string = odataObject.Promotion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Promotion = new entityDictionary[className](odataObject.Promotion)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionLineClass'] = CartPromotionLineClass;\n \n /**\n * ItemUnit entity class.\n */\n export class ItemUnitClass implements Entities.ItemUnit {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public Product: number;\n public DistinctProductVariant: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.Product = \n (odataObject.Product != null) ? parseInt(odataObject.Product, 10) : undefined;\n \n this.DistinctProductVariant = \n (odataObject.DistinctProductVariant != null) ? parseInt(odataObject.DistinctProductVariant, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemUnitClass'] = ItemUnitClass;\n \n /**\n * ProductAvailableQuantity entity class.\n */\n export class ProductAvailableQuantityClass implements Entities.ProductAvailableQuantity {\n public ProductId: number;\n public AvailableQuantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAvailableQuantityClass'] = ProductAvailableQuantityClass;\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity class.\n */\n export class OrgUnitAvailabilitySearchCriteriaClass implements Entities.OrgUnitAvailabilitySearchCriteria {\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n }\n }\n entityDictionary['OrgUnitAvailabilitySearchCriteriaClass'] = OrgUnitAvailabilitySearchCriteriaClass;\n \n /**\n * InvoiceSearchCriteria entity class.\n */\n export class InvoiceSearchCriteriaClass implements Entities.InvoiceSearchCriteria {\n public BusinessPartnerId: string;\n public CustomerId: string;\n public InvoiceIds: string[];\n public InvoiceTypeValues: number[];\n public InvoicePaidStatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.InvoiceIds = undefined;\n if (odataObject.InvoiceIds) {\n this.InvoiceIds = [];\n for (var i = 0; i < odataObject.InvoiceIds.length; i++) {\n if (odataObject.InvoiceIds[i] != null) {\n this.InvoiceIds[i] = \n odataObject.InvoiceIds[i];\n } else {\n this.InvoiceIds[i] = undefined;\n }\n }\n }\n \n this.InvoiceTypeValues = undefined;\n if (odataObject.InvoiceTypeValues) {\n this.InvoiceTypeValues = [];\n for (var i = 0; i < odataObject.InvoiceTypeValues.length; i++) {\n if (odataObject.InvoiceTypeValues[i] != null) {\n this.InvoiceTypeValues[i] = \n odataObject.InvoiceTypeValues[i];\n } else {\n this.InvoiceTypeValues[i] = undefined;\n }\n }\n }\n \n this.InvoicePaidStatusValues = undefined;\n if (odataObject.InvoicePaidStatusValues) {\n this.InvoicePaidStatusValues = [];\n for (var i = 0; i < odataObject.InvoicePaidStatusValues.length; i++) {\n if (odataObject.InvoicePaidStatusValues[i] != null) {\n this.InvoicePaidStatusValues[i] = \n odataObject.InvoicePaidStatusValues[i];\n } else {\n this.InvoicePaidStatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceSearchCriteriaClass'] = InvoiceSearchCriteriaClass;\n \n /**\n * InvoiceDetailsSearchCriteria entity class.\n */\n export class InvoiceDetailsSearchCriteriaClass implements Entities.InvoiceDetailsSearchCriteria {\n public InvoiceId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceDetailsSearchCriteriaClass'] = InvoiceDetailsSearchCriteriaClass;\n \n /**\n * PickAndPackSalesLineParameter entity class.\n */\n export class PickAndPackSalesLineParameterClass implements Entities.PickAndPackSalesLineParameter {\n public SalesLineNumber: number;\n public Quantity: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n }\n }\n entityDictionary['PickAndPackSalesLineParameterClass'] = PickAndPackSalesLineParameterClass;\n \n /**\n * ProductListSearchCriteria entity class.\n */\n export class ProductListSearchCriteriaClass implements Entities.ProductListSearchCriteria {\n public CustomerId: string;\n public ProductListId: string;\n public ProductListType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.ProductListId = \n odataObject.ProductListId;\n \n this.ProductListType = \n odataObject.ProductListType;\n \n }\n }\n entityDictionary['ProductListSearchCriteriaClass'] = ProductListSearchCriteriaClass;\n \n /**\n * ProjectionDomain entity class.\n */\n export class ProjectionDomainClass implements Entities.ProjectionDomain {\n public ChannelId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProjectionDomainClass'] = ProjectionDomainClass;\n \n /**\n * AffiliationLoyaltyTier entity class.\n */\n export class AffiliationLoyaltyTierClass implements Entities.AffiliationLoyaltyTier {\n public AffiliationId: number;\n public LoyaltyTierId: number;\n public AffiliationTypeValue: number;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public CustomerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationId = \n (odataObject.AffiliationId != null) ? parseInt(odataObject.AffiliationId, 10) : undefined;\n \n this.LoyaltyTierId = \n (odataObject.LoyaltyTierId != null) ? parseInt(odataObject.LoyaltyTierId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationLoyaltyTierClass'] = AffiliationLoyaltyTierClass;\n \n /**\n * ClientBookCustomerSearchCriteria entity class.\n */\n export class ClientBookCustomerSearchCriteriaClass implements Entities.ClientBookCustomerSearchCriteria {\n public FilterByCurrentEmployee: boolean;\n public Refinement: Entities.ClientBookRefinerValue[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FilterByCurrentEmployee = \n odataObject.FilterByCurrentEmployee;\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ClientBookRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerSearchCriteriaClass'] = ClientBookCustomerSearchCriteriaClass;\n \n /**\n * ClientBookCustomer entity class.\n */\n export class ClientBookCustomerClass implements Entities.ClientBookCustomer {\n public CustomerId: string;\n public Name: string;\n public Phone: string;\n public Email: string;\n public StaffId: string;\n public ImageUris: Entities.MediaLocation[];\n public Attributes: Entities.CustomerAttribute[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Name = \n odataObject.Name;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ImageUris = undefined;\n if (odataObject.ImageUris) {\n this.ImageUris = [];\n for (var i = 0; i < odataObject.ImageUris.length; i++) {\n if (odataObject.ImageUris[i] != null) {\n if (odataObject.ImageUris[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageUris[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageUris[i] = new entityDictionary[className](odataObject.ImageUris[i])\n }\n } else {\n this.ImageUris[i] = new MediaLocationClass(odataObject.ImageUris[i]);\n }\n } else {\n this.ImageUris[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerClass'] = ClientBookCustomerClass;\n \n /**\n * ClientBookChanges entity class.\n */\n export class ClientBookChangesClass implements Entities.ClientBookChanges {\n public Changes: Entities.ClientBookChange[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Changes = undefined;\n if (odataObject.Changes) {\n this.Changes = [];\n for (var i = 0; i < odataObject.Changes.length; i++) {\n if (odataObject.Changes[i] != null) {\n if (odataObject.Changes[i]['@odata.type'] != null) {\n var className: string = odataObject.Changes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Changes[i] = new entityDictionary[className](odataObject.Changes[i])\n }\n } else {\n this.Changes[i] = new ClientBookChangeClass(odataObject.Changes[i]);\n }\n } else {\n this.Changes[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookChangesClass'] = ClientBookChangesClass;\n \n /**\n * ChargeCode entity class.\n */\n export class ChargeCodeClass implements Entities.ChargeCode {\n public Code: string;\n public ModuleTypeValue: number;\n public Description: string;\n public ItemTaxGroupId: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeCodeClass'] = ChargeCodeClass;\n \n /**\n * PaymentMerchantInformation entity class.\n */\n export class PaymentMerchantInformationClass implements Entities.PaymentMerchantInformation {\n public PaymentConnectorPropertiesXml: string;\n public MerchantPropertiesHashValue: string;\n public ServiceAccountId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PaymentConnectorPropertiesXml = \n odataObject.PaymentConnectorPropertiesXml;\n \n this.MerchantPropertiesHashValue = \n odataObject.MerchantPropertiesHashValue;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentMerchantInformationClass'] = PaymentMerchantInformationClass;\n \n /**\n * StoreSafe entity class.\n */\n export class StoreSafeClass implements Entities.StoreSafe {\n public SafeNumber: string;\n public Name: string;\n public StoreNumber: string;\n public SafeBalance: number;\n public LastUpdatedTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SafeNumber = \n odataObject.SafeNumber;\n \n this.Name = \n odataObject.Name;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.SafeBalance = \n (odataObject.SafeBalance != null) ? parseFloat(odataObject.SafeBalance) : undefined;\n \n this.LastUpdatedTime = \n (odataObject.LastUpdatedTime instanceof Date) ? odataObject.LastUpdatedTime\n : (odataObject.LastUpdatedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdatedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreSafeClass'] = StoreSafeClass;\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity class.\n */\n export class InventoryDocumentReceiptSearchCriteriaClass implements Entities.InventoryDocumentReceiptSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentReceiptSearchCriteriaClass'] = InventoryDocumentReceiptSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass'] = InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecord {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public StaffId: string;\n public UpdateNowQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.UpdateNowQuantity = \n (odataObject.UpdateNowQuantity != null) ? parseFloat(odataObject.UpdateNowQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordClass'] = InventoryDocumentSourceDocumentLineCommitRecordClass;\n \n /**\n * CreateHardwareStationTokenResult entity class.\n */\n export class CreateHardwareStationTokenResultClass implements Entities.CreateHardwareStationTokenResult {\n public HardwareStationToken: string;\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HardwareStationToken = \n odataObject.HardwareStationToken;\n \n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreateHardwareStationTokenResultClass'] = CreateHardwareStationTokenResultClass;\n \n /**\n * ValidateHardwareStationTokenResult entity class.\n */\n export class ValidateHardwareStationTokenResultClass implements Entities.ValidateHardwareStationTokenResult {\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidateHardwareStationTokenResultClass'] = ValidateHardwareStationTokenResultClass;\n \n /**\n * MediaBlob entity class.\n */\n export class MediaBlobClass implements Entities.MediaBlob {\n public MediaType: string;\n public Content: string;\n public IsDefault: boolean;\n public AltText: string;\n public PictureId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MediaType = \n odataObject.MediaType;\n \n this.Content = \n odataObject.Content;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.AltText = \n odataObject.AltText;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaBlobClass'] = MediaBlobClass;\n \n /**\n * OnlineChannel entity class.\n */\n export class OnlineChannelClass implements Entities.OnlineChannel {\n public OnlineStoreCustomerTypeValue: number;\n public OnlineChannelName: string;\n public CurrencyCode: string;\n public EventNotificationProfileId: string;\n public RecordId: number;\n public OrgUnitTypeValue: number;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public InventoryLocationId: string;\n public ChannelProfile: Entities.ChannelProfile;\n public ChannelProperties: Entities.ChannelProperty[];\n public ChannelLanguages: Entities.ChannelLanguage[];\n public Contacts: Entities.OrgUnitContact[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public CountryRegions: Entities.CountryRegion[];\n \n // Navigation properties names\n public static countryRegionsPropertyName: string = \"CountryRegions\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OnlineStoreCustomerTypeValue = \n odataObject.OnlineStoreCustomerTypeValue;\n \n this.OnlineChannelName = \n odataObject.OnlineChannelName;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrgUnitTypeValue = \n odataObject.OrgUnitTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n if (odataObject.ChannelProfile == null) {\n this.ChannelProfile = undefined;\n } else if (odataObject.ChannelProfile['@odata.type'] == null) {\n this.ChannelProfile = new ChannelProfileClass(odataObject.ChannelProfile);\n } else {\n var className: string = odataObject.ChannelProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProfile = new entityDictionary[className](odataObject.ChannelProfile)\n }\n }\n\n \n this.ChannelProperties = undefined;\n if (odataObject.ChannelProperties) {\n this.ChannelProperties = [];\n for (var i = 0; i < odataObject.ChannelProperties.length; i++) {\n if (odataObject.ChannelProperties[i] != null) {\n if (odataObject.ChannelProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProperties[i] = new entityDictionary[className](odataObject.ChannelProperties[i])\n }\n } else {\n this.ChannelProperties[i] = new ChannelPropertyClass(odataObject.ChannelProperties[i]);\n }\n } else {\n this.ChannelProperties[i] = undefined;\n }\n }\n }\n \n this.ChannelLanguages = undefined;\n if (odataObject.ChannelLanguages) {\n this.ChannelLanguages = [];\n for (var i = 0; i < odataObject.ChannelLanguages.length; i++) {\n if (odataObject.ChannelLanguages[i] != null) {\n if (odataObject.ChannelLanguages[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelLanguages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelLanguages[i] = new entityDictionary[className](odataObject.ChannelLanguages[i])\n }\n } else {\n this.ChannelLanguages[i] = new ChannelLanguageClass(odataObject.ChannelLanguages[i]);\n }\n } else {\n this.ChannelLanguages[i] = undefined;\n }\n }\n }\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.CountryRegions = undefined;\n if (odataObject.CountryRegions) {\n this.CountryRegions = [];\n for (var i = 0; i < odataObject.CountryRegions.length; i++) {\n if (odataObject.CountryRegions[i] != null) {\n if (odataObject.CountryRegions[i]['@odata.type'] != null) {\n var className: string = odataObject.CountryRegions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CountryRegions[i] = new entityDictionary[className](odataObject.CountryRegions[i])\n }\n } else {\n this.CountryRegions[i] = new CountryRegionClass(odataObject.CountryRegions[i]);\n }\n } else {\n this.CountryRegions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OnlineChannelClass'] = OnlineChannelClass;\n \n /**\n * TerminalDataDownloadRequestInfo entity class.\n */\n export class TerminalDataDownloadRequestInfoClass implements Entities.TerminalDataDownloadRequestInfo {\n public TerminalId: string;\n public RequiresDataInitialization: boolean;\n public HasBeenInitializedBefore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.RequiresDataInitialization = \n odataObject.RequiresDataInitialization;\n \n this.HasBeenInitializedBefore = \n odataObject.HasBeenInitializedBefore;\n \n }\n }\n entityDictionary['TerminalDataDownloadRequestInfoClass'] = TerminalDataDownloadRequestInfoClass;\n \n /**\n * DataDownloadParameters entity class.\n */\n export class DataDownloadParametersClass implements Entities.DataDownloadParameters {\n public DownloadInterval: number;\n public DownloadSessions: Entities.DownloadSession[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DownloadInterval = \n odataObject.DownloadInterval;\n \n this.DownloadSessions = undefined;\n if (odataObject.DownloadSessions) {\n this.DownloadSessions = [];\n for (var i = 0; i < odataObject.DownloadSessions.length; i++) {\n if (odataObject.DownloadSessions[i] != null) {\n if (odataObject.DownloadSessions[i]['@odata.type'] != null) {\n var className: string = odataObject.DownloadSessions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DownloadSessions[i] = new entityDictionary[className](odataObject.DownloadSessions[i])\n }\n } else {\n this.DownloadSessions[i] = new DownloadSessionClass(odataObject.DownloadSessions[i]);\n }\n } else {\n this.DownloadSessions[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataDownloadParametersClass'] = DataDownloadParametersClass;\n \n /**\n * TerminalDataUploadRequestInfo entity class.\n */\n export class TerminalDataUploadRequestInfoClass implements Entities.TerminalDataUploadRequestInfo {\n public TerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n }\n }\n entityDictionary['TerminalDataUploadRequestInfoClass'] = TerminalDataUploadRequestInfoClass;\n \n /**\n * DataUploadParameters entity class.\n */\n export class DataUploadParametersClass implements Entities.DataUploadParameters {\n public UploadInterval: number;\n public UploadJobPackageRequests: Entities.UploadJobPackageRequest[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UploadInterval = \n odataObject.UploadInterval;\n \n this.UploadJobPackageRequests = undefined;\n if (odataObject.UploadJobPackageRequests) {\n this.UploadJobPackageRequests = [];\n for (var i = 0; i < odataObject.UploadJobPackageRequests.length; i++) {\n if (odataObject.UploadJobPackageRequests[i] != null) {\n if (odataObject.UploadJobPackageRequests[i]['@odata.type'] != null) {\n var className: string = odataObject.UploadJobPackageRequests[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UploadJobPackageRequests[i] = new entityDictionary[className](odataObject.UploadJobPackageRequests[i])\n }\n } else {\n this.UploadJobPackageRequests[i] = new UploadJobPackageRequestClass(odataObject.UploadJobPackageRequests[i]);\n }\n } else {\n this.UploadJobPackageRequests[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataUploadParametersClass'] = DataUploadParametersClass;\n \n /**\n * DownloadSession entity class.\n */\n export class DownloadSessionClass implements Entities.DownloadSession {\n public Id: number;\n public JobId: string;\n public JobDescription: string;\n public FileSize: number;\n public RowsAffected: number;\n public Checksum: string;\n public DateDownloaded: string;\n public DateRequested: string;\n public DataStoreName: string;\n public StatusValue: number;\n public Message: string;\n public DownloadLink: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.JobId = \n odataObject.JobId;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.FileSize = \n (odataObject.FileSize != null) ? parseInt(odataObject.FileSize, 10) : undefined;\n \n this.RowsAffected = \n odataObject.RowsAffected;\n \n this.Checksum = \n odataObject.Checksum;\n \n this.DateDownloaded = \n odataObject.DateDownloaded;\n \n this.DateRequested = \n odataObject.DateRequested;\n \n this.DataStoreName = \n odataObject.DataStoreName;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Message = \n odataObject.Message;\n \n this.DownloadLink = \n odataObject.DownloadLink;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DownloadSessionClass'] = DownloadSessionClass;\n \n /**\n * OfflineTerminalState entity class.\n */\n export class OfflineTerminalStateClass implements Entities.OfflineTerminalState {\n public TerminalId: string;\n public State: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.State = \n odataObject.State;\n \n }\n }\n entityDictionary['OfflineTerminalStateClass'] = OfflineTerminalStateClass;\n \n /**\n * LoyaltyRewardPointActivity entity class.\n */\n export class LoyaltyRewardPointActivityClass implements Entities.LoyaltyRewardPointActivity {\n public ActivityDate: Date;\n public LoyaltyRewardPointTimelineEntryType: string;\n public ExtensibleLoyaltyRewardPointActivityEntryTypeValue: number;\n public LoyaltyPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActivityDate = \n (odataObject.ActivityDate instanceof Date) ? odataObject.ActivityDate\n : (odataObject.ActivityDate != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyRewardPointTimelineEntryType = \n odataObject.LoyaltyRewardPointTimelineEntryType;\n \n this.ExtensibleLoyaltyRewardPointActivityEntryTypeValue = \n odataObject.ExtensibleLoyaltyRewardPointActivityEntryTypeValue;\n \n this.LoyaltyPoints = \n (odataObject.LoyaltyPoints != null) ? parseFloat(odataObject.LoyaltyPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointActivityClass'] = LoyaltyRewardPointActivityClass;\n \n /**\n * CurrencyRequest entity class.\n */\n export class CurrencyRequestClass implements Entities.CurrencyRequest {\n public AmountToConvert: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AmountToConvert = \n (odataObject.AmountToConvert != null) ? parseFloat(odataObject.AmountToConvert) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyRequestClass'] = CurrencyRequestClass;\n \n /**\n * HardwareStationProfile entity class.\n */\n export class HardwareStationProfileClass implements Entities.HardwareStationProfile {\n public RecordId: number;\n public HardwareStationId: string;\n public HardwareStationTypeValue: number;\n public HardwareProfileId: string;\n public HardwareStationName: string;\n public HardwareStationDescription: string;\n public HardwareStationUrl: string;\n public HardwareStationHostName: string;\n public HardwareStationEftTerminalId: string;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationId = \n odataObject.HardwareStationId;\n \n this.HardwareStationTypeValue = \n odataObject.HardwareStationTypeValue;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.HardwareStationName = \n odataObject.HardwareStationName;\n \n this.HardwareStationDescription = \n odataObject.HardwareStationDescription;\n \n this.HardwareStationUrl = \n odataObject.HardwareStationUrl;\n \n this.HardwareStationHostName = \n odataObject.HardwareStationHostName;\n \n this.HardwareStationEftTerminalId = \n odataObject.HardwareStationEftTerminalId;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareStationProfileClass'] = HardwareStationProfileClass;\n \n /**\n * NameValuePair entity class.\n */\n export class NameValuePairClass implements Entities.NameValuePair {\n public Name: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['NameValuePairClass'] = NameValuePairClass;\n \n /**\n * LinkToExistingCustomerResult entity class.\n */\n export class LinkToExistingCustomerResultClass implements Entities.LinkToExistingCustomerResult {\n public EmailAddress: string;\n public ExternalIdentityProvider: string;\n public ExternalIdentityLinkRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.ExternalIdentityProvider = \n odataObject.ExternalIdentityProvider;\n \n this.ExternalIdentityLinkRecordId = \n (odataObject.ExternalIdentityLinkRecordId != null) ? parseInt(odataObject.ExternalIdentityLinkRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['LinkToExistingCustomerResultClass'] = LinkToExistingCustomerResultClass;\n \n /**\n * OfflineSyncStatsLine entity class.\n */\n export class OfflineSyncStatsLineClass implements Entities.OfflineSyncStatsLine {\n public IsUploadJob: boolean;\n public JobDescription: string;\n public LastSyncDateTime: Date;\n public Status: string;\n public FileSize: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsUploadJob = \n odataObject.IsUploadJob;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.LastSyncDateTime = \n (odataObject.LastSyncDateTime instanceof Date) ? odataObject.LastSyncDateTime\n : (odataObject.LastSyncDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSyncDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.FileSize = \n odataObject.FileSize;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OfflineSyncStatsLineClass'] = OfflineSyncStatsLineClass;\n \n /**\n * StorageAccessToken entity class.\n */\n export class StorageAccessTokenClass implements Entities.StorageAccessToken {\n public Url: string;\n public SasKey: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.SasKey = \n odataObject.SasKey;\n \n }\n }\n entityDictionary['StorageAccessTokenClass'] = StorageAccessTokenClass;\n \n /**\n * TaskGuidesSearchResult entity class.\n */\n export class TaskGuidesSearchResultClass implements Entities.TaskGuidesSearchResult {\n public Lines: Entities.Line[];\n public FrameworkPublisherName: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.FrameworkPublisherName = \n odataObject.FrameworkPublisherName;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['TaskGuidesSearchResultClass'] = TaskGuidesSearchResultClass;\n \n /**\n * AuditEvent entity class.\n */\n export class AuditEventClass implements Entities.AuditEvent {\n public EventId: number;\n public EventIdString: string;\n public Channel: number;\n public Store: string;\n public Terminal: string;\n public UploadType: string;\n public EventType: string;\n public EventDateTime: Date;\n public DurationInMilliseconds: number;\n public Source: string;\n public EventMessage: string;\n public LogLevel: string;\n public Staff: string;\n public ShiftId: number;\n public ClosedShiftId: number;\n public ReferenceId: number;\n public RefChannel: number;\n public RefStore: string;\n public RefTerminal: string;\n public RefTransactionId: string;\n public AuditEventTypeValue: number;\n public FiscalTransactions: Entities.AuditEventFiscalTransaction[];\n public FiscalRegistrationLines: Entities.AuditEventFiscalRegistrationLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.EventIdString = \n odataObject.EventIdString;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.EventType = \n odataObject.EventType;\n \n this.EventDateTime = \n (odataObject.EventDateTime instanceof Date) ? odataObject.EventDateTime\n : (odataObject.EventDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EventDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DurationInMilliseconds = \n odataObject.DurationInMilliseconds;\n \n this.Source = \n odataObject.Source;\n \n this.EventMessage = \n odataObject.EventMessage;\n \n this.LogLevel = \n odataObject.LogLevel;\n \n this.Staff = \n odataObject.Staff;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ClosedShiftId = \n (odataObject.ClosedShiftId != null) ? parseInt(odataObject.ClosedShiftId, 10) : undefined;\n \n this.ReferenceId = \n (odataObject.ReferenceId != null) ? parseInt(odataObject.ReferenceId, 10) : undefined;\n \n this.RefChannel = \n (odataObject.RefChannel != null) ? parseInt(odataObject.RefChannel, 10) : undefined;\n \n this.RefStore = \n odataObject.RefStore;\n \n this.RefTerminal = \n odataObject.RefTerminal;\n \n this.RefTransactionId = \n odataObject.RefTransactionId;\n \n this.AuditEventTypeValue = \n odataObject.AuditEventTypeValue;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new AuditEventFiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.FiscalRegistrationLines = undefined;\n if (odataObject.FiscalRegistrationLines) {\n this.FiscalRegistrationLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationLines.length; i++) {\n if (odataObject.FiscalRegistrationLines[i] != null) {\n if (odataObject.FiscalRegistrationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationLines[i])\n }\n } else {\n this.FiscalRegistrationLines[i] = new AuditEventFiscalRegistrationLineClass(odataObject.FiscalRegistrationLines[i]);\n }\n } else {\n this.FiscalRegistrationLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventClass'] = AuditEventClass;\n \n /**\n * ItemAvailability entity class.\n */\n export class ItemAvailabilityClass implements Entities.ItemAvailability {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public InventoryLocationId: string;\n public ProductId: number;\n public AvailableQuantity: number;\n public OrderedSum: number;\n public PhysicalReserved: number;\n public UnitOfMeasure: string;\n public InventoryUnitOfMeasure: string;\n public InventoryUnitOfMeasureDescription: string;\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.OrderedSum = \n (odataObject.OrderedSum != null) ? parseFloat(odataObject.OrderedSum) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.InventoryUnitOfMeasure = \n odataObject.InventoryUnitOfMeasure;\n \n this.InventoryUnitOfMeasureDescription = \n odataObject.InventoryUnitOfMeasureDescription;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemAvailabilityClass'] = ItemAvailabilityClass;\n \n /**\n * InventoryAvailableToPromise entity class.\n */\n export class InventoryAvailableToPromiseClass\n extends ItemAvailabilityClass\n implements Entities.InventoryAvailableToPromise {\n public Date: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Date = \n odataObject.Date;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InventoryAvailableToPromise\";\n \n }\n }\n entityDictionary['InventoryAvailableToPromiseClass'] = InventoryAvailableToPromiseClass;\n \n /**\n * NotificationItem entity class.\n */\n export class NotificationItemClass implements Entities.NotificationItem {\n public Action: number;\n public ActionName: string;\n public NotificationDetails: Entities.NotificationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionName = \n odataObject.ActionName;\n \n this.NotificationDetails = undefined;\n if (odataObject.NotificationDetails) {\n this.NotificationDetails = [];\n for (var i = 0; i < odataObject.NotificationDetails.length; i++) {\n if (odataObject.NotificationDetails[i] != null) {\n if (odataObject.NotificationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.NotificationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NotificationDetails[i] = new entityDictionary[className](odataObject.NotificationDetails[i])\n }\n } else {\n this.NotificationDetails[i] = new NotificationDetailClass(odataObject.NotificationDetails[i]);\n }\n } else {\n this.NotificationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationItemClass'] = NotificationItemClass;\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity class.\n */\n export class FiscalIntegrationDocumentRetrievalCriteriaClass implements Entities.FiscalIntegrationDocumentRetrievalCriteria {\n public TransactionId: string;\n public IsRemoteTransaction: boolean;\n public QueryBySalesId: boolean;\n public FiscalRegistrationEventTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public DocumentContext: Entities.FiscalIntegrationDocumentContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.DocumentContext == null) {\n this.DocumentContext = undefined;\n } else if (odataObject.DocumentContext['@odata.type'] == null) {\n this.DocumentContext = new FiscalIntegrationDocumentContextClass(odataObject.DocumentContext);\n } else {\n var className: string = odataObject.DocumentContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentContext = new entityDictionary[className](odataObject.DocumentContext)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentRetrievalCriteriaClass'] = FiscalIntegrationDocumentRetrievalCriteriaClass;\n \n /**\n * FiscalIntegrationDocument entity class.\n */\n export class FiscalIntegrationDocumentClass implements Entities.FiscalIntegrationDocument {\n public Document: string;\n public DocumentGenerationResultTypeValue: number;\n public FiscalConnectorTechnicalProfile: Entities.FiscalIntegrationTechnicalProfile;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public SequentialSignatureDataContext: Entities.FiscalIntegrationSignatureDataContext;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Document = \n odataObject.Document;\n \n this.DocumentGenerationResultTypeValue = \n odataObject.DocumentGenerationResultTypeValue;\n \n if (odataObject.FiscalConnectorTechnicalProfile == null) {\n this.FiscalConnectorTechnicalProfile = undefined;\n } else if (odataObject.FiscalConnectorTechnicalProfile['@odata.type'] == null) {\n this.FiscalConnectorTechnicalProfile = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalConnectorTechnicalProfile);\n } else {\n var className: string = odataObject.FiscalConnectorTechnicalProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalConnectorTechnicalProfile = new entityDictionary[className](odataObject.FiscalConnectorTechnicalProfile)\n }\n }\n\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n if (odataObject.SequentialSignatureDataContext == null) {\n this.SequentialSignatureDataContext = undefined;\n } else if (odataObject.SequentialSignatureDataContext['@odata.type'] == null) {\n this.SequentialSignatureDataContext = new FiscalIntegrationSignatureDataContextClass(odataObject.SequentialSignatureDataContext);\n } else {\n var className: string = odataObject.SequentialSignatureDataContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureDataContext = new entityDictionary[className](odataObject.SequentialSignatureDataContext)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentClass'] = FiscalIntegrationDocumentClass;\n \n /**\n * FiscalIntegrationRegistrationResult entity class.\n */\n export class FiscalIntegrationRegistrationResultClass implements Entities.FiscalIntegrationRegistrationResult {\n public TransactionID: string;\n public AuditEventId: string;\n public Response: string;\n public SubmittedDocument: string;\n public RegisterInfo: string;\n public RegistrationStatusValue: number;\n public FiscalRegistrationEventTypeValue: number;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public SequentialSignatureData: Entities.FiscalIntegrationSequentialSignatureData;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionID = \n odataObject.TransactionID;\n \n this.AuditEventId = \n odataObject.AuditEventId;\n \n this.Response = \n odataObject.Response;\n \n this.SubmittedDocument = \n odataObject.SubmittedDocument;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.SequentialSignatureData == null) {\n this.SequentialSignatureData = undefined;\n } else if (odataObject.SequentialSignatureData['@odata.type'] == null) {\n this.SequentialSignatureData = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SequentialSignatureData);\n } else {\n var className: string = odataObject.SequentialSignatureData['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureData = new entityDictionary[className](odataObject.SequentialSignatureData)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationResultClass'] = FiscalIntegrationRegistrationResultClass;\n \n /**\n * FiscalIntegrationRegistrationProcess entity class.\n */\n export class FiscalIntegrationRegistrationProcessClass implements Entities.FiscalIntegrationRegistrationProcess {\n public RecordId: number;\n public RegistrationProcessId: string;\n public Description: string;\n public ModeValue: number;\n public RegistrationProcessLines: Entities.FiscalIntegrationRegistrationProcessLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.Description = \n odataObject.Description;\n \n this.ModeValue = \n odataObject.ModeValue;\n \n this.RegistrationProcessLines = undefined;\n if (odataObject.RegistrationProcessLines) {\n this.RegistrationProcessLines = [];\n for (var i = 0; i < odataObject.RegistrationProcessLines.length; i++) {\n if (odataObject.RegistrationProcessLines[i] != null) {\n if (odataObject.RegistrationProcessLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RegistrationProcessLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLines[i] = new entityDictionary[className](odataObject.RegistrationProcessLines[i])\n }\n } else {\n this.RegistrationProcessLines[i] = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLines[i]);\n }\n } else {\n this.RegistrationProcessLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessClass'] = FiscalIntegrationRegistrationProcessClass;\n \n /**\n * FiscalIntegrationSupportedEvents entity class.\n */\n export class FiscalIntegrationSupportedEventsClass implements Entities.FiscalIntegrationSupportedEvents {\n public FunctionalityProfileGroupId: string;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSupportedEventsClass'] = FiscalIntegrationSupportedEventsClass;\n \n /**\n * FiscalIntegrationTechnicalProfile entity class.\n */\n export class FiscalIntegrationTechnicalProfileClass implements Entities.FiscalIntegrationTechnicalProfile {\n public ProfileId: string;\n public Description: string;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public TechnicalProfile: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.Description = \n odataObject.Description;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.TechnicalProfile = \n odataObject.TechnicalProfile;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileClass'] = FiscalIntegrationTechnicalProfileClass;\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummary entity class.\n */\n export class FiscalIntegrationFiscalRegistrationProcessSummaryClass implements Entities.FiscalIntegrationFiscalRegistrationProcessSummary {\n public RegistrationProcessId: string;\n public FiscalRegistrationProcessSummaryLines: Entities.FiscalIntegrationFiscalRegistrationProcessSummaryLine[];\n public ErrorCode: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.FiscalRegistrationProcessSummaryLines = undefined;\n if (odataObject.FiscalRegistrationProcessSummaryLines) {\n this.FiscalRegistrationProcessSummaryLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationProcessSummaryLines.length; i++) {\n if (odataObject.FiscalRegistrationProcessSummaryLines[i] != null) {\n if (odataObject.FiscalRegistrationProcessSummaryLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationProcessSummaryLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationProcessSummaryLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationProcessSummaryLines[i])\n }\n } else {\n this.FiscalRegistrationProcessSummaryLines[i] = new FiscalIntegrationFiscalRegistrationProcessSummaryLineClass(odataObject.FiscalRegistrationProcessSummaryLines[i]);\n }\n } else {\n this.FiscalRegistrationProcessSummaryLines[i] = undefined;\n }\n }\n }\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n }\n }\n entityDictionary['FiscalIntegrationFiscalRegistrationProcessSummaryClass'] = FiscalIntegrationFiscalRegistrationProcessSummaryClass;\n \n /**\n * FiscalIntegrationTechnicalProfileSearchCriteria entity class.\n */\n export class FiscalIntegrationTechnicalProfileSearchCriteriaClass implements Entities.FiscalIntegrationTechnicalProfileSearchCriteria {\n public ExcludeOptionalProcessLines: boolean;\n public FunctionalityProfileGroupIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExcludeOptionalProcessLines = \n odataObject.ExcludeOptionalProcessLines;\n \n this.FunctionalityProfileGroupIds = undefined;\n if (odataObject.FunctionalityProfileGroupIds) {\n this.FunctionalityProfileGroupIds = [];\n for (var i = 0; i < odataObject.FunctionalityProfileGroupIds.length; i++) {\n if (odataObject.FunctionalityProfileGroupIds[i] != null) {\n this.FunctionalityProfileGroupIds[i] = \n odataObject.FunctionalityProfileGroupIds[i];\n } else {\n this.FunctionalityProfileGroupIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileSearchCriteriaClass'] = FiscalIntegrationTechnicalProfileSearchCriteriaClass;\n \n /**\n * FiscalIntegrationServiceInfo entity class.\n */\n export class FiscalIntegrationServiceInfoClass implements Entities.FiscalIntegrationServiceInfo {\n public ServiceName: string;\n public ServiceProperties: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ServiceName = \n odataObject.ServiceName;\n \n this.ServiceProperties = \n odataObject.ServiceProperties;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceInfoClass'] = FiscalIntegrationServiceInfoClass;\n \n /**\n * FiscalIntegrationServiceStatus entity class.\n */\n export class FiscalIntegrationServiceStatusClass implements Entities.FiscalIntegrationServiceStatus {\n public IsReady: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsReady = \n odataObject.IsReady;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceStatusClass'] = FiscalIntegrationServiceStatusClass;\n \n /**\n * FiscalIntegrationServiceCommunicationResult entity class.\n */\n export class FiscalIntegrationServiceCommunicationResultClass implements Entities.FiscalIntegrationServiceCommunicationResult {\n public Response: string;\n public CommunicationResultTypeValue: number;\n public FailureDetails: Entities.FiscalIntegrationServiceFailureDetails;\n public FiscalIntegrationServiceInfo: string;\n public UserNotificationMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Response = \n odataObject.Response;\n \n this.CommunicationResultTypeValue = \n odataObject.CommunicationResultTypeValue;\n \n if (odataObject.FailureDetails == null) {\n this.FailureDetails = undefined;\n } else if (odataObject.FailureDetails['@odata.type'] == null) {\n this.FailureDetails = new FiscalIntegrationServiceFailureDetailsClass(odataObject.FailureDetails);\n } else {\n var className: string = odataObject.FailureDetails['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FailureDetails = new entityDictionary[className](odataObject.FailureDetails)\n }\n }\n\n \n this.FiscalIntegrationServiceInfo = \n odataObject.FiscalIntegrationServiceInfo;\n \n this.UserNotificationMessage = \n odataObject.UserNotificationMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceCommunicationResultClass'] = FiscalIntegrationServiceCommunicationResultClass;\n \n /**\n * FiscalIntegrationSequentialSignatureData entity class.\n */\n export class FiscalIntegrationSequentialSignatureDataClass implements Entities.FiscalIntegrationSequentialSignatureData {\n public LastRegisterResponse: string;\n public SequenceKey: string;\n public IsOffline: boolean;\n public SequentialNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LastRegisterResponse = \n odataObject.LastRegisterResponse;\n \n this.SequenceKey = \n odataObject.SequenceKey;\n \n this.IsOffline = \n odataObject.IsOffline;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSequentialSignatureDataClass'] = FiscalIntegrationSequentialSignatureDataClass;\n \n /**\n * DiscountsSearchCriteria entity class.\n */\n export class DiscountsSearchCriteriaClass implements Entities.DiscountsSearchCriteria {\n public ChannelId: number;\n public Keyword: string;\n public IsDiscountCodeRequired: boolean;\n public StartDate: Date;\n public EndDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Keyword = \n odataObject.Keyword;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountsSearchCriteriaClass'] = DiscountsSearchCriteriaClass;\n \n /**\n * Promotion entity class.\n */\n export class PromotionClass implements Entities.Promotion {\n public OfferId: string;\n public OfferName: string;\n public PeriodicDiscountTypeValue: number;\n public IsDiscountCodeRequired: boolean;\n public ValidationPeriodId: string;\n public AdditionalRestrictions: string;\n public Description: string;\n public ValidFromDate: Date;\n public ValidToDate: Date;\n public ValidationPeriod: Entities.ValidationPeriod;\n public CouponCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ValidationPeriodId = \n odataObject.ValidationPeriodId;\n \n this.AdditionalRestrictions = \n odataObject.AdditionalRestrictions;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFromDate = \n (odataObject.ValidFromDate instanceof Date) ? odataObject.ValidFromDate\n : (odataObject.ValidFromDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDate = \n (odataObject.ValidToDate instanceof Date) ? odataObject.ValidToDate\n : (odataObject.ValidToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.ValidationPeriod == null) {\n this.ValidationPeriod = undefined;\n } else if (odataObject.ValidationPeriod['@odata.type'] == null) {\n this.ValidationPeriod = new ValidationPeriodClass(odataObject.ValidationPeriod);\n } else {\n var className: string = odataObject.ValidationPeriod['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationPeriod = new entityDictionary[className](odataObject.ValidationPeriod)\n }\n }\n\n \n this.CouponCodes = undefined;\n if (odataObject.CouponCodes) {\n this.CouponCodes = [];\n for (var i = 0; i < odataObject.CouponCodes.length; i++) {\n if (odataObject.CouponCodes[i] != null) {\n this.CouponCodes[i] = \n odataObject.CouponCodes[i];\n } else {\n this.CouponCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PromotionClass'] = PromotionClass;\n \n /**\n * CategoryPathLookup entity class.\n */\n export class CategoryPathLookupClass implements Entities.CategoryPathLookup {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathLookupClass'] = CategoryPathLookupClass;\n \n /**\n * CategoryPathResult entity class.\n */\n export class CategoryPathResultClass implements Entities.CategoryPathResult {\n public ProductId: number;\n public CategoryPath: Entities.CategoryPath[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CategoryPath = undefined;\n if (odataObject.CategoryPath) {\n this.CategoryPath = [];\n for (var i = 0; i < odataObject.CategoryPath.length; i++) {\n if (odataObject.CategoryPath[i] != null) {\n if (odataObject.CategoryPath[i]['@odata.type'] != null) {\n var className: string = odataObject.CategoryPath[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategoryPath[i] = new entityDictionary[className](odataObject.CategoryPath[i])\n }\n } else {\n this.CategoryPath[i] = new CategoryPathClass(odataObject.CategoryPath[i]);\n }\n } else {\n this.CategoryPath[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathResultClass'] = CategoryPathResultClass;\n \n /**\n * PickupTimeslotAvailabilitySearchCriteria entity class.\n */\n export class PickupTimeslotAvailabilitySearchCriteriaClass implements Entities.PickupTimeslotAvailabilitySearchCriteria {\n public DeliveryModeCode: string;\n public StoreId: string;\n public StartDate: Date;\n public EndDate: Date;\n public SearchOptionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SearchOptionValue = \n odataObject.SearchOptionValue;\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilitySearchCriteriaClass'] = PickupTimeslotAvailabilitySearchCriteriaClass;\n \n /**\n * PickupTimeslotAvailability entity class.\n */\n export class PickupTimeslotAvailabilityClass implements Entities.PickupTimeslotAvailability {\n public AvailableCapacity: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AvailableCapacity = \n odataObject.AvailableCapacity;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilityClass'] = PickupTimeslotAvailabilityClass;\n \n /**\n * CheckInForOrderPickupConfirmation entity class.\n */\n export class CheckInForOrderPickupConfirmationClass implements Entities.CheckInForOrderPickupConfirmation {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CheckInForOrderPickupConfirmationClass'] = CheckInForOrderPickupConfirmationClass;\n \n /**\n * VendorSearchCriteria entity class.\n */\n export class VendorSearchCriteriaClass implements Entities.VendorSearchCriteria {\n public SearchText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchText = \n odataObject.SearchText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VendorSearchCriteriaClass'] = VendorSearchCriteriaClass;\n \n /**\n * Vendor entity class.\n */\n export class VendorClass implements Entities.Vendor {\n public RecordId: number;\n public AccountNumber: string;\n public PartyId: number;\n public DataAreaId: string;\n public Name: string;\n public NameAlias: string;\n public PartyNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.AccountNumber = \n odataObject.AccountNumber;\n \n this.PartyId = \n (odataObject.PartyId != null) ? parseInt(odataObject.PartyId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Name = \n odataObject.Name;\n \n this.NameAlias = \n odataObject.NameAlias;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VendorClass'] = VendorClass;\n \n /**\n * VendorValidationResult entity class.\n */\n export class VendorValidationResultClass implements Entities.VendorValidationResult {\n public Message: string;\n public VendorValidationResultLevelValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Message = \n odataObject.Message;\n \n this.VendorValidationResultLevelValue = \n odataObject.VendorValidationResultLevelValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VendorValidationResultClass'] = VendorValidationResultClass;\n \n /**\n * ExtensionProfile entity class.\n */\n export class ExtensionProfileClass implements Entities.ExtensionProfile {\n public ExtensionServiceUrl: string;\n public AttachedServices: Entities.AttachedService[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionServiceUrl = \n odataObject.ExtensionServiceUrl;\n \n this.AttachedServices = undefined;\n if (odataObject.AttachedServices) {\n this.AttachedServices = [];\n for (var i = 0; i < odataObject.AttachedServices.length; i++) {\n if (odataObject.AttachedServices[i] != null) {\n if (odataObject.AttachedServices[i]['@odata.type'] != null) {\n var className: string = odataObject.AttachedServices[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttachedServices[i] = new entityDictionary[className](odataObject.AttachedServices[i])\n }\n } else {\n this.AttachedServices[i] = new AttachedServiceClass(odataObject.AttachedServices[i]);\n }\n } else {\n this.AttachedServices[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionProfileClass'] = ExtensionProfileClass;\n \n /**\n * ChannelInventoryConfiguration entity class.\n */\n export class ChannelInventoryConfigurationClass implements Entities.ChannelInventoryConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowTransferOrderOverDelivery: boolean;\n public AllowTransferOrderUnderDelivery: boolean;\n public UserLocationProfileId: string;\n public InventoryProductAttributeRecordId: number;\n public InventoryOutOfStockAttributeValueText: string;\n public ProductAvailabilitySortableAttributeRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowTransferOrderOverDelivery = \n odataObject.AllowTransferOrderOverDelivery;\n \n this.AllowTransferOrderUnderDelivery = \n odataObject.AllowTransferOrderUnderDelivery;\n \n this.UserLocationProfileId = \n odataObject.UserLocationProfileId;\n \n this.InventoryProductAttributeRecordId = \n (odataObject.InventoryProductAttributeRecordId != null) ? parseInt(odataObject.InventoryProductAttributeRecordId, 10) : undefined;\n \n this.InventoryOutOfStockAttributeValueText = \n odataObject.InventoryOutOfStockAttributeValueText;\n \n this.ProductAvailabilitySortableAttributeRecordId = \n (odataObject.ProductAvailabilitySortableAttributeRecordId != null) ? parseInt(odataObject.ProductAvailabilitySortableAttributeRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelInventoryConfigurationClass'] = ChannelInventoryConfigurationClass;\n \n /**\n * ChannelPurchaseConfiguration entity class.\n */\n export class ChannelPurchaseConfigurationClass implements Entities.ChannelPurchaseConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowOverDelivery: boolean;\n public AllowSubDelivery: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this.AllowSubDelivery = \n odataObject.AllowSubDelivery;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPurchaseConfigurationClass'] = ChannelPurchaseConfigurationClass;\n \n /**\n * InventoryJournalName entity class.\n */\n export class InventoryJournalNameClass implements Entities.InventoryJournalName {\n public RecordId: number;\n public JournalNameId: string;\n public InventoryJournalTypeValue: number;\n public Description: string;\n public DefaultAdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.JournalNameId = \n odataObject.JournalNameId;\n \n this.InventoryJournalTypeValue = \n odataObject.InventoryJournalTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DefaultAdjustmentTypeValue = \n odataObject.DefaultAdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameClass'] = InventoryJournalNameClass;\n \n /**\n * ShiftRetrievalCriteria entity class.\n */\n export class ShiftRetrievalCriteriaClass implements Entities.ShiftRetrievalCriteria {\n public ShiftStatusValue: number;\n public FilterByUserRole: boolean;\n public IncludeAllShiftsForStore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftStatusValue = \n odataObject.ShiftStatusValue;\n \n this.FilterByUserRole = \n odataObject.FilterByUserRole;\n \n this.IncludeAllShiftsForStore = \n odataObject.IncludeAllShiftsForStore;\n \n }\n }\n entityDictionary['ShiftRetrievalCriteriaClass'] = ShiftRetrievalCriteriaClass;\n \n /**\n * UserDefinedSecretCertificateResult entity class.\n */\n export class UserDefinedSecretCertificateResultClass implements Entities.UserDefinedSecretCertificateResult {\n public CertificateData: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CertificateData = \n odataObject.CertificateData;\n \n }\n }\n entityDictionary['UserDefinedSecretCertificateResultClass'] = UserDefinedSecretCertificateResultClass;\n \n /**\n * TerminalInfo entity class.\n */\n export class TerminalInfoClass implements Entities.TerminalInfo {\n public TerminalId: string;\n public DeviceNumber: string;\n public Name: string;\n public DeviceType: number;\n public ActivationStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.Name = \n odataObject.Name;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TerminalInfoClass'] = TerminalInfoClass;\n \n /**\n * CustomerTimelineItemTypeMap entity class.\n */\n export class CustomerTimelineItemTypeMapClass implements Entities.CustomerTimelineItemTypeMap {\n public EntityType: string;\n public Types: Entities.CustomerTimelineItemType[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EntityType = \n odataObject.EntityType;\n \n this.Types = undefined;\n if (odataObject.Types) {\n this.Types = [];\n for (var i = 0; i < odataObject.Types.length; i++) {\n if (odataObject.Types[i] != null) {\n if (odataObject.Types[i]['@odata.type'] != null) {\n var className: string = odataObject.Types[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Types[i] = new entityDictionary[className](odataObject.Types[i])\n }\n } else {\n this.Types[i] = new CustomerTimelineItemTypeClass(odataObject.Types[i]);\n }\n } else {\n this.Types[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeMapClass'] = CustomerTimelineItemTypeMapClass;\n \n /**\n * CustomerTimelineRefiner entity class.\n */\n export class CustomerTimelineRefinerClass implements Entities.CustomerTimelineRefiner {\n public RefinedResultsCount: number;\n public EntityType: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinedResultsCount = \n odataObject.RefinedResultsCount;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineRefinerClass'] = CustomerTimelineRefinerClass;\n \n /**\n * CustomerTitle entity class.\n */\n export class CustomerTitleClass implements Entities.CustomerTitle {\n public Text: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Text = \n odataObject.Text;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTitleClass'] = CustomerTitleClass;\n \n /**\n * ProductWarehouse entity class.\n */\n export class ProductWarehouseClass implements Entities.ProductWarehouse {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseClass'] = ProductWarehouseClass;\n \n /**\n * ProductWarehouseInventoryInformation entity class.\n */\n export class ProductWarehouseInventoryInformationClass implements Entities.ProductWarehouseInventoryInformation {\n public ProductWarehouseInventoryAvailabilities: Entities.ProductWarehouseInventoryAvailability[];\n public AggregatedProductInventoryAvailabilities: Entities.ProductInventoryAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductWarehouseInventoryAvailabilities = undefined;\n if (odataObject.ProductWarehouseInventoryAvailabilities) {\n this.ProductWarehouseInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.ProductWarehouseInventoryAvailabilities.length; i++) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i] != null) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductWarehouseInventoryAvailabilities[i] = new entityDictionary[className](odataObject.ProductWarehouseInventoryAvailabilities[i])\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = new ProductWarehouseInventoryAvailabilityClass(odataObject.ProductWarehouseInventoryAvailabilities[i]);\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.AggregatedProductInventoryAvailabilities = undefined;\n if (odataObject.AggregatedProductInventoryAvailabilities) {\n this.AggregatedProductInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.AggregatedProductInventoryAvailabilities.length; i++) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i] != null) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregatedProductInventoryAvailabilities[i] = new entityDictionary[className](odataObject.AggregatedProductInventoryAvailabilities[i])\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = new ProductInventoryAvailabilityClass(odataObject.AggregatedProductInventoryAvailabilities[i]);\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryInformationClass'] = ProductWarehouseInventoryInformationClass;\n \n /**\n * InventoryAvailabilitySearchCriteria entity class.\n */\n export class InventoryAvailabilitySearchCriteriaClass implements Entities.InventoryAvailabilitySearchCriteria {\n public ProductIds: number[];\n public DefaultWarehouseOnly: boolean;\n public SearchArea: Entities.SearchArea;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public QuantityUnitTypeValue: number;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n if (odataObject.SearchArea == null) {\n this.SearchArea = undefined;\n } else if (odataObject.SearchArea['@odata.type'] == null) {\n this.SearchArea = new SearchAreaClass(odataObject.SearchArea);\n } else {\n var className: string = odataObject.SearchArea['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchArea = new entityDictionary[className](odataObject.SearchArea)\n }\n }\n\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['InventoryAvailabilitySearchCriteriaClass'] = InventoryAvailabilitySearchCriteriaClass;\n \n /**\n * ExtensibleEnumerationContainer entity class.\n */\n export class ExtensibleEnumerationContainerClass implements Entities.ExtensibleEnumerationContainer {\n public TypeName: string;\n public ExtensibleEnumerations: Entities.ExtensibleEnumeration[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeName = \n odataObject.TypeName;\n \n this.ExtensibleEnumerations = undefined;\n if (odataObject.ExtensibleEnumerations) {\n this.ExtensibleEnumerations = [];\n for (var i = 0; i < odataObject.ExtensibleEnumerations.length; i++) {\n if (odataObject.ExtensibleEnumerations[i] != null) {\n if (odataObject.ExtensibleEnumerations[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensibleEnumerations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEnumerations[i] = new entityDictionary[className](odataObject.ExtensibleEnumerations[i])\n }\n } else {\n this.ExtensibleEnumerations[i] = new ExtensibleEnumerationClass(odataObject.ExtensibleEnumerations[i]);\n }\n } else {\n this.ExtensibleEnumerations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensibleEnumerationContainerClass'] = ExtensibleEnumerationContainerClass;\n \n /**\n * PackingSlipData entity class.\n */\n export class PackingSlipDataClass implements Entities.PackingSlipData {\n public PackingSlipId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PackingSlipId = \n odataObject.PackingSlipId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PackingSlipDataClass'] = PackingSlipDataClass;\n \n /**\n * EmailReceiptSettings entity class.\n */\n export class EmailReceiptSettingsClass implements Entities.EmailReceiptSettings {\n public ReceiptTypeValue: number;\n public EmailBehaviorValue: number;\n public ReceiptTitle: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.EmailBehaviorValue = \n odataObject.EmailBehaviorValue;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmailReceiptSettingsClass'] = EmailReceiptSettingsClass;\n \n /**\n * FiscalIntegrationComplianceResult entity class.\n */\n export class FiscalIntegrationComplianceResultClass implements Entities.FiscalIntegrationComplianceResult {\n public ErrorMessages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorMessages = undefined;\n if (odataObject.ErrorMessages) {\n this.ErrorMessages = [];\n for (var i = 0; i < odataObject.ErrorMessages.length; i++) {\n if (odataObject.ErrorMessages[i] != null) {\n this.ErrorMessages[i] = \n odataObject.ErrorMessages[i];\n } else {\n this.ErrorMessages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationComplianceResultClass'] = FiscalIntegrationComplianceResultClass;\n \n /**\n * OrgUnitAddress entity class.\n */\n export class OrgUnitAddressClass\n extends AddressClass\n implements Entities.OrgUnitAddress {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrgUnitAddress\";\n \n }\n }\n entityDictionary['OrgUnitAddressClass'] = OrgUnitAddressClass;\n \n /**\n * WarehouseDetails entity class.\n */\n export class WarehouseDetailsClass\n extends AddressClass\n implements Entities.WarehouseDetails {\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.WarehouseDetails\";\n \n }\n }\n entityDictionary['WarehouseDetailsClass'] = WarehouseDetailsClass;\n \n /**\n * AttributeSwatch entity class.\n */\n export class AttributeSwatchClass implements Entities.AttributeSwatch {\n public SwatchValue: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public IsDefault: boolean;\n public ProductImageUrls: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SwatchValue = \n odataObject.SwatchValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ProductImageUrls = undefined;\n if (odataObject.ProductImageUrls) {\n this.ProductImageUrls = [];\n for (var i = 0; i < odataObject.ProductImageUrls.length; i++) {\n if (odataObject.ProductImageUrls[i] != null) {\n this.ProductImageUrls[i] = \n odataObject.ProductImageUrls[i];\n } else {\n this.ProductImageUrls[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeSwatchClass'] = AttributeSwatchClass;\n \n /**\n * AttributeBooleanValue entity class.\n */\n export class AttributeBooleanValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeBooleanValue {\n public Value: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeBooleanValue\";\n \n }\n }\n entityDictionary['AttributeBooleanValueClass'] = AttributeBooleanValueClass;\n \n /**\n * AttributeCurrencyValue entity class.\n */\n export class AttributeCurrencyValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeCurrencyValue {\n public CurrencyValue: number;\n public CurrencyCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeCurrencyValue\";\n \n }\n }\n entityDictionary['AttributeCurrencyValueClass'] = AttributeCurrencyValueClass;\n \n /**\n * AttributeDateTimeOffsetValue entity class.\n */\n export class AttributeDateTimeOffsetValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeDateTimeOffsetValue {\n public Value: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value instanceof Date) ? odataObject.Value\n : (odataObject.Value != null) ? jsonLightReadStringPropertyValue(odataObject.Value, \"Edm.DateTimeOffset\", false) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeDateTimeOffsetValue\";\n \n }\n }\n entityDictionary['AttributeDateTimeOffsetValueClass'] = AttributeDateTimeOffsetValueClass;\n \n /**\n * AttributeFloatValue entity class.\n */\n export class AttributeFloatValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeFloatValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeFloatValue\";\n \n }\n }\n entityDictionary['AttributeFloatValueClass'] = AttributeFloatValueClass;\n \n /**\n * AttributeIntValue entity class.\n */\n export class AttributeIntValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeIntValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeIntValue\";\n \n }\n }\n entityDictionary['AttributeIntValueClass'] = AttributeIntValueClass;\n \n /**\n * AttributeMediaLocationValue entity class.\n */\n export class AttributeMediaLocationValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeMediaLocationValue {\n public Value: Entities.MediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = undefined;\n if (odataObject.Value) {\n this.Value = [];\n for (var i = 0; i < odataObject.Value.length; i++) {\n if (odataObject.Value[i] != null) {\n if (odataObject.Value[i]['@odata.type'] != null) {\n var className: string = odataObject.Value[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value[i] = new entityDictionary[className](odataObject.Value[i])\n }\n } else {\n this.Value[i] = new MediaLocationClass(odataObject.Value[i]);\n }\n } else {\n this.Value[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeMediaLocationValue\";\n \n }\n }\n entityDictionary['AttributeMediaLocationValueClass'] = AttributeMediaLocationValueClass;\n \n /**\n * AttributeTextValue entity class.\n */\n export class AttributeTextValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeTextValue {\n public TextValue: string;\n public TextValueTranslations: Entities.TextValueTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TextValue = \n odataObject.TextValue;\n \n this.TextValueTranslations = undefined;\n if (odataObject.TextValueTranslations) {\n this.TextValueTranslations = [];\n for (var i = 0; i < odataObject.TextValueTranslations.length; i++) {\n if (odataObject.TextValueTranslations[i] != null) {\n if (odataObject.TextValueTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.TextValueTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TextValueTranslations[i] = new entityDictionary[className](odataObject.TextValueTranslations[i])\n }\n } else {\n this.TextValueTranslations[i] = new TextValueTranslationClass(odataObject.TextValueTranslations[i]);\n }\n } else {\n this.TextValueTranslations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue\";\n \n }\n }\n entityDictionary['AttributeTextValueClass'] = AttributeTextValueClass;\n \n /**\n * ButtonGridButton entity class.\n */\n export class ButtonGridButtonClass implements Entities.ButtonGridButton {\n public Action: number;\n public ActionProperty: string;\n public BackColorAsARGB: Entities.ARGBColor;\n public BorderColorAsARGB: Entities.ARGBColor;\n public Column: number;\n public ColumnSpan: number;\n public DisplayText: string;\n public FontColorAsARGB: Entities.ARGBColor;\n public ButtonId: number;\n public Row: number;\n public RowSpan: number;\n public UseCustomLookAndFeel: boolean;\n public PictureId: number;\n public PictureAsBase64: string;\n public FontStyle: number;\n public FontSize: number;\n public EnableCustomFontForPOS: boolean;\n public HideButtonText: boolean;\n public Tooltip: string;\n public EnableLiveContent: boolean;\n public NotificationContentAlignment: number;\n public ImageAlignment: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionProperty = \n odataObject.ActionProperty;\n \n if (odataObject.BackColorAsARGB == null) {\n this.BackColorAsARGB = undefined;\n } else if (odataObject.BackColorAsARGB['@odata.type'] == null) {\n this.BackColorAsARGB = new ARGBColorClass(odataObject.BackColorAsARGB);\n } else {\n var className: string = odataObject.BackColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BackColorAsARGB = new entityDictionary[className](odataObject.BackColorAsARGB)\n }\n }\n\n \n if (odataObject.BorderColorAsARGB == null) {\n this.BorderColorAsARGB = undefined;\n } else if (odataObject.BorderColorAsARGB['@odata.type'] == null) {\n this.BorderColorAsARGB = new ARGBColorClass(odataObject.BorderColorAsARGB);\n } else {\n var className: string = odataObject.BorderColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BorderColorAsARGB = new entityDictionary[className](odataObject.BorderColorAsARGB)\n }\n }\n\n \n this.Column = \n odataObject.Column;\n \n this.ColumnSpan = \n odataObject.ColumnSpan;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n if (odataObject.FontColorAsARGB == null) {\n this.FontColorAsARGB = undefined;\n } else if (odataObject.FontColorAsARGB['@odata.type'] == null) {\n this.FontColorAsARGB = new ARGBColorClass(odataObject.FontColorAsARGB);\n } else {\n var className: string = odataObject.FontColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FontColorAsARGB = new entityDictionary[className](odataObject.FontColorAsARGB)\n }\n }\n\n \n this.ButtonId = \n odataObject.ButtonId;\n \n this.Row = \n odataObject.Row;\n \n this.RowSpan = \n odataObject.RowSpan;\n \n this.UseCustomLookAndFeel = \n odataObject.UseCustomLookAndFeel;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.FontStyle = \n odataObject.FontStyle;\n \n this.FontSize = \n odataObject.FontSize;\n \n this.EnableCustomFontForPOS = \n odataObject.EnableCustomFontForPOS;\n \n this.HideButtonText = \n odataObject.HideButtonText;\n \n this.Tooltip = \n odataObject.Tooltip;\n \n this.EnableLiveContent = \n odataObject.EnableLiveContent;\n \n this.NotificationContentAlignment = \n odataObject.NotificationContentAlignment;\n \n this.ImageAlignment = \n odataObject.ImageAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridButtonClass'] = ButtonGridButtonClass;\n \n /**\n * ARGBColor entity class.\n */\n export class ARGBColorClass implements Entities.ARGBColor {\n public A: number;\n public R: number;\n public G: number;\n public B: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.A = \n (odataObject.A != null) ? parseInt(odataObject.A, 10) : undefined;\n \n this.R = \n (odataObject.R != null) ? parseInt(odataObject.R, 10) : undefined;\n \n this.G = \n (odataObject.G != null) ? parseInt(odataObject.G, 10) : undefined;\n \n this.B = \n (odataObject.B != null) ? parseInt(odataObject.B, 10) : undefined;\n \n }\n }\n entityDictionary['ARGBColorClass'] = ARGBColorClass;\n \n /**\n * PriceLine entity class.\n */\n export class PriceLineClass implements Entities.PriceLine {\n public RecordId: number;\n public Value: number;\n public PriceMethod: string;\n public OriginId: string;\n public PriceChangedByExtensions: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.PriceMethod = \n odataObject.PriceMethod;\n \n this.OriginId = \n odataObject.OriginId;\n \n this.PriceChangedByExtensions = \n odataObject.PriceChangedByExtensions;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PriceLineClass'] = PriceLineClass;\n \n /**\n * TradeAgreementPriceLine entity class.\n */\n export class TradeAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.TradeAgreementPriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['TradeAgreementPriceLineClass'] = TradeAgreementPriceLineClass;\n \n /**\n * AttributePricingTradeAgreementPriceLine entity class.\n */\n export class AttributePricingTradeAgreementPriceLineClass\n extends TradeAgreementPriceLineClass\n implements Entities.AttributePricingTradeAgreementPriceLine {\n public CanApplyPriceAdjustments: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanApplyPriceAdjustments = \n odataObject.CanApplyPriceAdjustments;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingTradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingTradeAgreementPriceLineClass'] = AttributePricingTradeAgreementPriceLineClass;\n \n /**\n * SalesAgreementPriceLine entity class.\n */\n export class SalesAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.SalesAgreementPriceLine {\n public SalesAgreementName: string;\n public UnitPrice: number;\n public DiscountAmount: number;\n public DiscountPercent: number;\n public SalesAgreementLineTypeValue: number;\n public PriceUnit: number;\n public EffectiveDate: Date;\n public ExpirationDate: Date;\n public CommittedQuantity: number;\n public RemainingQuantity: number;\n public CommittedAmount: number;\n public RemainingAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SalesAgreementName = \n odataObject.SalesAgreementName;\n \n this.UnitPrice = \n (odataObject.UnitPrice != null) ? parseFloat(odataObject.UnitPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.SalesAgreementLineTypeValue = \n odataObject.SalesAgreementLineTypeValue;\n \n this.PriceUnit = \n (odataObject.PriceUnit != null) ? parseFloat(odataObject.PriceUnit) : undefined;\n \n this.EffectiveDate = \n (odataObject.EffectiveDate instanceof Date) ? odataObject.EffectiveDate\n : (odataObject.EffectiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.EffectiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommittedQuantity = \n (odataObject.CommittedQuantity != null) ? parseFloat(odataObject.CommittedQuantity) : undefined;\n \n this.RemainingQuantity = \n (odataObject.RemainingQuantity != null) ? parseFloat(odataObject.RemainingQuantity) : undefined;\n \n this.CommittedAmount = \n (odataObject.CommittedAmount != null) ? parseFloat(odataObject.CommittedAmount) : undefined;\n \n this.RemainingAmount = \n (odataObject.RemainingAmount != null) ? parseFloat(odataObject.RemainingAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAgreementPriceLine\";\n \n }\n }\n entityDictionary['SalesAgreementPriceLineClass'] = SalesAgreementPriceLineClass;\n \n /**\n * PriceAdjustmentPriceLine entity class.\n */\n export class PriceAdjustmentPriceLineClass\n extends PriceLineClass\n implements Entities.PriceAdjustmentPriceLine {\n public IsCompoundable: boolean;\n public Concurrency: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.Concurrency = \n odataObject.Concurrency;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PriceAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['PriceAdjustmentPriceLineClass'] = PriceAdjustmentPriceLineClass;\n \n /**\n * AttributePricingAdjustmentPriceLine entity class.\n */\n export class AttributePricingAdjustmentPriceLineClass\n extends PriceAdjustmentPriceLineClass\n implements Entities.AttributePricingAdjustmentPriceLine {\n public CanCompoundOnAdjustedPrice: boolean;\n public PricingPriorityNumber: number;\n public AdjustedAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanCompoundOnAdjustedPrice = \n odataObject.CanCompoundOnAdjustedPrice;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.AdjustedAmount = \n (odataObject.AdjustedAmount != null) ? parseFloat(odataObject.AdjustedAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingAdjustmentPriceLineClass'] = AttributePricingAdjustmentPriceLineClass;\n \n /**\n * BasePriceLine entity class.\n */\n export class BasePriceLineClass\n extends PriceLineClass\n implements Entities.BasePriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.BasePriceLine\";\n \n }\n }\n entityDictionary['BasePriceLineClass'] = BasePriceLineClass;\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity class.\n */\n export class ExtensiblePeriodicDiscountOfferTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensiblePeriodicDiscountOfferType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensiblePeriodicDiscountOfferType\";\n \n }\n }\n entityDictionary['ExtensiblePeriodicDiscountOfferTypeClass'] = ExtensiblePeriodicDiscountOfferTypeClass;\n \n /**\n * ChargeLineOverride entity class.\n */\n export class ChargeLineOverrideClass implements Entities.ChargeLineOverride {\n public OriginalAmount: number;\n public OverrideAmount: number;\n public OverrideReasonDescription: string;\n public OverrideDateTime: Date;\n public UserId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalAmount = \n (odataObject.OriginalAmount != null) ? parseFloat(odataObject.OriginalAmount) : undefined;\n \n this.OverrideAmount = \n (odataObject.OverrideAmount != null) ? parseFloat(odataObject.OverrideAmount) : undefined;\n \n this.OverrideReasonDescription = \n odataObject.OverrideReasonDescription;\n \n this.OverrideDateTime = \n (odataObject.OverrideDateTime instanceof Date) ? odataObject.OverrideDateTime\n : (odataObject.OverrideDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OverrideDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.UserId = \n odataObject.UserId;\n \n }\n }\n entityDictionary['ChargeLineOverrideClass'] = ChargeLineOverrideClass;\n \n /**\n * TaxLineGTE entity class.\n */\n export class TaxLineGTEClass\n extends TaxLineClass\n implements Entities.TaxLineGTE {\n public TaxComponent: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaxComponent = \n odataObject.TaxComponent;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaxLineGTE\";\n \n }\n }\n entityDictionary['TaxLineGTEClass'] = TaxLineGTEClass;\n \n /**\n * TaxMeasure entity class.\n */\n export class TaxMeasureClass implements Entities.TaxMeasure {\n public Path: string;\n public Value: number;\n public DataAreaId: string;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Path = \n odataObject.Path;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxMeasureClass'] = TaxMeasureClass;\n \n /**\n * DetailedLineStatus entity class.\n */\n export class DetailedLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedLineStatus\";\n \n }\n }\n entityDictionary['DetailedLineStatusClass'] = DetailedLineStatusClass;\n \n /**\n * CardTokenInfo entity class.\n */\n export class CardTokenInfoClass implements Entities.CardTokenInfo {\n public CardToken: string;\n public UniqueCardId: string;\n public ServiceAccountId: string;\n public MaskedCardNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardToken = \n odataObject.CardToken;\n \n this.UniqueCardId = \n odataObject.UniqueCardId;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n }\n }\n entityDictionary['CardTokenInfoClass'] = CardTokenInfoClass;\n \n /**\n * DataverseTenderLine entity class.\n */\n export class DataverseTenderLineClass\n extends TenderLineClass\n implements Entities.DataverseTenderLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DataverseTenderLine\";\n \n }\n }\n entityDictionary['DataverseTenderLineClass'] = DataverseTenderLineClass;\n \n /**\n * PaymentError entity class.\n */\n export class PaymentErrorClass implements Entities.PaymentError {\n public Code: string;\n public Message: string;\n public IsLocalized: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.Message = \n odataObject.Message;\n \n this.IsLocalized = \n odataObject.IsLocalized;\n \n }\n }\n entityDictionary['PaymentErrorClass'] = PaymentErrorClass;\n \n /**\n * ProductAttributeMetadataFlags entity class.\n */\n export class ProductAttributeMetadataFlagsClass implements Entities.ProductAttributeMetadataFlags {\n public IsSearchable: boolean;\n public IsRetrievable: boolean;\n public IsQueryable: boolean;\n public IsRefinable: boolean;\n public IsSortable: boolean;\n public IsMultiValue: boolean;\n public IsTokenNormalization: boolean;\n public IsCompleteMatch: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSearchable = \n odataObject.IsSearchable;\n \n this.IsRetrievable = \n odataObject.IsRetrievable;\n \n this.IsQueryable = \n odataObject.IsQueryable;\n \n this.IsRefinable = \n odataObject.IsRefinable;\n \n this.IsSortable = \n odataObject.IsSortable;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsTokenNormalization = \n odataObject.IsTokenNormalization;\n \n this.IsCompleteMatch = \n odataObject.IsCompleteMatch;\n \n }\n }\n entityDictionary['ProductAttributeMetadataFlagsClass'] = ProductAttributeMetadataFlagsClass;\n \n /**\n * UnitOfMeasureConversion entity class.\n */\n export class UnitOfMeasureConversionClass implements Entities.UnitOfMeasureConversion {\n public ItemId: string;\n public FromUnitOfMeasureId: string;\n public ToUnitOfMeasureId: string;\n public FromUnitOfMeasureSymbol: string;\n public ToUnitOfMeasureSymbol: string;\n public IsBackward: boolean;\n public RecordId: number;\n public ProductRecordId: number;\n public Factor: number;\n public Numerator: number;\n public Denominator: number;\n public InnerOffset: number;\n public OuterOffset: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.FromUnitOfMeasureId = \n odataObject.FromUnitOfMeasureId;\n \n this.ToUnitOfMeasureId = \n odataObject.ToUnitOfMeasureId;\n \n this.FromUnitOfMeasureSymbol = \n odataObject.FromUnitOfMeasureSymbol;\n \n this.ToUnitOfMeasureSymbol = \n odataObject.ToUnitOfMeasureSymbol;\n \n this.IsBackward = \n odataObject.IsBackward;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.Factor = \n (odataObject.Factor != null) ? parseFloat(odataObject.Factor) : undefined;\n \n this.Numerator = \n odataObject.Numerator;\n \n this.Denominator = \n odataObject.Denominator;\n \n this.InnerOffset = \n (odataObject.InnerOffset != null) ? parseFloat(odataObject.InnerOffset) : undefined;\n \n this.OuterOffset = \n (odataObject.OuterOffset != null) ? parseFloat(odataObject.OuterOffset) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureConversionClass'] = UnitOfMeasureConversionClass;\n \n /**\n * ReturnLabelContent entity class.\n */\n export class ReturnLabelContentClass implements Entities.ReturnLabelContent {\n public ReturnLocationText: string;\n public ReturnWarehouseText: string;\n public ReturnReasonText: string;\n public ReturnPalleteText: string;\n public ItemId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnLocationText = \n odataObject.ReturnLocationText;\n \n this.ReturnWarehouseText = \n odataObject.ReturnWarehouseText;\n \n this.ReturnReasonText = \n odataObject.ReturnReasonText;\n \n this.ReturnPalleteText = \n odataObject.ReturnPalleteText;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnLabelContentClass'] = ReturnLabelContentClass;\n \n /**\n * LoyaltyRewardPointLine entity class.\n */\n export class LoyaltyRewardPointLineClass implements Entities.LoyaltyRewardPointLine {\n public TransactionId: string;\n public SaleLineNumber: number;\n public LoyaltyGroupRecordId: number;\n public LoyaltyCardNumber: string;\n public CustomerAccount: string;\n public EntryDate: Date;\n public EntryTime: number;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public LineNumber: number;\n public LoyaltyTierRecordId: number;\n public RewardPointRecordId: number;\n public RewardPointAmountQuantity: number;\n public RewardPointId: string;\n public RewardPointIsRedeemable: boolean;\n public RewardPointType: string;\n public RewardPointCurrency: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.LoyaltyGroupRecordId = \n (odataObject.LoyaltyGroupRecordId != null) ? parseInt(odataObject.LoyaltyGroupRecordId, 10) : undefined;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.EntryDate = \n (odataObject.EntryDate instanceof Date) ? odataObject.EntryDate\n : (odataObject.EntryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTime = \n odataObject.EntryTime;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.RewardPointRecordId = \n (odataObject.RewardPointRecordId != null) ? parseInt(odataObject.RewardPointRecordId, 10) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.RewardPointIsRedeemable = \n odataObject.RewardPointIsRedeemable;\n \n this.RewardPointType = \n odataObject.RewardPointType;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointLineClass'] = LoyaltyRewardPointLineClass;\n \n /**\n * TrackingInfo entity class.\n */\n export class TrackingInfoClass implements Entities.TrackingInfo {\n public TrackingNumber: string;\n public ServiceType: string;\n public PackageWeight: Entities.Weight;\n public ShippedOnDate: Date;\n public Status: string;\n public DeliveredOnDate: Date;\n public EstimatedDeliveryDate: Date;\n public TrackingUrl: string;\n public PackagingType: string;\n public DestinationAddress: Entities.Address;\n public OriginAddress: Entities.Address;\n public ShipmentProgress: Entities.ShipmentProgress[];\n public ShippingCharge: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.ServiceType = \n odataObject.ServiceType;\n \n if (odataObject.PackageWeight == null) {\n this.PackageWeight = undefined;\n } else if (odataObject.PackageWeight['@odata.type'] == null) {\n this.PackageWeight = new WeightClass(odataObject.PackageWeight);\n } else {\n var className: string = odataObject.PackageWeight['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PackageWeight = new entityDictionary[className](odataObject.PackageWeight)\n }\n }\n\n \n this.ShippedOnDate = \n (odataObject.ShippedOnDate instanceof Date) ? odataObject.ShippedOnDate\n : (odataObject.ShippedOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShippedOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.DeliveredOnDate = \n (odataObject.DeliveredOnDate instanceof Date) ? odataObject.DeliveredOnDate\n : (odataObject.DeliveredOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveredOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EstimatedDeliveryDate = \n (odataObject.EstimatedDeliveryDate instanceof Date) ? odataObject.EstimatedDeliveryDate\n : (odataObject.EstimatedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EstimatedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n this.PackagingType = \n odataObject.PackagingType;\n \n if (odataObject.DestinationAddress == null) {\n this.DestinationAddress = undefined;\n } else if (odataObject.DestinationAddress['@odata.type'] == null) {\n this.DestinationAddress = new AddressClass(odataObject.DestinationAddress);\n } else {\n var className: string = odataObject.DestinationAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationAddress = new entityDictionary[className](odataObject.DestinationAddress)\n }\n }\n\n \n if (odataObject.OriginAddress == null) {\n this.OriginAddress = undefined;\n } else if (odataObject.OriginAddress['@odata.type'] == null) {\n this.OriginAddress = new AddressClass(odataObject.OriginAddress);\n } else {\n var className: string = odataObject.OriginAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OriginAddress = new entityDictionary[className](odataObject.OriginAddress)\n }\n }\n\n \n this.ShipmentProgress = undefined;\n if (odataObject.ShipmentProgress) {\n this.ShipmentProgress = [];\n for (var i = 0; i < odataObject.ShipmentProgress.length; i++) {\n if (odataObject.ShipmentProgress[i] != null) {\n if (odataObject.ShipmentProgress[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentProgress[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentProgress[i] = new entityDictionary[className](odataObject.ShipmentProgress[i])\n }\n } else {\n this.ShipmentProgress[i] = new ShipmentProgressClass(odataObject.ShipmentProgress[i]);\n }\n } else {\n this.ShipmentProgress[i] = undefined;\n }\n }\n }\n \n this.ShippingCharge = \n (odataObject.ShippingCharge != null) ? parseFloat(odataObject.ShippingCharge) : undefined;\n \n }\n }\n entityDictionary['TrackingInfoClass'] = TrackingInfoClass;\n \n /**\n * Weight entity class.\n */\n export class WeightClass implements Entities.Weight {\n public Value: number;\n public Unit: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n }\n }\n entityDictionary['WeightClass'] = WeightClass;\n \n /**\n * ShipmentProgress entity class.\n */\n export class ShipmentProgressClass implements Entities.ShipmentProgress {\n public Location: Entities.Address;\n public DateTime: Date;\n public Activity: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Location == null) {\n this.Location = undefined;\n } else if (odataObject.Location['@odata.type'] == null) {\n this.Location = new AddressClass(odataObject.Location);\n } else {\n var className: string = odataObject.Location['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Location = new entityDictionary[className](odataObject.Location)\n }\n }\n\n \n this.DateTime = \n (odataObject.DateTime instanceof Date) ? odataObject.DateTime\n : (odataObject.DateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Activity = \n odataObject.Activity;\n \n }\n }\n entityDictionary['ShipmentProgressClass'] = ShipmentProgressClass;\n \n /**\n * ShiftKey entity class.\n */\n export class ShiftKeyClass implements Entities.ShiftKey {\n public ShiftTerminalId: string;\n public ShiftId: number;\n public Store: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftKeyClass'] = ShiftKeyClass;\n \n /**\n * LocalizedText entity class.\n */\n export class LocalizedTextClass implements Entities.LocalizedText {\n public RecordId: number;\n public LanguageId: string;\n public TextId: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedTextClass'] = LocalizedTextClass;\n \n /**\n * AddressFormattingInfo entity class.\n */\n export class AddressFormattingInfoClass implements Entities.AddressFormattingInfo {\n public AddressComponentNameValue: number;\n public LineNumber: number;\n public IsDataEntryOnly: boolean;\n public NewLine: boolean;\n public Expand: boolean;\n public Inactive: boolean;\n public Special: boolean;\n public NumberOfSpaces: number;\n public Separator: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressComponentNameValue = \n odataObject.AddressComponentNameValue;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.IsDataEntryOnly = \n odataObject.IsDataEntryOnly;\n \n this.NewLine = \n odataObject.NewLine;\n \n this.Expand = \n odataObject.Expand;\n \n this.Inactive = \n odataObject.Inactive;\n \n this.Special = \n odataObject.Special;\n \n this.NumberOfSpaces = \n odataObject.NumberOfSpaces;\n \n this.Separator = \n odataObject.Separator;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressFormattingInfoClass'] = AddressFormattingInfoClass;\n \n /**\n * HardwareConfigurations entity class.\n */\n export class HardwareConfigurationsClass implements Entities.HardwareConfigurations {\n public CashDrawerConfigurations: Entities.HardwareConfiguration[];\n public PrinterConfigurations: Entities.HardwareConfiguration[];\n public PinPadConfiguration: Entities.HardwareConfiguration;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashDrawerConfigurations = undefined;\n if (odataObject.CashDrawerConfigurations) {\n this.CashDrawerConfigurations = [];\n for (var i = 0; i < odataObject.CashDrawerConfigurations.length; i++) {\n if (odataObject.CashDrawerConfigurations[i] != null) {\n if (odataObject.CashDrawerConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawerConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawerConfigurations[i] = new entityDictionary[className](odataObject.CashDrawerConfigurations[i])\n }\n } else {\n this.CashDrawerConfigurations[i] = new HardwareConfigurationClass(odataObject.CashDrawerConfigurations[i]);\n }\n } else {\n this.CashDrawerConfigurations[i] = undefined;\n }\n }\n }\n \n this.PrinterConfigurations = undefined;\n if (odataObject.PrinterConfigurations) {\n this.PrinterConfigurations = [];\n for (var i = 0; i < odataObject.PrinterConfigurations.length; i++) {\n if (odataObject.PrinterConfigurations[i] != null) {\n if (odataObject.PrinterConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.PrinterConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PrinterConfigurations[i] = new entityDictionary[className](odataObject.PrinterConfigurations[i])\n }\n } else {\n this.PrinterConfigurations[i] = new HardwareConfigurationClass(odataObject.PrinterConfigurations[i]);\n }\n } else {\n this.PrinterConfigurations[i] = undefined;\n }\n }\n }\n \n if (odataObject.PinPadConfiguration == null) {\n this.PinPadConfiguration = undefined;\n } else if (odataObject.PinPadConfiguration['@odata.type'] == null) {\n this.PinPadConfiguration = new HardwareConfigurationClass(odataObject.PinPadConfiguration);\n } else {\n var className: string = odataObject.PinPadConfiguration['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PinPadConfiguration = new entityDictionary[className](odataObject.PinPadConfiguration)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationsClass'] = HardwareConfigurationsClass;\n \n /**\n * HardwareConfiguration entity class.\n */\n export class HardwareConfigurationClass implements Entities.HardwareConfiguration {\n public RecordId: number;\n public HardwareStationRecordId: number;\n public TerminalId: string;\n public DeviceName: string;\n public IPAddress: string;\n public Port: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationRecordId = \n (odataObject.HardwareStationRecordId != null) ? parseInt(odataObject.HardwareStationRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.IPAddress = \n odataObject.IPAddress;\n \n this.Port = \n odataObject.Port;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationClass'] = HardwareConfigurationClass;\n \n /**\n * Printer entity class.\n */\n export class PrinterClass implements Entities.Printer {\n public Name: string;\n public PrinterType: number;\n public Terminal: number;\n public PrintBehaviorValue: number;\n public ReceiptLayoutId: string;\n public HardwareProfileId: string;\n public ReceiptType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.PrinterType = \n odataObject.PrinterType;\n \n this.Terminal = \n (odataObject.Terminal != null) ? parseInt(odataObject.Terminal, 10) : undefined;\n \n this.PrintBehaviorValue = \n odataObject.PrintBehaviorValue;\n \n this.ReceiptLayoutId = \n odataObject.ReceiptLayoutId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.ReceiptType = \n odataObject.ReceiptType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PrinterClass'] = PrinterClass;\n \n /**\n * CustomerRefinerValue entity class.\n */\n export class CustomerRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.CustomerRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefinerValue\";\n \n }\n }\n entityDictionary['CustomerRefinerValueClass'] = CustomerRefinerValueClass;\n \n /**\n * TransferOrderJournalLine entity class.\n */\n export class TransferOrderJournalLineClass implements Entities.TransferOrderJournalLine {\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public TotalQuantityShipped: number;\n public QuantityShipped: number;\n public TransferQuantity: number;\n public UnitId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public DeliveryMethod: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.TransferQuantity = \n (odataObject.TransferQuantity != null) ? parseFloat(odataObject.TransferQuantity) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalLineClass'] = TransferOrderJournalLineClass;\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity class.\n */\n export class InventoryDocumentSourceSerialNumberLineClass implements Entities.InventoryDocumentSourceSerialNumberLine {\n public SourceDocumentTypeValue: number;\n public SourceDocumentId: string;\n public DocumentLineRecordId: number;\n public InventTransRecordId: number;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.DocumentLineRecordId = \n (odataObject.DocumentLineRecordId != null) ? parseInt(odataObject.DocumentLineRecordId, 10) : undefined;\n \n this.InventTransRecordId = \n (odataObject.InventTransRecordId != null) ? parseInt(odataObject.InventTransRecordId, 10) : undefined;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceSerialNumberLineClass'] = InventoryDocumentSourceSerialNumberLineClass;\n \n /**\n * KitTransactionLine entity class.\n */\n export class KitTransactionLineClass implements Entities.KitTransactionLine {\n public ItemId: string;\n public Quantity: number;\n public InventoryDimensionId: string;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitTransactionLineClass'] = KitTransactionLineClass;\n \n /**\n * StoreAddressBook entity class.\n */\n export class StoreAddressBookClass implements Entities.StoreAddressBook {\n public AddressBookId: number;\n public StoreId: number;\n public AddressBookTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressBookId = \n (odataObject.AddressBookId != null) ? parseInt(odataObject.AddressBookId, 10) : undefined;\n \n this.StoreId = \n (odataObject.StoreId != null) ? parseInt(odataObject.StoreId, 10) : undefined;\n \n this.AddressBookTypeValue = \n odataObject.AddressBookTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreAddressBookClass'] = StoreAddressBookClass;\n \n /**\n * TenderDetail entity class.\n */\n export class TenderDetailClass implements Entities.TenderDetail {\n public LineNumber: number;\n public Amount: number;\n public AmountInForeignCurrency: number;\n public ForeignCurrencyExchangeRate: number;\n public ForeignCurrency: string;\n public BankBagNumber: string;\n public TenderTypeId: string;\n public TenderRecount: number;\n public DenominationDetails: Entities.DenominationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountInForeignCurrency = \n (odataObject.AmountInForeignCurrency != null) ? parseFloat(odataObject.AmountInForeignCurrency) : undefined;\n \n this.ForeignCurrencyExchangeRate = \n (odataObject.ForeignCurrencyExchangeRate != null) ? parseFloat(odataObject.ForeignCurrencyExchangeRate) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.BankBagNumber = \n odataObject.BankBagNumber;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderRecount = \n odataObject.TenderRecount;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDetailClass'] = TenderDetailClass;\n \n /**\n * DenominationDetail entity class.\n */\n export class DenominationDetailClass implements Entities.DenominationDetail {\n public Type: number;\n public Currency: string;\n public DenominationAmount: number;\n public QuantityDeclared: number;\n public AmountDeclared: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Type = \n odataObject.Type;\n \n this.Currency = \n odataObject.Currency;\n \n this.DenominationAmount = \n (odataObject.DenominationAmount != null) ? parseFloat(odataObject.DenominationAmount) : undefined;\n \n this.QuantityDeclared = \n odataObject.QuantityDeclared;\n \n this.AmountDeclared = \n (odataObject.AmountDeclared != null) ? parseFloat(odataObject.AmountDeclared) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DenominationDetailClass'] = DenominationDetailClass;\n \n /**\n * ButtonGridZone entity class.\n */\n export class ButtonGridZoneClass implements Entities.ButtonGridZone {\n public ButtonGridId: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridId = \n odataObject.ButtonGridId;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridZoneClass'] = ButtonGridZoneClass;\n \n /**\n * ImageZone entity class.\n */\n export class ImageZoneClass implements Entities.ImageZone {\n public PictureId: number;\n public PictureAsBase64: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ImageZoneClass'] = ImageZoneClass;\n \n /**\n * ReportZone entity class.\n */\n export class ReportZoneClass implements Entities.ReportZone {\n public ReportRecordId: number;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportRecordId = \n (odataObject.ReportRecordId != null) ? parseInt(odataObject.ReportRecordId, 10) : undefined;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportZoneClass'] = ReportZoneClass;\n \n /**\n * SalesInvoiceLine entity class.\n */\n export class SalesInvoiceLineClass implements Entities.SalesInvoiceLine {\n public RecordId: number;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public InventDimensionId: string;\n public InventTransactionId: string;\n public Quantity: number;\n public Price: number;\n public DiscountPercent: number;\n public DiscountAmount: number;\n public BatchId: string;\n public NetAmount: number;\n public Site: string;\n public Warehouse: string;\n public SerialId: string;\n public ColorId: string;\n public SizeId: string;\n public StyleId: string;\n public ConfigId: string;\n public ColorName: string;\n public SizeName: string;\n public StyleName: string;\n public ConfigName: string;\n public SalesTaxGroup: string;\n public ItemTaxGroup: string;\n public SalesMarkup: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public PeriodicPercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.InventTransactionId = \n odataObject.InventTransactionId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.Site = \n odataObject.Site;\n \n this.Warehouse = \n odataObject.Warehouse;\n \n this.SerialId = \n odataObject.SerialId;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.ColorName = \n odataObject.ColorName;\n \n this.SizeName = \n odataObject.SizeName;\n \n this.StyleName = \n odataObject.StyleName;\n \n this.ConfigName = \n odataObject.ConfigName;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.ItemTaxGroup = \n odataObject.ItemTaxGroup;\n \n this.SalesMarkup = \n (odataObject.SalesMarkup != null) ? parseFloat(odataObject.SalesMarkup) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceLineClass'] = SalesInvoiceLineClass;\n \n /**\n * ReportRow entity class.\n */\n export class ReportRowClass implements Entities.ReportRow {\n public RowData: Entities.CommerceProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RowData = undefined;\n if (odataObject.RowData) {\n this.RowData = [];\n for (var i = 0; i < odataObject.RowData.length; i++) {\n if (odataObject.RowData[i] != null) {\n if (odataObject.RowData[i]['@odata.type'] != null) {\n var className: string = odataObject.RowData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RowData[i] = new entityDictionary[className](odataObject.RowData[i])\n }\n } else {\n this.RowData[i] = new CommercePropertyClass(odataObject.RowData[i]);\n }\n } else {\n this.RowData[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportRowClass'] = ReportRowClass;\n \n /**\n * FormAnnotation entity class.\n */\n export class FormAnnotationClass\n extends AnnotationClass\n implements Entities.FormAnnotation {\n public MenuItemLabel: string;\n public MenuItemName: string;\n public MenuItemType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemLabel = \n odataObject.MenuItemLabel;\n \n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormAnnotation\";\n \n }\n }\n entityDictionary['FormAnnotationClass'] = FormAnnotationClass;\n \n /**\n * TaskGuideAnnotation entity class.\n */\n export class TaskGuideAnnotationClass\n extends AnnotationClass\n implements Entities.TaskGuideAnnotation {\n public RecordingValueType: string;\n public Title: string;\n public ExampleText: string;\n public Hidden: boolean;\n public GlobalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RecordingValueType = \n odataObject.RecordingValueType;\n \n this.Title = \n odataObject.Title;\n \n this.ExampleText = \n odataObject.ExampleText;\n \n this.Hidden = \n odataObject.Hidden;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskGuideAnnotation\";\n \n }\n }\n entityDictionary['TaskGuideAnnotationClass'] = TaskGuideAnnotationClass;\n \n /**\n * CommandArgument entity class.\n */\n export class CommandArgumentClass implements Entities.CommandArgument {\n public Value: string;\n public IsReference: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.IsReference = \n odataObject.IsReference;\n \n }\n }\n entityDictionary['CommandArgumentClass'] = CommandArgumentClass;\n \n /**\n * PropertyUserAction entity class.\n */\n export class PropertyUserActionClass\n extends FormUserActionClass\n implements Entities.PropertyUserAction {\n public Value: string;\n public ValueLabel: string;\n public PropertyName: string;\n public ControlName: string;\n public ControlType: string;\n public UserActionType: string;\n public IsReference: boolean;\n public LabelId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ValueLabel = \n odataObject.ValueLabel;\n \n this.PropertyName = \n odataObject.PropertyName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.UserActionType = \n odataObject.UserActionType;\n \n this.IsReference = \n odataObject.IsReference;\n \n this.LabelId = \n odataObject.LabelId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PropertyUserAction\";\n \n }\n }\n entityDictionary['PropertyUserActionClass'] = PropertyUserActionClass;\n \n /**\n * InfoUserAction entity class.\n */\n export class InfoUserActionClass\n extends UserActionClass\n implements Entities.InfoUserAction {\n public FormId: string;\n public ControlLabel: string;\n public ControlLabelId: string;\n public ControlName: string;\n public Text: string;\n public Notes: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this.ControlLabelId = \n odataObject.ControlLabelId;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.Text = \n odataObject.Text;\n \n this.Notes = \n odataObject.Notes;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InfoUserAction\";\n \n }\n }\n entityDictionary['InfoUserActionClass'] = InfoUserActionClass;\n \n /**\n * MenuItemUserAction entity class.\n */\n export class MenuItemUserActionClass\n extends UserActionClass\n implements Entities.MenuItemUserAction {\n public MenuItemName: string;\n public MenuItemType: string;\n public NavigationPath: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this.NavigationPath = undefined;\n if (odataObject.NavigationPath) {\n this.NavigationPath = [];\n for (var i = 0; i < odataObject.NavigationPath.length; i++) {\n if (odataObject.NavigationPath[i] != null) {\n this.NavigationPath[i] = \n odataObject.NavigationPath[i];\n } else {\n this.NavigationPath[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.MenuItemUserAction\";\n \n }\n }\n entityDictionary['MenuItemUserActionClass'] = MenuItemUserActionClass;\n \n /**\n * ValidationUserAction entity class.\n */\n export class ValidationUserActionClass\n extends UserActionClass\n implements Entities.ValidationUserAction {\n public Name: string;\n public Comment: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ValidationUserAction\";\n \n }\n }\n entityDictionary['ValidationUserActionClass'] = ValidationUserActionClass;\n \n /**\n * ArtifactSummary entity class.\n */\n export class ArtifactSummaryClass implements Entities.ArtifactSummary {\n public ArtifactType: string;\n public LanguageTags: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ArtifactType = \n odataObject.ArtifactType;\n \n this.LanguageTags = undefined;\n if (odataObject.LanguageTags) {\n this.LanguageTags = [];\n for (var i = 0; i < odataObject.LanguageTags.length; i++) {\n if (odataObject.LanguageTags[i] != null) {\n this.LanguageTags[i] = \n odataObject.LanguageTags[i];\n } else {\n this.LanguageTags[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ArtifactSummaryClass'] = ArtifactSummaryClass;\n \n /**\n * MetadataPropertyValue entity class.\n */\n export class MetadataPropertyValueClass implements Entities.MetadataPropertyValue {\n public PropertyId: string;\n public SingleValue: string;\n public MultiValue: Entities.MetadataText[];\n public Tags: string[];\n public ComboBox: string;\n public MultiSelect: string[];\n public Links: Entities.MetadataHypertextLink[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PropertyId = \n odataObject.PropertyId;\n \n this.SingleValue = \n odataObject.SingleValue;\n \n this.MultiValue = undefined;\n if (odataObject.MultiValue) {\n this.MultiValue = [];\n for (var i = 0; i < odataObject.MultiValue.length; i++) {\n if (odataObject.MultiValue[i] != null) {\n if (odataObject.MultiValue[i]['@odata.type'] != null) {\n var className: string = odataObject.MultiValue[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MultiValue[i] = new entityDictionary[className](odataObject.MultiValue[i])\n }\n } else {\n this.MultiValue[i] = new MetadataTextClass(odataObject.MultiValue[i]);\n }\n } else {\n this.MultiValue[i] = undefined;\n }\n }\n }\n \n this.Tags = undefined;\n if (odataObject.Tags) {\n this.Tags = [];\n for (var i = 0; i < odataObject.Tags.length; i++) {\n if (odataObject.Tags[i] != null) {\n this.Tags[i] = \n odataObject.Tags[i];\n } else {\n this.Tags[i] = undefined;\n }\n }\n }\n \n this.ComboBox = \n odataObject.ComboBox;\n \n this.MultiSelect = undefined;\n if (odataObject.MultiSelect) {\n this.MultiSelect = [];\n for (var i = 0; i < odataObject.MultiSelect.length; i++) {\n if (odataObject.MultiSelect[i] != null) {\n this.MultiSelect[i] = \n odataObject.MultiSelect[i];\n } else {\n this.MultiSelect[i] = undefined;\n }\n }\n }\n \n this.Links = undefined;\n if (odataObject.Links) {\n this.Links = [];\n for (var i = 0; i < odataObject.Links.length; i++) {\n if (odataObject.Links[i] != null) {\n if (odataObject.Links[i]['@odata.type'] != null) {\n var className: string = odataObject.Links[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Links[i] = new entityDictionary[className](odataObject.Links[i])\n }\n } else {\n this.Links[i] = new MetadataHypertextLinkClass(odataObject.Links[i]);\n }\n } else {\n this.Links[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MetadataPropertyValueClass'] = MetadataPropertyValueClass;\n \n /**\n * FormContext entity class.\n */\n export class FormContextClass implements Entities.FormContext {\n public FormID: string;\n public FormName: string;\n public RecordingName: string;\n public HasMetadata: boolean;\n public Sequence: number;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormID = \n odataObject.FormID;\n \n this.FormName = \n odataObject.FormName;\n \n this.RecordingName = \n odataObject.RecordingName;\n \n this.HasMetadata = \n odataObject.HasMetadata;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FormContextClass'] = FormContextClass;\n \n /**\n * ExtensibleFiscalRegistrationType entity class.\n */\n export class ExtensibleFiscalRegistrationTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleFiscalRegistrationType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleFiscalRegistrationType\";\n \n }\n }\n entityDictionary['ExtensibleFiscalRegistrationTypeClass'] = ExtensibleFiscalRegistrationTypeClass;\n \n /**\n * FiscalTransactionTenderLineAdjustment entity class.\n */\n export class FiscalTransactionTenderLineAdjustmentClass implements Entities.FiscalTransactionTenderLineAdjustment {\n public TenderLineNumber: number;\n public AdjustmentAmount: number;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineNumber = \n (odataObject.TenderLineNumber != null) ? parseFloat(odataObject.TenderLineNumber) : undefined;\n \n this.AdjustmentAmount = \n (odataObject.AdjustmentAmount != null) ? parseFloat(odataObject.AdjustmentAmount) : undefined;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionTenderLineAdjustmentClass'] = FiscalTransactionTenderLineAdjustmentClass;\n \n /**\n * FiscalTransactionSalesLineAdjustment entity class.\n */\n export class FiscalTransactionSalesLineAdjustmentClass implements Entities.FiscalTransactionSalesLineAdjustment {\n public SalesLineNumber: number;\n public Exclude: boolean;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Exclude = \n odataObject.Exclude;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionSalesLineAdjustmentClass'] = FiscalTransactionSalesLineAdjustmentClass;\n \n /**\n * DetailedOrderStatus entity class.\n */\n export class DetailedOrderStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedOrderStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedOrderStatus\";\n \n }\n }\n entityDictionary['DetailedOrderStatusClass'] = DetailedOrderStatusClass;\n \n /**\n * LineValidationResult entity class.\n */\n export class LineValidationResultClass implements Entities.LineValidationResult {\n public LineId: string;\n public ValidationFailures: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.ValidationFailures = undefined;\n if (odataObject.ValidationFailures) {\n this.ValidationFailures = [];\n for (var i = 0; i < odataObject.ValidationFailures.length; i++) {\n if (odataObject.ValidationFailures[i] != null) {\n if (odataObject.ValidationFailures[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailures[i] = new entityDictionary[className](odataObject.ValidationFailures[i])\n }\n } else {\n this.ValidationFailures[i] = new DataValidationFailureClass(odataObject.ValidationFailures[i]);\n }\n } else {\n this.ValidationFailures[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineValidationResultClass'] = LineValidationResultClass;\n \n /**\n * SalesAffiliationLoyaltyTier entity class.\n */\n export class SalesAffiliationLoyaltyTierClass\n extends AffiliationLoyaltyTierClass\n implements Entities.SalesAffiliationLoyaltyTier {\n public TransactionId: string;\n public ChannelId: number;\n public TerminalId: string;\n public ReceiptId: string;\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAffiliationLoyaltyTier\";\n \n }\n }\n entityDictionary['SalesAffiliationLoyaltyTierClass'] = SalesAffiliationLoyaltyTierClass;\n \n /**\n * TaxViewLine entity class.\n */\n export class TaxViewLineClass implements Entities.TaxViewLine {\n public TaxId: string;\n public TaxAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxId = \n odataObject.TaxId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n }\n }\n entityDictionary['TaxViewLineClass'] = TaxViewLineClass;\n \n /**\n * Coupon entity class.\n */\n export class CouponClass implements Entities.Coupon {\n public CodeId: string;\n public Code: string;\n public DiscountOfferId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CodeId = \n odataObject.CodeId;\n \n this.Code = \n odataObject.Code;\n \n this.DiscountOfferId = \n odataObject.DiscountOfferId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CouponClass'] = CouponClass;\n \n /**\n * CustomerAccountDepositLine entity class.\n */\n export class CustomerAccountDepositLineClass implements Entities.CustomerAccountDepositLine {\n public Amount: number;\n public CustomerAccount: string;\n public Comment: string;\n public StoreNumber: string;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.Comment = \n odataObject.Comment;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAccountDepositLineClass'] = CustomerAccountDepositLineClass;\n \n /**\n * CustomerAttribute entity class.\n */\n export class CustomerAttributeClass implements Entities.CustomerAttribute {\n public AttributeValue: Entities.CommercePropertyValue;\n public Units: string;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new CommercePropertyValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.Units = \n odataObject.Units;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAttributeClass'] = CustomerAttributeClass;\n \n /**\n * ContactInfo entity class.\n */\n export class ContactInfoClass implements Entities.ContactInfo {\n public AddressTypeValue: number;\n public RecordId: number;\n public PartyLocationRecordId: number;\n public PartyRecordId: number;\n public PartyNumber: string;\n public Description: string;\n public Value: string;\n public ValueExtension: string;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public ParentLocation: number;\n public IsPrimary: boolean;\n public IsMobilePhone: boolean;\n public IsPrivate: boolean;\n public IsOptedInMarketing: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PartyLocationRecordId = \n (odataObject.PartyLocationRecordId != null) ? parseInt(odataObject.PartyLocationRecordId, 10) : undefined;\n \n this.PartyRecordId = \n (odataObject.PartyRecordId != null) ? parseInt(odataObject.PartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.Description = \n odataObject.Description;\n \n this.Value = \n odataObject.Value;\n \n this.ValueExtension = \n odataObject.ValueExtension;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.ParentLocation = \n (odataObject.ParentLocation != null) ? parseInt(odataObject.ParentLocation, 10) : undefined;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsMobilePhone = \n odataObject.IsMobilePhone;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsOptedInMarketing = \n odataObject.IsOptedInMarketing;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInfoClass'] = ContactInfoClass;\n \n /**\n * InventoryQuantities entity class.\n */\n export class InventoryQuantitiesClass implements Entities.InventoryQuantities {\n public UnitOfMeasure: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public QuantityReturned: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.QuantityReturned = \n (odataObject.QuantityReturned != null) ? parseFloat(odataObject.QuantityReturned) : undefined;\n \n }\n }\n entityDictionary['InventoryQuantitiesClass'] = InventoryQuantitiesClass;\n \n /**\n * DeliveryInformation entity class.\n */\n export class DeliveryInformationClass implements Entities.DeliveryInformation {\n public DeliveryMode: string;\n public DeliveryAddress: Entities.Address;\n public DeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['DeliveryInformationClass'] = DeliveryInformationClass;\n \n /**\n * ShiftTaxLine entity class.\n */\n export class ShiftTaxLineClass implements Entities.ShiftTaxLine {\n public TaxCode: string;\n public TaxAmount: number;\n public TaxRate: number;\n public NetAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxCode = \n odataObject.TaxCode;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxRate = \n (odataObject.TaxRate != null) ? parseFloat(odataObject.TaxRate) : undefined;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTaxLineClass'] = ShiftTaxLineClass;\n \n /**\n * TaxRegistration entity class.\n */\n export class TaxRegistrationClass implements Entities.TaxRegistration {\n public RecordId: number;\n public Name: string;\n public CountryRegionId: string;\n public IsRegistrationNumberUnique: boolean;\n public IsPrimaryAddressRestricted: boolean;\n public TypeApplicabilityRuleRecordId: number;\n public TypeValue: number;\n public Description: string;\n public DirPartyLocationRecordId: number;\n public RegistrationNumber: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public Issuer: string;\n public IssueDate: Date;\n public Section: string;\n public DirectoryPartyRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsRegistrationNumberUnique = \n odataObject.IsRegistrationNumberUnique;\n \n this.IsPrimaryAddressRestricted = \n odataObject.IsPrimaryAddressRestricted;\n \n this.TypeApplicabilityRuleRecordId = \n (odataObject.TypeApplicabilityRuleRecordId != null) ? parseInt(odataObject.TypeApplicabilityRuleRecordId, 10) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DirPartyLocationRecordId = \n (odataObject.DirPartyLocationRecordId != null) ? parseInt(odataObject.DirPartyLocationRecordId, 10) : undefined;\n \n this.RegistrationNumber = \n odataObject.RegistrationNumber;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.IssueDate = \n (odataObject.IssueDate instanceof Date) ? odataObject.IssueDate\n : (odataObject.IssueDate != null) ? jsonLightReadStringPropertyValue(odataObject.IssueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Section = \n odataObject.Section;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxRegistrationClass'] = TaxRegistrationClass;\n \n /**\n * ChannelTaxRegistration entity class.\n */\n export class ChannelTaxRegistrationClass\n extends TaxRegistrationClass\n implements Entities.ChannelTaxRegistration {\n public ChannelId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ChannelTaxRegistration\";\n \n }\n }\n entityDictionary['ChannelTaxRegistrationClass'] = ChannelTaxRegistrationClass;\n \n /**\n * LinkedProduct entity class.\n */\n export class LinkedProductClass implements Entities.LinkedProduct {\n public ProductRecordId: number;\n public LinkedProductRecordId: number;\n public Quantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.LinkedProductRecordId = \n (odataObject.LinkedProductRecordId != null) ? parseInt(odataObject.LinkedProductRecordId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LinkedProductClass'] = LinkedProductClass;\n \n /**\n * DisplayOrderInCategory entity class.\n */\n export class DisplayOrderInCategoryClass implements Entities.DisplayOrderInCategory {\n public CategoryRecordId: number;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryRecordId = \n (odataObject.CategoryRecordId != null) ? parseInt(odataObject.CategoryRecordId, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DisplayOrderInCategoryClass'] = DisplayOrderInCategoryClass;\n \n /**\n * RelatedProduct entity class.\n */\n export class RelatedProductClass implements Entities.RelatedProduct {\n public ProductRecordId: number;\n public RelatedProductRecordId: number;\n public CatalogId: number;\n public RelationName: string;\n public IsExcludedRelation: boolean;\n public IsDirectRelation: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.RelatedProductRecordId = \n (odataObject.RelatedProductRecordId != null) ? parseInt(odataObject.RelatedProductRecordId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.RelationName = \n odataObject.RelationName;\n \n this.IsExcludedRelation = \n odataObject.IsExcludedRelation;\n \n this.IsDirectRelation = \n odataObject.IsDirectRelation;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RelatedProductClass'] = RelatedProductClass;\n \n /**\n * KitComponent entity class.\n */\n export class KitComponentClass implements Entities.KitComponent {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitComponentClass'] = KitComponentClass;\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity class.\n */\n export class ChannelReferenceAdditionalLookupCriteriaClass implements Entities.ChannelReferenceAdditionalLookupCriteria {\n public OrderLookupAdditionalCriteriaTypeValue: number;\n public OrderLookupAdditionalCriteriaTypeParameterValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderLookupAdditionalCriteriaTypeValue = \n odataObject.OrderLookupAdditionalCriteriaTypeValue;\n \n this.OrderLookupAdditionalCriteriaTypeParameterValue = \n odataObject.OrderLookupAdditionalCriteriaTypeParameterValue;\n \n }\n }\n entityDictionary['ChannelReferenceAdditionalLookupCriteriaClass'] = ChannelReferenceAdditionalLookupCriteriaClass;\n \n /**\n * UserAlertFulfillmentLineParameter entity class.\n */\n export class UserAlertFulfillmentLineParameterClass\n extends FulfillmentLineParameterClass\n implements Entities.UserAlertFulfillmentLineParameter {\n public ItemId: string;\n public ProductId: number;\n public UnitOfMeasure: string;\n public SerialNumberInLatestFulfillmentTransaction: string;\n public LatestFulfillmentTransactionOperationTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.SerialNumberInLatestFulfillmentTransaction = \n odataObject.SerialNumberInLatestFulfillmentTransaction;\n \n this.LatestFulfillmentTransactionOperationTypeValue = \n odataObject.LatestFulfillmentTransactionOperationTypeValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAlertFulfillmentLineParameter\";\n \n }\n }\n entityDictionary['UserAlertFulfillmentLineParameterClass'] = UserAlertFulfillmentLineParameterClass;\n \n /**\n * ListingIdentity entity class.\n */\n export class ListingIdentityClass implements Entities.ListingIdentity {\n public ProductId: number;\n public LanguageId: string;\n public CatalogId: number;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingIdentityClass'] = ListingIdentityClass;\n \n /**\n * ProductRatingCount entity class.\n */\n export class ProductRatingCountClass implements Entities.ProductRatingCount {\n public Rating: number;\n public Count: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Rating = \n (odataObject.Rating != null) ? parseFloat(odataObject.Rating) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingCountClass'] = ProductRatingCountClass;\n \n /**\n * RegularStoreHours entity class.\n */\n export class RegularStoreHoursClass implements Entities.RegularStoreHours {\n public MondayOpenTime: number;\n public MondayCloseTime: number;\n public IsClosedOnMonday: boolean;\n public TuesdayOpenTime: number;\n public TuesdayCloseTime: number;\n public IsClosedOnTuesday: boolean;\n public WednesdayOpenTime: number;\n public WednesdayCloseTime: number;\n public IsClosedOnWednesday: boolean;\n public ThursdayOpenTime: number;\n public ThursdayCloseTime: number;\n public IsClosedOnThursday: boolean;\n public FridayOpenTime: number;\n public FridayCloseTime: number;\n public IsClosedOnFriday: boolean;\n public SaturdayOpenTime: number;\n public SaturdayCloseTime: number;\n public IsClosedOnSaturday: boolean;\n public SundayOpenTime: number;\n public SundayCloseTime: number;\n public IsClosedOnSunday: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MondayOpenTime = \n odataObject.MondayOpenTime;\n \n this.MondayCloseTime = \n odataObject.MondayCloseTime;\n \n this.IsClosedOnMonday = \n odataObject.IsClosedOnMonday;\n \n this.TuesdayOpenTime = \n odataObject.TuesdayOpenTime;\n \n this.TuesdayCloseTime = \n odataObject.TuesdayCloseTime;\n \n this.IsClosedOnTuesday = \n odataObject.IsClosedOnTuesday;\n \n this.WednesdayOpenTime = \n odataObject.WednesdayOpenTime;\n \n this.WednesdayCloseTime = \n odataObject.WednesdayCloseTime;\n \n this.IsClosedOnWednesday = \n odataObject.IsClosedOnWednesday;\n \n this.ThursdayOpenTime = \n odataObject.ThursdayOpenTime;\n \n this.ThursdayCloseTime = \n odataObject.ThursdayCloseTime;\n \n this.IsClosedOnThursday = \n odataObject.IsClosedOnThursday;\n \n this.FridayOpenTime = \n odataObject.FridayOpenTime;\n \n this.FridayCloseTime = \n odataObject.FridayCloseTime;\n \n this.IsClosedOnFriday = \n odataObject.IsClosedOnFriday;\n \n this.SaturdayOpenTime = \n odataObject.SaturdayOpenTime;\n \n this.SaturdayCloseTime = \n odataObject.SaturdayCloseTime;\n \n this.IsClosedOnSaturday = \n odataObject.IsClosedOnSaturday;\n \n this.SundayOpenTime = \n odataObject.SundayOpenTime;\n \n this.SundayCloseTime = \n odataObject.SundayCloseTime;\n \n this.IsClosedOnSunday = \n odataObject.IsClosedOnSunday;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RegularStoreHoursClass'] = RegularStoreHoursClass;\n \n /**\n * ValidationPeriod entity class.\n */\n export class ValidationPeriodClass implements Entities.ValidationPeriod {\n public RecordId: number;\n public PeriodId: string;\n public Description: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public StartingTime: number;\n public EndingTime: number;\n public IsTimeBounded: number;\n public MondayStartingTime: number;\n public MondayEndingTime: number;\n public IsMondayTimeBounded: number;\n public TuesdayStartingTime: number;\n public TuesdayEndingTime: number;\n public IsTuesdayTimeBounded: number;\n public WednesdayStartingTime: number;\n public WednesdayEndingTime: number;\n public IsWednesdayTimeBounded: number;\n public ThursdayStartingTime: number;\n public ThursdayEndingTime: number;\n public IsThursdayTimeBounded: number;\n public FridayStartingTime: number;\n public FridayEndingTime: number;\n public IsFridayTimeBounded: number;\n public SaturdayStartingTime: number;\n public SaturdayEndingTime: number;\n public IsSaturdayTimeBounded: number;\n public SundayStartingTime: number;\n public SundayEndingTime: number;\n public IsSundayTimeBounded: number;\n public IsEndTimeAfterMidnight: number;\n public IsMondayEndTimeAfterMidnight: number;\n public IsTuesdayEndTimeAfterMidnight: number;\n public IsWednesdayEndTimeAfterMidnight: number;\n public IsThursdayEndTimeAfterMidnight: number;\n public IsFridayEndTimeAfterMidnight: number;\n public IsSaturdayEndTimeAfterMidnight: number;\n public IsSundayEndTimeAfterMidnight: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PeriodId = \n odataObject.PeriodId;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StartingTime = \n odataObject.StartingTime;\n \n this.EndingTime = \n odataObject.EndingTime;\n \n this.IsTimeBounded = \n odataObject.IsTimeBounded;\n \n this.MondayStartingTime = \n odataObject.MondayStartingTime;\n \n this.MondayEndingTime = \n odataObject.MondayEndingTime;\n \n this.IsMondayTimeBounded = \n odataObject.IsMondayTimeBounded;\n \n this.TuesdayStartingTime = \n odataObject.TuesdayStartingTime;\n \n this.TuesdayEndingTime = \n odataObject.TuesdayEndingTime;\n \n this.IsTuesdayTimeBounded = \n odataObject.IsTuesdayTimeBounded;\n \n this.WednesdayStartingTime = \n odataObject.WednesdayStartingTime;\n \n this.WednesdayEndingTime = \n odataObject.WednesdayEndingTime;\n \n this.IsWednesdayTimeBounded = \n odataObject.IsWednesdayTimeBounded;\n \n this.ThursdayStartingTime = \n odataObject.ThursdayStartingTime;\n \n this.ThursdayEndingTime = \n odataObject.ThursdayEndingTime;\n \n this.IsThursdayTimeBounded = \n odataObject.IsThursdayTimeBounded;\n \n this.FridayStartingTime = \n odataObject.FridayStartingTime;\n \n this.FridayEndingTime = \n odataObject.FridayEndingTime;\n \n this.IsFridayTimeBounded = \n odataObject.IsFridayTimeBounded;\n \n this.SaturdayStartingTime = \n odataObject.SaturdayStartingTime;\n \n this.SaturdayEndingTime = \n odataObject.SaturdayEndingTime;\n \n this.IsSaturdayTimeBounded = \n odataObject.IsSaturdayTimeBounded;\n \n this.SundayStartingTime = \n odataObject.SundayStartingTime;\n \n this.SundayEndingTime = \n odataObject.SundayEndingTime;\n \n this.IsSundayTimeBounded = \n odataObject.IsSundayTimeBounded;\n \n this.IsEndTimeAfterMidnight = \n odataObject.IsEndTimeAfterMidnight;\n \n this.IsMondayEndTimeAfterMidnight = \n odataObject.IsMondayEndTimeAfterMidnight;\n \n this.IsTuesdayEndTimeAfterMidnight = \n odataObject.IsTuesdayEndTimeAfterMidnight;\n \n this.IsWednesdayEndTimeAfterMidnight = \n odataObject.IsWednesdayEndTimeAfterMidnight;\n \n this.IsThursdayEndTimeAfterMidnight = \n odataObject.IsThursdayEndTimeAfterMidnight;\n \n this.IsFridayEndTimeAfterMidnight = \n odataObject.IsFridayEndTimeAfterMidnight;\n \n this.IsSaturdayEndTimeAfterMidnight = \n odataObject.IsSaturdayEndTimeAfterMidnight;\n \n this.IsSundayEndTimeAfterMidnight = \n odataObject.IsSundayEndTimeAfterMidnight;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidationPeriodClass'] = ValidationPeriodClass;\n \n /**\n * ClientBookChange entity class.\n */\n export class ClientBookChangeClass implements Entities.ClientBookChange {\n public FromStaffId: string;\n public ToStaffId: string;\n public CustomerId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromStaffId = \n odataObject.FromStaffId;\n \n this.ToStaffId = \n odataObject.ToStaffId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n }\n }\n entityDictionary['ClientBookChangeClass'] = ClientBookChangeClass;\n \n /**\n * ChannelProfile entity class.\n */\n export class ChannelProfileClass implements Entities.ChannelProfile {\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfileClass'] = ChannelProfileClass;\n \n /**\n * RetailSharedConfigurationParameter entity class.\n */\n export class RetailSharedConfigurationParameterClass implements Entities.RetailSharedConfigurationParameter {\n public RecordId: number;\n public Name: string;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RetailSharedConfigurationParameterClass'] = RetailSharedConfigurationParameterClass;\n \n /**\n * CDXDataStore entity class.\n */\n export class CDXDataStoreClass implements Entities.CDXDataStore {\n public Name: string;\n public RecId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CDXDataStoreClass'] = CDXDataStoreClass;\n \n /**\n * UploadJobPackageRequest entity class.\n */\n export class UploadJobPackageRequestClass implements Entities.UploadJobPackageRequest {\n public JobId: string;\n public RerunUploadSessionId: number;\n public TargetStorage: string;\n public UploadJobDefintion: string;\n public UploadUrl: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JobId = \n odataObject.JobId;\n \n this.RerunUploadSessionId = \n (odataObject.RerunUploadSessionId != null) ? parseInt(odataObject.RerunUploadSessionId, 10) : undefined;\n \n this.TargetStorage = \n odataObject.TargetStorage;\n \n this.UploadJobDefintion = \n odataObject.UploadJobDefintion;\n \n this.UploadUrl = \n odataObject.UploadUrl;\n \n }\n }\n entityDictionary['UploadJobPackageRequestClass'] = UploadJobPackageRequestClass;\n \n /**\n * ExtensibleAuditEventType entity class.\n */\n export class ExtensibleAuditEventTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAuditEventType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAuditEventType\";\n \n }\n }\n entityDictionary['ExtensibleAuditEventTypeClass'] = ExtensibleAuditEventTypeClass;\n \n /**\n * AuditEventFiscalTransaction entity class.\n */\n export class AuditEventFiscalTransactionClass implements Entities.AuditEventFiscalTransaction {\n public EventId: number;\n public LineNumber: number;\n public RegisterResponse: string;\n public Store: string;\n public TransDateTime: Date;\n public Terminal: string;\n public UploadType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.Store = \n odataObject.Store;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalTransactionClass'] = AuditEventFiscalTransactionClass;\n \n /**\n * AuditEventFiscalRegistrationLine entity class.\n */\n export class AuditEventFiscalRegistrationLineClass implements Entities.AuditEventFiscalRegistrationLine {\n public EventId: number;\n public RegisterResponse: string;\n public StoreId: string;\n public TransactionDateTime: Date;\n public TerminalId: string;\n public UploadType: string;\n public UploadTypeValue: number;\n public StaffId: string;\n public RecordGuid: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TransactionDateTime = \n (odataObject.TransactionDateTime instanceof Date) ? odataObject.TransactionDateTime\n : (odataObject.TransactionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.UploadTypeValue = \n odataObject.UploadTypeValue;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalRegistrationLineClass'] = AuditEventFiscalRegistrationLineClass;\n \n /**\n * NotificationDetail entity class.\n */\n export class NotificationDetailClass implements Entities.NotificationDetail {\n public ActionProperty: string;\n public ItemCount: number;\n public DisplayText: string;\n public IsNew: boolean;\n public LastUpdatedDateTimeStr: string;\n public IsSuccess: boolean;\n public IsLiveContentOnly: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActionProperty = \n odataObject.ActionProperty;\n \n this.ItemCount = \n (odataObject.ItemCount != null) ? parseInt(odataObject.ItemCount, 10) : undefined;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n this.IsNew = \n odataObject.IsNew;\n \n this.LastUpdatedDateTimeStr = \n odataObject.LastUpdatedDateTimeStr;\n \n this.IsSuccess = \n odataObject.IsSuccess;\n \n this.IsLiveContentOnly = \n odataObject.IsLiveContentOnly;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationDetailClass'] = NotificationDetailClass;\n \n /**\n * FiscalIntegrationDocumentContext entity class.\n */\n export class FiscalIntegrationDocumentContextClass implements Entities.FiscalIntegrationDocumentContext {\n public AuditEvent: Entities.AuditEvent;\n public SignatureData: Entities.FiscalIntegrationSequentialSignatureData[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AuditEvent == null) {\n this.AuditEvent = undefined;\n } else if (odataObject.AuditEvent['@odata.type'] == null) {\n this.AuditEvent = new AuditEventClass(odataObject.AuditEvent);\n } else {\n var className: string = odataObject.AuditEvent['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AuditEvent = new entityDictionary[className](odataObject.AuditEvent)\n }\n }\n\n \n this.SignatureData = undefined;\n if (odataObject.SignatureData) {\n this.SignatureData = [];\n for (var i = 0; i < odataObject.SignatureData.length; i++) {\n if (odataObject.SignatureData[i] != null) {\n if (odataObject.SignatureData[i]['@odata.type'] != null) {\n var className: string = odataObject.SignatureData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SignatureData[i] = new entityDictionary[className](odataObject.SignatureData[i])\n }\n } else {\n this.SignatureData[i] = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SignatureData[i]);\n }\n } else {\n this.SignatureData[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentContextClass'] = FiscalIntegrationDocumentContextClass;\n \n /**\n * FiscalIntegrationDocumentAdjustment entity class.\n */\n export class FiscalIntegrationDocumentAdjustmentClass implements Entities.FiscalIntegrationDocumentAdjustment {\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentAdjustmentClass'] = FiscalIntegrationDocumentAdjustmentClass;\n \n /**\n * FiscalIntegrationSignatureDataContext entity class.\n */\n export class FiscalIntegrationSignatureDataContextClass implements Entities.FiscalIntegrationSignatureDataContext {\n public SequentialSignatureKey: string;\n public SequentialNumber: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SequentialSignatureKey = \n odataObject.SequentialSignatureKey;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n }\n }\n entityDictionary['FiscalIntegrationSignatureDataContextClass'] = FiscalIntegrationSignatureDataContextClass;\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity class.\n */\n export class FiscalIntegrationRegistrationProcessLineClass implements Entities.FiscalIntegrationRegistrationProcessLine {\n public RegistrationProcessId: string;\n public SequenceNumber: number;\n public Priority: number;\n public ConnectorTypeValue: number;\n public FunctionalityProfileGroupId: string;\n public AllowSkip: boolean;\n public AllowMarkAsRegistered: boolean;\n public AllowPostpone: boolean;\n public Optional: boolean;\n public RegistrationSettings: Entities.FiscalIntegrationRegistrationSettings;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public SequentialKeys: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.SequenceNumber = \n odataObject.SequenceNumber;\n \n this.Priority = \n odataObject.Priority;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.AllowSkip = \n odataObject.AllowSkip;\n \n this.AllowMarkAsRegistered = \n odataObject.AllowMarkAsRegistered;\n \n this.AllowPostpone = \n odataObject.AllowPostpone;\n \n this.Optional = \n odataObject.Optional;\n \n if (odataObject.RegistrationSettings == null) {\n this.RegistrationSettings = undefined;\n } else if (odataObject.RegistrationSettings['@odata.type'] == null) {\n this.RegistrationSettings = new FiscalIntegrationRegistrationSettingsClass(odataObject.RegistrationSettings);\n } else {\n var className: string = odataObject.RegistrationSettings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationSettings = new entityDictionary[className](odataObject.RegistrationSettings)\n }\n }\n\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SequentialKeys = undefined;\n if (odataObject.SequentialKeys) {\n this.SequentialKeys = [];\n for (var i = 0; i < odataObject.SequentialKeys.length; i++) {\n if (odataObject.SequentialKeys[i] != null) {\n this.SequentialKeys[i] = \n odataObject.SequentialKeys[i];\n } else {\n this.SequentialKeys[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessLineClass'] = FiscalIntegrationRegistrationProcessLineClass;\n \n /**\n * FiscalIntegrationRegistrationSettings entity class.\n */\n export class FiscalIntegrationRegistrationSettingsClass implements Entities.FiscalIntegrationRegistrationSettings {\n public SkipReasonCode: string;\n public MarkAsRegisteredReasonCode: string;\n public PostponeReasonCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SkipReasonCode = \n odataObject.SkipReasonCode;\n \n this.MarkAsRegisteredReasonCode = \n odataObject.MarkAsRegisteredReasonCode;\n \n this.PostponeReasonCode = \n odataObject.PostponeReasonCode;\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationSettingsClass'] = FiscalIntegrationRegistrationSettingsClass;\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummaryLine entity class.\n */\n export class FiscalIntegrationFiscalRegistrationProcessSummaryLineClass implements Entities.FiscalIntegrationFiscalRegistrationProcessSummaryLine {\n public RegistrationProcessLine: Entities.FiscalIntegrationRegistrationProcessLine;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public ConnectionProperties: Entities.FiscalIntegrationConfigurationProperty[];\n public ErrorCode: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegistrationProcessLine == null) {\n this.RegistrationProcessLine = undefined;\n } else if (odataObject.RegistrationProcessLine['@odata.type'] == null) {\n this.RegistrationProcessLine = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLine);\n } else {\n var className: string = odataObject.RegistrationProcessLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLine = new entityDictionary[className](odataObject.RegistrationProcessLine)\n }\n }\n\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.ConnectionProperties = undefined;\n if (odataObject.ConnectionProperties) {\n this.ConnectionProperties = [];\n for (var i = 0; i < odataObject.ConnectionProperties.length; i++) {\n if (odataObject.ConnectionProperties[i] != null) {\n if (odataObject.ConnectionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ConnectionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ConnectionProperties[i] = new entityDictionary[className](odataObject.ConnectionProperties[i])\n }\n } else {\n this.ConnectionProperties[i] = new FiscalIntegrationConfigurationPropertyClass(odataObject.ConnectionProperties[i]);\n }\n } else {\n this.ConnectionProperties[i] = undefined;\n }\n }\n }\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n }\n }\n entityDictionary['FiscalIntegrationFiscalRegistrationProcessSummaryLineClass'] = FiscalIntegrationFiscalRegistrationProcessSummaryLineClass;\n \n /**\n * FiscalIntegrationConfigurationProperty entity class.\n */\n export class FiscalIntegrationConfigurationPropertyClass implements Entities.FiscalIntegrationConfigurationProperty {\n public LabelName: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LabelName = \n odataObject.LabelName;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['FiscalIntegrationConfigurationPropertyClass'] = FiscalIntegrationConfigurationPropertyClass;\n \n /**\n * FiscalIntegrationServiceFailureDetails entity class.\n */\n export class FiscalIntegrationServiceFailureDetailsClass implements Entities.FiscalIntegrationServiceFailureDetails {\n public FailureTypeValue: number;\n public IsRetryAllowed: boolean;\n public ErrorCode: string;\n public ErrorMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FailureTypeValue = \n odataObject.FailureTypeValue;\n \n this.IsRetryAllowed = \n odataObject.IsRetryAllowed;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceFailureDetailsClass'] = FiscalIntegrationServiceFailureDetailsClass;\n \n /**\n * CategoryPath entity class.\n */\n export class CategoryPathClass implements Entities.CategoryPath {\n public Segments: Entities.CategoryPathSegment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Segments = undefined;\n if (odataObject.Segments) {\n this.Segments = [];\n for (var i = 0; i < odataObject.Segments.length; i++) {\n if (odataObject.Segments[i] != null) {\n if (odataObject.Segments[i]['@odata.type'] != null) {\n var className: string = odataObject.Segments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Segments[i] = new entityDictionary[className](odataObject.Segments[i])\n }\n } else {\n this.Segments[i] = new CategoryPathSegmentClass(odataObject.Segments[i]);\n }\n } else {\n this.Segments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathClass'] = CategoryPathClass;\n \n /**\n * CategoryPathSegment entity class.\n */\n export class CategoryPathSegmentClass implements Entities.CategoryPathSegment {\n public CategoryName: string;\n public CategoryId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.CategoryId = \n (odataObject.CategoryId != null) ? parseInt(odataObject.CategoryId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathSegmentClass'] = CategoryPathSegmentClass;\n \n /**\n * AttachedService entity class.\n */\n export class AttachedServiceClass implements Entities.AttachedService {\n public BaseUrl: string;\n public ServiceId: string;\n public StatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BaseUrl = \n odataObject.BaseUrl;\n \n this.ServiceId = \n odataObject.ServiceId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttachedServiceClass'] = AttachedServiceClass;\n \n /**\n * ExtensibleInventoryJournalType entity class.\n */\n export class ExtensibleInventoryJournalTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleInventoryJournalType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleInventoryJournalType\";\n \n }\n }\n entityDictionary['ExtensibleInventoryJournalTypeClass'] = ExtensibleInventoryJournalTypeClass;\n \n /**\n * CustomerTimelineItemType entity class.\n */\n export class CustomerTimelineItemTypeClass implements Entities.CustomerTimelineItemType {\n public Description: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeClass'] = CustomerTimelineItemTypeClass;\n \n /**\n * ProductWarehouseInventoryAvailability entity class.\n */\n export class ProductWarehouseInventoryAvailabilityClass implements Entities.ProductWarehouseInventoryAvailability {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public PhysicalInventory: number;\n public PhysicalReserved: number;\n public TotalAvailable: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public OrderedInTotal: number;\n public PhysicalAvailable: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public LastInventoryTransactionId: number;\n public UnpostedOnlineOrderedQuantity: number;\n public UnpostedFulfilledQuantity: number;\n public IsInventoryAvailabilityQuantityReturned: boolean;\n public UnprocessedQuantity: number;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public SumUncountedTransactions: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.PhysicalInventory = \n (odataObject.PhysicalInventory != null) ? parseFloat(odataObject.PhysicalInventory) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.TotalAvailable = \n (odataObject.TotalAvailable != null) ? parseFloat(odataObject.TotalAvailable) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.OrderedInTotal = \n (odataObject.OrderedInTotal != null) ? parseFloat(odataObject.OrderedInTotal) : undefined;\n \n this.PhysicalAvailable = \n (odataObject.PhysicalAvailable != null) ? parseFloat(odataObject.PhysicalAvailable) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.LastInventoryTransactionId = \n (odataObject.LastInventoryTransactionId != null) ? parseInt(odataObject.LastInventoryTransactionId, 10) : undefined;\n \n this.UnpostedOnlineOrderedQuantity = \n (odataObject.UnpostedOnlineOrderedQuantity != null) ? parseFloat(odataObject.UnpostedOnlineOrderedQuantity) : undefined;\n \n this.UnpostedFulfilledQuantity = \n (odataObject.UnpostedFulfilledQuantity != null) ? parseFloat(odataObject.UnpostedFulfilledQuantity) : undefined;\n \n this.IsInventoryAvailabilityQuantityReturned = \n odataObject.IsInventoryAvailabilityQuantityReturned;\n \n this.UnprocessedQuantity = \n (odataObject.UnprocessedQuantity != null) ? parseFloat(odataObject.UnprocessedQuantity) : undefined;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.SumUncountedTransactions = \n (odataObject.SumUncountedTransactions != null) ? parseFloat(odataObject.SumUncountedTransactions) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryAvailabilityClass'] = ProductWarehouseInventoryAvailabilityClass;\n \n /**\n * QuantityUnitType entity class.\n */\n export class QuantityUnitTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.QuantityUnitType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.QuantityUnitType\";\n \n }\n }\n entityDictionary['QuantityUnitTypeClass'] = QuantityUnitTypeClass;\n \n /**\n * ProductInventoryAvailability entity class.\n */\n export class ProductInventoryAvailabilityClass implements Entities.ProductInventoryAvailability {\n public ProductId: number;\n public DataAreaId: string;\n public TotalAvailableQuantity: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableQuantity: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.TotalAvailableQuantity = \n (odataObject.TotalAvailableQuantity != null) ? parseFloat(odataObject.TotalAvailableQuantity) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableQuantity = \n (odataObject.PhysicalAvailableQuantity != null) ? parseFloat(odataObject.PhysicalAvailableQuantity) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductInventoryAvailabilityClass'] = ProductInventoryAvailabilityClass;\n \n /**\n * ParameterSet entity class.\n */\n export class ParameterSetClass implements Entities.ParameterSet {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ParameterSetClass'] = ParameterSetClass;\n \n /**\n * CartLineValidationResults entity class.\n */\n export class CartLineValidationResultsClass implements Entities.CartLineValidationResults {\n public ValidationResultsByLineId: Entities.CartLineValidationResultsByLineId;\n public ValidationFailuresByCartLines: Entities.LineDataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ValidationResultsByLineId == null) {\n this.ValidationResultsByLineId = undefined;\n } else if (odataObject.ValidationResultsByLineId['@odata.type'] == null) {\n this.ValidationResultsByLineId = new CartLineValidationResultsByLineIdClass(odataObject.ValidationResultsByLineId);\n } else {\n var className: string = odataObject.ValidationResultsByLineId['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsByLineId = new entityDictionary[className](odataObject.ValidationResultsByLineId)\n }\n }\n\n \n this.ValidationFailuresByCartLines = undefined;\n if (odataObject.ValidationFailuresByCartLines) {\n this.ValidationFailuresByCartLines = [];\n for (var i = 0; i < odataObject.ValidationFailuresByCartLines.length; i++) {\n if (odataObject.ValidationFailuresByCartLines[i] != null) {\n if (odataObject.ValidationFailuresByCartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailuresByCartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailuresByCartLines[i] = new entityDictionary[className](odataObject.ValidationFailuresByCartLines[i])\n }\n } else {\n this.ValidationFailuresByCartLines[i] = new LineDataValidationFailureClass(odataObject.ValidationFailuresByCartLines[i]);\n }\n } else {\n this.ValidationFailuresByCartLines[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsClass'] = CartLineValidationResultsClass;\n \n /**\n * CommerceException entity class.\n */\n export class CommerceExceptionClass implements Entities.CommerceException {\n public LocalizedMessage: string;\n public ErrorResourceId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n }\n }\n entityDictionary['CommerceExceptionClass'] = CommerceExceptionClass;\n \n /**\n * DataValidationException entity class.\n */\n export class DataValidationExceptionClass\n extends CommerceExceptionClass\n implements Entities.DataValidationException {\n public ValidationResults: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ValidationResults = undefined;\n if (odataObject.ValidationResults) {\n this.ValidationResults = [];\n for (var i = 0; i < odataObject.ValidationResults.length; i++) {\n if (odataObject.ValidationResults[i] != null) {\n if (odataObject.ValidationResults[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResults[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResults[i] = new entityDictionary[className](odataObject.ValidationResults[i])\n }\n } else {\n this.ValidationResults[i] = new DataValidationFailureClass(odataObject.ValidationResults[i]);\n }\n } else {\n this.ValidationResults[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataValidationException\";\n \n }\n }\n entityDictionary['DataValidationExceptionClass'] = DataValidationExceptionClass;\n \n /**\n * MissingRequiredReasonCodeException entity class.\n */\n export class MissingRequiredReasonCodeExceptionClass\n extends DataValidationExceptionClass\n implements Entities.MissingRequiredReasonCodeException {\n public RequiredReasonCodes: Entities.ReasonCode[];\n public TransactionRequiredReasonCodeIds: string[];\n public ReasonCodeRequirements: Entities.ReasonCodeRequirement[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RequiredReasonCodes = undefined;\n if (odataObject.RequiredReasonCodes) {\n this.RequiredReasonCodes = [];\n for (var i = 0; i < odataObject.RequiredReasonCodes.length; i++) {\n if (odataObject.RequiredReasonCodes[i] != null) {\n if (odataObject.RequiredReasonCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.RequiredReasonCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RequiredReasonCodes[i] = new entityDictionary[className](odataObject.RequiredReasonCodes[i])\n }\n } else {\n this.RequiredReasonCodes[i] = new ReasonCodeClass(odataObject.RequiredReasonCodes[i]);\n }\n } else {\n this.RequiredReasonCodes[i] = undefined;\n }\n }\n }\n \n this.TransactionRequiredReasonCodeIds = undefined;\n if (odataObject.TransactionRequiredReasonCodeIds) {\n this.TransactionRequiredReasonCodeIds = [];\n for (var i = 0; i < odataObject.TransactionRequiredReasonCodeIds.length; i++) {\n if (odataObject.TransactionRequiredReasonCodeIds[i] != null) {\n this.TransactionRequiredReasonCodeIds[i] = \n odataObject.TransactionRequiredReasonCodeIds[i];\n } else {\n this.TransactionRequiredReasonCodeIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeRequirements = undefined;\n if (odataObject.ReasonCodeRequirements) {\n this.ReasonCodeRequirements = [];\n for (var i = 0; i < odataObject.ReasonCodeRequirements.length; i++) {\n if (odataObject.ReasonCodeRequirements[i] != null) {\n if (odataObject.ReasonCodeRequirements[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeRequirements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeRequirements[i] = new entityDictionary[className](odataObject.ReasonCodeRequirements[i])\n }\n } else {\n this.ReasonCodeRequirements[i] = new ReasonCodeRequirementClass(odataObject.ReasonCodeRequirements[i]);\n }\n } else {\n this.ReasonCodeRequirements[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.MissingRequiredReasonCodeException\";\n \n }\n }\n entityDictionary['MissingRequiredReasonCodeExceptionClass'] = MissingRequiredReasonCodeExceptionClass;\n \n /**\n * SecurityException entity class.\n */\n export class SecurityExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecurityException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecurityException\";\n \n }\n }\n entityDictionary['SecurityExceptionClass'] = SecurityExceptionClass;\n \n /**\n * DeviceAuthenticationException entity class.\n */\n export class DeviceAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.DeviceAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DeviceAuthenticationException\";\n \n }\n }\n entityDictionary['DeviceAuthenticationExceptionClass'] = DeviceAuthenticationExceptionClass;\n \n /**\n * HeadquarterTransactionServiceException entity class.\n */\n export class HeadquarterTransactionServiceExceptionClass\n extends CommerceExceptionClass\n implements Entities.HeadquarterTransactionServiceException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.HeadquarterTransactionServiceException\";\n \n }\n }\n entityDictionary['HeadquarterTransactionServiceExceptionClass'] = HeadquarterTransactionServiceExceptionClass;\n \n /**\n * UserAuthenticationException entity class.\n */\n export class UserAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthenticationException\";\n \n }\n }\n entityDictionary['UserAuthenticationExceptionClass'] = UserAuthenticationExceptionClass;\n \n /**\n * UserAuthorizationException entity class.\n */\n export class UserAuthorizationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthorizationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthorizationException\";\n \n }\n }\n entityDictionary['UserAuthorizationExceptionClass'] = UserAuthorizationExceptionClass;\n \n /**\n * FeatureNotSupportedException entity class.\n */\n export class FeatureNotSupportedExceptionClass\n extends CommerceExceptionClass\n implements Entities.FeatureNotSupportedException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.FeatureNotSupportedException\";\n \n }\n }\n entityDictionary['FeatureNotSupportedExceptionClass'] = FeatureNotSupportedExceptionClass;\n \n /**\n * CartValidationException entity class.\n */\n export class CartValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.CartValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CartValidationException\";\n \n }\n }\n entityDictionary['CartValidationExceptionClass'] = CartValidationExceptionClass;\n \n /**\n * TenderValidationException entity class.\n */\n export class TenderValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.TenderValidationException {\n public TenderTypeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TenderValidationException\";\n \n }\n }\n entityDictionary['TenderValidationExceptionClass'] = TenderValidationExceptionClass;\n \n /**\n * CommerceDataExchangeException entity class.\n */\n export class CommerceDataExchangeExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceDataExchangeException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceDataExchangeException\";\n \n }\n }\n entityDictionary['CommerceDataExchangeExceptionClass'] = CommerceDataExchangeExceptionClass;\n \n /**\n * ExtensibleEnumerationException entity class.\n */\n export class ExtensibleEnumerationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationExceptionClass'] = ExtensibleEnumerationExceptionClass;\n \n /**\n * TaskManagementException entity class.\n */\n export class TaskManagementExceptionClass\n extends CommerceExceptionClass\n implements Entities.TaskManagementException {\n public TaskManagementErrors: Entities.TaskManagementError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaskManagementErrors = undefined;\n if (odataObject.TaskManagementErrors) {\n this.TaskManagementErrors = [];\n for (var i = 0; i < odataObject.TaskManagementErrors.length; i++) {\n if (odataObject.TaskManagementErrors[i] != null) {\n if (odataObject.TaskManagementErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.TaskManagementErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaskManagementErrors[i] = new entityDictionary[className](odataObject.TaskManagementErrors[i])\n }\n } else {\n this.TaskManagementErrors[i] = new TaskManagementErrorClass(odataObject.TaskManagementErrors[i]);\n }\n } else {\n this.TaskManagementErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementException\";\n \n }\n }\n entityDictionary['TaskManagementExceptionClass'] = TaskManagementExceptionClass;\n \n /**\n * TaskManagementServerException entity class.\n */\n export class TaskManagementServerExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementServerException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementServerException\";\n \n }\n }\n entityDictionary['TaskManagementServerExceptionClass'] = TaskManagementServerExceptionClass;\n \n /**\n * TaskManagementClientException entity class.\n */\n export class TaskManagementClientExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementClientException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementClientException\";\n \n }\n }\n entityDictionary['TaskManagementClientExceptionClass'] = TaskManagementClientExceptionClass;\n \n /**\n * PaymentException entity class.\n */\n export class PaymentExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentException {\n public AdditionalContext: string;\n public PaymentSdkErrors: Entities.PaymentError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentException\";\n \n }\n }\n entityDictionary['PaymentExceptionClass'] = PaymentExceptionClass;\n \n /**\n * DataValidationFailure entity class.\n */\n export class DataValidationFailureClass implements Entities.DataValidationFailure {\n public ErrorContext: string;\n public ErrorResourceId: string;\n public MemberNames: string[];\n public LocalizedMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorContext = \n odataObject.ErrorContext;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.MemberNames = undefined;\n if (odataObject.MemberNames) {\n this.MemberNames = [];\n for (var i = 0; i < odataObject.MemberNames.length; i++) {\n if (odataObject.MemberNames[i] != null) {\n this.MemberNames[i] = \n odataObject.MemberNames[i];\n } else {\n this.MemberNames[i] = undefined;\n }\n }\n }\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n }\n }\n entityDictionary['DataValidationFailureClass'] = DataValidationFailureClass;\n \n /**\n * ItemDiscontinuedException entity class.\n */\n export class ItemDiscontinuedExceptionClass\n extends CommerceExceptionClass\n implements Entities.ItemDiscontinuedException {\n public RemovedUnavailableItemIds: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RemovedUnavailableItemIds = \n odataObject.RemovedUnavailableItemIds;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ItemDiscontinuedException\";\n \n }\n }\n entityDictionary['ItemDiscontinuedExceptionClass'] = ItemDiscontinuedExceptionClass;\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity class.\n */\n export class InventoryDocumentLockedByOtherTerminalExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentLockedByOtherTerminalException {\n public WorkingTerminalId: string;\n public CurrentTerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.WorkingTerminalId = \n odataObject.WorkingTerminalId;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentLockedByOtherTerminalException\";\n \n }\n }\n entityDictionary['InventoryDocumentLockedByOtherTerminalExceptionClass'] = InventoryDocumentLockedByOtherTerminalExceptionClass;\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity class.\n */\n export class InventoryDocumentExceedMaximumQuantityExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentExceedMaximumQuantityException {\n public MaximumQuantity: number;\n public AllowOverDelivery: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentExceedMaximumQuantityException\";\n \n }\n }\n entityDictionary['InventoryDocumentExceedMaximumQuantityExceptionClass'] = InventoryDocumentExceedMaximumQuantityExceptionClass;\n \n /**\n * ProductPricingConfigurationException entity class.\n */\n export class ProductPricingConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ProductPricingConfigurationException {\n public ProductPricingConfigurationErrors: Entities.ProductPricingConfigurationError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ProductPricingConfigurationErrors = undefined;\n if (odataObject.ProductPricingConfigurationErrors) {\n this.ProductPricingConfigurationErrors = [];\n for (var i = 0; i < odataObject.ProductPricingConfigurationErrors.length; i++) {\n if (odataObject.ProductPricingConfigurationErrors[i] != null) {\n if (odataObject.ProductPricingConfigurationErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductPricingConfigurationErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductPricingConfigurationErrors[i] = new entityDictionary[className](odataObject.ProductPricingConfigurationErrors[i])\n }\n } else {\n this.ProductPricingConfigurationErrors[i] = new ProductPricingConfigurationErrorClass(odataObject.ProductPricingConfigurationErrors[i]);\n }\n } else {\n this.ProductPricingConfigurationErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ProductPricingConfigurationException\";\n \n }\n }\n entityDictionary['ProductPricingConfigurationExceptionClass'] = ProductPricingConfigurationExceptionClass;\n \n /**\n * CartLineValidationResultsByLineId entity class.\n */\n export class CartLineValidationResultsByLineIdClass implements Entities.CartLineValidationResultsByLineId {\n public LineIdToProductBehaviorMap: Entities.KeyValuePair_2OfString_ProductBehavior[];\n public ValidationResultsPairs: Entities.LineValidationResult[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIdToProductBehaviorMap = undefined;\n if (odataObject.LineIdToProductBehaviorMap) {\n this.LineIdToProductBehaviorMap = [];\n for (var i = 0; i < odataObject.LineIdToProductBehaviorMap.length; i++) {\n if (odataObject.LineIdToProductBehaviorMap[i] != null) {\n if (odataObject.LineIdToProductBehaviorMap[i]['@odata.type'] != null) {\n var className: string = odataObject.LineIdToProductBehaviorMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LineIdToProductBehaviorMap[i] = new entityDictionary[className](odataObject.LineIdToProductBehaviorMap[i])\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = new KeyValuePair_2OfString_ProductBehaviorClass(odataObject.LineIdToProductBehaviorMap[i]);\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = undefined;\n }\n }\n }\n \n this.ValidationResultsPairs = undefined;\n if (odataObject.ValidationResultsPairs) {\n this.ValidationResultsPairs = [];\n for (var i = 0; i < odataObject.ValidationResultsPairs.length; i++) {\n if (odataObject.ValidationResultsPairs[i] != null) {\n if (odataObject.ValidationResultsPairs[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResultsPairs[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsPairs[i] = new entityDictionary[className](odataObject.ValidationResultsPairs[i])\n }\n } else {\n this.ValidationResultsPairs[i] = new LineValidationResultClass(odataObject.ValidationResultsPairs[i]);\n }\n } else {\n this.ValidationResultsPairs[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsByLineIdClass'] = CartLineValidationResultsByLineIdClass;\n \n /**\n * CommerceRuntimeCompositionException entity class.\n */\n export class CommerceRuntimeCompositionExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceRuntimeCompositionException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceRuntimeCompositionException\";\n \n }\n }\n entityDictionary['CommerceRuntimeCompositionExceptionClass'] = CommerceRuntimeCompositionExceptionClass;\n \n /**\n * ChecklistTaskValidationException entity class.\n */\n export class ChecklistTaskValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.ChecklistTaskValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChecklistTaskValidationException\";\n \n }\n }\n entityDictionary['ChecklistTaskValidationExceptionClass'] = ChecklistTaskValidationExceptionClass;\n \n /**\n * InsufficientCredentialLengthException entity class.\n */\n export class InsufficientCredentialLengthExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InsufficientCredentialLengthException {\n public ActualLength: number;\n public MinLength: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ActualLength = \n odataObject.ActualLength;\n \n this.MinLength = \n odataObject.MinLength;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InsufficientCredentialLengthException\";\n \n }\n }\n entityDictionary['InsufficientCredentialLengthExceptionClass'] = InsufficientCredentialLengthExceptionClass;\n \n /**\n * ExtensibleEnumerationCacheException entity class.\n */\n export class ExtensibleEnumerationCacheExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationCacheException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationCacheException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationCacheExceptionClass'] = ExtensibleEnumerationCacheExceptionClass;\n \n /**\n * ExtensionConfigurationException entity class.\n */\n export class ExtensionConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensionConfigurationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensionConfigurationException\";\n \n }\n }\n entityDictionary['ExtensionConfigurationExceptionClass'] = ExtensionConfigurationExceptionClass;\n \n /**\n * StaffPasswordExpiredException entity class.\n */\n export class StaffPasswordExpiredExceptionClass\n extends UserAuthenticationExceptionClass\n implements Entities.StaffPasswordExpiredException {\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.StaffPasswordExpiredException\";\n \n }\n }\n entityDictionary['StaffPasswordExpiredExceptionClass'] = StaffPasswordExpiredExceptionClass;\n \n /**\n * ChannelConfigurationNotFoundException entity class.\n */\n export class ChannelConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.ChannelConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChannelConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['ChannelConfigurationNotFoundExceptionClass'] = ChannelConfigurationNotFoundExceptionClass;\n \n /**\n * PaymentConfigurationException entity class.\n */\n export class PaymentConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentConfigurationException {\n public PaymentConfigurationSdkErrors: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.PaymentConfigurationSdkErrors = undefined;\n if (odataObject.PaymentConfigurationSdkErrors) {\n this.PaymentConfigurationSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentConfigurationSdkErrors.length; i++) {\n if (odataObject.PaymentConfigurationSdkErrors[i] != null) {\n this.PaymentConfigurationSdkErrors[i] = \n odataObject.PaymentConfigurationSdkErrors[i];\n } else {\n this.PaymentConfigurationSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentConfigurationException\";\n \n }\n }\n entityDictionary['PaymentConfigurationExceptionClass'] = PaymentConfigurationExceptionClass;\n \n /**\n * SecretConfigurationNotFoundException entity class.\n */\n export class SecretConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecretConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecretConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['SecretConfigurationNotFoundExceptionClass'] = SecretConfigurationNotFoundExceptionClass;\n \n /**\n * TenderTypePolicy entity class.\n */\n export class TenderTypePolicyClass implements Entities.TenderTypePolicy {\n public OriginalTenderType: string;\n public AllowedReturnTenderTypes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalTenderType = \n odataObject.OriginalTenderType;\n \n this.AllowedReturnTenderTypes = undefined;\n if (odataObject.AllowedReturnTenderTypes) {\n this.AllowedReturnTenderTypes = [];\n for (var i = 0; i < odataObject.AllowedReturnTenderTypes.length; i++) {\n if (odataObject.AllowedReturnTenderTypes[i] != null) {\n this.AllowedReturnTenderTypes[i] = \n odataObject.AllowedReturnTenderTypes[i];\n } else {\n this.AllowedReturnTenderTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypePolicyClass'] = TenderTypePolicyClass;\n \n /**\n * AccountStatementRequest entity class.\n */\n export class AccountStatementRequestClass implements Entities.AccountStatementRequest {\n public RequestedUserId: string;\n public IsForFullOrganization: boolean;\n public FromDate: Date;\n public ToDate: Date;\n public RequestingUserEmail: string;\n public DeliveryTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedUserId = \n odataObject.RequestedUserId;\n \n this.IsForFullOrganization = \n odataObject.IsForFullOrganization;\n \n this.FromDate = \n (odataObject.FromDate instanceof Date) ? odataObject.FromDate\n : (odataObject.FromDate != null) ? jsonLightReadStringPropertyValue(odataObject.FromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDate = \n (odataObject.ToDate instanceof Date) ? odataObject.ToDate\n : (odataObject.ToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestingUserEmail = \n odataObject.RequestingUserEmail;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AccountStatementRequestClass'] = AccountStatementRequestClass;\n \n /**\n * BusinessPartnerOperationRequestDetails entity class.\n */\n export class BusinessPartnerOperationRequestDetailsClass implements Entities.BusinessPartnerOperationRequestDetails {\n public InvoiceId: string;\n public AccountStatementStartDateTime: Date;\n public AccountStatementEndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.AccountStatementStartDateTime = \n (odataObject.AccountStatementStartDateTime instanceof Date) ? odataObject.AccountStatementStartDateTime\n : (odataObject.AccountStatementStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.AccountStatementEndDateTime = \n (odataObject.AccountStatementEndDateTime instanceof Date) ? odataObject.AccountStatementEndDateTime\n : (odataObject.AccountStatementEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestDetailsClass'] = BusinessPartnerOperationRequestDetailsClass;\n \n /**\n * ProductPricingConfigurationError entity class.\n */\n export class ProductPricingConfigurationErrorClass implements Entities.ProductPricingConfigurationError {\n public ProductId: 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.ProductId = \n odataObject.ProductId;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n }\n }\n entityDictionary['ProductPricingConfigurationErrorClass'] = ProductPricingConfigurationErrorClass;\n \n /**\n * TaskManagementError entity class.\n */\n export class TaskManagementErrorClass implements Entities.TaskManagementError {\n public ErrorResourceId: string;\n public LocalizedMessage: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.TaskId = \n odataObject.TaskId;\n \n }\n }\n entityDictionary['TaskManagementErrorClass'] = TaskManagementErrorClass;\n \n /**\n * LineDataValidationFailure entity class.\n */\n export class LineDataValidationFailureClass implements Entities.LineDataValidationFailure {\n public DataValidationFailure: Entities.DataValidationFailure;\n public LineIndex: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.DataValidationFailure == null) {\n this.DataValidationFailure = undefined;\n } else if (odataObject.DataValidationFailure['@odata.type'] == null) {\n this.DataValidationFailure = new DataValidationFailureClass(odataObject.DataValidationFailure);\n } else {\n var className: string = odataObject.DataValidationFailure['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataValidationFailure = new entityDictionary[className](odataObject.DataValidationFailure)\n }\n }\n\n \n this.LineIndex = \n odataObject.LineIndex;\n \n }\n }\n entityDictionary['LineDataValidationFailureClass'] = LineDataValidationFailureClass;\n \n /**\n * WrongEndpointException entity class.\n */\n export class WrongEndpointExceptionClass\n extends CommerceExceptionClass\n implements Entities.WrongEndpointException {\n public RedirectUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RedirectUri = \n odataObject.RedirectUri;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.WrongEndpointException\";\n \n }\n }\n entityDictionary['WrongEndpointExceptionClass'] = WrongEndpointExceptionClass;\n \n /**\n * BadRequestException entity class.\n */\n export class BadRequestExceptionClass\n extends CommerceExceptionClass\n implements Entities.BadRequestException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.BadRequestException\";\n \n }\n }\n entityDictionary['BadRequestExceptionClass'] = BadRequestExceptionClass;\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity class.\n */\n export class KeyValuePair_2OfString_ProductBehaviorClass implements Entities.KeyValuePair_2OfString_ProductBehavior {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['KeyValuePair_2OfString_ProductBehaviorClass'] = KeyValuePair_2OfString_ProductBehaviorClass;\n "],"names":["entityDictionary","CategoryClass","constructor","odataObject","this","RecordId","parseInt","undefined","OfflineImage","Name","ParentCategory","DisplayOrder","parseFloat","LocalizedDescription","Images","i","length","className","substr","lastIndexOf","concat","MediaLocationClass","NameTranslations","TextValueTranslationClass","ExtensionProperties","CommercePropertyClass","CartClass","AffiliationLines","AffiliationLoyaltyTierClass","IsRequiredAmountPaid","IsDiscountFullyCalculated","IgnoreDiscountCalculation","AmountDue","AmountPaid","AttributeValues","AttributeValueBaseClass","IsTaxIncludedInPrice","BeginDateTime","Date","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","Id","SuspendedCartId","TransactionTypeValue","CustomerAccountDepositLines","CustomerAccountDepositLineClass","IncomeExpenseLines","IncomeExpenseLineClass","IncomeExpenseTotalAmount","IsReturnByReceipt","ReturnTransactionHasLoyaltyPayment","IsFavorite","IsRecurring","IsSuspended","LoyaltyCardId","ModifiedDateTime","OrderNumber","AvailableDepositAmount","OverriddenDepositAmount","OverriddenDepositWithoutCarryoutAmount","PrepaymentAmountPaid","PrepaymentRoundingDifference","PrepaymentAppliedOnPickup","PrepaymentAmountInvoiced","PromotionLines","QuotationExpiryDate","ReasonCodeLines","ReasonCodeLineClass","ReceiptEmail","RequestedDeliveryDate","RequiredDepositAmount","RequiredDepositWithoutCarryoutAmount","SalesId","ShippingAddress","AddressClass","StaffId","SubtotalAmount","SubtotalAmountWithoutTax","NetPrice","SubtotalSalesAmount","TaxAmount","TaxOnCancellationCharge","TaxOnShippingCharge","TaxOnNonShippingCharges","TaxOverrideCode","TenderLines","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","PeriodicDiscountsCalculateScopeValue","CustomerClass","AccountNumber","CreatedDateTime","ChargeGroup","PriceGroup","IsCustomerTaxInclusive","Phone","PhoneRecordId","PhoneExt","Cellphone","Email","EmailRecordId","Url","UrlRecordId","PersonNameId","FirstName","MiddleName","LastName","DirectoryPartyRecordId","PartyNumber","CustomerTypeValue","Language","CustomerGroup","CurrencyCode","CNPJCPFNumber","IdentificationNumber","InvoiceAccount","MandatoryCreditLimit","CreditRating","CreditLimit","Balance","Blocked","BlockedType","UseOrderNumberReference","OrganizationId","UsePurchaseRequest","MultilineDiscountGroup","TotalDiscountGroup","LineDiscountGroup","TaxGroup","SalesTaxGroup","CommissionSalesGroupId","TaxExemptNumber","VatNumber","TaxOffice","NonChargeableAccount","Tag","ReceiptSettings","OptOutPersonalization","OptOutWebActivityTracking","RetailCustomerTableRecordId","IsAsyncCustomer","NewCustomerPartyNumber","CustomerAffiliations","CustomerAffiliationClass","Addresses","Attributes","CustomerAttributeClass","TitleRecordId","IsFloorLimitBlocked","IsB2b","IsB2bAdmin","BusinessPartnerId","Contacts","ContactInfoClass","AllowOnAccountPayment","DefaultPaymentMethod","EmployeeClass","NameOnReceipt","CultureName","NumberOfDaysToPasswordExpiry","Permissions","EmployeePermissionsClass","DefaultImage","DefaultCommissionSalesGroup","IdentifierTypeValue","ChecklistClass","Tasks","ChecklistTaskClass","ProcessId","Description","AssignedToChannelId","AssignedToWorkerPersonnelNumber","StatusValue","StartDateTime","EndDateTime","TargetDateTime","SalesOrderClass","DocumentStatusValue","McrOrderStopped","Shipments","ShipmentClass","AggregateInventoryQuantities","InventoryQuantitiesClass","UnifiedDeliveryInformation","DeliveryInformationClass","PaymentStatusValue","DetailedOrderStatusValue","AffiliationLoyaltyTierLines","SalesAffiliationLoyaltyTierClass","CalculatedDepositAmount","CancellationCharge","ChannelReferenceId","ContactInformationCollection","ContactInformationClass","CustomerOrderTypeValue","EntryStatusValue","GrossAmount","HasLoyaltyPayment","InternalTransactionId","SuspendedTransactionId","InventoryLocationId","IsTaxExemptedForPriceInclusive","LineDiscount","LineDiscountCalculationTypeValue","LoyaltyDiscountAmount","LoyaltyManualDiscountAmount","LoyaltyRewardPointLines","LoyaltyRewardPointLineClass","NetAmount","NetAmountWithoutTax","NetAmountWithNoTax","NetAmountWithTax","NumberOfItems","PeriodicDiscountAmount","TenderDiscountAmount","PrepaymentAmountAppliedOnPickup","ReceiptId","SalesPaymentDifference","SalesLines","SalesLineClass","ShiftId","ShiftTerminalId","StatementCode","StoreId","TaxAmountExclusive","TaxAmountInclusive","TaxLines","TaxLineClass","TotalDiscount","TaxCalculationTypeValue","SalesInvoiceAmount","GiftCardActiveFrom","GiftCardBalance","GiftCardExpireDate","GiftCardHistoryDetails","GiftCardIssueAmount","GiftCardIdMasked","IsCommissionSalesGroupOverriddenByCustomer","CommissionSalesGroupSetByCashier","CustomerName","LanguageId","SalesAgreementRecordId","ShiftClass","StartingAmountTotal","FloatingEntryAmountTotal","AddToTenderAmountTotal","SafeDropTotal","BankDropTotal","RemoveTenderAmountTotal","DeclareTenderAmountTotal","OverShortTotal","TenderedTotal","ChangeTotal","IncomeAccountTotal","ExpenseAccountTotal","CashDrawer","StoreRecordId","CurrentStaffId","CloseDateTime","ClosedAtTerminalId","ClosedAtShiftId","CurrentTerminalId","SalesTotal","StatusDateTime","ReturnsTotal","PaidToAccountTotal","TaxTotal","ChargeTotal","DiscountTotal","RoundedAmountTotal","CustomerCount","SaleTransactionCount","NoSaleTransactionCount","VoidTransactionCount","LogOnTransactionCount","SuspendedTransactionCount","TransactionCount","ReceiptsCount","ReturnsCount","GoodsSoldQty","ServicesSoldQty","ReceiptCopiesCount","ReceiptCopiesTotal","PriceOverrideTotal","SuspendedTotal","SalesTotalIncludingTax","SalesTotalExcludingTax","SalesGrandTotal","ReturnsGrandTotal","ShiftTaxLineClass","ShiftTenderLineClass","AccountLines","ShiftAccountLineClass","IsShared","StartingAmountRunningTotal","GiftCardsTotal","GiftCardCashOutTotal","VoidedSalesTotal","ShiftSalesTotal","ShiftReturnsTotal","HasPendingOfflineTransactions","NumberOfUnreconciledLines","StockCountJournalClass","JournalId","InventLocationId","DataAreaId","StockCountTransactionLines","StockCountJournalTransactionClass","Worker","OrgUnitClass","OrgUnitNumber","OMOperatingUnitNumber","FunctionalityProfileId","UseCustomerBasedTax","UseCustomerBasedTaxExemption","UseDestinationBasedTax","Currency","TimeZoneCode","OrgUnitAddress","OrgUnitFullAddress","OrgUnitName","Latitude","Longitude","EmailReceiptProfileId","ShippingWarehouseAddress","TaxRegistrations","TaxRegistrationClass","EventNotificationProfileId","DefaultCustomerAccount","CategoryHierarchyId","ProductClass","ProductName","ProductNumber","IsMasterProduct","IsKit","ItemId","HasLinkedProducts","Rules","ProductRulesClass","DefaultUnitOfMeasure","Locale","IsRemote","ChangeTrackingInformation","ProductChangeTrackingInformationClass","Image","RichMediaLocationsClass","UnitsOfMeasureSymbol","LinkedProducts","LinkedProductClass","BasePrice","Price","AdjustedPrice","RetailContext","ProjectionDomainClass","PrimaryCategoryId","CategoryIds","DisplayOrderInCategories","DisplayOrderInCategoryClass","RelatedProducts","RelatedProductClass","ProductsRelatedToThis","ProductSchema","ProductProperties","ProductPropertyTranslationClass","CompositionInformation","ProductCompositionInformationClass","ParentKits","KitComponentClass","SearchName","ProductCatalogClass","IsSnapshotEnabled","ValidFrom","ValidTo","CreatedOn","ModifiedOn","PublishedOn","CommerceListClass","IsPrivate","IsCollaborative","DueDateTime","CommerceListTypeValue","CommerceListLines","CommerceListLineClass","CommerceListContributors","CommerceListContributorClass","CommerceListInvitations","CommerceListInvitationClass","ProductListClass","LastUpdated","DeletedDateTime","ProductListTypeValue","ProductListLines","ProductListLineClass","RecommendationClass","RecommendationTypeValue","Title","TransferOrderClass","OrderId","Status","Lines","OrderTypeValue","InventLocationIdFrom","InventLocationIdTo","QuantityShipped","QuantityReceived","QuantityShipNow","QuantityReceiveNow","QuantityShipRemaining","QuantityReceiveRemaining","ShipDate","ReceiveDate","DeliveryModeId","OrderLines","TransferOrderLineClass","PurchaseOrderClass","TotalReceived","PurchaseOrderLineClass","PickingListClass","DeliveryDate","PickingListLineClass","WarehouseClass","InventLocation","IsWMSEnabled","DefaultInventoryStatus","DefaultReceiptLocation","DefaultLocationId","DefaultIssueLocation","Address","ScanResultClass","ScannedText","MaskTypeValue","Barcode","BarcodeClass","Product","SimpleProductClass","LoyaltyCard","LoyaltyCardClass","GiftCard","GiftCardClass","Customer","SalesOrderContextualOperationsMapClass","ApplicableOperationsValues","SalesOrder","InventoryInboundOutboundDocumentClass","WorkDocumentId","CommitRequestId","Sender","Receiver","SenderDetails","ReceiverDetails","OperationTypeValue","Note","OperationResultMessage","DocumentId","LongVersion","SourceDocument","InventoryInboundOutboundSourceDocumentClass","SourceDocumentTypeValue","NoteModifiedByStaffId","NoteModifiedDateTime","DocumentTypeId","TransactionDate","BusinessPartnerClass","BusinessPartnerUserClass","B2BUserId","SpendingLimit","LastOperationId","IsAdmin","SuspendedCartClass","Cart","CountryRegionClass","CountryRegionId","IsoCode","ShortName","ExtensibleEnumerationClass","Value","ExtensibleEnumeration_1OfTClass","super","ExtensibleTransactionTypeClass","ExtensibleSalesTransactionTypeClass","FulfillmentLineStatusClass","FulfillmentLineDeliveryTypeClass","ExtensibleAddressTypeClass","ExtensibleLoyaltyRewardPointActivityEntryTypeClass","ExtensibleAttributeDataTypeClass","ReleasedProductServiceTypeClass","ExtensibleElectronicAddressTypeClass","ReceiptOutputFormatTypeClass","OrderLookupAdditionalCriteriaTypeClass","FullAddress","Street","StreetNumber","County","CountyName","City","DistrictName","State","StateName","ZipCode","ThreeLetterISORegionName","EmailContent","TwoLetterISORegionName","Deactivate","AttentionTo","BuildingCompliment","Postbox","AddressTypeValue","IsPrimary","IsAsyncAddress","DirectoryPartyTableRecordId","DirectoryPartyLocationRecordId","DirectoryPartyLocationRoleRecordId","LogisticsLocationId","LogisticsLocationRecordId","LogisticsLocationExtRecordId","LogisticsLocationRoleRecordId","PhoneLogisticsLocationRecordId","PhoneLogisticsLocationId","EmailLogisticsLocationRecordId","EmailLogisticsLocationId","UrlLogisticsLocationRecordId","UrlLogisticsLocationId","ExpireRecordId","SortOrder","RoleCount","RetailAffiliationId","HideInChannels","CustomerBalancesClass","PendingBalance","InvoiceAccountBalance","InvoiceAccountPendingBalance","InvoiceAccountCreditLimit","OpenInvoiceBalance","OpenInvoiceCount","GlobalCustomerClass","FullName","AttributeValueClass","KeyName","UnitOfMeasureSymbol","DataTypeValue","BooleanValue","DateTimeOffsetValue","FloatValue","IntegerValue","TextValue","CurrencyValue","AttributeValueId","Swatches","AttributeSwatchClass","BarcodeId","BarcodePrice","Quantity","EmployeeId","SalespersonId","EANLicenseId","DataEntry","DiscountCode","GiftCardNumber","LoyaltyCardNumber","ItemBarcode","ItemBarcodeClass","EntryMethodTypeValue","ItemType","EnterDimensions","ItemGroupId","ItemDepartmentId","ScaleItem","ZeroPriceValid","NegativeQuantity","DiscountNotAllowed","DateToBeBlocked","DateToBeActivated","CheckDigitValidated","CouponId","Message","IncludedInTotalDiscount","CostPrice","BatchId","BarcodeSetupId","ItemBarcodeValue","InventoryDimensionId","IsBlocked","Display","VariantId","UnitId","UseForInput","UseForPrinting","ButtonGridClass","DefaultColor","SpaceBetweenButtonsInPixels","Buttons","ButtonGridButtonClass","GetButtonGridsByIdsCriteriaClass","ButtonGridIds","LineId","ProductId","ExtendedPrice","ItemTaxGroupId","LinePercentageDiscount","LineManualDiscountPercentage","LineManualDiscountAmount","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","IsWarrantyLine","WarrantableTransactionId","WarrantableSalesId","WarrantableLineNumber","WarrantableSerialNumber","WarrantiedId","ReturnTransactionId","ReturnLineNumber","ReturnInventTransId","IsVoided","IsTaxOverideCodeTaxExempt","IsGiftCardLine","IsPriceKeyedIn","GiftCardId","GiftCardCurrencyCode","GiftCardOperationValue","GiftCardTypeValue","SalesStatusValue","QuantityOrdered","QuantityNotProcessed","QuantityReserved","QuantityPicked","QuantityPacked","QuantityInvoiced","QuantityCanceled","FulfillmentStoreId","SerialNumber","ElectronicDeliveryEmail","ElectronicDeliveryEmailContent","IsPriceOverridden","OriginalPrice","IsInvoiceLine","InvoiceId","InvoiceAmount","LineVersion","PriceLines","PriceLineClass","DiscountLines","DiscountLineClass","RelatedDiscountedLineIds","ReturnTaxLines","TaxRatePercent","IsCustomerAccountDeposit","LinkedParentLineId","QuantityReturnable","LineNumber","TrackingId","QuantityRemained","CatalogId","ThirdPartyGiftCardInfo","ThirdPartyGiftCardInfoClass","BarcodeEmbeddedPrice","PriceInBarcode","InvoiceTypeValue","InvoicedSalesId","WarehouseLocation","DetailedLineStatusValue","SalesAgreementLineRecordId","Amount","Authorization","CardTypeInfoClass","TypeId","PaymentMethodId","CardTypeValue","Issuer","NumberFrom","NumberTo","CashBackLimit","AllowManualInput","CheckModulus","HasTenderDiscount","IsPinRequired","IsExpirationDateRequired","ConnectorName","PaymentProcessorMethod","CashDeclarationClass","CashTypeValue","IncludeInQuickPayShortcuts","IncomeExpenseAccountClass","AccountName","AccountNameAlias","AccountTypeValue","Message1Line","Message2Line","SlipText1Line","SlipText2Line","IncomeExpenseAccount","StoreNumber","Terminal","Shift","TransactionStatusValue","CartTenderLineClass","PaymentCard","PaymentCardClass","TokenizedPaymentCard","TokenizedPaymentCardClass","CardPaymentAcceptResult","CardPaymentAcceptResultClass","IsLinkedRefund","LinkedPaymentStore","LinkedPaymentTerminalId","LinkedPaymentTransactionId","LinkedPaymentLineNumber","LinkedPaymentCurrency","TenderLineId","CashBackAmount","AmountInTenderedCurrency","AmountInCompanyCurrency","ExchangeRate","CompanyCurrencyExchangeRate","TenderTypeId","SignatureData","GiftCardPin","GiftCardExpirationYear","GiftCardExpirationMonth","CreditMemoId","CardTypeId","IsChangeLine","IsHistorical","IsVoidable","VoidStatusValue","AuthorizedAmount","PaymentRefRecId","CardPaymentAccountId","ProcessingTypeValue","CardProcessorStatusValue","LinkedPaymentRefRecId","IsPolicyBypassed","ChargeLineId","ChargeCode","ModuleTypeValue","IsHeaderChargeProrated","ChargeTypeValue","ChargeMethodValue","CalculatedAmount","TransactionId","MarkupAutoLineRecordId","MarkupAutoTableRecId","SaleLineNumber","FromAmount","ToAmount","Keep","AmountRefunded","ChargeLineOverrides","ChargeLineOverrideClass","IsRefundable","IsShipping","IsOverridden","IsInvoiced","CalculatedProratedAmount","SalesTaxGroupId","OriginalSalesTaxGroupId","OriginalItemTaxGroupId","SalesOrderUnitOfMeasure","NetAmountPerUnit","TaxMeasures","TaxMeasureClass","TaxAmountExemptInclusive","NetAmountWithAllInclusiveTax","ReturnLineTaxAmount","TaxExemptPriceInclusiveReductionAmount","TaxExemptPriceInclusiveOriginalPrice","CityInfoClass","StateId","CountyId","CommissionSalesGroupClass","GroupId","ContactInformationTypeValue","AttributeCategoryClass","CommercePropertyValueClass","Attribute","AttributeProductClass","MetadataFlags","ProductAttributeMetadataFlagsClass","IsDimension","ProductComparisonEntryClass","AttributeValue","ProductComparisonLineClass","AttributeRecordId","AttributeName","ProductAttributeComparisonEntries","CustomerSearchFieldClass","IsShortcut","DisplayName","CanBeRefined","SearchField","CustomerSearchFieldTypeClass","CustomerSearchByFieldCriteriaClass","Criteria","CustomerSearchByFieldCriterionClass","DataLevelValue","SearchTerm","OrderShipmentsClass","ShipmentId","DeliveryAddress","TermsOfDelivery","WeightUnit","TrackingNumber","TrackingUrl","LatestCarrierTrackingInfo","TrackingInfoClass","CarrierId","CarrierName","ShippingWeight","ShipmentLines","ShipmentLineClass","ShipmentLineId","InventDimId","OrderedQuantity","DeliveredQuantity","RemainingQuantity","InventoryTransactionId","TransactionClass","FromSafe","ToSafe","FromShiftTerminalId","ToShiftTerminalId","FromShiftId","TransactionSourceContextTypeValue","TransactionDestinationContextTypeValue","ToShiftId","TransactionDateTime","ShiftReconciliationLineClass","GroupDescription","ShiftGroupLinesCount","ShiftGroupLinesClosedCount","AmountInOriginalCurrency","TransactionCurrencyCode","TenderType","ShiftReconciliationLineRetrievalCriteriaClass","TransactionTypeValues","ShiftReconciliationLineStatusValue","Shifts","ShiftKeyClass","DestinationShift","SourceShift","SourceSafe","DestinationSafe","SearchConfigurationClass","ProductSortColumns","SortColumnClass","ProductSearchServiceTypeValue","ProductSortColumnsLabels","LocalizedTextClass","CustomerTimelineItemClass","EntityType","AttributeDefinitionClass","AttributeTypeName","ExtDataType","IsHidden","IsMandatory","IsMultiValue","IsEnumeration","TranslationDetails","AttributeTranslationDetailsClass","EnumerationDetails","AttributeEnumerationClass","DefaultValue","UpperBound","LowerBound","FriendlyName","HelpText","OrdinalNumber","EnumerationValue","AttributeEnumerationTranslations","AttributeEnumerationTranslationClass","EnumerationTranslationValue","AttributeDefinitionCriteriaClass","AttributeGroupIdentifier","Languages","AttributeGroupDefinitionClass","AttributeGroupTranslationDetailsClass","AttributeGroupRecordId","AttributeGroupDefinitionCriteriaClass","AttributeGroupIdentifiers","CountyInfoClass","CustomerGroupClass","CustomerGroupNumber","CustomerGroupName","OfferId","OfferName","OfferDescription","DiscountCost","EffectiveAmount","EffectivePercentage","SavedEffectiveAmount","Percentage","DealPrice","DiscountLineTypeValue","ManualDiscountTypeValue","CustomerDiscountTypeValue","PeriodicDiscountTypeValue","DiscountApplicationGroup","ConcurrencyModeValue","IsCompoundable","PricingPriorityNumber","PricingAttributeCombinationPriority","IsDiscountCodeRequired","ThresholdAmountRequired","BundleId","PriceOverrideRestrictionValue","AllowPriceOverride","MaximumDiscountPercentage","MaximumLineDiscountAmount","MaximumLineReturnAmount","MaximumTotalDiscountAmount","MaximumTotalDiscountPercentage","MaxTotalReturnAmount","Roles","AllowUseSharedShift","AllowManageSharedShift","AllowTaskGuides","AllowSaleOutsideAssortment","AllowPrintingReceiptCopy","AllowSkipFiscalRegistration","AllowSkipRegistrationOrMarkAsRegistered","AllowPostponeRegistration","AllowCreateTransferOrder","AllowAcceptOrder","AllowTaskManagement","AllowRejectOrder","AllowMassActivation","AllowPostInventoryAdjustment","AllowPostStockCounting","AllowCreatePurchaseOrder","AllowConfirmPurchaseOrder","Key","ByteValue","DecimalValue","LongValue","StringValue","CountryRegionInfoClass","LongName","ISOCode","TimeZone","AddressFormatLines","AddressFormattingInfoClass","AddressFormatId","AddressFormatName","CreditMemoClass","CurrencyClass","CurrencySymbol","RoundOffPrice","RoundOffSales","RoundOffTypePrice","RoundOffTypeSales","NumberOfDecimals","CurrencyAmountClass","ConvertedAmount","RoundedConvertedAmount","ScaleUnitConfigurationClass","Region","EnvironmentConfigurationClass","EnvironmentId","EnvironmentName","TenantId","ClientAppInsightsInstrumentationKey","HardwareStationAppInsightsInstrumentationKey","WindowsPhonePosAppInsightsInstrumentationKey","BaseVersion","ScaleUnit","AADAuthority","FrameworkName","DeviceConfigurationClass","UseInMemoryDeviceDataStorage","AllowItemsAggregation","AggregateItemsForPrinting","AggregatePayments","AlwaysExpandTransactionScreenLineDetails","AuditEnabled","DiscountAtTotal","ProductDiscount","ManuallyCalculateComplexDiscounts","DisplaySecondaryTotalCurrency","EndOfTransaction","ItemNotOnFile","LimitStaffListToStore","LineItemTaxChange","MarkUp","MaximumPrice","MaximumQuantity","MinimumPasswordLength","MustKeyInPriceIfZero","NfcEContingencyModeEnabled","NfcEVoided","FunctionalityProfileDescription","OverridePrice","PrintVoidTransactionReceipts","PrintReceiptsOnCardDecline","PrintXZReportsOnTerminal","PrintTenderDetailsOnXReport","ProfileId","RefundSale","ReturnProduct","SalesPerson","SecondaryTotalCurrency","SelectHardwareStationOnTendering","ShowStaffListAtLogOn","StaffBarcodeLogOn","StaffBarcodeLogOnRequiresPassword","StaffCardLogOn","StaffCardLogOnRequiresPassword","StartOfTransaction","EnableTimeRegistration","TenderDeclaration","TransactionTaxChange","VoidItem","VoidPayment","SalesModeDefaultsAsCustomerOrder","CreateOfflineCustomerOrders","CreateAsyncCustomers","EnableAxCustomerSearch","VoidTransaction","SystemLegalTermsUrl","SystemPrivacyStatementUrl","HideTrainingMode","StorePhone","StatementMethod","StoreTaxGroup","TaxIdNumber","TaxOverrideGroup","TenderDeclarationCalculation","AutoLogOffTimeoutInMinutes","AutoExitMethodValue","CustomerDisplayText1","CustomerDisplayText2","EFTStoreId","EFTTerminalId","ExitAfterEachTransaction","HardwareProfile","Placement","TerminalDescription","OpenDrawer","OpenDrawerAtLogOnLogOff","PrintTaxRefundChecks","StandAlone","TerminalStatement","VisualProfile","IncludeKitComponents","AccentColor","HeaderColor","Theme","FontScheme","ShowAppBarLabel","LogOnBackgroundPictureAsBase64","LogOnBackgroundPicturePortraitAsBase64","BackgroundPictureAsBase64","LogonBackgroundPictureId","LogonBackgroundPictureIdCompact","LogonBackgroundPictureIdPortrait","LogonBackgroundPictureIdCompactPortrait","BackgroundPictureId","RequireAmountDeclaration","DecimalNotRequiredForMinorCurrencyUnit","MaxTransactionSearchResults","OfflineProfileId","NewOfflineDatabaseCheckInterval","OfflineTransactionUploadInterval","ReconnectToOnlineInterval","SwitchToOfflineTimeout","OfflineSwitchApiPerformanceThresholdInSeconds","ReconnectFromPerformanceInducedOfflineIntervalInSeconds","RetentionDays","HardwareConfigurations","HardwareConfigurationsClass","CreateRecording","PlaybackRecording","ShouldUseDefaultCommisionSalesGroup","AskForSalesRepresentative","IsSalesRepRequired","ProhibitMixingSalesAndReturns","ApplyDiscountsToPriceKeyedIn","ApplyDiscountsToPriceOverrides","IsProductSuggestionsEnabled","ProductSearchType","TerminalRecId","DeviceRecId","DenominationsToDisplayValue","PromptOnSeamlessOffline","RetryCountToOffline","EnableAdvancedOfflineSwitching","SystemHealthCheckInterval","RejectOrderFulfillment","ManuallyCalculateTaxes","EmployeeLogonTypeValue","StartAmountCalculation","BankDropCalculation","GenerateLoyaltyCardNumber","FiscalRegistrationProcessId","IncludeSalesOrderInvoices","IncludeFreeTextInvoices","IncludeProjectInvoices","IncludeCreditNoteInvoices","DisplayTaxExemptInLineDetails","TaxExemptReceiptIndicator","ManuallyCalculateCharges","ChargeOverrideReasonCode","ShiftReconcilation","CustomerAccountFloorLimit","VoidSuspendedTransactionsOnCloseShift","ShowDateTime","UseAdvancedCashManagement","DefaultCustomerSearchModeValue","AllowManualOfflineBeforeSignIn","UseFinancialReconciliationInStore","RequirePaymentForFulfillmentValue","CardNotPresentProcessingConfigurationValue","EnableQuickPayShortcuts","ChangeDueBehaviorValue","VisualProfileClass","FontSchemeTypeValue","IsAppBarLabelVisible","IsDateTimeVisible","LogOnLayoutTypeValue","LogOnKeyboardTypeValue","CompactLogonBackgroundPictureId","PortraitLogonBackgroundPictureId","CompactPortraitLogonBackgroundPictureId","LogOnLogoPictureId","IsProductIdVisibleOnCartLine","OperationalInsightsConfigurationClass","InstrumentationKey","IsEnabled","DeviceClass","DeviceNumber","DeviceId","DeviceType","TerminalRecordId","ChannelName","TokenIssueTime","ActivationStatusValue","Token","CountryRegionIsoCode","DiscountCodeClass","Code","ConcurrencyMode","Disclaimer","DistrictInfoClass","CityName","HardwareProfileClass","LineDisplayDelayForLinkedItems","LineDisplayBalanceText","LineDisplayBinaryConversion","LineDisplayCharacterSet","LineDisplayClosedLine1","LineDisplayClosedLine2","LineDisplayDeviceDescription","LineDisplayDeviceTypeValue","LineDisplayDeviceName","LineDisplayDisplayLinkedItem","LineDisplayDisplayTerminalClosed","LineDisplayTotalText","DualDisplayActive","DualDisplayWebBrowserUrl","DualDisplayImageRotatorInterval","DualDisplayImageRotatorPath","DualDisplayReceiptWidthPercentage","DualDisplayDisplayType","EftTypeId","EftCompanyId","EftConfiguration","EftPaymentConnectorName","EftData","EftDescription","EftMerchantId","EftPassword","EftServerName","EftServerPort","EftUserId","EftTestMode","MsrEndTrack1","MsrEndTrack2","FiscalPrinterManagementReportPAFIdentification","FiscalPrinterManagementReportConfigParameter","FiscalPrinterManagementReportTenderType","FiscalPrinterManagementReportGiftCard","FiscalRegisterDeviceTypeValue","FiscalRegisterConfiguration","FiscalRegisterDeviceDescription","FiscalRegisterDeviceName","KeyboardMappingId","KeyLockDeviceTypeValue","KeyLockDeviceDescription","KeyLockDeviceName","MsrDeviceTypeValue","MsrDeviceDescription","MsrDeviceName","MsrMake","MsrModel","MsrSeparator","MsrStartTrack","PinPadDeviceTypeValue","PinPadDeviceName","PinPadMake","PinPadModel","PinPadDeviceDescription","ProfileDescription","RFIDDeviceTypeValue","RFIDDeviceName","RFIDDeviceDescription","ScaleDeviceTypeValue","ScaleDeviceName","ScaleDeviceDescription","ScaleManualInputAllowed","ScaleTimeoutInSeconds","SignatureCaptureDeviceTypeValue","SignatureCaptureDeviceName","SignatureCaptureMake","SignatureCaptureModel","SignatureCaptureDeviceDescription","SignatureCaptureFormName","Printers","HardwareProfilePrinterClass","Scanners","HardwareProfileScannerClass","FiscalIntegrationTechnicalProfiles","FiscalIntegrationTechnicalProfileClass","CashDrawers","HardwareProfileCashDrawerClass","SupportedLanguageClass","UseShippingAddress","CardNumber","CCID","Track1","Track2","Track3","VoiceAuthorizationCode","EncryptedPin","AdditionalSecurityData","IsSwipe","Country","House","Address1","Address2","Zip","NameOnCard","ExpirationMonth","ExpirationYear","CardPaymentAcceptSettingsClass","HostPageOrigin","AdaptorPath","CardTokenizationEnabled","CardPaymentEnabled","PaymentAmount","HideBillingAddress","RequireShippingAddress","CardPaymentAcceptPointClass","AcceptPageUrl","AcceptPageSubmitUrl","MessageOrigin","AcceptPageContent","PaymentConnectorId","NotReloadAcceptPageContentWhenAmountChanged","TenderLine","PaymentSdkErrors","PaymentErrorClass","AdditionalContext","AccessCode","Settings","RetrievePaymentResultSettingsClass","Information","InformationAmount","InputTypeValue","ItemTender","LineTypeValue","ParentLineId","ReasonCodeId","SubReasonCodeId","SourceCode","SourceCode2","SourceCode3","FiscalTransactionParentGuid","IsChanged","ReasonSubCodeClass","TriggerCode","AmountPercent","SubCodeId","TriggerFunctionTypeValue","PriceTypeValue","ReceiptClass","Header","Body","Footer","Width","LayoutId","ReceiptTitle","ReceiptTypeValue","ReceiptTypeStrValue","PrinterClass","ReceiptMaskClass","IsIndependent","Mask","OriginLineId","MasterProductId","ListingId","TotalPercentageDiscount","PeriodicDiscount","InventorySiteId","InventoryStatusId","LicensePlate","ReservationId","ReturnQuantity","ProductSourceValue","IsInvoiceSettled","IsPriceLocked","AgreementPrice","ReturnStore","ReturnTerminalId","ReturnChannelId","SalesDate","SavedQuantity","IsSavedDiscount","ElectronicDeliveryEmailAddress","LoyaltyPercentageDiscount","TenderDiscountPercentage","Found","DateToActivateItem","PeriodicPercentageDiscount","QuantityDiscounted","UnitQuantity","UnitOfMeasureConversion","UnitOfMeasureConversionClass","AttainablePriceLines","PeriodicDiscountPossibilities","ReturnLabelProperties","ReturnLabelContentClass","LineMultilineDiscOnItem","LineMultilineDiscOnItemValue","WasChanged","OriginalSalesOrderUnitOfMeasure","InventOrderUnitOfMeasure","IsLoyaltyDiscountApplied","ReturnLoyaltyRewardPointLines","FulfillmentStatus","FulfillmentStatusValue","DetailedLineStatus","DetailedLineStatusClass","LastReturnProcessedTime","SalesAgreementPrice","IsSalesAgreementSkipped","SearchAreaClass","Radius","DistanceUnitValue","TenderTypeName","TenderCurrency","CountingRequired","StartingAmountOfStoreCurrency","StartingAmountOfTenderCurrency","FloatingEntryAmountOfStoreCurrency","FloatingEntryAmountOfTenderCurrency","SafeDropAmountOfStoreCurrency","SafeDropAmountOfTenderCurrency","BankDropAmountOfStoreCurrency","BankDropAmountOfTenderCurrency","RemoveTenderAmountOfStoreCurrency","RemoveTenderAmountOfTenderCurrency","DeclareTenderAmountOfStoreCurrency","DeclareTenderAmountOfTenderCurrency","TenderedAmountOfStoreCurrency","TenderedAmountOfTenderCurrency","ChangeAmountOfStoreCurrency","ChangeAmountOfTenderCurrency","Count","Notes","Overridden","OverriddenFloatEntryAmountInStoreCurrency","OverriddenFloatEntryAmountInTenderedCurrency","OverriddenBankDropAmountInStoreCurrency","OverriddenBankDropAmountInTenderedCurrency","OverriddenChangeAmountInStoreCurrency","OverriddenChangeAmountInTenderedCurrency","OverriddenDeclaredTenderAmountInStoreCurrency","OverriddenDeclaredTenderAmountInTenderedCurrency","OverriddenRemovedTenderAmountInStoreCurrency","OverriddenRemovedTenderAmountInTenderedCurrency","OverriddenSafeDropAmountInStoreCurrency","OverriddenSafeDropAmountInTenderedCurrency","OverriddenStartingAmountInStoreCurrency","OverriddenStartingAmountInTenderedCurrency","OverriddenTenderedAmountInStoreCurrency","OverriddenTenderedAmountInTenderedCurrency","OverShortAmountOfTenderCurrency","OperationType","ProductRecordId","ItemName","Counted","EstimatedOnHandQuantity","OnHandCalculationDateTime","Unit","UserId","CountedDate","InventBatchId","WarehouseLocationId","InventoryStatus","WarehousePalletId","InventSiteId","ConfigId","InventSizeId","InventColorId","InventStyleId","InventSerialId","TrackingGuid","UpdatedInAx","IsExempt","TaxBasis","IsIncludedInPrice","TaxCode","IsTaxGroupRounding","RefundableAmount","CaptureToken","CardToken","IncomeExpenseAccountTypeValue","MaskedCardNumber","TenderDate","IsPreProcessed","IsDeposit","IsCustomerAccountFloorLimitUsed","AuthorizationReferenceId","IsIncrementalCaptureEnabled","IsReauthorizationEnabled","IncrementalOffsetAmount","RoundingDifference","RemainingLinkedRefundAmount","Text","UnitOfMeasureClass","DecimalPrecision","Symbol","RecommendedElementClass","ElementId","ElementTypeValue","RecommendationCriteriaClass","CustomerAccountNumber","ProductIds","ProductListId","UnitOfMeasure","CommerceListId","InvitationId","Invitee","IsSent","LastRequestDateTime","LastSentDateTime","InvitationTypeValue","SearchFilterClass","FilterTypeValue","SearchValues","SearchFilterValueClass","TransactionSearchCriteriaClass","TransactionIds","CustomerFirstName","CustomerLastName","ReceiptEmailAddress","SearchIdentifiers","SearchLocationTypeValue","CustomFilters","SalesOrderSearchCriteriaClass","SearchTypeValue","IncludeDetails","SalesTransactionTypeValues","TransactionStatusTypeValues","SearchStoreCriteriaClass","CustomerSearchCriteriaClass","Keyword","SearchOnlyCurrentCompany","SearchLocationValue","Refinements","CustomerRefinerValueClass","ProductPriceClass","TradeAgreementPrice","MaxVariantPrice","MinVariantPrice","CustomerContextualPrice","ProductLookupId","PriceSourceTypeValue","OrgUnitAvailabilityClass","OrgUnitLocation","OrgUnitLocationClass","ItemAvailabilities","ItemAvailabilityClass","ProductVariantPropertySetClass","ProductVariantPropertiesAsList","PurchaseQuantity","PurchaseUnit","PurchaseReceived","PurchaseReceivedNow","WMSLocationId","WMSPalletId","IsCommitted","UniqueIdentifier","DeliveryMethod","QuantityTransferred","QuantityRemainShip","QuantityRemainReceive","Guid","TransferOrderJournalClass","VoucherId","UpdatedByWorker","PostingDate","Comments","JournalLines","TransferOrderJournalLineClass","AffiliationClass","AffiliationTypeValue","InventoryInboundOutboundDocumentLinesSummaryClass","InProgressQuantity","TotalLineNumber","InventoryDocumentSerialNumberLinesSummaryClass","RegisteringQuantity","RegisteredQuantity","InventoryInboundOutboundDocumentLineClass","SourceDocumentRecordId","SourceDocumentLineRecordId","QuantityCancelled","QuantityToUpdate","LocationId","ItemPrimaryImageUrl","IsLocationActive","IsLocationAllowBlankReceiptEnabled","IsLocationBlankIssueAllowed","ProductDimensions","ProductDimensionClass","IsCloseLine","OriginTypeValue","SourceDocumentLine","InventoryInboundOutboundSourceDocumentLineClass","SerialNumberLines","InventoryDocumentSerialNumberLineClass","ToLocationId","AdjustmentTypeValue","DocumentTypeValue","TotalQuantityOrdered","TotalQuantityShipped","TotalQuantityReceived","TotalQuantityCancelled","TotalLines","IsChangeAllowed","DocumentRecordId","OverDeliveryPercentage","UnderDeliveryPercentage","HasSerialNumber","IsSerialNumberBlankReceiptAllowed","IsSerialNumberDuplicateCheckEnabled","InventoryDocumentSourceSerialNumberLineClass","ToProductId","ToInventoryDimensionId","InventoryDocumentLineFilterCriteriaClass","InventoryDocumentUpdateLinesActionClass","ActionTypeValue","InventoryDocumentLineOperationResultSettingsClass","ModeValue","InventoryDocumentLineSearchCriteriaClass","SourceDocumentId","ItemIds","AvailableSerializedLineOnly","DocumentLineIds","DocumentOperationTypeValue","InventoryDocumentSearchCriteriaClass","TransferFromWarehouse","ShipFromWarehouse","TransferToWarehouse","DocumentTypeIds","DocumentStateValue","DocumentTypeValues","InventoryDocumentSerialNumberLineSearchCriteriaClass","DocumentLineId","InventoryDocumentSerialNumberLineUpdateActionClass","InventoryDocumentSerialNumberLineResetActionClass","InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass","UpdatedLines","TotalLinesUpdated","WarehouseLocationSearchCriteriaClass","WarehouseIds","IsLocationProfileRequired","SearchText","WorkDocumentLineId","SourceLineId","SourceLine","InventoryDocumentValidationCategoryResultsSummaryClass","CategoryName","SeverityValue","TotalValidationResultCount","InventoryDocumentValidationResultSummaryClass","DocumentVersion","CategorySummaries","InventoryDocumentValidationResultLineClass","DocumentValidationResultLineId","ErrorCode","ErrorMessage","DocumentLongVersion","InventoryDocumentValidationResultSearchCriteriaClass","Categories","ProductDimensionValueInventoryAvailabilityClass","DimensionTypeValue","DimensionValue","ProductDimensionValueClass","TotalAvailableInventoryLevelLabel","TotalAvailableInventoryLevelCode","PhysicalAvailableInventoryLevelLabel","PhysicalAvailableInventoryLevelCode","DimensionId","ColorHexCode","ImageUrl","RefinerGroup","ProductDimensionCombinationClass","SearchRefinerClass","RefinerTypeValue","DisplayTemplateValue","SearchRefinerValueClass","RefinerRecordId","LeftValueBoundString","RightValueBoundString","UnitText","RowNumber","LeftValueBoundLocalizedString","RightValueBoundLocalizedString","ProductRefinerClass","SourceValue","Values","ProductRefinerValueClass","RefinerSourceValue","SwatchImageUrl","SwatchColorHexCode","ClientBookRefinerClass","ClientBookRefinerValueClass","ProductRelationTypeClass","ComponentInSlotRelationClass","ComponentId","SlotId","IsSerialized","IsActiveInSalesProcess","DateOfBlocking","DateToActivate","DateToBlock","PriceKeyingRequirementValue","QuantityKeyingRequirementValue","MustKeyInComment","CanQuantityBecomeNegative","MustScaleItem","CanPriceBeZero","LocalizedStringClass","TextId","CardTenderTypeValue","CustomerAccount","LoyaltyGroups","LoyaltyGroupClass","RewardPoints","LoyaltyRewardPointClass","LoyaltyEnrollmentDate","LoyaltyEnrollmentDateLocal","LoyaltyEnrollmentTime","LoyaltyEnrollmentTimeLocal","OmOperatingUnitId","ProductComponentClass","AdditionalChargeForComponent","Behavior","ProductBehaviorClass","Dimensions","ProductTypeValue","Components","IsGiftCard","SimpleLinkedProductClass","PrimaryImageUrl","ItemTypeValue","ItemServiceTypeValue","IsDiscountAllowed","IsManualDiscountAllowed","IsKitDisassemblyAllowed","IsNegativeQuantityAllowed","IsReturnAllowed","IsSaleAtPhysicalStoresAllowed","IsZeroSalePriceAllowed","KeyInPriceValue","KeyInQuantityValue","MustPrintIndividualShelfLabelsForVariants","MustPromptForSerialNumberOnlyAtSale","MustWeighProductAtSale","ValidFromDateForSaleAtPhysicalStores","ValidToDateForSaleAtPhysicalStores","IsStorageDimensionGroupLocationActive","IsStorageDimensionGroupLocationAllowBlankReceiptEnabled","AllowNegativePhysicalInventory","IsStockedProduct","IsBlankSerialNumberAllowed","IsBlankSerialNumberReceiptAllowed","IsSerialNumberControlEnabled","IsStorageDimensionGroupLocationBlankIssueAllowed","IsSerialNumberRequired","DefaultQuantity","MinimumQuantity","MultipleOfQuantity","ProductSearchResultClass","AverageRating","TotalRatings","SearchSuggestionClass","Value2","Value3","Value4","SuggestionType","LoyaltyPointRedemptionEstimateClass","MaxCurrencyValueOfLoyaltyPoints","RewardPointToRedeemList","LoyaltyTiers","LoyaltyTierClass","LoyaltyCardTiers","LoyaltyCardTierClass","HighestActiveLoyaltyCardTier","TierId","TierLevel","LoyaltyTierRecordId","IsRedeemable","RewardPointCurrency","RewardPointTypeValue","RewardPointId","IssuedPoints","UsedPoints","ExpiredPoints","ActivePoints","PointsExpiringSoon","UnvestedPoints","LoyaltyCardTransactionClass","EntryDateTime","EntryTypeValue","ExpirationDate","RewardPointAmountQuantity","BalanceCurrencyCode","BalanceInCardCurrency","CardCurrencyCode","OperationPermissionClass","OperationName","OperationId","CheckUserAccess","AllowAnonymousAccess","AllowCustomerAccess","AllowApplicationAccess","IsEnabledForTaskManagement","StateProvinceInfoClass","TransactionLogClass","KitTransactionClass","KitTransactionLines","KitTransactionLineClass","SalesTaxGroupClass","TaxGroupName","ProductPropertyClass","ValueString","PropertyTypeValue","IsDimensionProperty","GroupTypeValue","GroupName","VariantInformation","ProductVariantInformationClass","KitDefinition","KitDefinitionClass","ActiveVariantProductId","Variants","ProductVariantClass","ProductDimensionSetClass","ChangeActionValue","RequestedActionValue","DimensionKey","DimensionValues","ProductDimensionValueSetClass","VariantSet","SwatchRefinerGroupValue","SwatchRefinerGroupTranslation","SwatchRefinerGroupImageUrl","SwatchRefinerGroupColorHexCode","Items","RichMediaLocationsRichMediaLocationClass","AltText","IsSelfHosted","IsDefault","Priority","DisassembleAtRegister","KitLineDefinitions","KitLineDefinitionClass","KitLineProductToVariantMap","ComponentKitVariantSetClass","KitVariantToComponentMap","KitVariantContentClass","KitLineProductId","KitVariantIdList","ComponentProductId","KitLineIdentifier","SubstituteProductIds","ComponentProperties","KitLineProductPropertyClass","Charge","KitComponentKeyClass","DistinctProductId","KitVariantId","KitComponentKeyList","ProductLookupClauseClass","InventDimensionId","ProductAssortmentIntervalClass","OrgUnitContactClass","Distance","IsPickupLocation","IsShippingLocation","PostalAddressId","OpenFrom","OpenTo","Locator","LocatorExtension","ContactTypeValue","SalesLineDeliveryOptionClass","SalesLineId","DeliveryOptions","DeliveryOptionClass","DeliveryChargeLines","DeliveryChargeLineClass","TotalChargeAmount","ChannelDeliveryOptionClass","ChannelIdentityClass","ChannelType","ExtensibleRetailChannelTypeClass","OperatingUnitNumber","ChannelProfilePropertyClass","ChannelConfigurationClass","ChannelNaturalId","MinimumDepositPercentage","QuoteExpirationDays","PickupDeliveryModeCode","CarryoutDeliveryModeCode","CancellationChargePercentage","InventLocationDataAreaId","BingMapsApiKey","BingMapsEnabled","CatalogDefaultImageTemplate","CompanyCurrency","PriceIncludesSalesTax","ChannelCountryRegionISOCode","DefaultLanguageId","TimeZoneInfoId","EmailDeliveryModeCode","GiftCardItemId","EnableProductRecommendations","RefundableShippingAmountWithoutApproval","RefundShippingCharges","ReceiptSettingsValue","CustomerAttributeGroupId","ClientBookAttributeGroupId","NotificationRefreshInterval","AllowExchangeOnReturnOrders","IsInventoryAutomaticValidationEnabled","ProfileProperties","Properties","ChannelPropertyClass","ChannelLanguageClass","UseAdvancedAutoCharges","UseRTSForOnlineOrderCreation","IsWarrantyAutoPromptEnabled","EnableProductRatingsForRetailStores","EnableFetchingPickingListsForPickingAndReceiving","EnableReturnsForMultipleOrderInvoices","EnableAnonymousOrderLookupByChannelReferenceId","EnableOmniChannelPayments","EnableFiscalRegistrationStorageBackup","UseSalesReceiptAsDefaultReceiptTypeInJournal","SalesOrderHeaderAttributeGroups","SalesOrderLinesAttributeGroups","CustomerAddressBooks","StoreAddressBookClass","EnableReturnPolicies","InventAvailabilityCalculationMode","IsPriceInclusiveTaxExemptCalculationEnabled","EnableValidationOfSerialNumbersForInStoreReturns","Channel","ChannelDeliveryOptionConfigurationClass","PickupDeliveryModeCodes","NonSalesTransactionClass","ForeignCurrency","DenominationDetails","DenominationDetailClass","DropAndDeclareTransactionClass","TenderDetails","TenderDetailClass","ProductSearchCriteriaClass","Ids","IncludeProductsFromDescendantCategories","SearchCondition","SkipVariantExpansion","IncludeAttributes","Barcodes","Refinement","RecommendationListId","DownloadProductData","Context","IsOnline","ChangedProductsSearchCriteriaClass","SynchronizationToken","AsListings","Session","ReadChangedProductsSessionClass","EmployeeActivitySearchCriteriaClass","FromDateTimeOffset","ToDateTimeOffset","EmployeeActivityTypeValues","SearchSuggestionCriteriaClass","ProductSearchCriteria","CustomerSearchCriteria","HitPrefix","HitSuffix","CartLineDeliveryPreferenceClass","DeliveryPreferenceTypeValues","CartLinePromotionClass","Promotions","Color","Style","Size","Configuration","ColorId","StyleId","SizeId","DistinctProductVariantId","PropertiesAsList","DeviceTypeValue","DeviceName","DeviceMake","DeviceModel","DeviceDescription","CharacterSet","ReceiptProfileId","BinaryConversion","DocInsertRemovalTimeout","Logo","LogoAlignment","DecodeData","IsSharedShiftDrawer","TillLayoutClass","CashChangerLayoutXml","CustomerLayoutId","CustomerLayoutXml","Height","LayoutTypeValue","LayoutXml","LayoutXmlPortrait","ReceiptItemsLayoutXml","ReceiptPaymentLayoutXml","TotalId","TotalsLayoutXml","StartScreen","ButtonGridZones","ButtonGridZoneClass","ImageZones","ImageZoneClass","ReportZones","ReportZoneClass","SalesInvoiceClass","SalesType","InvoiceDate","DueDate","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalLineDiscount","AmountBalance","Account","SalesInvoiceLine","SalesInvoiceLineClass","OrderAccount","OrderedByCustomerName","OrderInvoiceClass","InvoiceDueDate","InvoicePaidStatusValue","TaxOverrideClass","SourceTaxGroup","DestinationTaxGroup","SourceItemTaxGroup","DestinationItemTaxGroup","AdditionalDescription","TenderTypeClass","Function","ChangeTenderTypeId","AboveMinimumChangeAmount","AboveMinimumChangeTenderTypeId","UseSignatureCaptureDevice","MinimumSignatureCaptureAmount","IsOvertenderAllowed","IsUndertenderAllowed","MaximumOvertenderAmount","MaximumUndertenderAmount","MaximumAmountPerTransaction","MaximumAmountPerLine","MinimumAmountPerTransaction","MinimumAmountPerLine","RoundOff","TakenToBank","TakenToSafe","ConnectorId","GiftCardItem","GiftCardCashoutOutThreshold","ChangeLineOnReceipt","HideCardInputDetails","CashDrawerLimitEnabled","CashDrawerLimit","RestrictReturnsWithoutReceipt","DefaultCardTypeId","UseForDeclareStartAmount","ReasonCodeClass","InputRequired","LinkedReasonCodeId","MaximumLength","MaximumValue","MinimumLength","MinimumValue","OncePerTransaction","PrintInputNameOnReceipt","PrintInputToReceipt","PrintPromptToReceipt","Prompt","RandomFactor","RetailUseReasonCode","ActivityValue","IsMultiLineText","ReasonSubCodes","ReportDataSetClass","ReportId","Parameters","Output","ReportRowClass","HasTotalRow","HasDisclaimer","ZipCodeInfoClass","ZipPostalCode","StreetName","CityAlias","District","ReasonCodeRequirementClass","SourceId","TableRefTypeValue","QueryResultSettingsClass","Paging","PagingInfoClass","Sorting","SortingInfoClass","Columns","ColumnName","IsDescending","NextPageToken","Top","Skip","TranslationLanguage","TranslatedProperties","NumberSequenceSeedDataClass","DataValue","LastTransactionDataValue","LastTransactionCreatedDateTime","LastTransactionId","ReceiptNumberResetInfoClass","ResetDate","TypeValue","Enabled","DeviceActivationResultClass","Device","PurchaseHistoryClass","DatePurchased","PurchaseHistorySearchCriteriaClass","StartDate","EndDate","ProductNameFilter","NodeClass","ParentScopeId","ParentSequence","Sequence","ScreenshotUri","LineClass","ChildrenIds","IsLinked","LineMetadataId","Artifacts","ArtifactSummaryClass","MetadataPropertyValues","MetadataPropertyValueClass","MetadataTextClass","MetadataHypertextLinkClass","ScopeClass","ScopeTypeValue","Children","ActiveCount","IsForm","FrameworkClass","Access","Hierarchy","Publisher","UserActionClass","SystemGenerated","GlobalId","Annotations","AnnotationClass","TaskUserActionClass","UserActionTypeValue","TaskId","FormUserActionClass","FormId","ControlLabel","CommandUserActionClass","ReturnTypeValue","CommandName","ControlName","ControlType","Arguments","CommandArgumentClass","LabelId","ReturnValue","RecordingClass","Scopes","FormContextEntries","FormContextDictionaryEntryClass","RootScope","FormContext","FormContextClass","ProductVariantResolutionContextClass","ProductVariantResolutionOnKitSelectionContextClass","SelectedComponents","WarehouseLocationClass","IsLicensePlateControlled","TransDateTime","RegisterResponse","ReceiptCopy","RecordGUID","RegisterStoreId","RegisterTerminalId","RegistrationStatusValue","RegistrationProcessId","ConnectorGroup","ConnectorFunctionalityProfileId","RegisterInfo","DocumentNumber","RegistrationTypeValue","ServiceName","TenderLineAdjustments","FiscalTransactionTenderLineAdjustmentClass","SalesLineAdjustments","FiscalTransactionSalesLineAdjustmentClass","FulfillmentLineClass","SalesPersonStoreId","SalesPersonId","SalesPersonFirstName","SalesPersonLastName","SalesLineNumber","EmailAddress","DeliveryModeCode","FulfillmentDeliveryType","DeliveryTypeValue","StoreInventoryTotalQuantity","StoreInventoryReservedQuantity","StoreInventoryOrderedQuantity","ProductVariant","RequestedShipDate","RequestedReceiptDate","CreatedDate","ChannelTypeValue","FulfillmentLineSearchCriteriaClass","OrderCreatedStartDate","OrderCreatedEndDate","RequestedReceiptStartDate","RequestedReceiptEndDate","RequestedDeliveryStartDate","RequestedDeliveryEndDate","FulfillmentStatusValues","CustomerPhoneNumber","CommentClass","AuthorStaffId","AuthorName","AddressPurposeClass","AddressType","ExtensionPackageDefinitionClass","ReturnPolicyClass","TenderTypePolicies","TenderTypePolicyClass","IsManagerOverrideEnabled","TenderTypeAmountClass","FeatureStateClass","WarrantyClass","DurationUnitValue","Duration","ApplicablePriceRangeBaseTypeValue","ApplicablePriceRangeMin","ApplicablePriceRangeMax","RecallInvoicedSalesLineLookupClass","InvoicedLineId","IgnoreSerialNumberMismatch","WarrantyGroupClass","Warranties","ProductWarrantiesMappingClass","WarrantyGroups","WarrantableProductId","FulfillmentLineContextualOperationsMapClass","FulfillmentLine","UserAlertClass","AlertSourceIdValue","LocalizedMessage","IsBlocking","CartLineUserAlertsClass","LineIndex","UserAlerts","FulfillmentLineUserAlertsClass","BusinessPartnerProspectClass","CompanyName","JobTitle","Department","CompanySize","ChannelSearchCriteriaClass","BusinessPartnerOperationClass","BusinessPartnerOperationRequestClass","Details","BusinessPartnerOperationRequestDetailsClass","UserFirstName","UserLastName","ReceiptTypesByFormatTypeClass","ReceiptOutputFormatType","ReceiptTypesValues","InventoryJournalNameSearchCriteriaClass","JournalNameIds","AssortedProductIdentityClass","IsRemoteProduct","ProductExistenceIdClass","ProductExistenceCriteriaClass","InstructionsVersion","AssignedToPersonnelNumbers","AssignedToExternalSubId","DeepLinkTypeValue","DeepLink","DeepLinkPosOperationName","ContactPersonPersonnelNumber","Instructions","CompletionDateTime","ResolvedByPersonnelNumber","ChecklistId","Uri","EmployeeActivityClass","StaffName","Activity","ActivityDateTimeOffset","EmployeeActivityTypeValue","BreakCategory","CustomerRefinerClass","CardTokenInfo","CardTokenInfoClass","ProductDimensionAvailabilitySearchCriteriaClass","RequestedDimensionTypeValue","MatchingDimensionValues","DefaultWarehouseOnly","FilterByChannelFulfillmentGroup","DeliveryModeTypeFilterValue","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","ReturnCartLineClass","TenderDiscountLineClass","ReceiptRetrievalCriteriaClass","IsCopy","IsRemoteTransaction","IsPreview","QueryBySalesId","HardwareProfileId","CartSearchCriteriaClass","CartId","ExpectedCartVersion","IncludeAnonymous","SuspendedOnly","LastModifiedDateTimeFrom","LastModifiedDateTimeTo","ReturnUrl","SearchReceiptCriteriaClass","ReceiptTypesByFormatTypeCollection","GiftReceiptLineNumbers","ElectronicAddressClass","ExtensibleEAddressType","ChannelReferenceLookupCriteriaClass","ChannelReferenceAdditionalLookupCriteria","ChannelReferenceAdditionalLookupCriteriaClass","FulfillmentLineParameterClass","ShipFulfillmentLineClass","RejectFulfillmentLineClass","RejectedQuantity","InfoCodeId","SubInfoCodeId","TotalNumberOfProducts","NumberOfProductsRead","NumberOfProductsReadInCurrentPage","NumberOfChangedProductsAcrossCatalogs","NextSynchronizationToken","IsInitialSync","DeletedListingsResultClass","HasMorePublishedListings","DeletedListings","ListingIdentityClass","ProductRatingClass","RatingDistribution","ProductRatingCountClass","ProductDeliveryOptionsClass","ListingPublishStatusClass","PublishStatusValue","ListingModifiedDateTime","ChannelListingId","AppliedActionValue","StatusMessage","OrgUnitLocationSearchCriteriaClass","InventoryLocationIds","StoreHoursClass","RegularStoreHours","RegularStoreHoursClass","CartPromotionsClass","HeaderPromotions","CartLinePromotions","CartPromotionLineClass","Promotion","PromotionClass","ItemUnitClass","VariantInventoryDimensionId","DistinctProductVariant","ProductAvailableQuantityClass","AvailableQuantity","OrgUnitAvailabilitySearchCriteriaClass","InvoiceSearchCriteriaClass","InvoiceIds","InvoiceTypeValues","InvoicePaidStatusValues","InvoiceDetailsSearchCriteriaClass","PickAndPackSalesLineParameterClass","ProductListSearchCriteriaClass","ProductListType","AffiliationId","LoyaltyTierId","ClientBookCustomerSearchCriteriaClass","FilterByCurrentEmployee","ClientBookCustomerClass","ImageUris","ClientBookChangesClass","Changes","ClientBookChangeClass","ChargeCodeClass","PaymentConnectorPropertiesXml","MerchantPropertiesHashValue","ServiceAccountId","StoreSafeClass","SafeNumber","SafeBalance","LastUpdatedTime","InventoryDocumentReceiptSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordClass","UpdateNowQuantity","CreateHardwareStationTokenResultClass","HardwareStationToken","PairingKey","ValidateHardwareStationTokenResultClass","MediaBlobClass","MediaType","Content","PictureId","OnlineChannelClass","OnlineStoreCustomerTypeValue","OnlineChannelName","OrgUnitTypeValue","ChannelProfile","ChannelProfileClass","ChannelProperties","ChannelLanguages","CountryRegions","TerminalDataDownloadRequestInfoClass","RequiresDataInitialization","HasBeenInitializedBefore","DataDownloadParametersClass","DownloadInterval","DownloadSessions","DownloadSessionClass","FeatureControlList","RetailSharedConfigurationParameterClass","DataStore","CDXDataStoreClass","TerminalDataUploadRequestInfoClass","DataUploadParametersClass","UploadInterval","UploadJobPackageRequests","UploadJobPackageRequestClass","JobId","JobDescription","FileSize","RowsAffected","Checksum","DateDownloaded","DateRequested","DataStoreName","DownloadLink","OfflineTerminalStateClass","LoyaltyRewardPointActivityClass","ActivityDate","LoyaltyRewardPointTimelineEntryType","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","LoyaltyPoints","CurrencyRequestClass","AmountToConvert","HardwareStationProfileClass","HardwareStationId","HardwareStationTypeValue","HardwareStationName","HardwareStationDescription","HardwareStationUrl","HardwareStationHostName","HardwareStationEftTerminalId","NameValuePairClass","LinkToExistingCustomerResultClass","ExternalIdentityProvider","ExternalIdentityLinkRecordId","OfflineSyncStatsLineClass","IsUploadJob","LastSyncDateTime","StorageAccessTokenClass","SasKey","TaskGuidesSearchResultClass","FrameworkPublisherName","AuditEventClass","EventId","EventIdString","Store","UploadType","EventType","EventDateTime","DurationInMilliseconds","Source","EventMessage","LogLevel","Staff","ClosedShiftId","ReferenceId","RefChannel","RefStore","RefTerminal","RefTransactionId","AuditEventTypeValue","AuditEventFiscalTransactionClass","FiscalRegistrationLines","AuditEventFiscalRegistrationLineClass","OrderedSum","PhysicalReserved","InventoryUnitOfMeasure","InventoryUnitOfMeasureDescription","InventoryAvailableToPromiseClass","NotificationItemClass","Action","ActionName","NotificationDetails","NotificationDetailClass","FiscalIntegrationDocumentRetrievalCriteriaClass","FiscalRegistrationEventTypeValue","DocumentContext","FiscalIntegrationDocumentContextClass","FiscalIntegrationDocumentClass","Document","DocumentGenerationResultTypeValue","FiscalConnectorTechnicalProfile","DocumentAdjustment","FiscalIntegrationDocumentAdjustmentClass","SequentialSignatureDataContext","FiscalIntegrationSignatureDataContextClass","FiscalIntegrationRegistrationResultClass","TransactionID","AuditEventId","Response","SubmittedDocument","SequentialSignatureData","FiscalIntegrationSequentialSignatureDataClass","FiscalIntegrationRegistrationProcessClass","RegistrationProcessLines","FiscalIntegrationRegistrationProcessLineClass","FiscalIntegrationSupportedEventsClass","FunctionalityProfileGroupId","SupportedFiscalEventTypes","SupportedNonFiscalEventTypes","ConnectorTypeValue","ConnectorLocationValue","TechnicalProfile","FiscalIntegrationFiscalRegistrationProcessSummaryClass","FiscalRegistrationProcessSummaryLines","FiscalIntegrationFiscalRegistrationProcessSummaryLineClass","FiscalIntegrationTechnicalProfileSearchCriteriaClass","ExcludeOptionalProcessLines","FunctionalityProfileGroupIds","FiscalIntegrationServiceInfoClass","ServiceProperties","FiscalIntegrationServiceStatusClass","IsReady","FiscalIntegrationServiceCommunicationResultClass","CommunicationResultTypeValue","FailureDetails","FiscalIntegrationServiceFailureDetailsClass","FiscalIntegrationServiceInfo","UserNotificationMessage","LastRegisterResponse","SequenceKey","IsOffline","SequentialNumber","DiscountsSearchCriteriaClass","ValidationPeriodId","AdditionalRestrictions","ValidFromDate","ValidToDate","ValidationPeriod","ValidationPeriodClass","CouponCodes","CategoryPathLookupClass","CategoryPathResultClass","CategoryPath","CategoryPathClass","PickupTimeslotAvailabilitySearchCriteriaClass","SearchOptionValue","PickupTimeslotAvailabilityClass","AvailableCapacity","CheckInForOrderPickupConfirmationClass","VendorSearchCriteriaClass","VendorClass","PartyId","NameAlias","VendorValidationResultClass","VendorValidationResultLevelValue","ExtensionProfileClass","ExtensionServiceUrl","AttachedServices","AttachedServiceClass","ChannelInventoryConfigurationClass","AllowTransferOrderOverDelivery","AllowTransferOrderUnderDelivery","UserLocationProfileId","InventoryProductAttributeRecordId","InventoryOutOfStockAttributeValueText","ProductAvailabilitySortableAttributeRecordId","ChannelPurchaseConfigurationClass","AllowOverDelivery","AllowSubDelivery","InventoryJournalNameClass","JournalNameId","InventoryJournalTypeValue","DefaultAdjustmentTypeValue","ShiftRetrievalCriteriaClass","ShiftStatusValue","FilterByUserRole","IncludeAllShiftsForStore","UserDefinedSecretCertificateResultClass","CertificateData","TerminalInfoClass","CustomerTimelineItemTypeMapClass","Types","CustomerTimelineItemTypeClass","CustomerTimelineRefinerClass","RefinedResultsCount","CustomerTitleClass","ProductWarehouseClass","ProductWarehouseInventoryInformationClass","ProductWarehouseInventoryAvailabilities","ProductWarehouseInventoryAvailabilityClass","AggregatedProductInventoryAvailabilities","ProductInventoryAvailabilityClass","InventoryAvailabilitySearchCriteriaClass","SearchArea","QuantityUnitTypeValue","ExtensibleEnumerationContainerClass","TypeName","ExtensibleEnumerations","PackingSlipDataClass","PackingSlipId","EmailReceiptSettingsClass","EmailBehaviorValue","FiscalIntegrationComplianceResultClass","ErrorMessages","OrgUnitAddressClass","WarehouseDetailsClass","SwatchValue","ProductImageUrls","AttributeBooleanValueClass","AttributeCurrencyValueClass","AttributeDateTimeOffsetValueClass","AttributeFloatValueClass","UnitSymbol","AttributeIntValueClass","AttributeMediaLocationValueClass","AttributeTextValueClass","TextValueTranslations","ActionProperty","BackColorAsARGB","ARGBColorClass","BorderColorAsARGB","Column","ColumnSpan","DisplayText","FontColorAsARGB","ButtonId","Row","RowSpan","UseCustomLookAndFeel","PictureAsBase64","FontStyle","FontSize","EnableCustomFontForPOS","HideButtonText","Tooltip","EnableLiveContent","NotificationContentAlignment","ImageAlignment","A","R","G","B","PriceMethod","OriginId","PriceChangedByExtensions","TradeAgreementPriceLineClass","AttributePricingTradeAgreementPriceLineClass","CanApplyPriceAdjustments","SalesAgreementPriceLineClass","SalesAgreementName","UnitPrice","DiscountPercent","SalesAgreementLineTypeValue","PriceUnit","EffectiveDate","CommittedQuantity","CommittedAmount","RemainingAmount","PriceAdjustmentPriceLineClass","Concurrency","AttributePricingAdjustmentPriceLineClass","CanCompoundOnAdjustedPrice","AdjustedAmount","BasePriceLineClass","ExtensiblePeriodicDiscountOfferTypeClass","OriginalAmount","OverrideAmount","OverrideReasonDescription","OverrideDateTime","TaxLineGTEClass","TaxComponent","Path","UniqueCardId","DataverseTenderLineClass","IsLocalized","IsSearchable","IsRetrievable","IsQueryable","IsRefinable","IsSortable","IsTokenNormalization","IsCompleteMatch","FromUnitOfMeasureId","ToUnitOfMeasureId","FromUnitOfMeasureSymbol","ToUnitOfMeasureSymbol","IsBackward","Factor","Numerator","Denominator","InnerOffset","OuterOffset","ReturnLocationText","ReturnWarehouseText","ReturnReasonText","ReturnPalleteText","LoyaltyGroupRecordId","EntryDate","EntryTime","RewardPointRecordId","RewardPointIsRedeemable","RewardPointType","ServiceType","PackageWeight","WeightClass","ShippedOnDate","DeliveredOnDate","EstimatedDeliveryDate","PackagingType","DestinationAddress","OriginAddress","ShipmentProgress","ShipmentProgressClass","ShippingCharge","Location","DateTime","AddressComponentNameValue","IsDataEntryOnly","NewLine","Expand","Inactive","Special","NumberOfSpaces","Separator","CashDrawerConfigurations","HardwareConfigurationClass","PrinterConfigurations","PinPadConfiguration","HardwareStationRecordId","IPAddress","Port","PrinterType","PrintBehaviorValue","ReceiptLayoutId","ReceiptType","TransferQuantity","DocumentLineRecordId","InventTransRecordId","AddressBookId","AddressBookTypeValue","AmountInForeignCurrency","ForeignCurrencyExchangeRate","BankBagNumber","TenderRecount","Type","DenominationAmount","QuantityDeclared","AmountDeclared","ButtonGridId","ZoneId","ZoneName","ReportRecordId","InventTransactionId","Site","Warehouse","SerialId","ColorName","SizeName","StyleName","ConfigName","ItemTaxGroup","SalesMarkup","RowData","FormAnnotationClass","MenuItemLabel","MenuItemName","MenuItemType","TaskGuideAnnotationClass","RecordingValueType","ExampleText","Hidden","IsReference","PropertyUserActionClass","ValueLabel","PropertyName","UserActionType","InfoUserActionClass","ControlLabelId","MenuItemUserActionClass","NavigationPath","ValidationUserActionClass","ArtifactType","LanguageTags","PropertyId","SingleValue","MultiValue","Tags","ComboBox","MultiSelect","Links","FormID","FormName","RecordingName","HasMetadata","ExtensibleFiscalRegistrationTypeClass","TenderLineNumber","AdjustmentAmount","RecordGuid","Exclude","DetailedOrderStatusClass","LineValidationResultClass","ValidationFailures","DataValidationFailureClass","TaxId","CodeId","DiscountOfferId","Units","PartyLocationRecordId","PartyRecordId","ValueExtension","ParentLocation","IsMobilePhone","IsOptedInMarketing","QuantityReturned","TaxRate","IsRegistrationNumberUnique","IsPrimaryAddressRestricted","TypeApplicabilityRuleRecordId","DirPartyLocationRecordId","RegistrationNumber","IssueDate","Section","ChannelTaxRegistrationClass","LinkedProductRecordId","CategoryRecordId","RelatedProductRecordId","RelationName","IsExcludedRelation","IsDirectRelation","OrderLookupAdditionalCriteriaTypeValue","OrderLookupAdditionalCriteriaTypeParameterValue","UserAlertFulfillmentLineParameterClass","SerialNumberInLatestFulfillmentTransaction","LatestFulfillmentTransactionOperationTypeValue","Rating","MondayOpenTime","MondayCloseTime","IsClosedOnMonday","TuesdayOpenTime","TuesdayCloseTime","IsClosedOnTuesday","WednesdayOpenTime","WednesdayCloseTime","IsClosedOnWednesday","ThursdayOpenTime","ThursdayCloseTime","IsClosedOnThursday","FridayOpenTime","FridayCloseTime","IsClosedOnFriday","SaturdayOpenTime","SaturdayCloseTime","IsClosedOnSaturday","SundayOpenTime","SundayCloseTime","IsClosedOnSunday","PeriodId","StartingTime","EndingTime","IsTimeBounded","MondayStartingTime","MondayEndingTime","IsMondayTimeBounded","TuesdayStartingTime","TuesdayEndingTime","IsTuesdayTimeBounded","WednesdayStartingTime","WednesdayEndingTime","IsWednesdayTimeBounded","ThursdayStartingTime","ThursdayEndingTime","IsThursdayTimeBounded","FridayStartingTime","FridayEndingTime","IsFridayTimeBounded","SaturdayStartingTime","SaturdayEndingTime","IsSaturdayTimeBounded","SundayStartingTime","SundayEndingTime","IsSundayTimeBounded","IsEndTimeAfterMidnight","IsMondayEndTimeAfterMidnight","IsTuesdayEndTimeAfterMidnight","IsWednesdayEndTimeAfterMidnight","IsThursdayEndTimeAfterMidnight","IsFridayEndTimeAfterMidnight","IsSaturdayEndTimeAfterMidnight","IsSundayEndTimeAfterMidnight","FromStaffId","ToStaffId","RecId","RerunUploadSessionId","TargetStorage","UploadJobDefintion","UploadUrl","ExtensibleAuditEventTypeClass","UploadTypeValue","ItemCount","IsNew","LastUpdatedDateTimeStr","IsSuccess","IsLiveContentOnly","AuditEvent","SequentialSignatureKey","SequenceNumber","AllowSkip","AllowMarkAsRegistered","AllowPostpone","Optional","RegistrationSettings","FiscalIntegrationRegistrationSettingsClass","SequentialKeys","SkipReasonCode","MarkAsRegisteredReasonCode","PostponeReasonCode","RegistrationProcessLine","ConnectionProperties","FiscalIntegrationConfigurationPropertyClass","LabelName","FailureTypeValue","IsRetryAllowed","Segments","CategoryPathSegmentClass","CategoryId","BaseUrl","ServiceId","ExtensibleInventoryJournalTypeClass","PhysicalInventory","TotalAvailable","OrderedInTotal","PhysicalAvailable","LastInventoryTransactionId","UnpostedOnlineOrderedQuantity","UnpostedFulfilledQuantity","IsInventoryAvailabilityQuantityReturned","UnprocessedQuantity","MaximumPurchasablePhysicalAvailableQuantity","MaximumPurchasableTotalAvailableQuantity","SumUncountedTransactions","QuantityUnitTypeClass","TotalAvailableQuantity","PhysicalAvailableQuantity","ParameterSetClass","CartLineValidationResultsClass","ValidationResultsByLineId","CartLineValidationResultsByLineIdClass","ValidationFailuresByCartLines","LineDataValidationFailureClass","CommerceExceptionClass","ErrorResourceId","DataValidationExceptionClass","ValidationResults","MissingRequiredReasonCodeExceptionClass","RequiredReasonCodes","TransactionRequiredReasonCodeIds","ReasonCodeRequirements","SecurityExceptionClass","DeviceAuthenticationExceptionClass","HeadquarterTransactionServiceExceptionClass","UserAuthenticationExceptionClass","UserAuthorizationExceptionClass","FeatureNotSupportedExceptionClass","CartValidationExceptionClass","TenderValidationExceptionClass","CommerceDataExchangeExceptionClass","ExtensibleEnumerationExceptionClass","TaskManagementExceptionClass","TaskManagementErrors","TaskManagementErrorClass","TaskManagementServerExceptionClass","TaskManagementClientExceptionClass","PaymentExceptionClass","ErrorContext","MemberNames","ItemDiscontinuedExceptionClass","RemovedUnavailableItemIds","InventoryDocumentLockedByOtherTerminalExceptionClass","WorkingTerminalId","InventoryDocumentExceedMaximumQuantityExceptionClass","ProductPricingConfigurationExceptionClass","ProductPricingConfigurationErrors","ProductPricingConfigurationErrorClass","LineIdToProductBehaviorMap","KeyValuePair_2OfString_ProductBehaviorClass","ValidationResultsPairs","CommerceRuntimeCompositionExceptionClass","ChecklistTaskValidationExceptionClass","InsufficientCredentialLengthExceptionClass","ActualLength","MinLength","ExtensibleEnumerationCacheExceptionClass","ExtensionConfigurationExceptionClass","StaffPasswordExpiredExceptionClass","ChannelConfigurationNotFoundExceptionClass","PaymentConfigurationExceptionClass","PaymentConfigurationSdkErrors","SecretConfigurationNotFoundExceptionClass","OriginalTenderType","AllowedReturnTenderTypes","AccountStatementRequestClass","RequestedUserId","IsForFullOrganization","FromDate","ToDate","RequestingUserEmail","AccountStatementStartDateTime","AccountStatementEndDateTime","DataValidationFailure","WrongEndpointExceptionClass","RedirectUri","BadRequestExceptionClass"],"sourceRoot":""}