{"version":3,"file":"static/js/9e2b9e3d1622779b876b.bundle.js","mappings":"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","sources":["webpack://Dobbies.Commerce/../../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 TaxCalculationTypeValue: number;\n public Notes: Entities.Note[];\n public CustomerRequisition: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.TaxCalculationTypeValue = \n odataObject.TaxCalculationTypeValue;\n \n this.Notes = undefined;\n if (odataObject.Notes) {\n this.Notes = [];\n for (var i = 0; i < odataObject.Notes.length; i++) {\n if (odataObject.Notes[i] != null) {\n if (odataObject.Notes[i]['@odata.type'] != null) {\n var className: string = odataObject.Notes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Notes[i] = new entityDictionary[className](odataObject.Notes[i])\n }\n } else {\n this.Notes[i] = new NoteClass(odataObject.Notes[i]);\n }\n } else {\n this.Notes[i] = undefined;\n }\n }\n }\n \n this.CustomerRequisition = \n odataObject.CustomerRequisition;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 ConfirmedShipDate: 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 OriginalOrderTransactionId: string;\n public Notes: Entities.Note[];\n public CustomerRequisition: string;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public LanguageId: string;\n public SalesAgreementRecordId: number;\n public TransactionDate: Date;\n public TransactionTime: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ConfirmedShipDate = \n (odataObject.ConfirmedShipDate instanceof Date) ? odataObject.ConfirmedShipDate\n : (odataObject.ConfirmedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ConfirmedShipDate, \"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.OriginalOrderTransactionId = \n odataObject.OriginalOrderTransactionId;\n \n this.Notes = undefined;\n if (odataObject.Notes) {\n this.Notes = [];\n for (var i = 0; i < odataObject.Notes.length; i++) {\n if (odataObject.Notes[i] != null) {\n if (odataObject.Notes[i]['@odata.type'] != null) {\n var className: string = odataObject.Notes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Notes[i] = new entityDictionary[className](odataObject.Notes[i])\n }\n } else {\n this.Notes[i] = new NoteClass(odataObject.Notes[i]);\n }\n } else {\n this.Notes[i] = undefined;\n }\n }\n }\n \n this.CustomerRequisition = \n odataObject.CustomerRequisition;\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.TransactionDate = \n (odataObject.TransactionDate instanceof Date) ? odataObject.TransactionDate\n : (odataObject.TransactionDate != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TransactionTime = \n odataObject.TransactionTime;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 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 OMOperatingUnitNumber: 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.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.OMOperatingUnitNumber = \n odataObject.OMOperatingUnitNumber;\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 ChannelId: number;\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.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\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 SellerChannelId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.SellerChannelId = \n odataObject.SellerChannelId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 * 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 SalesTaxGroupId: string;\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 ReturnStore: string;\n public ReturnTerminalId: 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.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\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.ReturnStore = \n odataObject.ReturnStore;\n \n this.ReturnTerminalId = \n odataObject.ReturnTerminalId;\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 SpecificUnitSymbol: string;\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.SpecificUnitSymbol = \n odataObject.SpecificUnitSymbol;\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 ExtensionProperties: Entities.CommerceProperty[];\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 \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\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.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 }\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 RecordId: 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.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : 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 * OrderManagementConfiguration entity class.\n */\n export class OrderManagementConfigurationClass implements Entities.OrderManagementConfiguration {\n public EnableContactEditPromptForAsyncOrderCancellation: boolean;\n public SkipSalesInvoiceSelectionDuringReturn: boolean;\n public OrderAttributeForTIN: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EnableContactEditPromptForAsyncOrderCancellation = \n odataObject.EnableContactEditPromptForAsyncOrderCancellation;\n \n this.SkipSalesInvoiceSelectionDuringReturn = \n odataObject.SkipSalesInvoiceSelectionDuringReturn;\n \n this.OrderAttributeForTIN = \n (odataObject.OrderAttributeForTIN != null) ? parseInt(odataObject.OrderAttributeForTIN, 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['OrderManagementConfigurationClass'] = OrderManagementConfigurationClass;\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 SelectHardwareStationAtStartOfTransaction: 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 AutoSynchronizeDeviceNumberSequences: boolean;\n public SelfCheckout: 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.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.SelectHardwareStationAtStartOfTransaction = \n odataObject.SelectHardwareStationAtStartOfTransaction;\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.AutoSynchronizeDeviceNumberSequences = \n odataObject.AutoSynchronizeDeviceNumberSequences;\n \n this.SelfCheckout = \n odataObject.SelfCheckout;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 DefaultSearchResultDisplayViewTypeValue: number;\n public BypassItemAddedDialog: boolean;\n public IsModernTransactionGridEnabled: 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.DefaultSearchResultDisplayViewTypeValue = \n odataObject.DefaultSearchResultDisplayViewTypeValue;\n \n this.BypassItemAddedDialog = \n odataObject.BypassItemAddedDialog;\n \n this.IsModernTransactionGridEnabled = \n odataObject.IsModernTransactionGridEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 * PaymentConfiguration entity class.\n */\n export class PaymentConfigurationClass implements Entities.PaymentConfiguration {\n public AlwaysStoreCardTokenOnOrderBalanceAuthorization: boolean;\n public MinOrderProcessingDaysForStoringCardToken: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AlwaysStoreCardTokenOnOrderBalanceAuthorization = \n odataObject.AlwaysStoreCardTokenOnOrderBalanceAuthorization;\n \n this.MinOrderProcessingDaysForStoringCardToken = \n odataObject.MinOrderProcessingDaysForStoringCardToken;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentConfigurationClass'] = PaymentConfigurationClass;\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 LineDisplayKeepConnectionOpen: boolean;\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 PinPadAllowNfcPayment: boolean;\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.LineDisplayKeepConnectionOpen = \n odataObject.LineDisplayKeepConnectionOpen;\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.PinPadAllowNfcPayment = \n odataObject.PinPadAllowNfcPayment;\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 DescriptionTranslation: 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.DescriptionTranslation = \n odataObject.DescriptionTranslation;\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 ConfirmedShipDate: 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.ConfirmedShipDate = \n (odataObject.ConfirmedShipDate instanceof Date) ? odataObject.ConfirmedShipDate\n : (odataObject.ConfirmedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ConfirmedShipDate, \"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 * ProductUnitOfMeasure entity class.\n */\n export class ProductUnitOfMeasureClass\n extends UnitOfMeasureClass\n implements Entities.ProductUnitOfMeasure {\n public UnitOfMeasureSourceValue: number;\n public ProductQuantityLimitRules: Entities.ProductQuantityLimitRule;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.UnitOfMeasureSourceValue = \n odataObject.UnitOfMeasureSourceValue;\n \n if (odataObject.ProductQuantityLimitRules == null) {\n this.ProductQuantityLimitRules = undefined;\n } else if (odataObject.ProductQuantityLimitRules['@odata.type'] == null) {\n this.ProductQuantityLimitRules = new ProductQuantityLimitRuleClass(odataObject.ProductQuantityLimitRules);\n } else {\n var className: string = odataObject.ProductQuantityLimitRules['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductQuantityLimitRules = new entityDictionary[className](odataObject.ProductQuantityLimitRules)\n }\n }\n\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductUnitOfMeasure\";\n \n }\n }\n entityDictionary['ProductUnitOfMeasureClass'] = ProductUnitOfMeasureClass;\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 CatalogId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 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['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 public ChannelTypeValue: number;\n public OnlineStoreCustomerTypeValue: 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.StoreNumber = \n odataObject.StoreNumber;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ChannelTypeValue = \n odataObject.ChannelTypeValue;\n \n this.OnlineStoreCustomerTypeValue = \n odataObject.OnlineStoreCustomerTypeValue;\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 IsHidden: 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.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.IsHidden = \n odataObject.IsHidden;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 TrackingDimensionLines: Entities.InventoryDocumentTrackingDimensionLine[];\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.TrackingDimensionLines = undefined;\n if (odataObject.TrackingDimensionLines) {\n this.TrackingDimensionLines = [];\n for (var i = 0; i < odataObject.TrackingDimensionLines.length; i++) {\n if (odataObject.TrackingDimensionLines[i] != null) {\n if (odataObject.TrackingDimensionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TrackingDimensionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TrackingDimensionLines[i] = new entityDictionary[className](odataObject.TrackingDimensionLines[i])\n }\n } else {\n this.TrackingDimensionLines[i] = new InventoryDocumentTrackingDimensionLineClass(odataObject.TrackingDimensionLines[i]);\n }\n } else {\n this.TrackingDimensionLines[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 TrackingDimensionLines: Entities.InventoryDocumentSourceTrackingDimensionLine[];\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.TrackingDimensionLines = undefined;\n if (odataObject.TrackingDimensionLines) {\n this.TrackingDimensionLines = [];\n for (var i = 0; i < odataObject.TrackingDimensionLines.length; i++) {\n if (odataObject.TrackingDimensionLines[i] != null) {\n if (odataObject.TrackingDimensionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TrackingDimensionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TrackingDimensionLines[i] = new entityDictionary[className](odataObject.TrackingDimensionLines[i])\n }\n } else {\n this.TrackingDimensionLines[i] = new InventoryDocumentSourceTrackingDimensionLineClass(odataObject.TrackingDimensionLines[i]);\n }\n } else {\n this.TrackingDimensionLines[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 * UnitOfMeasureSearchCriteria entity class.\n */\n export class UnitOfMeasureSearchCriteriaClass implements Entities.UnitOfMeasureSearchCriteria {\n public IncludeQuantityLimitRules: 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.IncludeQuantityLimitRules = \n odataObject.IncludeQuantityLimitRules;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureSearchCriteriaClass'] = UnitOfMeasureSearchCriteriaClass;\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 IsSaleAtSelfCheckoutRegistersAllowed: 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.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.IsSaleAtSelfCheckoutRegistersAllowed = \n odataObject.IsSaleAtSelfCheckoutRegistersAllowed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 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 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.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['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 HideSystemInventoryInStockCount: boolean;\n public EnablePriceChangeTracking: 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 DisplayNonRetailOrdersInEcommerceOrderHistory: boolean;\n public EnableCopilotCustomerInsights: boolean;\n public EnableCopilotProductInsights: boolean;\n public EnableCopilotReportInsights: boolean;\n public EnableStoreCommerceCopilot: 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.HideSystemInventoryInStockCount = \n odataObject.HideSystemInventoryInStockCount;\n \n this.EnablePriceChangeTracking = \n odataObject.EnablePriceChangeTracking;\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.DisplayNonRetailOrdersInEcommerceOrderHistory = \n odataObject.DisplayNonRetailOrdersInEcommerceOrderHistory;\n \n this.EnableCopilotCustomerInsights = \n odataObject.EnableCopilotCustomerInsights;\n \n this.EnableCopilotProductInsights = \n odataObject.EnableCopilotProductInsights;\n \n this.EnableCopilotReportInsights = \n odataObject.EnableCopilotReportInsights;\n \n this.EnableStoreCommerceCopilot = \n odataObject.EnableStoreCommerceCopilot;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 * OrderOriginator entity class.\n */\n export class OrderOriginatorClass implements Entities.OrderOriginator {\n public TransactionId: string;\n public SalesId: string;\n public StaffId: string;\n public StaffName: string;\n public CustomerId: string;\n public CustomerName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.SalesId = \n odataObject.SalesId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StaffName = \n odataObject.StaffName;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderOriginatorClass'] = OrderOriginatorClass;\n \n /**\n * OrderOriginatorSearchCriteria entity class.\n */\n export class OrderOriginatorSearchCriteriaClass implements Entities.OrderOriginatorSearchCriteria {\n public TransactionIds: string[];\n public SalesIds: string[];\n public SearchLocationValue: number;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.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.SalesIds = undefined;\n if (odataObject.SalesIds) {\n this.SalesIds = [];\n for (var i = 0; i < odataObject.SalesIds.length; i++) {\n if (odataObject.SalesIds[i] != null) {\n this.SalesIds[i] = \n odataObject.SalesIds[i];\n } else {\n this.SalesIds[i] = undefined;\n }\n }\n }\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['OrderOriginatorSearchCriteriaClass'] = OrderOriginatorSearchCriteriaClass;\n \n /**\n * SalesOrdersLookupCriteria entity class.\n */\n export class SalesOrdersLookupCriteriaClass implements Entities.SalesOrdersLookupCriteria {\n public SalesOrderLookups: Entities.SalesOrderLookup[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesOrderLookups = undefined;\n if (odataObject.SalesOrderLookups) {\n this.SalesOrderLookups = [];\n for (var i = 0; i < odataObject.SalesOrderLookups.length; i++) {\n if (odataObject.SalesOrderLookups[i] != null) {\n if (odataObject.SalesOrderLookups[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesOrderLookups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesOrderLookups[i] = new entityDictionary[className](odataObject.SalesOrderLookups[i])\n }\n } else {\n this.SalesOrderLookups[i] = new SalesOrderLookupClass(odataObject.SalesOrderLookups[i]);\n }\n } else {\n this.SalesOrderLookups[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrdersLookupCriteriaClass'] = SalesOrdersLookupCriteriaClass;\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 KeepConnectionOpen: 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.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.KeepConnectionOpen = \n odataObject.KeepConnectionOpen;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 DrawerKeepConnectionOpen: 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.DrawerKeepConnectionOpen = \n odataObject.DrawerKeepConnectionOpen;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 QuantityNotInvoiced: number;\n public QuantityNotPacked: number;\n public QuantityNotPicked: 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.QuantityNotInvoiced = \n (odataObject.QuantityNotInvoiced != null) ? parseFloat(odataObject.QuantityNotInvoiced) : undefined;\n \n this.QuantityNotPacked = \n (odataObject.QuantityNotPacked != null) ? parseFloat(odataObject.QuantityNotPacked) : undefined;\n \n this.QuantityNotPicked = \n (odataObject.QuantityNotPicked != null) ? parseFloat(odataObject.QuantityNotPicked) : 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 ProspectTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ProspectTypeValue = \n odataObject.ProspectTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 * 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 * BusinessVerticalsIndia entity class.\n */\n export class BusinessVerticalsIndiaClass implements Entities.BusinessVerticalsIndia {\n public RecId: number;\n public Name: string;\n public EntityCode: 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.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.EntityCode = \n odataObject.EntityCode;\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['BusinessVerticalsIndiaClass'] = BusinessVerticalsIndiaClass;\n \n /**\n * AddressTaxInformationIndia entity class.\n */\n export class AddressTaxInformationIndiaClass implements Entities.AddressTaxInformationIndia {\n public RecId: number;\n public Name: string;\n public RegistrationLocation: number;\n public Tin: number;\n public Gstin: number;\n public TinRegistrationNumber: Entities.TaxRegistrationNumberIndia;\n public GstinRegistrationNumber: Entities.TaxRegistrationNumberIndia;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.RegistrationLocation = \n (odataObject.RegistrationLocation != null) ? parseInt(odataObject.RegistrationLocation, 10) : undefined;\n \n this.Tin = \n (odataObject.Tin != null) ? parseInt(odataObject.Tin, 10) : undefined;\n \n this.Gstin = \n (odataObject.Gstin != null) ? parseInt(odataObject.Gstin, 10) : undefined;\n \n if (odataObject.TinRegistrationNumber == null) {\n this.TinRegistrationNumber = undefined;\n } else if (odataObject.TinRegistrationNumber['@odata.type'] == null) {\n this.TinRegistrationNumber = new TaxRegistrationNumberIndiaClass(odataObject.TinRegistrationNumber);\n } else {\n var className: string = odataObject.TinRegistrationNumber['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TinRegistrationNumber = new entityDictionary[className](odataObject.TinRegistrationNumber)\n }\n }\n\n \n if (odataObject.GstinRegistrationNumber == null) {\n this.GstinRegistrationNumber = undefined;\n } else if (odataObject.GstinRegistrationNumber['@odata.type'] == null) {\n this.GstinRegistrationNumber = new TaxRegistrationNumberIndiaClass(odataObject.GstinRegistrationNumber);\n } else {\n var className: string = odataObject.GstinRegistrationNumber['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.GstinRegistrationNumber = new entityDictionary[className](odataObject.GstinRegistrationNumber)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressTaxInformationIndiaClass'] = AddressTaxInformationIndiaClass;\n \n /**\n * CustomerTaxInformation entity class.\n */\n export class CustomerTaxInformationClass implements Entities.CustomerTaxInformation {\n public CustomerId: string;\n public DataAreaId: string;\n public IsForeign: boolean;\n public IsPreferential: boolean;\n public NatureOfAssessee: string;\n public PanNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.DataAreaId = \n odataObject.DataAreaId;\n \n this.IsForeign = \n odataObject.IsForeign;\n \n this.IsPreferential = \n odataObject.IsPreferential;\n \n this.NatureOfAssessee = \n odataObject.NatureOfAssessee;\n \n this.PanNumber = \n odataObject.PanNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTaxInformationClass'] = CustomerTaxInformationClass;\n \n /**\n * TaxRegistrationNumberIndia entity class.\n */\n export class TaxRegistrationNumberIndiaClass implements Entities.TaxRegistrationNumberIndia {\n public RecId: number;\n public RegistrationNumber: string;\n public RegistrationType: number;\n public TaxType: number;\n public Type: number;\n public BusinessVerticals: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \n this.RegistrationNumber = \n odataObject.RegistrationNumber;\n \n this.RegistrationType = \n odataObject.RegistrationType;\n \n this.TaxType = \n odataObject.TaxType;\n \n this.Type = \n odataObject.Type;\n \n this.BusinessVerticals = \n (odataObject.BusinessVerticals != null) ? parseInt(odataObject.BusinessVerticals, 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['TaxRegistrationNumberIndiaClass'] = TaxRegistrationNumberIndiaClass;\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 IsAdditionalMedia: boolean;\n public MediaTypeValue: number;\n public DisplayOrder: number;\n public MediaPurpose: string;\n public IsApplicableForChildEntities: 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.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.IsAdditionalMedia = \n odataObject.IsAdditionalMedia;\n \n this.MediaTypeValue = \n odataObject.MediaTypeValue;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.MediaPurpose = \n odataObject.MediaPurpose;\n \n this.IsApplicableForChildEntities = \n odataObject.IsApplicableForChildEntities;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 RequestedDimensionTypeValues: number[];\n public MatchingDimensionValues: Entities.ProductDimension[];\n public DefaultWarehouseOnly: boolean;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public CatalogId: number;\n public InventoryAccuracyValue: 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.RequestedDimensionTypeValues = undefined;\n if (odataObject.RequestedDimensionTypeValues) {\n this.RequestedDimensionTypeValues = [];\n for (var i = 0; i < odataObject.RequestedDimensionTypeValues.length; i++) {\n if (odataObject.RequestedDimensionTypeValues[i] != null) {\n this.RequestedDimensionTypeValues[i] = \n odataObject.RequestedDimensionTypeValues[i];\n } else {\n this.RequestedDimensionTypeValues[i] = undefined;\n }\n }\n }\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 this.InventoryAccuracyValue = \n odataObject.InventoryAccuracyValue;\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 public ShipFromWarehouseId: string;\n \n // Navigation properties names\n \n /**\n * Construct 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 this.ShipFromWarehouseId = \n odataObject.ShipFromWarehouseId;\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 DocumentStatusValues: 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 public BusinessPartnerId: string;\n public ChannelIds: number[];\n public CustomerRequisition: string;\n public SearchOnlyRetailOrders: 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.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.DocumentStatusValues = undefined;\n if (odataObject.DocumentStatusValues) {\n this.DocumentStatusValues = [];\n for (var i = 0; i < odataObject.DocumentStatusValues.length; i++) {\n if (odataObject.DocumentStatusValues[i] != null) {\n this.DocumentStatusValues[i] = \n odataObject.DocumentStatusValues[i];\n } else {\n this.DocumentStatusValues[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 this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.ChannelIds = undefined;\n if (odataObject.ChannelIds) {\n this.ChannelIds = [];\n for (var i = 0; i < odataObject.ChannelIds.length; i++) {\n if (odataObject.ChannelIds[i] != null) {\n this.ChannelIds[i] = \n parseInt(odataObject.ChannelIds[i], 10);\n } else {\n this.ChannelIds[i] = undefined;\n }\n }\n }\n \n this.CustomerRequisition = \n odataObject.CustomerRequisition;\n \n this.SearchOnlyRetailOrders = \n odataObject.SearchOnlyRetailOrders;\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 InvoiceDate: Date;\n public PackingDate: 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.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.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PackingDate = \n (odataObject.PackingDate instanceof Date) ? odataObject.PackingDate\n : (odataObject.PackingDate != null) ? jsonLightReadStringPropertyValue(odataObject.PackingDate, \"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['FulfillmentLineParameterClass'] = FulfillmentLineParameterClass;\n \n /**\n * ShipFulfillmentLine entity class.\n */\n export class ShipFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.ShipFulfillmentLine {\n public ProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShipFulfillmentLine\";\n \n }\n }\n entityDictionary['ShipFulfillmentLineClass'] = ShipFulfillmentLineClass;\n \n /**\n * RejectFulfillmentLine entity class.\n */\n export class RejectFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.RejectFulfillmentLine {\n public RejectedQuantity: number;\n public InfoCodeId: string;\n public SubInfoCodeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RejectedQuantity = \n (odataObject.RejectedQuantity != null) ? parseFloat(odataObject.RejectedQuantity) : undefined;\n \n this.InfoCodeId = \n odataObject.InfoCodeId;\n \n this.SubInfoCodeId = \n odataObject.SubInfoCodeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.RejectFulfillmentLine\";\n \n }\n }\n entityDictionary['RejectFulfillmentLineClass'] = RejectFulfillmentLineClass;\n \n /**\n * ReadChangedProductsSession entity class.\n */\n export class ReadChangedProductsSessionClass implements Entities.ReadChangedProductsSession {\n public Id: string;\n public TotalNumberOfProducts: number;\n public NumberOfProductsRead: number;\n public NumberOfProductsReadInCurrentPage: number;\n public NextSynchronizationToken: string;\n public IsInitialSync: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.TotalNumberOfProducts = \n odataObject.TotalNumberOfProducts;\n \n this.NumberOfProductsRead = \n odataObject.NumberOfProductsRead;\n \n this.NumberOfProductsReadInCurrentPage = \n odataObject.NumberOfProductsReadInCurrentPage;\n \n this.NextSynchronizationToken = \n odataObject.NextSynchronizationToken;\n \n this.IsInitialSync = \n odataObject.IsInitialSync;\n \n }\n }\n entityDictionary['ReadChangedProductsSessionClass'] = ReadChangedProductsSessionClass;\n \n /**\n * DeletedListingsResult entity class.\n */\n export class DeletedListingsResultClass implements Entities.DeletedListingsResult {\n public HasMorePublishedListings: boolean;\n public DeletedListings: Entities.ListingIdentity[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasMorePublishedListings = \n odataObject.HasMorePublishedListings;\n \n this.DeletedListings = undefined;\n if (odataObject.DeletedListings) {\n this.DeletedListings = [];\n for (var i = 0; i < odataObject.DeletedListings.length; i++) {\n if (odataObject.DeletedListings[i] != null) {\n if (odataObject.DeletedListings[i]['@odata.type'] != null) {\n var className: string = odataObject.DeletedListings[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeletedListings[i] = new entityDictionary[className](odataObject.DeletedListings[i])\n }\n } else {\n this.DeletedListings[i] = new ListingIdentityClass(odataObject.DeletedListings[i]);\n }\n } else {\n this.DeletedListings[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeletedListingsResultClass'] = DeletedListingsResultClass;\n \n /**\n * ProductRating entity class.\n */\n export class ProductRatingClass implements Entities.ProductRating {\n public ProductId: number;\n public AverageRating: number;\n public TotalRatings: number;\n public RatingDistribution: Entities.ProductRatingCount[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.RatingDistribution = undefined;\n if (odataObject.RatingDistribution) {\n this.RatingDistribution = [];\n for (var i = 0; i < odataObject.RatingDistribution.length; i++) {\n if (odataObject.RatingDistribution[i] != null) {\n if (odataObject.RatingDistribution[i]['@odata.type'] != null) {\n var className: string = odataObject.RatingDistribution[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RatingDistribution[i] = new entityDictionary[className](odataObject.RatingDistribution[i])\n }\n } else {\n this.RatingDistribution[i] = new ProductRatingCountClass(odataObject.RatingDistribution[i]);\n }\n } else {\n this.RatingDistribution[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingClass'] = ProductRatingClass;\n \n /**\n * ProductDeliveryOptions entity class.\n */\n export class ProductDeliveryOptionsClass implements Entities.ProductDeliveryOptions {\n public ProductId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDeliveryOptionsClass'] = ProductDeliveryOptionsClass;\n \n /**\n * ListingPublishStatus entity class.\n */\n export class ListingPublishStatusClass implements Entities.ListingPublishStatus {\n public PublishStatusValue: number;\n public ListingModifiedDateTime: Date;\n public ChannelListingId: string;\n public ChannelId: number;\n public CatalogId: number;\n public ProductId: number;\n public LanguageId: string;\n public AppliedActionValue: number;\n public StatusMessage: string;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PublishStatusValue = \n odataObject.PublishStatusValue;\n \n this.ListingModifiedDateTime = \n (odataObject.ListingModifiedDateTime instanceof Date) ? odataObject.ListingModifiedDateTime\n : (odataObject.ListingModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ListingModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelListingId = \n odataObject.ChannelListingId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AppliedActionValue = \n odataObject.AppliedActionValue;\n \n this.StatusMessage = \n odataObject.StatusMessage;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingPublishStatusClass'] = ListingPublishStatusClass;\n \n /**\n * MediaLocationSearchCriteria entity class.\n */\n export class MediaLocationSearchCriteriaClass implements Entities.MediaLocationSearchCriteria {\n public ProductId: number;\n public ChannelId: number;\n public CatalogId: number;\n public MediaUsageTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.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.MediaUsageTypeValue = \n odataObject.MediaUsageTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaLocationSearchCriteriaClass'] = MediaLocationSearchCriteriaClass;\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 * RecallOrderSearchCriteria entity class.\n */\n export class RecallOrderSearchCriteriaClass implements Entities.RecallOrderSearchCriteria {\n public TransactionId: string;\n public Id: string;\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.TransactionId = \n odataObject.TransactionId;\n \n this.Id = \n odataObject.Id;\n \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['RecallOrderSearchCriteriaClass'] = RecallOrderSearchCriteriaClass;\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 * AffiliationSearchCriteria entity class.\n */\n export class AffiliationSearchCriteriaClass implements Entities.AffiliationSearchCriteria {\n public FilterTypeValue: number;\n public AffiliationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FilterTypeValue = \n odataObject.FilterTypeValue;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationSearchCriteriaClass'] = AffiliationSearchCriteriaClass;\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 * InvoicedSalesLinesSearchCriteria entity class.\n */\n export class InvoicedSalesLinesSearchCriteriaClass implements Entities.InvoicedSalesLinesSearchCriteria {\n public SalesIds: string[];\n public InvoiceIds: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesIds = undefined;\n if (odataObject.SalesIds) {\n this.SalesIds = [];\n for (var i = 0; i < odataObject.SalesIds.length; i++) {\n if (odataObject.SalesIds[i] != null) {\n this.SalesIds[i] = \n odataObject.SalesIds[i];\n } else {\n this.SalesIds[i] = undefined;\n }\n }\n }\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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoicedSalesLinesSearchCriteriaClass'] = InvoicedSalesLinesSearchCriteriaClass;\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 * PriceLookupContext entity class.\n */\n export class PriceLookupContextClass implements Entities.PriceLookupContext {\n public HeaderContext: Entities.PriceLookupHeaderContext;\n public LineContexts: Entities.PriceLookupLineContext[];\n \n // Navigation properties names\n \n /**\n * 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.HeaderContext == null) {\n this.HeaderContext = undefined;\n } else if (odataObject.HeaderContext['@odata.type'] == null) {\n this.HeaderContext = new PriceLookupHeaderContextClass(odataObject.HeaderContext);\n } else {\n var className: string = odataObject.HeaderContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HeaderContext = new entityDictionary[className](odataObject.HeaderContext)\n }\n }\n\n \n this.LineContexts = undefined;\n if (odataObject.LineContexts) {\n this.LineContexts = [];\n for (var i = 0; i < odataObject.LineContexts.length; i++) {\n if (odataObject.LineContexts[i] != null) {\n if (odataObject.LineContexts[i]['@odata.type'] != null) {\n var className: string = odataObject.LineContexts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LineContexts[i] = new entityDictionary[className](odataObject.LineContexts[i])\n }\n } else {\n this.LineContexts[i] = new PriceLookupLineContextClass(odataObject.LineContexts[i]);\n }\n } else {\n this.LineContexts[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PriceLookupContextClass'] = PriceLookupContextClass;\n \n /**\n * ProductPromotion entity class.\n */\n export class ProductPromotionClass implements Entities.ProductPromotion {\n public ProductId: number;\n public ProductDiscounts: 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.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductDiscounts = undefined;\n if (odataObject.ProductDiscounts) {\n this.ProductDiscounts = [];\n for (var i = 0; i < odataObject.ProductDiscounts.length; i++) {\n if (odataObject.ProductDiscounts[i] != null) {\n if (odataObject.ProductDiscounts[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDiscounts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDiscounts[i] = new entityDictionary[className](odataObject.ProductDiscounts[i])\n }\n } else {\n this.ProductDiscounts[i] = new PromotionClass(odataObject.ProductDiscounts[i]);\n }\n } else {\n this.ProductDiscounts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPromotionClass'] = ProductPromotionClass;\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 OnlineStoreAzureB2CProfile: number;\n public CountryRegions: Entities.CountryRegion[];\n public EventNotificationProfileId: string;\n public RecordId: number;\n public OMOperatingUnitNumber: string;\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 \n // Navigation properties names\n \n /**\n * Construct 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.OnlineStoreAzureB2CProfile = \n (odataObject.OnlineStoreAzureB2CProfile != null) ? parseInt(odataObject.OnlineStoreAzureB2CProfile, 10) : undefined;\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 this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OMOperatingUnitNumber = \n odataObject.OMOperatingUnitNumber;\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 }\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 * LoyaltyCardSearchCriteria entity class.\n */\n export class LoyaltyCardSearchCriteriaClass implements Entities.LoyaltyCardSearchCriteria {\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.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['LoyaltyCardSearchCriteriaClass'] = LoyaltyCardSearchCriteriaClass;\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 UploadTypeValue: number;\n public EventTypeValue: number;\n public EventDateTime: Date;\n public DurationInMilliseconds: number;\n public Source: string;\n public EventMessage: string;\n public LogLevel: string;\n public LogLevelValue: number;\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.UploadTypeValue = \n odataObject.UploadTypeValue;\n \n this.EventTypeValue = \n odataObject.EventTypeValue;\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.LogLevelValue = \n odataObject.LogLevelValue;\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 IncludeDisabledDiscount: boolean;\n public ExcludeTenderDiscount: boolean;\n public DiscountOfferTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.IncludeDisabledDiscount = \n odataObject.IncludeDisabledDiscount;\n \n this.ExcludeTenderDiscount = \n odataObject.ExcludeTenderDiscount;\n \n this.DiscountOfferTypeValue = \n odataObject.DiscountOfferTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 DateValidationTypeValue: number;\n public AreCouponsActiveOnSameDate: boolean;\n public AreCouponsExpiredOnSameDate: 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.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.DateValidationTypeValue = \n odataObject.DateValidationTypeValue;\n \n this.AreCouponsActiveOnSameDate = \n odataObject.AreCouponsActiveOnSameDate;\n \n this.AreCouponsExpiredOnSameDate = \n odataObject.AreCouponsExpiredOnSameDate;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 * SalesOrderConfirmedShipDateChange entity class.\n */\n export class SalesOrderConfirmedShipDateChangeClass implements Entities.SalesOrderConfirmedShipDateChange {\n public SalesId: string;\n public ConfirmedShipDate: Date;\n public LineChanges: Entities.SalesLineConfirmedShipDateChange[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ConfirmedShipDate = \n (odataObject.ConfirmedShipDate instanceof Date) ? odataObject.ConfirmedShipDate\n : (odataObject.ConfirmedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ConfirmedShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineChanges = undefined;\n if (odataObject.LineChanges) {\n this.LineChanges = [];\n for (var i = 0; i < odataObject.LineChanges.length; i++) {\n if (odataObject.LineChanges[i] != null) {\n if (odataObject.LineChanges[i]['@odata.type'] != null) {\n var className: string = odataObject.LineChanges[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LineChanges[i] = new entityDictionary[className](odataObject.LineChanges[i])\n }\n } else {\n this.LineChanges[i] = new SalesLineConfirmedShipDateChangeClass(odataObject.LineChanges[i]);\n }\n } else {\n this.LineChanges[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderConfirmedShipDateChangeClass'] = SalesOrderConfirmedShipDateChangeClass;\n \n /**\n * OrderCancellationResult entity class.\n */\n export class OrderCancellationResultClass implements Entities.OrderCancellationResult {\n public DocumentOperationCommitResultValue: number;\n public DocumentOperationCommitResultCodeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentOperationCommitResultValue = \n odataObject.DocumentOperationCommitResultValue;\n \n this.DocumentOperationCommitResultCodeValue = \n odataObject.DocumentOperationCommitResultCodeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderCancellationResultClass'] = OrderCancellationResultClass;\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 * CopilotResponse entity class.\n */\n export class CopilotResponseClass implements Entities.CopilotResponse {\n public Content: string;\n public Disclaimer: string;\n public LastRefreshDatetime: 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.Content = \n odataObject.Content;\n \n this.Disclaimer = \n odataObject.Disclaimer;\n \n this.LastRefreshDatetime = \n (odataObject.LastRefreshDatetime instanceof Date) ? odataObject.LastRefreshDatetime\n : (odataObject.LastRefreshDatetime != null) ? jsonLightReadStringPropertyValue(odataObject.LastRefreshDatetime, \"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['CopilotResponseClass'] = CopilotResponseClass;\n \n /**\n * OnlineChannelAzureB2CConfiguration entity class.\n */\n export class OnlineChannelAzureB2CConfigurationClass implements Entities.OnlineChannelAzureB2CConfiguration {\n public Name: string;\n public Description: string;\n public TenantName: string;\n public SignInSignupPolicyId: string;\n public PasswordResetPolicyId: string;\n public SignUpPolicyId: string;\n public EditProfilePolicyId: string;\n public LoginDomainName: string;\n public Scope: string;\n public ApplicationId: string;\n public ApplicationSecret: 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.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.TenantName = \n odataObject.TenantName;\n \n this.SignInSignupPolicyId = \n odataObject.SignInSignupPolicyId;\n \n this.PasswordResetPolicyId = \n odataObject.PasswordResetPolicyId;\n \n this.SignUpPolicyId = \n odataObject.SignUpPolicyId;\n \n this.EditProfilePolicyId = \n odataObject.EditProfilePolicyId;\n \n this.LoginDomainName = \n odataObject.LoginDomainName;\n \n this.Scope = \n odataObject.Scope;\n \n this.ApplicationId = \n odataObject.ApplicationId;\n \n this.ApplicationSecret = \n odataObject.ApplicationSecret;\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['OnlineChannelAzureB2CConfigurationClass'] = OnlineChannelAzureB2CConfigurationClass;\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 SkipQuantityInputWhenScanBarcode: boolean;\n public UseInventoryVisibilityServiceAsDataSource: 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.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.SkipQuantityInputWhenScanBarcode = \n odataObject.SkipQuantityInputWhenScanBarcode;\n \n this.UseInventoryVisibilityServiceAsDataSource = \n odataObject.UseInventoryVisibilityServiceAsDataSource;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 * ChannelMerchandisingConfiguration entity class.\n */\n export class ChannelMerchandisingConfigurationClass implements Entities.ChannelMerchandisingConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public EnableMultipleUnitsOfMeasure: 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.EnableMultipleUnitsOfMeasure = \n odataObject.EnableMultipleUnitsOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelMerchandisingConfigurationClass'] = ChannelMerchandisingConfigurationClass;\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 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.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\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['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 * ProductWarehouseQuantity entity class.\n */\n export class ProductWarehouseQuantityClass implements Entities.ProductWarehouseQuantity {\n public ProductId: number;\n public InventoryLocationId: string;\n public PhysicalInventory: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.PhysicalInventory = \n (odataObject.PhysicalInventory != null) ? parseFloat(odataObject.PhysicalInventory) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseQuantityClass'] = ProductWarehouseQuantityClass;\n \n /**\n * UpdateProductWarehouseAvailabilityResult entity class.\n */\n export class UpdateProductWarehouseAvailabilityResultClass implements Entities.UpdateProductWarehouseAvailabilityResult {\n public SuccessfulUpdates: Entities.InventoryQuantity[];\n public FailedUpdates: Entities.InventoryQuantity[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SuccessfulUpdates = undefined;\n if (odataObject.SuccessfulUpdates) {\n this.SuccessfulUpdates = [];\n for (var i = 0; i < odataObject.SuccessfulUpdates.length; i++) {\n if (odataObject.SuccessfulUpdates[i] != null) {\n if (odataObject.SuccessfulUpdates[i]['@odata.type'] != null) {\n var className: string = odataObject.SuccessfulUpdates[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SuccessfulUpdates[i] = new entityDictionary[className](odataObject.SuccessfulUpdates[i])\n }\n } else {\n this.SuccessfulUpdates[i] = new InventoryQuantityClass(odataObject.SuccessfulUpdates[i]);\n }\n } else {\n this.SuccessfulUpdates[i] = undefined;\n }\n }\n }\n \n this.FailedUpdates = undefined;\n if (odataObject.FailedUpdates) {\n this.FailedUpdates = [];\n for (var i = 0; i < odataObject.FailedUpdates.length; i++) {\n if (odataObject.FailedUpdates[i] != null) {\n if (odataObject.FailedUpdates[i]['@odata.type'] != null) {\n var className: string = odataObject.FailedUpdates[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FailedUpdates[i] = new entityDictionary[className](odataObject.FailedUpdates[i])\n }\n } else {\n this.FailedUpdates[i] = new InventoryQuantityClass(odataObject.FailedUpdates[i]);\n }\n } else {\n this.FailedUpdates[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UpdateProductWarehouseAvailabilityResultClass'] = UpdateProductWarehouseAvailabilityResultClass;\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 ProductUnits: Entities.ProductUnit[];\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.ProductUnits = undefined;\n if (odataObject.ProductUnits) {\n this.ProductUnits = [];\n for (var i = 0; i < odataObject.ProductUnits.length; i++) {\n if (odataObject.ProductUnits[i] != null) {\n if (odataObject.ProductUnits[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductUnits[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductUnits[i] = new entityDictionary[className](odataObject.ProductUnits[i])\n }\n } else {\n this.ProductUnits[i] = new ProductUnitClass(odataObject.ProductUnits[i]);\n }\n } else {\n this.ProductUnits[i] = undefined;\n }\n }\n }\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 * CartConfiguration entity class.\n */\n export class CartConfigurationClass implements Entities.CartConfiguration {\n public ValidateDefaultOrderSettingsPerLine: boolean;\n public IgnoreOrderSettings: boolean;\n public MaxQuantityPerItem: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValidateDefaultOrderSettingsPerLine = \n odataObject.ValidateDefaultOrderSettingsPerLine;\n \n this.IgnoreOrderSettings = \n odataObject.IgnoreOrderSettings;\n \n this.MaxQuantityPerItem = \n (odataObject.MaxQuantityPerItem != null) ? parseFloat(odataObject.MaxQuantityPerItem) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartConfigurationClass'] = CartConfigurationClass;\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 public InventorySiteId: string;\n public Latitude: number;\n public Longitude: 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.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\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[\"@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 RecId: number;\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.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \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 SaleLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 public PricingPriorityNumber: 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.CanApplyPriceAdjustments = \n odataObject.CanApplyPriceAdjustments;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\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 * ManualPriceLine entity class.\n */\n export class ManualPriceLineClass\n extends PriceLineClass\n implements Entities.ManualPriceLine {\n public ManualPrice: number;\n public UnitOfMeasureSymbol: string;\n public ManualPriceEntryTypeValue: 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.ManualPrice = \n (odataObject.ManualPrice != null) ? parseFloat(odataObject.ManualPrice) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.ManualPriceEntryTypeValue = \n odataObject.ManualPriceEntryTypeValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ManualPriceLine\";\n \n }\n }\n entityDictionary['ManualPriceLineClass'] = ManualPriceLineClass;\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 * ProductQuantityLimitRule entity class.\n */\n export class ProductQuantityLimitRuleClass implements Entities.ProductQuantityLimitRule {\n public DefaultQuantity: number;\n public MaximumQuantity: number;\n public MinimumQuantity: number;\n public MultipleOfQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DefaultQuantity = \n (odataObject.DefaultQuantity != null) ? parseFloat(odataObject.DefaultQuantity) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumQuantity = \n (odataObject.MinimumQuantity != null) ? parseFloat(odataObject.MinimumQuantity) : undefined;\n \n this.MultipleOfQuantity = \n (odataObject.MultipleOfQuantity != null) ? parseFloat(odataObject.MultipleOfQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductQuantityLimitRuleClass'] = ProductQuantityLimitRuleClass;\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 ConfigValue: string;\n public SizeValue: string;\n public ColorValue: string;\n public StyleValue: 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.ConfigValue = \n odataObject.ConfigValue;\n \n this.SizeValue = \n odataObject.SizeValue;\n \n this.ColorValue = \n odataObject.ColorValue;\n \n this.StyleValue = \n odataObject.StyleValue;\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 * InventoryDocumentSourceTrackingDimensionLine entity class.\n */\n export class InventoryDocumentSourceTrackingDimensionLineClass implements Entities.InventoryDocumentSourceTrackingDimensionLine {\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 BatchNumber: 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.BatchNumber = \n odataObject.BatchNumber;\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['InventoryDocumentSourceTrackingDimensionLineClass'] = InventoryDocumentSourceTrackingDimensionLineClass;\n \n /**\n * InventoryDocumentTrackingDimensionLine entity class.\n */\n export class InventoryDocumentTrackingDimensionLineClass implements Entities.InventoryDocumentTrackingDimensionLine {\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 BatchNumber: 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.InventoryDocumentSourceTrackingDimensionLine;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.BatchNumber = \n odataObject.BatchNumber;\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 InventoryDocumentSourceTrackingDimensionLineClass(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['InventoryDocumentTrackingDimensionLineClass'] = InventoryDocumentTrackingDimensionLineClass;\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 * SalesOrderLookup entity class.\n */\n export class SalesOrderLookupClass implements Entities.SalesOrderLookup {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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['SalesOrderLookupClass'] = SalesOrderLookupClass;\n \n /**\n * SalesOrderLookupByTransactionId entity class.\n */\n export class SalesOrderLookupByTransactionIdClass\n extends SalesOrderLookupClass\n implements Entities.SalesOrderLookupByTransactionId {\n public TransactionId: string;\n public ChannelId: number;\n public StoreId: string;\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 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.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesOrderLookupByTransactionId\";\n \n }\n }\n entityDictionary['SalesOrderLookupByTransactionIdClass'] = SalesOrderLookupByTransactionIdClass;\n \n /**\n * SalesOrderLookupBySalesId entity class.\n */\n export class SalesOrderLookupBySalesIdClass\n extends SalesOrderLookupClass\n implements Entities.SalesOrderLookupBySalesId {\n public SalesId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesOrderLookupBySalesId\";\n \n }\n }\n entityDictionary['SalesOrderLookupBySalesIdClass'] = SalesOrderLookupBySalesIdClass;\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 * Note entity class.\n */\n export class NoteClass implements Entities.Note {\n public Title: string;\n public Description: string;\n public StaffId: string;\n public RestrictionValue: number;\n public DocuRefRecId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Title = \n odataObject.Title;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RestrictionValue = \n odataObject.RestrictionValue;\n \n this.DocuRefRecId = \n (odataObject.DocuRefRecId != null) ? parseInt(odataObject.DocuRefRecId, 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['NoteClass'] = NoteClass;\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 * PriceLookupHeaderContext entity class.\n */\n export class PriceLookupHeaderContextClass implements Entities.PriceLookupHeaderContext {\n public CustomerAccountNumber: string;\n public AffiliationLoyaltyTierLines: Entities.AffiliationLoyaltyTier[];\n public SalesOrderProperties: Entities.AttributeValueBase[];\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 odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\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 AffiliationLoyaltyTierClass(odataObject.AffiliationLoyaltyTierLines[i]);\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = undefined;\n }\n }\n }\n \n this.SalesOrderProperties = undefined;\n if (odataObject.SalesOrderProperties) {\n this.SalesOrderProperties = [];\n for (var i = 0; i < odataObject.SalesOrderProperties.length; i++) {\n if (odataObject.SalesOrderProperties[i] != null) {\n if (odataObject.SalesOrderProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesOrderProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesOrderProperties[i] = new entityDictionary[className](odataObject.SalesOrderProperties[i])\n }\n } else {\n this.SalesOrderProperties[i] = new AttributeValueBaseClass(odataObject.SalesOrderProperties[i]);\n }\n } else {\n this.SalesOrderProperties[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n }\n }\n entityDictionary['PriceLookupHeaderContextClass'] = PriceLookupHeaderContextClass;\n \n /**\n * PriceLookupLineContext entity class.\n */\n export class PriceLookupLineContextClass implements Entities.PriceLookupLineContext {\n public ProductRecordId: number;\n public UnitOfMeasureSymbol: string;\n public InventorySiteId: string;\n public InventoryLocationId: string;\n public DeliveryMode: string;\n public CatalogId: number;\n public SalesLineProperties: Entities.AttributeValueBase[];\n \n // Navigation properties names\n \n /**\n * Construct 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.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.SalesLineProperties = undefined;\n if (odataObject.SalesLineProperties) {\n this.SalesLineProperties = [];\n for (var i = 0; i < odataObject.SalesLineProperties.length; i++) {\n if (odataObject.SalesLineProperties[i] != null) {\n if (odataObject.SalesLineProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineProperties[i] = new entityDictionary[className](odataObject.SalesLineProperties[i])\n }\n } else {\n this.SalesLineProperties[i] = new AttributeValueBaseClass(odataObject.SalesLineProperties[i]);\n }\n } else {\n this.SalesLineProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PriceLookupLineContextClass'] = PriceLookupLineContextClass;\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 * SalesLineConfirmedShipDateChange entity class.\n */\n export class SalesLineConfirmedShipDateChangeClass implements Entities.SalesLineConfirmedShipDateChange {\n public LineNumber: number;\n public ConfirmedShipDate: 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.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.ConfirmedShipDate = \n (odataObject.ConfirmedShipDate instanceof Date) ? odataObject.ConfirmedShipDate\n : (odataObject.ConfirmedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ConfirmedShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['SalesLineConfirmedShipDateChangeClass'] = SalesLineConfirmedShipDateChangeClass;\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 IgnoreQuantityUnitType: 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.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.IgnoreQuantityUnitType = \n odataObject.IgnoreQuantityUnitType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 IgnoreQuantityUnitType: 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.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.IgnoreQuantityUnitType = \n odataObject.IgnoreQuantityUnitType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n 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 * InventoryQuantity entity class.\n */\n export class InventoryQuantityClass implements Entities.InventoryQuantity {\n public ProductId: number;\n public ItemId: string;\n public DataAreaId: string;\n public ColorId: string;\n public SizeId: string;\n public StyleId: string;\n public ConfigurationId: string;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public TotalAvailable: number;\n public PhysicalAvailable: number;\n public PhysicalInventory: number;\n public PhysicalReserved: number;\n public OrderedInTotal: 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.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.ConfigurationId = \n odataObject.ConfigurationId;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.TotalAvailable = \n (odataObject.TotalAvailable != null) ? parseFloat(odataObject.TotalAvailable) : undefined;\n \n this.PhysicalAvailable = \n (odataObject.PhysicalAvailable != null) ? parseFloat(odataObject.PhysicalAvailable) : undefined;\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.OrderedInTotal = \n (odataObject.OrderedInTotal != null) ? parseFloat(odataObject.OrderedInTotal) : undefined;\n \n }\n }\n entityDictionary['InventoryQuantityClass'] = InventoryQuantityClass;\n \n /**\n * ProductUnit entity class.\n */\n export class ProductUnitClass implements Entities.ProductUnit {\n public ProductId: 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.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['ProductUnitClass'] = ProductUnitClass;\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 * RemoteServiceNotAvailableException entity class.\n */\n export class RemoteServiceNotAvailableExceptionClass\n extends CommerceExceptionClass\n implements Entities.RemoteServiceNotAvailableException {\n \n // Navigation properties names\n \n /**\n * Construct an object 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.RemoteServiceNotAvailableException\";\n \n }\n }\n entityDictionary['RemoteServiceNotAvailableExceptionClass'] = RemoteServiceNotAvailableExceptionClass;\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 * CopilotServiceException entity class.\n */\n export class CopilotServiceExceptionClass\n extends CommerceExceptionClass\n implements Entities.CopilotServiceException {\n \n // Navigation properties names\n \n /**\n * Construct an object 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.CopilotServiceException\";\n \n }\n }\n entityDictionary['CopilotServiceExceptionClass'] = CopilotServiceExceptionClass;\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 * ChargeTaxMeasure entity class.\n */\n export class ChargeTaxMeasureClass\n extends TaxMeasureClass\n implements Entities.ChargeTaxMeasure {\n public MarkupLineNumber: 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.MarkupLineNumber = \n (odataObject.MarkupLineNumber != null) ? parseFloat(odataObject.MarkupLineNumber) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.Localization.Entities.India.DataModel.Tax.ChargeTaxMeasure\";\n \n }\n }\n entityDictionary['ChargeTaxMeasureClass'] = ChargeTaxMeasureClass;\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity class.\n */\n export class KeyValuePair_2OfString_ProductBehaviorClass implements Entities.KeyValuePair_2OfString_ProductBehavior {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['KeyValuePair_2OfString_ProductBehaviorClass'] = KeyValuePair_2OfString_ProductBehaviorClass;\n \n /**\n * CompilationFailedException entity class.\n */\n export class CompilationFailedExceptionClass\n extends CommerceExceptionClass\n implements Entities.CompilationFailedException {\n \n // Navigation properties names\n \n /**\n * Construct an object 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.Hosting.Framework.CompilationFailedException\";\n \n }\n }\n entityDictionary['CompilationFailedExceptionClass'] = CompilationFailedExceptionClass;\n \n /**\n * FranceExtensibleAuditEventType entity class.\n */\n export class FranceExtensibleAuditEventTypeClass\n extends ExtensibleAuditEventTypeClass\n implements Entities.FranceExtensibleAuditEventType {\n \n // Navigation properties names\n \n /**\n * Construct an object 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.Localization.Entities.France.Enums.FranceExtensibleAuditEventType\";\n \n }\n }\n entityDictionary['FranceExtensibleAuditEventTypeClass'] = FranceExtensibleAuditEventTypeClass;\n \n /**\n * AustriaExtensibleAuditEventType entity class.\n */\n export class AustriaExtensibleAuditEventTypeClass\n extends ExtensibleAuditEventTypeClass\n implements Entities.AustriaExtensibleAuditEventType {\n \n // Navigation properties names\n \n /**\n * Construct an object 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.Localization.Entities.Austria.AustriaExtensibleAuditEventType\";\n \n }\n }\n entityDictionary['AustriaExtensibleAuditEventTypeClass'] = AustriaExtensibleAuditEventTypeClass;\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","TaxCalculationTypeValue","Notes","NoteClass","CustomerRequisition","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","ConfirmedShipDate","SalesPaymentDifference","SalesLines","SalesLineClass","ShiftId","ShiftTerminalId","StatementCode","StoreId","TaxAmountExclusive","TaxAmountInclusive","TaxLines","TaxLineClass","TotalDiscount","SalesInvoiceAmount","GiftCardActiveFrom","GiftCardBalance","GiftCardExpireDate","GiftCardHistoryDetails","GiftCardIssueAmount","GiftCardIdMasked","IsCommissionSalesGroupOverriddenByCustomer","CommissionSalesGroupSetByCashier","CustomerName","OriginalOrderTransactionId","LanguageId","SalesAgreementRecordId","TransactionDate","TransactionTime","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","FunctionalityProfileId","UseCustomerBasedTax","UseCustomerBasedTaxExemption","UseDestinationBasedTax","Currency","TimeZoneCode","OrgUnitAddress","OrgUnitFullAddress","OrgUnitName","Latitude","Longitude","EmailReceiptProfileId","ShippingWarehouseAddress","TaxRegistrations","TaxRegistrationClass","EventNotificationProfileId","OMOperatingUnitNumber","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","customerPropertyName","SalesOrderContextualOperationsMapClass","ApplicableOperationsValues","SalesOrder","salesOrderPropertyName","InventoryInboundOutboundDocumentClass","WorkDocumentId","CommitRequestId","Sender","Receiver","SenderDetails","ReceiverDetails","OperationTypeValue","Note","OperationResultMessage","DocumentId","LongVersion","SourceDocument","InventoryInboundOutboundSourceDocumentClass","SourceDocumentTypeValue","NoteModifiedByStaffId","NoteModifiedDateTime","DocumentTypeId","BusinessPartnerClass","SellerChannelId","BusinessPartnerUserClass","B2BUserId","SpendingLimit","LastOperationId","IsAdmin","SuspendedCartClass","Cart","cartPropertyName","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","SalesTaxGroupId","ItemTaxGroupId","LinePercentageDiscount","LineManualDiscountPercentage","LineManualDiscountAmount","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","IsWarrantyLine","WarrantableTransactionId","WarrantableSalesId","WarrantableLineNumber","WarrantableSerialNumber","WarrantiedId","ReturnTransactionId","ReturnLineNumber","ReturnInventTransId","ReturnStore","ReturnTerminalId","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","SpecificUnitSymbol","OriginalSalesTaxGroupId","OriginalItemTaxGroupId","SalesOrderUnitOfMeasure","NetAmountPerUnit","TaxMeasures","TaxMeasureClass","TaxAmountExemptInclusive","NetAmountWithAllInclusiveTax","ReturnLineTaxAmount","TaxExemptPriceInclusiveReductionAmount","TaxExemptPriceInclusiveOriginalPrice","CityInfoClass","CountryRegionId","StateId","CountyId","CommissionSalesGroupClass","GroupId","ContactInformationTypeValue","AttributeCategoryClass","CommercePropertyValueClass","Attribute","AttributeProductClass","MetadataFlags","ProductAttributeMetadataFlagsClass","IsDimension","ProductComparisonEntryClass","AttributeValue","ProductComparisonLineClass","AttributeRecordId","AttributeName","ProductAttributeComparisonEntries","CustomerSearchFieldClass","IsShortcut","DisplayName","CanBeRefined","SearchField","CustomerSearchFieldTypeClass","CustomerSearchByFieldCriteriaClass","Criteria","CustomerSearchByFieldCriterionClass","DataLevelValue","SearchTerm","OrderShipmentsClass","ShipmentId","DeliveryAddress","TermsOfDelivery","WeightUnit","TrackingNumber","TrackingUrl","LatestCarrierTrackingInfo","TrackingInfoClass","CarrierId","CarrierName","ShippingWeight","ShipmentLines","ShipmentLineClass","ShipmentLineId","InventDimId","OrderedQuantity","DeliveredQuantity","RemainingQuantity","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","ShortName","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","OrderManagementConfigurationClass","EnableContactEditPromptForAsyncOrderCancellation","SkipSalesInvoiceSelectionDuringReturn","OrderAttributeForTIN","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","SelectHardwareStationAtStartOfTransaction","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","AutoSynchronizeDeviceNumberSequences","SelfCheckout","VisualProfileClass","FontSchemeTypeValue","IsAppBarLabelVisible","IsDateTimeVisible","LogOnLayoutTypeValue","LogOnKeyboardTypeValue","CompactLogonBackgroundPictureId","PortraitLogonBackgroundPictureId","CompactPortraitLogonBackgroundPictureId","LogOnLogoPictureId","IsProductIdVisibleOnCartLine","DefaultSearchResultDisplayViewTypeValue","BypassItemAddedDialog","IsModernTransactionGridEnabled","OperationalInsightsConfigurationClass","InstrumentationKey","IsEnabled","PaymentConfigurationClass","AlwaysStoreCardTokenOnOrderBalanceAuthorization","MinOrderProcessingDaysForStoringCardToken","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","LineDisplayKeepConnectionOpen","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","PinPadAllowNfcPayment","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","DescriptionTranslation","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","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","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","ProductUnitOfMeasureClass","UnitOfMeasureSourceValue","ProductQuantityLimitRules","ProductQuantityLimitRuleClass","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","ChannelTypeValue","OnlineStoreCustomerTypeValue","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","TrackingDimensionLines","InventoryDocumentTrackingDimensionLineClass","ToLocationId","AdjustmentTypeValue","DocumentTypeValue","TotalQuantityOrdered","TotalQuantityShipped","TotalQuantityReceived","TotalQuantityCancelled","TotalLines","IsChangeAllowed","DocumentRecordId","OverDeliveryPercentage","UnderDeliveryPercentage","HasSerialNumber","IsSerialNumberBlankReceiptAllowed","IsSerialNumberDuplicateCheckEnabled","InventoryDocumentSourceSerialNumberLineClass","InventoryDocumentSourceTrackingDimensionLineClass","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","UnitOfMeasureSearchCriteriaClass","IncludeQuantityLimitRules","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","IsSaleAtSelfCheckoutRegistersAllowed","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","HideSystemInventoryInStockCount","EnablePriceChangeTracking","ProfileProperties","Properties","ChannelPropertyClass","ChannelLanguageClass","UseAdvancedAutoCharges","UseRTSForOnlineOrderCreation","IsWarrantyAutoPromptEnabled","EnableProductRatingsForRetailStores","EnableFetchingPickingListsForPickingAndReceiving","EnableReturnsForMultipleOrderInvoices","EnableAnonymousOrderLookupByChannelReferenceId","EnableOmniChannelPayments","EnableFiscalRegistrationStorageBackup","UseSalesReceiptAsDefaultReceiptTypeInJournal","SalesOrderHeaderAttributeGroups","SalesOrderLinesAttributeGroups","CustomerAddressBooks","StoreAddressBookClass","EnableReturnPolicies","InventAvailabilityCalculationMode","IsPriceInclusiveTaxExemptCalculationEnabled","EnableValidationOfSerialNumbersForInStoreReturns","DisplayNonRetailOrdersInEcommerceOrderHistory","EnableCopilotCustomerInsights","EnableCopilotProductInsights","EnableCopilotReportInsights","EnableStoreCommerceCopilot","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","OrderOriginatorClass","StaffName","OrderOriginatorSearchCriteriaClass","SalesIds","SalesOrdersLookupCriteriaClass","SalesOrderLookups","SalesOrderLookupClass","CartLineDeliveryPreferenceClass","DeliveryPreferenceTypeValues","CartLinePromotionClass","Promotions","Color","Style","Size","Configuration","ColorId","StyleId","SizeId","DistinctProductVariantId","PropertiesAsList","DeviceTypeValue","DeviceName","DeviceMake","DeviceModel","DeviceDescription","CharacterSet","ReceiptProfileId","BinaryConversion","DocInsertRemovalTimeout","Logo","LogoAlignment","KeepConnectionOpen","DecodeData","IsSharedShiftDrawer","DrawerKeepConnectionOpen","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","QuantityNotInvoiced","QuantityNotPacked","QuantityNotPicked","StoreInventoryTotalQuantity","StoreInventoryReservedQuantity","StoreInventoryOrderedQuantity","ProductVariant","RequestedShipDate","RequestedReceiptDate","CreatedDate","FulfillmentLineSearchCriteriaClass","OrderCreatedStartDate","OrderCreatedEndDate","RequestedReceiptStartDate","RequestedReceiptEndDate","RequestedDeliveryStartDate","RequestedDeliveryEndDate","FulfillmentStatusValues","CustomerPhoneNumber","CommentClass","AuthorStaffId","AuthorName","AddressPurposeClass","AddressType","ExtensionPackageDefinitionClass","ReturnPolicyClass","TenderTypePolicies","TenderTypePolicyClass","IsManagerOverrideEnabled","TenderTypeAmountClass","FeatureStateClass","WarrantyClass","DurationUnitValue","Duration","ApplicablePriceRangeBaseTypeValue","ApplicablePriceRangeMin","ApplicablePriceRangeMax","RecallInvoicedSalesLineLookupClass","InvoicedLineId","IgnoreSerialNumberMismatch","WarrantyGroupClass","Warranties","ProductWarrantiesMappingClass","WarrantyGroups","WarrantableProductId","FulfillmentLineContextualOperationsMapClass","FulfillmentLine","UserAlertClass","AlertSourceIdValue","LocalizedMessage","IsBlocking","CartLineUserAlertsClass","LineIndex","UserAlerts","FulfillmentLineUserAlertsClass","BusinessPartnerProspectClass","CompanyName","JobTitle","Department","CompanySize","ProspectTypeValue","ChannelSearchCriteriaClass","BusinessPartnerOperationClass","BusinessPartnerOperationRequestClass","Details","BusinessPartnerOperationRequestDetailsClass","UserFirstName","UserLastName","ReceiptTypesByFormatTypeClass","ReceiptOutputFormatType","ReceiptTypesValues","InventoryJournalNameSearchCriteriaClass","JournalNameIds","AssortedProductIdentityClass","IsRemoteProduct","ProductExistenceIdClass","ProductExistenceCriteriaClass","CountryRegionClass","IsoCode","BusinessVerticalsIndiaClass","RecId","EntityCode","AddressTaxInformationIndiaClass","RegistrationLocation","Tin","Gstin","TinRegistrationNumber","TaxRegistrationNumberIndiaClass","GstinRegistrationNumber","CustomerTaxInformationClass","IsForeign","IsPreferential","NatureOfAssessee","PanNumber","RegistrationNumber","RegistrationType","TaxType","Type","BusinessVerticals","InstructionsVersion","AssignedToPersonnelNumbers","AssignedToExternalSubId","DeepLinkTypeValue","DeepLink","DeepLinkPosOperationName","ContactPersonPersonnelNumber","Instructions","CompletionDateTime","ResolvedByPersonnelNumber","ChecklistId","Uri","IsAdditionalMedia","MediaTypeValue","MediaPurpose","IsApplicableForChildEntities","EmployeeActivityClass","Activity","ActivityDateTimeOffset","EmployeeActivityTypeValue","BreakCategory","CustomerRefinerClass","CardTokenInfo","CardTokenInfoClass","ProductDimensionAvailabilitySearchCriteriaClass","RequestedDimensionTypeValue","RequestedDimensionTypeValues","MatchingDimensionValues","DefaultWarehouseOnly","FilterByChannelFulfillmentGroup","DeliveryModeTypeFilterValue","InventoryAccuracyValue","LineShippingAddressClass","CartDeliveryPreferencesClass","HeaderDeliveryPreferenceTypeValues","CartLineDeliveryPreferences","LineDeliverySpecificationClass","DeliverySpecification","DeliverySpecificationClass","DeliveryPreferenceTypeValue","PickUpStoreId","ShipFromStoreId","ShipFromWarehouseId","OrderSearchCriteriaClass","OrderStatusValues","DocumentStatusValues","OrderType","FulfillmentTypeValues","PickupStartDate","PickupEndDate","PickupTimeslotStartTime","PickupTimeslotEndTime","ChannelIds","SearchOnlyRetailOrders","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","PackingDate","ShipFulfillmentLineClass","RejectFulfillmentLineClass","RejectedQuantity","InfoCodeId","SubInfoCodeId","TotalNumberOfProducts","NumberOfProductsRead","NumberOfProductsReadInCurrentPage","NextSynchronizationToken","IsInitialSync","DeletedListingsResultClass","HasMorePublishedListings","DeletedListings","ListingIdentityClass","ProductRatingClass","RatingDistribution","ProductRatingCountClass","ProductDeliveryOptionsClass","ListingPublishStatusClass","PublishStatusValue","ListingModifiedDateTime","ChannelListingId","AppliedActionValue","StatusMessage","MediaLocationSearchCriteriaClass","MediaUsageTypeValue","OrgUnitLocationSearchCriteriaClass","InventoryLocationIds","StoreHoursClass","RegularStoreHours","RegularStoreHoursClass","RecallOrderSearchCriteriaClass","CartPromotionsClass","HeaderPromotions","CartLinePromotions","CartPromotionLineClass","Promotion","PromotionClass","ItemUnitClass","VariantInventoryDimensionId","DistinctProductVariant","ProductAvailableQuantityClass","AvailableQuantity","OrgUnitAvailabilitySearchCriteriaClass","AffiliationSearchCriteriaClass","InvoiceSearchCriteriaClass","InvoiceIds","InvoiceTypeValues","InvoicePaidStatusValues","InvoiceDetailsSearchCriteriaClass","InvoicedSalesLinesSearchCriteriaClass","PickAndPackSalesLineParameterClass","ProductListSearchCriteriaClass","ProductListType","AffiliationId","LoyaltyTierId","PriceLookupContextClass","HeaderContext","PriceLookupHeaderContextClass","LineContexts","PriceLookupLineContextClass","ProductPromotionClass","ProductDiscounts","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","OnlineChannelName","OnlineStoreAzureB2CProfile","CountryRegions","OrgUnitTypeValue","ChannelProfile","ChannelProfileClass","ChannelProperties","ChannelLanguages","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","LoyaltyCardSearchCriteriaClass","NameValuePairClass","LinkToExistingCustomerResultClass","ExternalIdentityProvider","ExternalIdentityLinkRecordId","OfflineSyncStatsLineClass","IsUploadJob","LastSyncDateTime","StorageAccessTokenClass","SasKey","TaskGuidesSearchResultClass","FrameworkPublisherName","AuditEventClass","EventId","EventIdString","Store","UploadTypeValue","EventTypeValue","EventDateTime","DurationInMilliseconds","Source","EventMessage","LogLevel","LogLevelValue","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","IncludeDisabledDiscount","ExcludeTenderDiscount","DiscountOfferTypeValue","ValidationPeriodId","AdditionalRestrictions","ValidFromDate","ValidToDate","ValidationPeriod","ValidationPeriodClass","CouponCodes","DateValidationTypeValue","AreCouponsActiveOnSameDate","AreCouponsExpiredOnSameDate","CategoryPathLookupClass","CategoryPathResultClass","CategoryPath","CategoryPathClass","PickupTimeslotAvailabilitySearchCriteriaClass","SearchOptionValue","PickupTimeslotAvailabilityClass","AvailableCapacity","CheckInForOrderPickupConfirmationClass","SalesOrderConfirmedShipDateChangeClass","LineChanges","SalesLineConfirmedShipDateChangeClass","OrderCancellationResultClass","DocumentOperationCommitResultValue","DocumentOperationCommitResultCodeValue","VendorSearchCriteriaClass","VendorClass","PartyId","NameAlias","VendorValidationResultClass","VendorValidationResultLevelValue","CopilotResponseClass","LastRefreshDatetime","OnlineChannelAzureB2CConfigurationClass","TenantName","SignInSignupPolicyId","PasswordResetPolicyId","SignUpPolicyId","EditProfilePolicyId","LoginDomainName","Scope","ApplicationId","ApplicationSecret","ExtensionProfileClass","ExtensionServiceUrl","AttachedServices","AttachedServiceClass","ChannelInventoryConfigurationClass","AllowTransferOrderOverDelivery","AllowTransferOrderUnderDelivery","UserLocationProfileId","InventoryProductAttributeRecordId","InventoryOutOfStockAttributeValueText","ProductAvailabilitySortableAttributeRecordId","SkipQuantityInputWhenScanBarcode","UseInventoryVisibilityServiceAsDataSource","ChannelMerchandisingConfigurationClass","EnableMultipleUnitsOfMeasure","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","ProductWarehouseQuantityClass","PhysicalInventory","UpdateProductWarehouseAvailabilityResultClass","SuccessfulUpdates","InventoryQuantityClass","FailedUpdates","InventoryAvailabilitySearchCriteriaClass","SearchArea","QuantityUnitTypeValue","ProductUnits","ProductUnitClass","ExtensibleEnumerationContainerClass","TypeName","ExtensibleEnumerations","PackingSlipDataClass","PackingSlipId","CartConfigurationClass","ValidateDefaultOrderSettingsPerLine","IgnoreOrderSettings","MaxQuantityPerItem","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","ManualPriceLineClass","ManualPrice","ManualPriceEntryTypeValue","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","ConfigValue","SizeValue","ColorValue","StyleValue","DocumentLineRecordId","InventTransRecordId","BatchNumber","AddressBookId","AddressBookTypeValue","AmountInForeignCurrency","ForeignCurrencyExchangeRate","BankBagNumber","TenderRecount","DenominationAmount","QuantityDeclared","AmountDeclared","SalesOrderLookupByTransactionIdClass","SalesOrderLookupBySalesIdClass","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","RestrictionValue","DocuRefRecId","Units","PartyLocationRecordId","PartyRecordId","ValueExtension","ParentLocation","IsMobilePhone","IsOptedInMarketing","QuantityReturned","TaxRate","IsRegistrationNumberUnique","IsPrimaryAddressRestricted","TypeApplicabilityRuleRecordId","DirPartyLocationRecordId","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","SalesOrderProperties","SalesLineProperties","FromStaffId","ToStaffId","RerunUploadSessionId","TargetStorage","UploadJobDefintion","UploadUrl","ExtensibleAuditEventTypeClass","UploadType","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","TotalAvailable","OrderedInTotal","PhysicalAvailable","LastInventoryTransactionId","UnpostedOnlineOrderedQuantity","UnpostedFulfilledQuantity","IsInventoryAvailabilityQuantityReturned","UnprocessedQuantity","MaximumPurchasablePhysicalAvailableQuantity","MaximumPurchasableTotalAvailableQuantity","SumUncountedTransactions","IgnoreQuantityUnitType","QuantityUnitTypeClass","TotalAvailableQuantity","PhysicalAvailableQuantity","ConfigurationId","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","RemoteServiceNotAvailableExceptionClass","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","CopilotServiceExceptionClass","PaymentConfigurationExceptionClass","PaymentConfigurationSdkErrors","SecretConfigurationNotFoundExceptionClass","OriginalTenderType","AllowedReturnTenderTypes","AccountStatementRequestClass","RequestedUserId","IsForFullOrganization","FromDate","ToDate","RequestingUserEmail","AccountStatementStartDateTime","AccountStatementEndDateTime","DataValidationFailure","WrongEndpointExceptionClass","RedirectUri","BadRequestExceptionClass","ChargeTaxMeasureClass","MarkupLineNumber","CompilationFailedExceptionClass","FranceExtensibleAuditEventTypeClass","AustriaExtensibleAuditEventTypeClass"],"sourceRoot":""}