{"version":3,"file":"static/js/14.ed4fd3f20af45b382ded.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/CapServices_DataServiceEntities.g.ts?ea86","webpack://Msdyn365.Commerce.Online/./src/actions/CapServices_DataActionExtension.g.ts?7375","webpack://Msdyn365.Commerce.Online/./src/actions/Ros_DataServiceEntities.g.ts?8a6b","webpack://Msdyn365.Commerce.Online/./src/actions/Ros_DataActionExtension.g.ts?f7ce","webpack://Msdyn365.Commerce.Online/./src/actions/Santander_DataServiceEntities.g.ts?3b68","webpack://Msdyn365.Commerce.Online/./src/actions/Santander_DataActionExtension.g.ts?62c1","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-contract/checkout-contract.tsx?a589","webpack://Msdyn365.Commerce.Online/./src/actions/SharePointAttachments_DataServiceEntities.g.ts?a73c","webpack://Msdyn365.Commerce.Online/./src/actions/SharePointAttachments_DataActionExtension.g.ts?044c","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-contract/checkout-contract.view.tsx?09b9","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-financing/checkout-financing.tsx?8cbd","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-financing/checkout-financing.view.tsx?847f","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/utils/currentSubStepTitle.tsx?54d4","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/utils/utils.tsx?ba97","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/buybox.view.tsx?5df5","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/checkout.view.tsx?36aa","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/checkout-side-simulation.component.tsx?0190","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/financing.component.tsx?33bd","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/order-confirmation.view.tsx?3cac","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--cancel.tsx?68c2","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--address.tsx?9cb2","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--documents.tsx?1521","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--documents-address.tsx?2eac","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--financing.tsx?51e2","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--informations.tsx?c5b8","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--product.tsx?d7be","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--recap.tsx?b8a7","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--substep-infos.tsx?ef06","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/order-details/order-details--subtepper.tsx?a90e","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/order-details.view.tsx?9dd6","webpack://Msdyn365.Commerce.Online/../../src/checkout-state-data-action.ts?8344","webpack://Msdyn365.Commerce.Online/../../src/checkout-state.ts?acd8","webpack://Msdyn365.Commerce.Online/../../../src/module-state-manager/module-state.ts?7579","webpack://Msdyn365.Commerce.Online/../../../src/module-state-manager/with-module-state.tsx?61ca","webpack://Msdyn365.Commerce.Online/../../src/Entities/CommerceModels.g.ts?1e76"],"sourcesContent":["// tslint:disable\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * CustomResponse_CAP entity interface.\r\n */\r\nexport interface ICustomResponse_CAP {\r\n Status: boolean;\r\n Error?: string;\r\n Id: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * EuroTaxCode_CAP entity interface.\r\n */\r\nexport interface IEuroTaxCode_CAP {\r\n EuroTaxCode?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * RetailTransactionTableAttachment_CAP entity interface.\r\n */\r\nexport interface IRetailTransactionTableAttachment_CAP {\r\n AttachmentFileName?: string;\r\n RetailAttachment?: string;\r\n Store?: string;\r\n DataAreaId?: string;\r\n Channel: number;\r\n Terminal?: string;\r\n TransactionId?: string;\r\n AttachmentType?: string;\r\n ConfirmOrderLink: number;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * InventTableExtensionView_CAP entity interface.\r\n */\r\nexport interface IInventTableExtensionView_CAP {\r\n GoodType?: string;\r\n AssetCode?: string;\r\n LoanType?: string;\r\n Brand?: string;\r\n Model?: string;\r\n ConfirmDepositAmt: number;\r\n NumOfMonthSantander: number;\r\n FromAmountSantander: number;\r\n TaegSantander: number;\r\n TanSantander: number;\r\n ItemId?: string;\r\n DataAreaId?: string;\r\n StandardFinacialTable?: string;\r\n BaloonFinacialTable?: string;\r\n FlexFinacialTable?: string;\r\n StandardFinacialTableF?: string;\r\n BaloonFinacialTableF?: string;\r\n FlexFinacialTableF?: string;\r\n LegalNotice?: string;\r\n OptionDescription1?: string;\r\n OptionDescription2?: string;\r\n OptionDescription3?: string;\r\n Product1P?: string;\r\n Product1F?: string;\r\n Product2P?: string;\r\n Product2F?: string;\r\n Product3P?: string;\r\n Product3F?: string;\r\n FinancialTable1P?: string;\r\n FinancialTable1F?: string;\r\n FinancialTable2P?: string;\r\n FinancialTable2F?: string;\r\n FinancialTable3P?: string;\r\n FinancialTable3F?: string;\r\n DurationList1P?: string;\r\n DurationList1F?: string;\r\n DurationList2P?: string;\r\n DurationList2F?: string;\r\n DurationList3P?: string;\r\n DurationList3F?: string;\r\n Cassandra1P: number;\r\n Cassandra1F: number;\r\n Cassandra2P: number;\r\n Cassandra2F: number;\r\n Cassandra3P: number;\r\n Cassandra3F: number;\r\n CapitaleResiduo1P: number;\r\n CapitaleResiduo1F: number;\r\n CapitaleResiduo2P: number;\r\n CapitaleResiduo2F: number;\r\n CapitaleResiduo3P: number;\r\n CapitaleResiduo3F: number;\r\n Importo1P: number;\r\n Importo1F: number;\r\n Importo2P: number;\r\n Importo2F: number;\r\n Importo3P: number;\r\n Importo3F: number;\r\n LoanType1?: string;\r\n LoanType2?: string;\r\n LoanType3?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * RetTransSalesTableField_CAP entity interface.\r\n */\r\nexport interface IRetTransSalesTableField_CAP {\r\n DataAreaID?: string;\r\n Terminal?: string;\r\n Channel: number;\r\n Store?: string;\r\n TransactionId?: string;\r\n SalesOrderId?: string;\r\n EcomOrderStatus: number;\r\n PurchWithLoan: number;\r\n PraticeNum?: string;\r\n QuotationId?: string;\r\n LoanAmount: number;\r\n FinalAmount: number;\r\n LoanStatus: number;\r\n ModifiedAddress: number;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * CustomResponse_CAP entity class.\r\n */\r\nexport class CustomResponse_CAPExtensionClass implements ICustomResponse_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Status: boolean;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Error: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Id: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Status = odataObject.Status;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Error = odataObject.Error;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Id = odataObject.Id;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * EuroTaxCode_CAP entity class.\r\n */\r\n// @ts-ignore\r\nexport class EuroTaxCode_CAPExtensionClass implements IEuroTaxCode_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public EuroTaxCode: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.EuroTaxCode = odataObject.EuroTaxCode;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * RetailTransactionTableAttachment_CAP entity class.\r\n */\r\nexport class RetailTransactionTableAttachment_CAPExtensionClass implements IRetailTransactionTableAttachment_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public AttachmentFileName: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public RetailAttachment: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Store: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DataAreaId: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Channel: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Terminal: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public TransactionId: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public AttachmentType: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ConfirmOrderLink: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.AttachmentFileName = odataObject.AttachmentFileName;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.RetailAttachment = odataObject.RetailAttachment;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Store = odataObject.Store;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DataAreaId = odataObject.DataAreaId;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Channel = odataObject.Channel ? parseInt(odataObject.Channel, 10) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Terminal = odataObject.Terminal;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.TransactionId = odataObject.TransactionId;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.AttachmentType = odataObject.AttachmentType;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ConfirmOrderLink = odataObject.ConfirmOrderLink;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * InventTableExtensionView_CAP entity class.\r\n */\r\nexport class InventTableExtensionView_CAPExtensionClass implements IInventTableExtensionView_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public GoodType: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public AssetCode: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public LoanType: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Brand: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Model: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ConfirmDepositAmt: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public NumOfMonthSantander: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FromAmountSantander: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public TaegSantander: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public TanSantander: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ItemId: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DataAreaId: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public StandardFinacialTable: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public BaloonFinacialTable: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FlexFinacialTable: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public StandardFinacialTableF: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public BaloonFinacialTableF: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FlexFinacialTableF: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public LegalNotice: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public OptionDescription1: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public OptionDescription2: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public OptionDescription3: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Product1P: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Product1F: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Product2P: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Product2F: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Product3P: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Product3F: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FinancialTable1P: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FinancialTable1F: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FinancialTable2P: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FinancialTable2F: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FinancialTable3P: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FinancialTable3F: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DurationList1P: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DurationList1F: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DurationList2P: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DurationList2F: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DurationList3P: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DurationList3F: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Cassandra1P: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Cassandra1F: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Cassandra2P: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Cassandra2F: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Cassandra3P: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Cassandra3F: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public CapitaleResiduo1P: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public CapitaleResiduo1F: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public CapitaleResiduo2P: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public CapitaleResiduo2F: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public CapitaleResiduo3P: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public CapitaleResiduo3F: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Importo1P: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Importo1F: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Importo2P: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Importo2F: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Importo3P: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Importo3F: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public LoanType1: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public LoanType2: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public LoanType3: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.GoodType = odataObject.GoodType;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.AssetCode = odataObject.AssetCode;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LoanType = odataObject.LoanType;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Brand = odataObject.Brand;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Model = odataObject.Model;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ConfirmDepositAmt = odataObject.ConfirmDepositAmt ? parseFloat(odataObject.ConfirmDepositAmt) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.NumOfMonthSantander = odataObject.NumOfMonthSantander;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FromAmountSantander = odataObject.FromAmountSantander ? parseFloat(odataObject.FromAmountSantander) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.TaegSantander = odataObject.TaegSantander ? parseFloat(odataObject.TaegSantander) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.TanSantander = odataObject.TanSantander ? parseFloat(odataObject.TanSantander) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ItemId = odataObject.ItemId;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DataAreaId = odataObject.DataAreaId;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.StandardFinacialTable = odataObject.StandardFinacialTable;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.BaloonFinacialTable = odataObject.BaloonFinacialTable;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FlexFinacialTable = odataObject.FlexFinacialTable;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.StandardFinacialTableF = odataObject.StandardFinacialTableF;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.BaloonFinacialTableF = odataObject.BaloonFinacialTableF;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FlexFinacialTableF = odataObject.FlexFinacialTableF;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LegalNotice = odataObject.LegalNotice;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.OptionDescription1 = odataObject.OptionDescription1;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.OptionDescription2 = odataObject.OptionDescription2;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.OptionDescription3 = odataObject.OptionDescription3;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Product1P = odataObject.Product1P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Product1F = odataObject.Product1F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Product2P = odataObject.Product2P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Product2F = odataObject.Product2F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Product3P = odataObject.Product3P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Product3F = odataObject.Product3F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FinancialTable1P = odataObject.FinancialTable1P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FinancialTable1F = odataObject.FinancialTable1F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FinancialTable2P = odataObject.FinancialTable2P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FinancialTable2F = odataObject.FinancialTable2F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FinancialTable3P = odataObject.FinancialTable3P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FinancialTable3F = odataObject.FinancialTable3F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DurationList1P = odataObject.DurationList1P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DurationList1F = odataObject.DurationList1F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DurationList2P = odataObject.DurationList2P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DurationList2F = odataObject.DurationList2F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DurationList3P = odataObject.DurationList3P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DurationList3F = odataObject.DurationList3F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Cassandra1P = odataObject.Cassandra1P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Cassandra1F = odataObject.Cassandra1F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Cassandra2P = odataObject.Cassandra2P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Cassandra2F = odataObject.Cassandra2F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Cassandra3P = odataObject.Cassandra3P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Cassandra3F = odataObject.Cassandra3F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.CapitaleResiduo1P = odataObject.CapitaleResiduo1P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.CapitaleResiduo1F = odataObject.CapitaleResiduo1F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.CapitaleResiduo2P = odataObject.CapitaleResiduo2P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.CapitaleResiduo2F = odataObject.CapitaleResiduo2F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.CapitaleResiduo3P = odataObject.CapitaleResiduo3P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.CapitaleResiduo3F = odataObject.CapitaleResiduo3F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Importo1P = odataObject.Importo1P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Importo1F = odataObject.Importo1F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Importo2P = odataObject.Importo2P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Importo2F = odataObject.Importo2F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Importo3P = odataObject.Importo3P;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Importo3F = odataObject.Importo3F;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LoanType1 = odataObject.LoanType1;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LoanType2 = odataObject.LoanType2;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LoanType3 = odataObject.LoanType3;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * RetTransSalesTableField_CAP entity class.\r\n */\r\nexport class RetTransSalesTableField_CAPExtensionClass implements IRetTransSalesTableField_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DataAreaID: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Terminal: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Channel: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Store: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public TransactionId: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public SalesOrderId: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public EcomOrderStatus: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public PurchWithLoan: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public PraticeNum: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public QuotationId: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public LoanAmount: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public FinalAmount: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public LoanStatus: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ModifiedAddress: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DataAreaID = odataObject.DataAreaID;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Terminal = odataObject.Terminal;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Channel = odataObject.Channel ? parseInt(odataObject.Channel, 10) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Store = odataObject.Store;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.TransactionId = odataObject.TransactionId;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.SalesOrderId = odataObject.SalesOrderId;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.EcomOrderStatus = odataObject.EcomOrderStatus;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PurchWithLoan = odataObject.PurchWithLoan;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.PraticeNum = odataObject.PraticeNum;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.QuotationId = odataObject.QuotationId;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LoanAmount = odataObject.LoanAmount ? parseFloat(odataObject.LoanAmount) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.FinalAmount = odataObject.FinalAmount ? parseFloat(odataObject.FinalAmount) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LoanStatus = odataObject.LoanStatus;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ModifiedAddress = odataObject.ModifiedAddress;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n * THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n * TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n */\r\n// tslint:disable\r\nimport {\r\n AsyncResult,\r\n callActionOrExecute,\r\n DataServiceQuery,\r\n IContext,\r\n IDataServiceRequest,\r\n IQueryResultSettings\r\n} from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './CapServices_DataServiceEntities.g';\r\n\r\n// @ts-ignore\r\nfunction customResponse_CAPQuery(id?: string): DataServiceQuery {\r\n const key = id ? { Id: id } : null;\r\n return new DataServiceQuery('CustomResponse_CAP', 'CustomResponse_CAP', DataServiceEntities.CustomResponse_CAPExtensionClass, key);\r\n}\r\n\r\nexport function createAddAttachment_CAPInput(\r\n transactionid: string,\r\n attachmentFilename: string,\r\n attachmentBody: string,\r\n attachmentType: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'AddAttachment_CAP',\r\n true,\r\n DataServiceEntities.CustomResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.ICustomResponse_CAP' },\r\n {\r\n transactionid: transactionid,\r\n attachmentFilename: attachmentFilename,\r\n attachmentBody: attachmentBody,\r\n attachmentType: attachmentType\r\n }\r\n );\r\n}\r\n\r\nexport function addAttachment_CAPAsync(\r\n context: IContext,\r\n transactionid: string,\r\n attachmentFilename: string,\r\n attachmentBody: string,\r\n attachmentType: string\r\n): AsyncResult {\r\n const request = createAddAttachment_CAPInput(transactionid, attachmentFilename, attachmentBody, attachmentType);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createAddAttachmentString_CAPInput(\r\n transactionid: string,\r\n attachmentFilename: string,\r\n attachmentBody: string,\r\n attachmentType: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'AddAttachmentString_CAP',\r\n true,\r\n DataServiceEntities.CustomResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.ICustomResponse_CAP' },\r\n {\r\n transactionid: transactionid,\r\n attachmentFilename: attachmentFilename,\r\n attachmentBody: attachmentBody,\r\n attachmentType: attachmentType\r\n }\r\n );\r\n}\r\n\r\nexport function addAttachmentString_CAPAsync(\r\n context: IContext,\r\n transactionid: string,\r\n attachmentFilename: string,\r\n attachmentBody: string,\r\n attachmentType: string\r\n): AsyncResult {\r\n const request = createAddAttachmentString_CAPInput(transactionid, attachmentFilename, attachmentBody, attachmentType);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createChangeAddressByTransactionId_CAPInput(\r\n transactionId: string,\r\n deliveryName: string,\r\n address: string,\r\n city: string,\r\n countryRegionId: string,\r\n zipCode: string,\r\n phone: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'ChangeAddressByTransactionId_CAP',\r\n true,\r\n DataServiceEntities.CustomResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.ICustomResponse_CAP' },\r\n {\r\n transactionId: transactionId,\r\n deliveryName: deliveryName,\r\n address: address,\r\n city: city,\r\n countryRegionId: countryRegionId,\r\n zipCode: zipCode,\r\n phone: phone\r\n }\r\n );\r\n}\r\n\r\nexport function changeAddressByTransactionId_CAPAsync(\r\n context: IContext,\r\n transactionId: string,\r\n deliveryName: string,\r\n address: string,\r\n city: string,\r\n countryRegionId: string,\r\n zipCode: string,\r\n phone: string\r\n): AsyncResult {\r\n const request = createChangeAddressByTransactionId_CAPInput(\r\n transactionId,\r\n deliveryName,\r\n address,\r\n city,\r\n countryRegionId,\r\n zipCode,\r\n phone\r\n );\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createChangeAddress_CAPInput(\r\n salesId: string,\r\n deliveryName: string,\r\n address: string,\r\n city: string,\r\n countryRegionId: string,\r\n zipCode: string,\r\n phone: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'ChangeAddress_CAP',\r\n true,\r\n DataServiceEntities.CustomResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.ICustomResponse_CAP' },\r\n {\r\n salesId: salesId,\r\n deliveryName: deliveryName,\r\n address: address,\r\n city: city,\r\n countryRegionId: countryRegionId,\r\n zipCode: zipCode,\r\n phone: phone\r\n }\r\n );\r\n}\r\n\r\nexport function changeAddress_CAPAsync(\r\n context: IContext,\r\n salesId: string,\r\n deliveryName: string,\r\n address: string,\r\n city: string,\r\n countryRegionId: string,\r\n zipCode: string,\r\n phone: string\r\n): AsyncResult {\r\n const request = createChangeAddress_CAPInput(salesId, deliveryName, address, city, countryRegionId, zipCode, phone);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createDeleteAttachment_CAPInput(transactionid: string, attachmentFilename: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'DeleteAttachment_CAP',\r\n true,\r\n DataServiceEntities.CustomResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.ICustomResponse_CAP' },\r\n { transactionid: transactionid, attachmentFilename: attachmentFilename }\r\n );\r\n}\r\n\r\nexport function deleteAttachment_CAPAsync(\r\n context: IContext,\r\n transactionid: string,\r\n attachmentFilename: string\r\n): AsyncResult {\r\n const request = createDeleteAttachment_CAPInput(transactionid, attachmentFilename);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createEuroTax_CAPInput(itemId: string, confName: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'EuroTax_CAP',\r\n true,\r\n DataServiceEntities.EuroTaxCode_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IEuroTaxCode_CAP' },\r\n { itemId: itemId, confName: confName }\r\n );\r\n}\r\n\r\nexport function euroTax_CAPAsync(context: IContext, itemId: string, confName: string): AsyncResult {\r\n const request = createEuroTax_CAPInput(itemId, confName);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createGetAttachmentList_CAPInput(\r\n queryResultSettings: IQueryResultSettings,\r\n transactionid: string,\r\n attachmentType: string,\r\n attachmentFilename: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetAttachmentList_CAP',\r\n true,\r\n DataServiceEntities.RetailTransactionTableAttachment_CAPExtensionClass,\r\n 'true',\r\n { bypassCache: 'none', returnEntity: 'DataServiceEntities.IRetailTransactionTableAttachment_CAP' },\r\n { transactionid: transactionid, attachmentType: attachmentType, attachmentFilename: attachmentFilename }\r\n );\r\n}\r\n\r\nexport function getAttachmentList_CAPAsync(\r\n context: IContext,\r\n transactionid: string,\r\n attachmentType: string,\r\n attachmentFilename: string\r\n): AsyncResult {\r\n const request = createGetAttachmentList_CAPInput(context.queryResultSettings || {}, transactionid, attachmentType, attachmentFilename);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createGetIPTValue_CAPInput(province: string, kw: number): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetIPTValue_CAP',\r\n true,\r\n '',\r\n 'false',\r\n { bypassCache: 'none', returnEntity: '' },\r\n { province: province, kw: kw }\r\n );\r\n}\r\n\r\nexport function getIPTValue_CAPAsync(context: IContext, province: string, kw: number): AsyncResult {\r\n const request = createGetIPTValue_CAPInput(province, kw);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createInventTableExtension_CAPInput(queryResultSettings: IQueryResultSettings, itemId: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'InventTableExtension_CAP',\r\n true,\r\n DataServiceEntities.InventTableExtensionView_CAPExtensionClass,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IInventTableExtensionView_CAP' },\r\n { itemId: itemId }\r\n );\r\n}\r\n\r\nexport function inventTableExtension_CAPAsync(\r\n context: IContext,\r\n itemId: string\r\n): AsyncResult {\r\n const request = createInventTableExtension_CAPInput(context.queryResultSettings || {}, itemId);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createModifyOrder_CAPInput(\r\n transactionid: string,\r\n loanAmount_CAP: number,\r\n finalAmount_CAP: number,\r\n loanStatus_CAP: number,\r\n eComOrderStatus_CAP: number,\r\n quotationId_CAP: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'ModifyOrder_CAP',\r\n true,\r\n DataServiceEntities.CustomResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.ICustomResponse_CAP' },\r\n {\r\n transactionid: transactionid,\r\n loanAmount_CAP: loanAmount_CAP,\r\n finalAmount_CAP: finalAmount_CAP,\r\n loanStatus_CAP: loanStatus_CAP,\r\n eComOrderStatus_CAP: eComOrderStatus_CAP,\r\n quotationId_CAP: quotationId_CAP\r\n }\r\n );\r\n}\r\n\r\nexport function modifyOrder_CAPAsync(\r\n context: IContext,\r\n transactionid: string,\r\n loanAmount_CAP: number,\r\n finalAmount_CAP: number,\r\n loanStatus_CAP: number,\r\n eComOrderStatus_CAP: number,\r\n quotationId_CAP: string\r\n): AsyncResult {\r\n const request = createModifyOrder_CAPInput(\r\n transactionid,\r\n loanAmount_CAP,\r\n finalAmount_CAP,\r\n loanStatus_CAP,\r\n eComOrderStatus_CAP,\r\n quotationId_CAP\r\n );\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createRequireComfirmReport_CAPInput(cartId: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'RequireComfirmReport_CAP',\r\n true,\r\n '',\r\n 'false',\r\n { bypassCache: 'get', returnEntity: '' },\r\n { cartId: cartId }\r\n );\r\n}\r\n\r\nexport function requireComfirmReport_CAPAsync(context: IContext, cartId: string): AsyncResult {\r\n const request = createRequireComfirmReport_CAPInput(cartId);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createSalesTableField_CAPInput(queryResultSettings: IQueryResultSettings, transactionid: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery().resultSettings(queryResultSettings);\r\n return query.createDataServiceRequestForOperation(\r\n 'SalesTableField_CAP',\r\n true,\r\n DataServiceEntities.RetTransSalesTableField_CAPExtensionClass,\r\n 'true',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IRetTransSalesTableField_CAP' },\r\n { transactionid: transactionid }\r\n );\r\n}\r\n\r\nexport function salesTableField_CAPAsync(\r\n context: IContext,\r\n transactionid: string\r\n): AsyncResult {\r\n const request = createSalesTableField_CAPInput(context.queryResultSettings || {}, transactionid);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createValidateVatNum_CAPInput(vatNum: string, countryRegionId: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'ValidateVatNum_CAP',\r\n true,\r\n DataServiceEntities.CustomResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.ICustomResponse_CAP' },\r\n { VatNum: vatNum, CountryRegionId: countryRegionId }\r\n );\r\n}\r\n\r\nexport function validateVatNum_CAPAsync(\r\n context: IContext,\r\n vatNum: string,\r\n countryRegionId: string\r\n): AsyncResult {\r\n const request = createValidateVatNum_CAPInput(vatNum, countryRegionId);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","// tslint:disable\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n// import { jsonLightReadStringPropertyValue } from '@msdyn365-commerce/retail-proxy/dist/externals';\r\n\r\n/**\r\n * CustomResponse_CAP entity interface.\r\n */\r\nexport interface ICustomResponse_CAP {\r\n Status: boolean;\r\n Error?: string;\r\n Id: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * CustomResponse_CAP entity class.\r\n */\r\nexport class CustomResponse_CAPExtensionClass implements ICustomResponse_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Status: boolean;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Error: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Id: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Status = odataObject.Status;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Error = odataObject.Error;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Id = odataObject.Id;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n * THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n * TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n */\r\n// tslint:disable\r\nimport {\r\n AsyncResult,\r\n callActionOrExecute,\r\n DataServiceQuery,\r\n IContext,\r\n IDataServiceRequest /*IQueryResultSettings, NullResult*/\r\n} from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n// import * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport * as DataServiceEntities from './Ros_DataServiceEntities.g';\r\n\r\n// @ts-ignore\r\nfunction customResponse_CAPQuery(id?: string): DataServiceQuery {\r\n const key = id ? { Id: id } : null;\r\n return new DataServiceQuery('CustomResponse_CAP', 'CustomResponse_CAP', DataServiceEntities.CustomResponse_CAPExtensionClass, key);\r\n}\r\n\r\nexport function createAddConfirmDeposit_CAPInput(transactioId: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'AddConfirmDeposit_CAP',\r\n true,\r\n DataServiceEntities.CustomResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.ICustomResponse_CAP' },\r\n { transactioId: transactioId }\r\n );\r\n}\r\n\r\nexport function addConfirmDeposit_CAPAsync(context: IContext, transactioId: string): AsyncResult {\r\n const request = createAddConfirmDeposit_CAPInput(transactioId);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\n// for order details redirect\r\nexport function createGetSalesIdByTransactionId_CAPInput(transactionid: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetSalesIdByTransactionId_CAP',\r\n true,\r\n '',\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'string' },\r\n { transactionid: transactionid }\r\n );\r\n}\r\nexport function getSalesIdByTransactionId_CAPAsync(context: IContext, transactionid: string): AsyncResult {\r\n const request = createGetSalesIdByTransactionId_CAPInput(transactionid);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","// tslint:disable\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * CustomResponse_CAP entity interface.\r\n */\r\nexport interface ICustomResponse_CAP {\r\n Status: boolean;\r\n Error?: string;\r\n Id: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * SantanderCOPostResponse_CAP entity interface.\r\n */\r\nexport interface ISantanderCOPostResponse_CAP {\r\n AmountDue?: string;\r\n MonthlyRate?: string;\r\n MaxiRate?: string;\r\n QuotationName?: string;\r\n QuotationNumber: number;\r\n LegalNotes?: string;\r\n Taeg?: string;\r\n Tan?: string;\r\n Interests?: string;\r\n VarRates?: ISantanderVarRates_CAP[];\r\n SecciUrl?: string;\r\n ErrorMessage?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * SantanderLink_CAP entity interface.\r\n */\r\nexport interface ISantanderLink_CAP {\r\n Link?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * SantanderLoanLenghtResponse_CAP entity interface.\r\n */\r\nexport interface ISantanderLoanLenghtResponse_CAP {\r\n Lenghts?: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * SantanderVarRates_CAP entity interface.\r\n */\r\nexport interface ISantanderVarRates_CAP {\r\n CapitaleResiduo: number;\r\n ImportoRata: number;\r\n DaRata: number;\r\n ARata: number;\r\n Taeg: number;\r\n Tan: number;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * CustomResponse_CAP entity class.\r\n */\r\nexport class CustomResponse_CAPExtensionClass implements ICustomResponse_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Status: boolean;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Error: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Id: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Status = odataObject.Status;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Error = odataObject.Error;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Id = odataObject.Id;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * SantanderCOPostResponse_CAP entity class.\r\n */\r\nexport class SantanderCOPostResponse_CAPExtensionClass implements ISantanderCOPostResponse_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public AmountDue: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public MonthlyRate: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public MaxiRate: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public QuotationName: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public QuotationNumber: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public LegalNotes: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Taeg: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Tan: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Interests: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public VarRates: ISantanderVarRates_CAP[];\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public SecciUrl: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ErrorMessage: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.AmountDue = odataObject.AmountDue;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.MonthlyRate = odataObject.MonthlyRate;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.MaxiRate = odataObject.MaxiRate;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.QuotationName = odataObject.QuotationName;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.QuotationNumber = odataObject.QuotationNumber ? parseInt(odataObject.QuotationNumber, 10) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.LegalNotes = odataObject.LegalNotes;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Taeg = odataObject.Taeg;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Tan = odataObject.Tan;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Interests = odataObject.Interests;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.VarRates = undefined;\r\n if (odataObject.VarRates) {\r\n this.VarRates = [];\r\n for (let i = 0; i < odataObject.VarRates.length; i++) {\r\n if (odataObject.VarRates[i]) {\r\n if (odataObject.VarRates[i]['@odata.type']) {\r\n let className: string = odataObject.VarRates[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.VarRates[i] = new EntityClasses[className](odataObject.VarRates[i]);\r\n }\r\n } else {\r\n this.VarRates[i] = new SantanderVarRates_CAPExtensionClass(odataObject.VarRates[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.VarRates[i] = undefined;\r\n }\r\n }\r\n }\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.SecciUrl = odataObject.SecciUrl;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ErrorMessage = odataObject.ErrorMessage;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (let i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n let className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * SantanderLink_CAP entity class.\r\n */\r\nexport class SantanderLink_CAPExtensionClass implements ISantanderLink_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Link: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Link = odataObject.Link;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * SantanderLoanLenghtResponse_CAP entity class.\r\n */\r\nexport class SantanderLoanLenghtResponse_CAPExtensionClass implements ISantanderLoanLenghtResponse_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Lenghts: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Lenghts = odataObject.Lenghts;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * SantanderVarRates_CAP entity class.\r\n */\r\nexport class SantanderVarRates_CAPExtensionClass implements ISantanderVarRates_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public CapitaleResiduo: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ImportoRata: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public DaRata: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ARata: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Taeg: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Tan: number;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.CapitaleResiduo = odataObject.CapitaleResiduo ? parseFloat(odataObject.CapitaleResiduo) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ImportoRata = odataObject.ImportoRata ? parseFloat(odataObject.ImportoRata) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.DaRata = odataObject.DaRata;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ARata = odataObject.ARata;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Taeg = odataObject.Taeg ? parseFloat(odataObject.Taeg) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Tan = odataObject.Tan ? parseFloat(odataObject.Tan) : 0;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n * THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n * TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n */\r\n// tslint:disable\r\nimport { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './Santander_DataServiceEntities.g';\r\n\r\n// @ts-ignore\r\nfunction customResponse_CAPQuery(id?: string): DataServiceQuery {\r\n const key = id ? { Id: id } : null;\r\n return new DataServiceQuery('CustomResponse_CAP', 'CustomResponse_CAP', DataServiceEntities.CustomResponse_CAPExtensionClass, key);\r\n}\r\n\r\nexport function createGetCOValue_CAPInput(\r\n itemId: string,\r\n opt: number,\r\n custType: string,\r\n loanDesc: string,\r\n lenght: number,\r\n amountFinancied: number,\r\n sellPrice: number,\r\n euroTax: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetCOValue_CAP',\r\n true,\r\n DataServiceEntities.SantanderCOPostResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'none', returnEntity: 'DataServiceEntities.ISantanderCOPostResponse_CAP' },\r\n {\r\n itemId: itemId,\r\n opt: opt,\r\n custType: custType,\r\n loanDesc: loanDesc,\r\n lenght: lenght,\r\n amountFinancied: amountFinancied,\r\n sellPrice: sellPrice,\r\n euroTax: euroTax\r\n }\r\n );\r\n}\r\n\r\nexport function getCOValue_CAPAsync(\r\n context: IContext,\r\n itemId: string,\r\n opt: number,\r\n custType: string,\r\n loanDesc: string,\r\n lenght: number,\r\n amountFinancied: number,\r\n sellPrice: number,\r\n euroTax: string\r\n): AsyncResult {\r\n const request = createGetCOValue_CAPInput(itemId, opt, custType, loanDesc, lenght, amountFinancied, sellPrice, euroTax);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createGetCommissionValue_CAPInput(\r\n itemId: string,\r\n opt: number,\r\n custType: string,\r\n lenght: number,\r\n amountFinanced: number,\r\n origin: string,\r\n tableFinancial: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetCommissionValue_CAP',\r\n true,\r\n '',\r\n 'false',\r\n { bypassCache: 'none', returnEntity: '' },\r\n {\r\n itemId: itemId,\r\n opt: opt,\r\n custType: custType,\r\n lenght: lenght,\r\n amountFinanced: amountFinanced,\r\n origin: origin,\r\n tableFinancial: tableFinancial\r\n }\r\n );\r\n}\r\n\r\nexport function getCommissionValue_CAPAsync(\r\n context: IContext,\r\n itemId: string,\r\n opt: number,\r\n custType: string,\r\n lenght: number,\r\n amountFinanced: number,\r\n origin: string,\r\n tableFinancial: string\r\n): AsyncResult {\r\n const request = createGetCommissionValue_CAPInput(itemId, opt, custType, lenght, amountFinanced, origin, tableFinancial);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createGetSantanderLink_CAPInput(prevNum: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetSantanderLink_CAP',\r\n true,\r\n DataServiceEntities.SantanderLink_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'none', returnEntity: 'DataServiceEntities.ISantanderLink_CAP' },\r\n { prevNum: prevNum }\r\n );\r\n}\r\n\r\nexport function getSantanderLink_CAPAsync(context: IContext, prevNum: string): AsyncResult {\r\n const request = createGetSantanderLink_CAPInput(prevNum);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createGetSantanderLink_c_CAPInput(\r\n prevNum: string,\r\n custType: string,\r\n address: string,\r\n zipCode: string,\r\n province: string,\r\n city: string,\r\n tel: string,\r\n mail: string,\r\n firstName: string,\r\n lastName: string,\r\n fiscCode: string,\r\n nationality: string,\r\n exitUrl: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetSantanderLink_c_CAP',\r\n true,\r\n DataServiceEntities.SantanderLink_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'none', returnEntity: 'DataServiceEntities.ISantanderLink_CAP' },\r\n {\r\n prevNum: prevNum,\r\n custType: custType,\r\n address: address,\r\n zipCode: zipCode,\r\n province: province,\r\n city: city,\r\n tel: tel,\r\n mail: mail,\r\n firstName: firstName,\r\n lastName: lastName,\r\n fiscCode: fiscCode,\r\n nationality: nationality,\r\n exitUrl: exitUrl\r\n }\r\n );\r\n}\r\n\r\nexport function getSantanderLink_c_CAPAsync(\r\n context: IContext,\r\n prevNum: string,\r\n custType: string,\r\n address: string,\r\n zipCode: string,\r\n province: string,\r\n city: string,\r\n tel: string,\r\n mail: string,\r\n firstName: string,\r\n lastName: string,\r\n fiscCode: string,\r\n nationality: string,\r\n exitUrl: string\r\n): AsyncResult {\r\n const request = createGetSantanderLink_c_CAPInput(\r\n prevNum,\r\n custType,\r\n address,\r\n zipCode,\r\n province,\r\n city,\r\n tel,\r\n mail,\r\n firstName,\r\n lastName,\r\n fiscCode,\r\n nationality,\r\n exitUrl\r\n );\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createGetLoanLenghtValue_CAPInput(itemId: string, opt: number, custType: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetLoanLenghtValue_CAP',\r\n true,\r\n DataServiceEntities.SantanderLoanLenghtResponse_CAPExtensionClass,\r\n 'false',\r\n { bypassCache: 'none', returnEntity: 'DataServiceEntities.ISantanderLoanLenghtResponse_CAP' },\r\n { itemId: itemId, opt: opt, custType: custType }\r\n );\r\n}\r\n\r\nexport function getLoanLenghtValue_CAPAsync(\r\n context: IContext,\r\n itemId: string,\r\n opt: number,\r\n custType: string\r\n): AsyncResult {\r\n const request = createGetLoanLenghtValue_CAPInput(itemId, opt, custType);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createGetSantanderProductValue_CAPInput(\r\n insured: boolean,\r\n anagType: string,\r\n goodType: string,\r\n loanType: string\r\n): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetSantanderProductValue_CAP',\r\n true,\r\n '',\r\n 'false',\r\n { bypassCache: 'none', returnEntity: '' },\r\n { insured: insured, anagType: anagType, goodType: goodType, loanType: loanType }\r\n );\r\n}\r\n\r\nexport function getSantanderProductValue_CAPAsync(\r\n context: IContext,\r\n insured: boolean,\r\n anagType: string,\r\n goodType: string,\r\n loanType: string\r\n): AsyncResult {\r\n const request = createGetSantanderProductValue_CAPInput(insured, anagType, goodType, loanType);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createGetRemainingAmountValue_CAPInput(tableFinancial: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetRemainingAmountValue_CAP',\r\n true,\r\n '',\r\n 'false',\r\n { bypassCache: 'none', returnEntity: '' },\r\n { tableFinancial: tableFinancial }\r\n );\r\n}\r\n\r\nexport function getRemainingAmountValue_CAPAsync(context: IContext, tableFinancial: string): AsyncResult {\r\n const request = createGetRemainingAmountValue_CAPInput(tableFinancial);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { computed, reaction, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICheckoutContractData } from './checkout-contract.data';\r\nimport { ICheckoutContractProps } from './checkout-contract.props.autogenerated';\r\n\r\nexport interface ICheckoutContractModuleProps extends ICheckoutContractProps, IModuleStateProps {}\r\n\r\nexport interface ICheckoutContractViewProps extends ICheckoutContractProps {\r\n moduleProps: IModuleProps;\r\n onEdit?(): void;\r\n}\r\n/**\r\n *\r\n * CheckoutContract component\r\n * @extends {React.PureComponent>}\r\n */\r\n// @ts-ignore\r\n@withModuleState\r\n@observer\r\nclass CheckoutContract extends React.Component {\r\n @computed get isDataReady(): boolean {\r\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\r\n }\r\n @computed get isPaymentVerificationRedirection(): boolean {\r\n const { requestFormData, query } = this.props.context.request;\r\n return requestFormData && query && query.pv === '1' ? true : false;\r\n }\r\n public componentDidUpdate(): void {\r\n if (this.isPaymentVerificationRedirection) {\r\n // force place order button click\r\n const placeOrderBtnUpd = document.querySelectorAll('.ms-checkout__btn-place-order:not(.disabled)')[0] as HTMLElement;\r\n if (placeOrderBtnUpd) {\r\n setTimeout(() => {\r\n placeOrderBtnUpd.click();\r\n }, 10000);\r\n }\r\n }\r\n }\r\n public componentDidMount(): void {\r\n const alertCtn = document.querySelectorAll('.ms-checkout__error-message')[0] as HTMLElement;\r\n const alertPaymentCtn = document.querySelectorAll('.ms-checkout-payment-instrument__error')[0] as HTMLElement;\r\n\r\n if (this.isPaymentVerificationRedirection && !alertCtn && !alertPaymentCtn) {\r\n const guidedForm = document.querySelectorAll('.ms-checkout__guided-form')[0] as HTMLElement;\r\n const loadingElement = document.createElement('div');\r\n loadingElement.innerHTML = '
';\r\n guidedForm.appendChild(loadingElement);\r\n setTimeout(() => {\r\n const formLoader = document.querySelectorAll('.ms-checkout__guided-form > div > .loader__ctn')[0];\r\n if (formLoader) {\r\n document.querySelectorAll('.ms-checkout__guided-form > div > .loader__ctn')[0].style.display = 'none';\r\n }\r\n }, 10000);\r\n }\r\n // @ts-ignore: Compiler not reconizing condition check for function params\r\n this.props.data.checkout.then(async () => {\r\n await this.init();\r\n });\r\n when(\r\n () => this.isDataReady,\r\n async () => {\r\n await this.init();\r\n }\r\n );\r\n\r\n setTimeout(() => {\r\n reaction(\r\n () => this.props.data.checkout.result && this.props.data.checkout.result.shippingAddress,\r\n async () => {\r\n // @ts-ignore\r\n this.props.moduleState && this.props.moduleState.onEdit();\r\n this.props.moduleState.setHasError(!this.props.moduleState.hasError);\r\n }\r\n );\r\n reaction(\r\n () => this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.TotalAmount,\r\n async () => {\r\n // @ts-ignore\r\n this.props.moduleState && this.props.moduleState.onEdit();\r\n this.props.moduleState.setHasError(!this.props.moduleState.hasError);\r\n }\r\n );\r\n }, 15000);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n config: { className },\r\n moduleState: { isReady }\r\n } = this.props;\r\n const viewProps: ICheckoutContractViewProps = {\r\n ...this.props,\r\n ...this.state,\r\n onEdit: this.onEdit,\r\n moduleProps: {\r\n moduleProps: this.props,\r\n moduleState: this.props.moduleState,\r\n className: classnames('ms-checkout-contract', className, isReady ? 'show' : 'add')\r\n }\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private init = async (): Promise => {\r\n this.props.moduleState.init({\r\n onEdit: this.onEdit\r\n });\r\n\r\n if (this.isPaymentVerificationRedirection) {\r\n this.props.moduleState.onReady();\r\n }\r\n };\r\n\r\n private onEdit = (): void => {\r\n this.props.moduleState.onUpdating();\r\n };\r\n}\r\n\r\nexport default CheckoutContract;\r\n","// tslint:disable\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * CustomResponse_CAP entity interface.\r\n */\r\nexport interface ICustomResponse_CAP {\r\n Status: boolean;\r\n Error?: string;\r\n Id: string;\r\n ExtensionProperties?: Entities.CommerceProperty[];\r\n}\r\n\r\n/**\r\n * CustomResponse_CAP entity class.\r\n */\r\nexport class CustomResponse_CAPExtensionClass implements ICustomResponse_CAP {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Status: boolean;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Error: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public Id: string;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n public ExtensionProperties: Entities.CommerceProperty[];\r\n\r\n // Navigation properties names\r\n\r\n /**\r\n * Construct an object from odata response.\r\n * @param {any} odataObject The odata result object.\r\n */\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Status = odataObject.Status;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Error = odataObject.Error;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.Id = odataObject.Id;\r\n\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties = undefined;\r\n if (odataObject.ExtensionProperties) {\r\n this.ExtensionProperties = [];\r\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\r\n if (odataObject.ExtensionProperties[i]) {\r\n if (odataObject.ExtensionProperties[i]['@odata.type']) {\r\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\r\n className = className.substr(className.lastIndexOf('.') + 1).concat('Class');\r\n if (EntityClasses[className]) {\r\n this.ExtensionProperties[i] = new EntityClasses[className](odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n this.ExtensionProperties[i] = new EntityClasses.CommercePropertyClass(odataObject.ExtensionProperties[i]);\r\n }\r\n } else {\r\n // @ts-ignore - TODO bug fix #23427261 - remove ts-ignore - https://microsoft.visualstudio.com/DefaultCollection/OSGS/_workitems/edit/23427261/\r\n this.ExtensionProperties[i] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n * THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n * TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n */\r\n// tslint:disable\r\nimport { AsyncResult, callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest } from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './SharePointAttachments_DataServiceEntities.g';\r\n\r\n// @ts-ignore\r\nfunction customResponse_CAPQuery(id?: string): DataServiceQuery {\r\n const key = id ? { Id: id } : null;\r\n return new DataServiceQuery('CustomResponse_CAP', 'CustomResponse_CAP', DataServiceEntities.CustomResponse_CAPExtensionClass, key);\r\n}\r\n\r\nexport function createGetSharepointAttachmentFromFileName_CAPInput(transactioId: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetSharepointAttachmentFromFileName_CAP',\r\n true,\r\n '',\r\n 'false',\r\n { bypassCache: 'none', returnEntity: '' },\r\n { transactioId: transactioId }\r\n );\r\n}\r\n\r\nexport function getSharepointAttachmentFromFileName_CAPAsync(context: IContext, transactioId: string): AsyncResult {\r\n const request = createGetSharepointAttachmentFromFileName_CAPInput(transactioId);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n\r\nexport function createGetSharepointAttachmentFromTransId_CAPInput(transactioId: string, attachmentType: string): IDataServiceRequest {\r\n const query = customResponse_CAPQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'GetSharepointAttachmentFromTransId_CAP',\r\n true,\r\n '',\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'string' },\r\n { transactioId: transactioId, attachmentType: attachmentType }\r\n );\r\n}\r\n\r\nexport function getSharepointAttachmentFromTransId_CAPAsync(\r\n context: IContext,\r\n transactioId: string,\r\n attachmentType: string\r\n): AsyncResult {\r\n const request = createGetSharepointAttachmentFromTransId_CAPInput(transactioId, attachmentType);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\n// import {getCartState} from '@msdyn365-commerce/global-state';\r\nimport * as React from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { requireComfirmReport_CAPAsync } from '../../actions/CapServices_DataActionExtension.g';\r\nimport { addConfirmDeposit_CAPAsync } from '../../actions/Ros_DataActionExtension.g';\r\nimport { getSharepointAttachmentFromTransId_CAPAsync } from '../../actions/SharePointAttachments_DataActionExtension.g';\r\nimport { ICheckoutContractViewProps } from './checkout-contract';\r\n\r\ninterface ICustomValues {\r\n ContractAccepted_CAP: boolean;\r\n CompanyClausesAccepted_CAP: boolean;\r\n}\r\n\r\nconst CheckoutContractView: React.FC = props => {\r\n const { moduleProps, config, resources } = props;\r\n // @ts-ignore\r\n const thisProps = moduleProps?.moduleProps;\r\n const moduleState = moduleProps.moduleState;\r\n // @ts-ignore\r\n const extProps = thisProps.data.checkout.result.checkoutCart?.cart?.ExtensionProperties;\r\n const personalDataType = extProps.filter((i: { Key: string }) => i.Key === 'Type_CAP')[0]?.Value.StringValue;\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const [loading_user, setLoadingUser] = React.useState(false);\r\n\r\n const [docDownloaded, setDocDownloaded] = React.useState(false);\r\n const [contract, setContract] = React.useState('');\r\n const delay = (t: number) => new Promise(resolve => setTimeout(resolve, t));\r\n const _viewContract = async () => {\r\n // @ts-ignore\r\n const cartId = thisProps?.data?.checkout?.result?.checkoutCart?.cart?.Id;\r\n // const cartResult = props.data.cart.result;\r\n setLoading(true);\r\n\r\n await requireComfirmReport_CAPAsync({ callerContext: props.context.actionContext }, cartId).then(async () => {\r\n delay(20000)\r\n .then(async () => {\r\n await getSharepointAttachmentFromTransId_CAPAsync(\r\n { callerContext: props.context.actionContext },\r\n cartId,\r\n 'SP_OrderConf'\r\n ).then(result => {\r\n const contractFile = `data:application/octet-stream;base64,${result}`;\r\n setContract(contractFile);\r\n localStorage.setItem('contract', contractFile);\r\n const docDownloadLink = document.getElementsByClassName('contract_download')[0] as HTMLElement;\r\n docDownloadLink.click();\r\n });\r\n setLoading(false);\r\n setDocDownloaded(true);\r\n })\r\n .then(async () => {\r\n const addConfirmDeposit_CAPAsyncCO = async () => {\r\n await addConfirmDeposit_CAPAsync({ callerContext: thisProps.context?.actionContext }, cartId).then(async result => {\r\n if (result.Error === 'OnAccountPayment_notAllow') {\r\n // if(result.Error === 'depositTenderLine_Found' || result.Error === 'deleting_tenderLines_startcreatingDepositTenderLine_StarsavetenderLine_startCompleted') {\r\n setLoadingUser(true);\r\n setTimeout(() => {\r\n addConfirmDeposit_CAPAsyncCO();\r\n }, 10000);\r\n } else {\r\n setLoadingUser(false);\r\n const checkoutCartResult = props.data.checkout.result;\r\n await checkoutCartResult?.checkoutCart.refreshCart({});\r\n }\r\n });\r\n };\r\n addConfirmDeposit_CAPAsyncCO();\r\n });\r\n });\r\n\r\n //await addConfirmDeposit_CAPAsync({ callerContext: thisProps.context?.actionContext }, cartResult.cart.Id).then(async() => {\r\n\r\n //});\r\n };\r\n\r\n const { register, handleSubmit, reset, watch, setValue /*errors, setError*/ } = useForm({\r\n defaultValues: {\r\n ContractAccepted_CAP: false,\r\n CompanyClausesAccepted_CAP: false\r\n }\r\n });\r\n React.useEffect(() => {\r\n setDocDownloaded(false);\r\n setValue('ContractAccepted_CAP', false, { shouldDirty: true });\r\n setValue('CompanyClausesAccepted_CAP', false, { shouldDirty: true });\r\n }, [moduleState.hasError]);\r\n const onSubmit = async (data: ICustomValues) => {\r\n reset(data);\r\n setDocDownloaded(false);\r\n moduleState.onReady();\r\n };\r\n\r\n const contractAcception: boolean = watch('ContractAccepted_CAP');\r\n const companyClausescAcception: boolean = watch('CompanyClausesAccepted_CAP');\r\n\r\n const localContract = localStorage.getItem('contract');\r\n if (moduleState.status === 'ready' && localContract) {\r\n return (\r\n \r\n

\r\n Contratto accettato\r\n

\r\n
\r\n \r\n {' '}\r\n {resources.viewContract}\r\n \r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
{config.introText}
\r\n
\r\n \r\n
\r\n \r\n )}\r\n

{props?.context?.app?.config?.taxOutOfPriceText}

\r\n
\r\n
\r\n {description}\r\n Scopri le caratteristiche del prodotto\r\n
\r\n
\r\n {configure && _renderConfigure(configure)}\r\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\r\n {inventoryLabel}\r\n {_renderCartAndActions(props.addToCart, props.addToOrderTemplate, confirmDepositAmt)}\r\n {/*findInStore && _renderFindInStore(findInStore)*/}\r\n\r\n {/*
{props.config.deliveryInfo!}
*/}\r\n \r\n \r\n {props.slots.externalLinkButtons && props.slots.externalLinkButtons[0]}\r\n {props?.context?.app?.config?.enableFinancing && }\r\n \r\n );\r\n};\r\n\r\nconst _renderCartAndActions = (\r\n addToCart?: IBuyboxAddToCartViewProps,\r\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\r\n deposit?: number,\r\n): JSX.Element | undefined => {\r\n if (!addToCart) {\r\n return undefined;\r\n }\r\n const addToCartExt = React.cloneElement(addToCart.button as React.ReactElement, { addToCartText: `con ${deposit}€ di deposito` });\r\n return (\r\n
\r\n {addToCart && addToCart.errorBlock}\r\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\r\n
\r\n {addToCart && addToCartExt}\r\n {addToOrderTemplate && addToOrderTemplate.button}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n const {ContainerProps, LabelContainerProps, heading, input} = keyInPrice;\r\n return(\r\n \r\n \r\n {heading}\r\n \r\n {input}\r\n \r\n );\r\n};\r\n\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n const localHeading = React.cloneElement(heading as React.ReactElement);\r\n const mSelect = React.cloneElement(select as React.ReactElement);\r\n // @ts-ignore\r\n const defItem = mSelect.props.dropdownList.filter((p) => p.isDefault);\r\n if(defItem.length === 0) {\r\n mSelect.props.dropdownList[0].isDefault = true;\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n {\r\n 'Size': React.cloneElement(localHeading as React.ReactElement,{ children: `Colore interno` }),\r\n 'Color': React.cloneElement(localHeading as React.ReactElement,{ children: `Colore esterno` }),\r\n }[localHeading.props.children] || React.cloneElement(localHeading as React.ReactElement)\r\n }\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\r\n const { ContainerProps, dropdowns } = configure;\r\n\r\n return (\r\n \r\n {dropdowns.map(_renderConfigureDropdown)}\r\n \r\n );\r\n};\r\n\r\n/*\r\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\r\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\r\n\r\n return (\r\n \r\n {storeSelector}\r\n {heading}\r\n {productPickupOptionList}\r\n {description}\r\n {errors}\r\n {button}\r\n {modal}\r\n \r\n );\r\n};\r\n*/\r\nexport default BuyboxView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ICheckoutViewProps, ILineItem, ILineItemDeliveryGroup, ILineItems, IOrderSummary, IPickUpAtStore } from '@msdyn365-commerce-modules/checkout/src/modules/checkout/checkout';\r\nimport { IEmailDelivery } from '@msdyn365-commerce-modules/checkout/src/modules/checkout/components';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { CheckoutSideSimulation } from './components/checkout-side-simulation.component';\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => (\r\n \r\n {label}\r\n \r\n);\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemGroupComponentWithMultiplePickUp: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems, lineItemWraper, lineItemWraperIcon }) => (\r\n \r\n {lineItemWraperIcon}\r\n {lineItemWraper}\r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemComponentWithMultiplePickUp: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const PickUpAtStoreComponentWithMultiplePickUp: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({ LineItems, Header, heading, editLink, itemsForPickup, itemsForShip, itemsForEmail, itemsGroupWithMulitplePickupMode }) => (\r\n \r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForShip && }\r\n \r\n);\r\n\r\nexport interface IOrderSummaryExt extends IOrderSummary {\r\n taxIncludedInPriceText:string|undefined;\r\n taxTooltipText: string|undefined;\r\n deliveryMode:string|undefined;\r\n iptTaxAmount:number|undefined;\r\n totalAmount:number|undefined;\r\n deliveryPrice:number|undefined;\r\n freeText:string|undefined;\r\n}\r\nconst OrderSummaryComponent: React.FC = ({ lines, ...other }) => {\r\n const totalPrice = other?.totalAmount && `${other?.totalAmount.toLocaleString('it-IT')}€*`;\r\n return (\r\n
\r\n {lines && (\r\n <>\r\n
\r\n
{totalPrice}
\r\n
Chiavi in mano
\r\n
{other?.taxIncludedInPriceText} {Number(other?.iptTaxAmount?.toFixed(2)).toLocaleString('it-IT')}€.\r\n \r\n \r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions\r\n } = props;\r\n\r\n const cartLines = props?.data?.checkout?.result?.checkoutCart?.cart?.CartLines;\r\n const productDimension = props?.data?.products?.result && props?.data?.products?.result[0].Dimensions?.filter(i => i.DimensionTypeValue === 2);\r\n const productDimensionId = productDimension && productDimension.length > 0 && productDimension[0].DimensionValue?.DimensionId;\r\n const extraProps = {\r\n taxIncludedInPriceText: props?.context?.app?.config?.taxIncludedInPriceText,\r\n taxTooltipText : props?.context?.app?.config?.taxTooltipText,\r\n deliveryMode : props?.data?.checkout?.result?.checkoutCart?.cart?.CartLines && props?.data?.checkout?.result?.checkoutCart?.cart?.CartLines[0]?.DeliveryMode,\r\n iptTaxAmount : props?.data?.checkout?.result?.checkoutCart?.cart?.OtherChargeAmount,\r\n totalAmount : props?.data?.checkout?.result?.checkoutCart?.cart?.TotalAmount,\r\n deliveryPrice : props?.data?.checkout?.result?.checkoutCart?.cart?.ShippingChargeAmount,\r\n freeText : props?.resources.freeText,\r\n };\r\n const deliveryModeId = cartLines && cartLines[0] && cartLines[0].DeliveryMode;\r\n const deliveryModeNameA = props?.data?.deliveryOptions?.result\r\n && props?.data?.deliveryOptions?.result[0].DeliveryOptions?.filter(i => i.Code === deliveryModeId);\r\n const deliveryModeNameFull = deliveryModeNameA && deliveryModeNameA[0]?.Description;\r\n const deliveryModeName = deliveryModeNameFull && deliveryModeNameFull.split('|')[0];\r\n const checkoutSideSimulationProps = {\r\n context:props.context,\r\n finalPrice: cartLines && cartLines[0] && cartLines[0].Price,\r\n confirmDepositAmt: cartLines && cartLines[0] && cartLines[0].ExtensionProperties && cartLines[0].ExtensionProperties.filter(i => i.Key === 'ConfirmDepositAmt')[0]?.Value?.DecimalValue,\r\n itemId: cartLines && cartLines[0] && cartLines[0]?.ItemId,\r\n itemConfiguration:productDimensionId,\r\n deliveryAmount: props?.data?.checkout?.result?.checkoutCart?.cart?.ShippingChargeAmount,\r\n deliveryMode: deliveryModeName,\r\n deliveryLabel:'Modalità di consegna'\r\n };\r\n // Clear localStorage if current productId !== productId in localStorage\r\n const currentProductId = props?.data?.products?.result && props?.data?.products?.result[0]?.ItemId;\r\n React.useEffect(() => {\r\n if(currentProductId && currentProductId !== localStorage.getItem('productId')) {\r\n localStorage.clear()\r\n }\r\n void products();\r\n }, []);\r\n const [showItemDetails, setShowItemDetails] = React.useState(false);\r\n const handleItemDetails = () => {\r\n setShowItemDetails(!showItemDetails);\r\n }\r\n const [productsLoaded, setProductsLoaded] = React.useState(false);\r\n const products = async() => {\r\n try {\r\n await props.data.products;\r\n setProductsLoaded(true);\r\n } catch (error) {\r\n console.log(\"unable to get prods\")\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n {orderSummary && }\r\n {lineItems && }\r\n
\r\n
handleItemDetails()}>\r\n \r\n \r\n
\r\n
\r\n \r\n {productsLoaded &&\r\n \r\n }\r\n \r\n \r\n \r\n {termsAndConditions}\r\n \r\n \r\n
\r\n
\r\n \r\n {!hasSalesOrder && {title}}\r\n {!hasSalesOrder &&\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n
\r\n
\r\n \r\n {guidedForm}\r\n \r\n {termsAndConditions}\r\n \r\n \r\n {placeOrderButton}\r\n {/*keepShoppingButton*/}\r\n \r\n \r\n
\r\n
\r\n \r\n {lineItems && }\r\n {orderSummary && }\r\n \r\n {productsLoaded &&\r\n \r\n }\r\n {placeOrderButton}\r\n \r\n \r\n \r\n {termsAndConditions}\r\n \r\n {placeOrderButton}\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n }\r\n {hasSalesOrder && orderConfirmation}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","import {ICoreContext} from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nimport { euroTax_CAPAsync } from '../../../../actions/CapServices_DataActionExtension.g'\r\nimport { getCOValue_CAPAsync } from '../../../../actions/Santander_DataActionExtension.g';\r\nimport { ISantanderCOPostResponse_CAP } from '../../../../actions/Santander_DataServiceEntities.g';\r\n\r\ninterface ICheckoutSideSimulation {\r\n context:ICoreContext;\r\n finalPrice:number | undefined;\r\n confirmDepositAmt:number | undefined;\r\n itemId:string | undefined;\r\n itemConfiguration: string | undefined | false;\r\n deliveryAmount:number | undefined;\r\n deliveryMode:string | undefined;\r\n deliveryLabel:string | undefined;\r\n}\r\n\r\nexport const CheckoutSideSimulation: React.FC = ({\r\n context,\r\n finalPrice,\r\n confirmDepositAmt,\r\n itemId,\r\n itemConfiguration,\r\n deliveryAmount,\r\n deliveryMode,\r\n deliveryLabel\r\n}) => {\r\n const deliveryModeName = deliveryMode === 'Ritiro' ? 'Punto di ritiro' : deliveryMode;\r\n const amountToBeFinanced = (finalPrice as number) - (confirmDepositAmt as number);\r\n\r\n // Data from User/Local Storage\r\n const loanStatus = localStorage.getItem('toggleState');\r\n const loanType = localStorage.getItem('loanType');\r\n const advanceFromUser = localStorage.getItem('advance');\r\n const durationFromUser = localStorage.getItem('duration');\r\n const rataMensileFromUser = localStorage.getItem('rata-mensile');\r\n const tanFromUser = localStorage.getItem('tan');\r\n const taegFromUser = localStorage.getItem('taeg');\r\n const opt = loanType === 'Classic' ? 1 : 2;\r\n /* Manage 24h countdown to emptying localStorage */\r\n const now = new Date();\r\n const expiry = now.getTime() + 86400000;\r\n if (localStorage.getItem('expiry') && now.getTime() > Number(localStorage.getItem('expiry'))) {\r\n localStorage.clear();\r\n }\r\n // Use data from props\r\n const [saResultData, setSaResultData] = React.useState({\r\n Tan : '',\r\n Taeg : '',\r\n MonthlyRate : '',\r\n MaxiRate : '',\r\n AmountDue : '', // .AmountDue = importo totale dovuto\r\n Interests : '',\r\n Flex: {\r\n duration : 0,\r\n durationTotal : 0,\r\n monthlyRate : 0,\r\n tan : 0,\r\n taeg : 0,\r\n secondPartFirstMonth : 0,\r\n maxiRateFinal : 0,\r\n monthlyRateSecondPart : 0,\r\n tanSecondPart : 0,\r\n taegSecondPart : 0,\r\n }\r\n });\r\n React.useEffect(() => {\r\n if(loanStatus && loanStatus !== 'closed' && itemId) {\r\n euroTax_CAPAsync(\r\n {callerContext: context?.actionContext},\r\n itemId as string,\r\n itemConfiguration ? itemConfiguration : '' // data.product.result.ExtensionProperties => dimensions[2] dimensionID\r\n ).then((euroTax) => {\r\n getCOValue_CAPAsync(\r\n {callerContext: context?.actionContext},\r\n itemId as string,\r\n opt,\r\n 'P',\r\n '', // orderID on orderdetails, unused elsewhere\r\n Number(durationFromUser),\r\n !localStorage.getItem('finalPrice') ? Number(amountToBeFinanced) : Number(localStorage.getItem('finalPrice')),\r\n finalPrice as number,\r\n euroTax.EuroTaxCode as string\r\n ).then((result:ISantanderCOPostResponse_CAP) => {\r\n if (result && result.VarRates && result.VarRates.length === 0) {\r\n setSaResultData({\r\n Tan: result.Tan as string,\r\n Taeg: result.Taeg as string,\r\n MonthlyRate: result.MonthlyRate as string,\r\n MaxiRate: result.MaxiRate as string,\r\n AmountDue: result.AmountDue as string,\r\n Interests: result.Interests as string,\r\n Flex: {\r\n duration: 0,\r\n durationTotal: 0,\r\n monthlyRate: 0,\r\n tan: 0,\r\n taeg: 0,\r\n secondPartFirstMonth: 0,\r\n maxiRateFinal: 0,\r\n monthlyRateSecondPart: 0,\r\n tanSecondPart: 0,\r\n taegSecondPart: 0,\r\n },\r\n });\r\n localStorage.setItem('tan', result.Tan as string);\r\n localStorage.setItem('taeg', result.Taeg as string);\r\n } else if (result && result.VarRates && result.VarRates.length > 0) {\r\n setSaResultData({\r\n Tan: result.Tan as string,\r\n Taeg: result.Taeg as string,\r\n MonthlyRate: result.MonthlyRate as string,\r\n MaxiRate: result.MaxiRate as string,\r\n AmountDue: result.AmountDue as string,\r\n Interests: result.Interests as string,\r\n Flex: {\r\n duration: result.VarRates[0].ARata,\r\n durationTotal: result.VarRates[1].ARata,\r\n monthlyRate: result.VarRates[0].ImportoRata,\r\n tan: result.VarRates[0].Tan,\r\n taeg: result.VarRates[0].Taeg,\r\n secondPartFirstMonth: result.VarRates[1].DaRata,\r\n maxiRateFinal: result.VarRates[0].CapitaleResiduo,\r\n monthlyRateSecondPart: result.VarRates[1].ImportoRata,\r\n tanSecondPart: result.VarRates[1].Tan,\r\n taegSecondPart: result.VarRates[1].Taeg,\r\n },\r\n });\r\n localStorage.setItem('tan', result.VarRates[0].Tan.toString());\r\n localStorage.setItem('taeg', result.VarRates[0].Taeg.toString());\r\n localStorage.setItem('max-rata-finale', result?.VarRates[0]?.CapitaleResiduo.toString())\r\n }\r\n localStorage.setItem('expiry', expiry.toString());\r\n localStorage.setItem('quotaNum', result.QuotationNumber.toString());\r\n localStorage.setItem('productId', itemId as string);\r\n localStorage.setItem('rata-mensile', result.MonthlyRate as string);\r\n localStorage.setItem('secciUrl', result.SecciUrl as string);\r\n localStorage.setItem('amount-due-total', result.AmountDue as string);\r\n localStorage.setItem('interests', result.Interests as string);\r\n localStorage.setItem('confirmDepositAmt', confirmDepositAmt?.toString() as string);\r\n document.querySelector('.financing-container.toggled')?.classList.add('updated');\r\n });\r\n });\r\n }\r\n\r\n }, [itemConfiguration]);\r\n\r\n return (\r\n <>\r\n
\r\n {deliveryMode !== '' ? (\r\n
\r\n

\r\n {deliveryLabel}\r\n

\r\n
    \r\n
  • \r\n \r\n {deliveryModeName === 'Punto di ritiro' ? '0': deliveryAmount}€\r\n \r\n \r\n {deliveryModeName}\r\n \r\n
  • \r\n
\r\n
\r\n ) : ''\r\n }\r\n {localStorage.getItem('toggleState') !== 'closed' && localStorage.getItem('saved') === 'true' ? (\r\n
\r\n

Simulazione del finanziamento

\r\n
    \r\n
  • \r\n {advanceFromUser ? Number(advanceFromUser).toLocaleString('it-IT') : 0}€\r\n Anticipo\r\n
  • \r\n
  • \r\n {durationFromUser} MESI\r\n {localStorage.getItem('loanType') === 'Flex' ? 'Durata primo periodo' : 'Durata del finanziamento'}\r\n
  • \r\n
  • \r\n {rataMensileFromUser ? Number(rataMensileFromUser).toLocaleString('it-IT') : saResultData && Number(saResultData.MonthlyRate).toLocaleString('it-IT')}€\r\n Rata mensile\r\n
  • \r\n
  • \r\n {Number(tanFromUser).toLocaleString('it-IT')}%\r\n Tan\r\n
  • \r\n
  • \r\n {Number(taegFromUser).toLocaleString('it-IT')}%\r\n Taeg\r\n
  • \r\n {localStorage.getItem('loanType') === 'Flex' ? (\r\n
  • \r\n {Number(localStorage.getItem('max-rata-finale')).toLocaleString('it-IT')}€\r\n Maxi rata finale\r\n
  • \r\n ) : ''\r\n }\r\n
  • \r\n {Number(localStorage.getItem('amount-due-total')).toLocaleString('it-IT')}€\r\n Importo totale dovuto\r\n
  • \r\n
  • \r\n {Number(localStorage.getItem('interests')).toLocaleString('it-IT')}€\r\n Interessi\r\n
  • \r\n
\r\n
\r\n ) : ''\r\n }\r\n
\r\n
    \r\n
  • \r\n {confirmDepositAmt}€\r\n Deposito Cauzionale\r\n
  • \r\n
\r\n
\r\n
\r\n \r\n );\r\n};","import React from 'react';\r\nimport { Controller, useForm } from 'react-hook-form';\r\n\r\nimport { ISliderProps, Slider } from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { euroTax_CAPAsync } from '../../../../actions/CapServices_DataActionExtension.g'\r\nimport { getCOValue_CAPAsync, getLoanLenghtValue_CAPAsync } from '../../../../actions/Santander_DataActionExtension.g';\r\nimport { financingTexts, IFinancingProps, productExtProps } from '../../utils/utils';\r\n\r\nimport NumberFormat from 'react-number-format';\r\n// import useCurrencyMask from '../../utils/useCurencyMask';\r\n\r\ntype financingInputs = {\r\n loanTypeFromUser: string | null;\r\n advanceFromUser: number | null;\r\n durationFromUser: string | null;\r\n};\r\n\r\n// tslint:disable-next-line:cyclomatic-complexity\r\nexport const Financing = (props:IFinancingProps) => {\r\n const isBrowser = typeof window !== 'undefined' && localStorage !== undefined;\r\n if(!isBrowser){\r\n return <>;\r\n }\r\n /* Toggle the financing area */\r\n const [financingToggle, setFinancingToggle] = React.useState(localStorage.getItem('toggleState') === 'opened' ? true : false);\r\n const handleToggle = () => {\r\n setFinancingToggle(!financingToggle);\r\n !financingToggle ? localStorage.setItem('toggleState', 'opened') : localStorage.setItem('toggleState', 'closed');\r\n };\r\n\r\n /* Data */\r\n const { text } = financingTexts(props);\r\n const { confirmDepositAmt } = productExtProps(props.productExtensionProperties);\r\n const { itemId, finalPrice, itemConfiguration } = props;\r\n const amountToBeFinanced = (finalPrice as number) - (confirmDepositAmt as number);\r\n /* React Form */\r\n const loanTypeAutoSelect = localStorage.getItem('loanType') ? localStorage.getItem('loanType') : 'Classic';\r\n const anticipoFromUserString = Number(localStorage.getItem('advance'));\r\n const {\r\n register,\r\n handleSubmit,\r\n watch,\r\n control,\r\n errors\r\n } = useForm({defaultValues: {loanTypeFromUser: loanTypeAutoSelect, advanceFromUser: anticipoFromUserString ? Number(anticipoFromUserString) : 1000}});\r\n const loanType = watch('loanTypeFromUser');\r\n let anticipo = watch('advanceFromUser');\r\n const opt = loanType === 'Classic' ? 1 : 2;\r\n const importo = anticipo ? (amountToBeFinanced - anticipo).toFixed(2) : amountToBeFinanced.toFixed(2);\r\n /* Durations */\r\n const [currentDuration, setCurrentDuration] = React.useState(document.getElementById('firstThumbValuerange')?.getAttribute('aria-valuenow'));\r\n const getCurrentDuration = () => {\r\n setCurrentDuration(document.getElementById('firstThumbValuerange')?.getAttribute('aria-valuenow'));\r\n }\r\n const [duration, setDuration] = React.useState({min:0, max:0, steps:1});\r\n let lastDuration = localStorage.getItem('duration') && opt === 1 ? parseInt(localStorage.getItem('duration') as string, 10) : duration.min;\r\n // opt === 1 ? lastDuration : duration.min;\r\n // tslint:disable-next-line:no-shadowed-variable\r\n const _durationValues = async(opt:number) => {\r\n getLoanLenghtValue_CAPAsync(\r\n {callerContext: props?.context?.actionContext},\r\n itemId as string,\r\n opt,\r\n 'P'\r\n ).then((result) => {\r\n const durations = result.Lenghts?.split(',');\r\n if (durations) {\r\n setDuration({\r\n min: parseInt(durations[0], 10),\r\n max: parseInt(durations[durations.length - 1], 10),\r\n steps: (parseInt(durations[durations.length - 1], 10) - parseInt(durations[0], 10)) / (durations.length - 1)\r\n });\r\n }\r\n });\r\n };\r\n \r\n\r\n \r\n /* Slider */\r\n const sliderProps: Partial = {\r\n inForm: true,\r\n min: duration.min,\r\n max: duration.max,\r\n orientation: 'horizontal',\r\n showProgressBar: false,\r\n showLabels: true,\r\n showTooltip: true,\r\n step: duration.steps,\r\n labels: [\r\n {\r\n labelId: '',\r\n labelString: `${duration.min}`,\r\n labelPositioning: 'start'\r\n },\r\n {\r\n labelId: '',\r\n labelString: `${duration.max}`,\r\n labelPositioning: 'end'\r\n },\r\n ],\r\n sliderThumbs: [\r\n {\r\n id: 'firstThumbValue',\r\n value: currentDuration ? parseInt(currentDuration as string, 10) : lastDuration\r\n },\r\n ],\r\n };\r\n\r\n /* Handle change of loan type */\r\n // tslint:disable-next-line:no-shadowed-variable\r\n const handleOpt = (opt:number) => {\r\n void _durationValues(opt);\r\n if (opt === 2 && sliderProps && sliderProps.sliderThumbs) {\r\n sliderProps.sliderThumbs[0].value = duration.min;\r\n }\r\n opt === 1 ? localStorage.setItem('loanType', 'Classic') : localStorage.setItem('loanType', 'Flex');\r\n if (document.querySelector('.financing-container.toggled')?.classList.contains('updated')) {\r\n document.querySelector('.financing-container.toggled')?.classList.remove('updated');\r\n setShowSimulation(!showSimulation);\r\n }\r\n };\r\n\r\n /* Show Simulation */\r\n const [showSimulation, setShowSimulation] = React.useState(false);\r\n const [errorCOValue, setErrorCOValue] = React.useState(false);\r\n const [saResultData, setSaResultData] = React.useState({\r\n Tan : '',\r\n Taeg : '',\r\n MonthlyRate : '',\r\n MaxiRate : '',\r\n AmountDue : '',\r\n Interests : '',\r\n Flex: {\r\n duration : 0,\r\n durationTotal : 0,\r\n monthlyRate : 0,\r\n tan : 0,\r\n taeg : 0,\r\n secondPartFirstMonth : 0,\r\n maxiRateFinal : 0,\r\n monthlyRateSecondPart : 0,\r\n tanSecondPart : 0,\r\n taegSecondPart : 0,\r\n }\r\n });\r\n\r\n /* Manage 24h countdown to emptying localStorage */\r\n const now = new Date();\r\n const expiry = now.getTime() + 86400000;\r\n if (localStorage.getItem('expiry') && now.getTime() > Number(localStorage.getItem('expiry'))) {\r\n localStorage.clear();\r\n }\r\n const [legalNotes, setLegalNotes] = React.useState('');\r\n let length = 0;\r\n \r\n const[loading, setLoading] = React.useState(false);\r\n props.changeFinancingStatus && props.changeFinancingStatus(financingToggle);\r\n props.changeSimulationView && props.changeSimulationView(showSimulation);\r\n\r\n /* Submit to simulation, to localStorage && show simulation */\r\n const handleSubmitFinancing = (data:financingInputs) => {\r\n setLoading(true);\r\n\r\n if (duration.min !== duration.max && data.durationFromUser) {\r\n localStorage.setItem('duration', Object.entries(data.durationFromUser).filter(([key]) => key === 'firstThumbValue')[0][1]);\r\n length = parseInt(Object.entries(data.durationFromUser).filter(([key]) => key === 'firstThumbValue')[0][1], 10);\r\n } else if (duration.min === duration.max) {\r\n localStorage.setItem('duration', JSON.stringify(duration.min));\r\n length = duration.min;\r\n } else if (opt === 1 && !data.durationFromUser && lastDuration.toString() !== localStorage.getItem('duration')) {\r\n localStorage.setItem('duration', JSON.stringify(duration.min));\r\n length = duration.min;\r\n } else if (opt === 1 && !data.durationFromUser && lastDuration.toString() === localStorage.getItem('duration')) {\r\n length = parseInt(localStorage.getItem('duration') as string, 10);\r\n }\r\n\r\n euroTax_CAPAsync(\r\n {callerContext: props?.context?.actionContext},\r\n itemId as string,\r\n itemConfiguration ? itemConfiguration : ''\r\n ).then((euroTax) => {\r\n getCOValue_CAPAsync(\r\n {callerContext: props?.context?.actionContext},\r\n itemId as string,\r\n opt,\r\n 'P',\r\n '', // orderID on orderdetails, unused elsewhere\r\n length,\r\n Number(importo),\r\n finalPrice as number,\r\n euroTax.EuroTaxCode as string\r\n ).then((result) => {\r\n setShowSimulation(true);\r\n if (result && result.VarRates && result.VarRates.length === 0) {\r\n setSaResultData({\r\n Tan: result.Tan as string,\r\n Taeg: result.Taeg as string,\r\n MonthlyRate: result.MonthlyRate as string,\r\n MaxiRate: result.MaxiRate as string,\r\n AmountDue: result.AmountDue as string,\r\n Interests: result.Interests as string,\r\n Flex: {\r\n duration: 0,\r\n durationTotal: 0,\r\n monthlyRate: 0,\r\n tan: 0,\r\n taeg: 0,\r\n secondPartFirstMonth: 0,\r\n maxiRateFinal: 0,\r\n monthlyRateSecondPart: 0,\r\n tanSecondPart: 0,\r\n taegSecondPart: 0,\r\n },\r\n });\r\n localStorage.setItem('tan', result.Tan as string);\r\n localStorage.setItem('taeg', result.Taeg as string);\r\n } else if (result && result.VarRates && result.VarRates.length > 0) {\r\n setSaResultData({\r\n Tan: result.Tan as string,\r\n Taeg: result.Taeg as string,\r\n MonthlyRate: result.MonthlyRate as string,\r\n MaxiRate: result.MaxiRate as string,\r\n AmountDue: result.AmountDue as string,\r\n Interests: result.Interests as string,\r\n Flex: {\r\n duration: result.VarRates[0].ARata,\r\n durationTotal: result.VarRates[1].ARata,\r\n monthlyRate: result.VarRates[0].ImportoRata,\r\n tan: result.VarRates[0].Tan,\r\n taeg: result.VarRates[0].Taeg,\r\n secondPartFirstMonth: result.VarRates[1].DaRata,\r\n maxiRateFinal: result.VarRates[0].CapitaleResiduo,\r\n monthlyRateSecondPart: result.VarRates[1].ImportoRata,\r\n tanSecondPart: result.VarRates[1].Tan,\r\n taegSecondPart: result.VarRates[1].Taeg,\r\n },\r\n });\r\n localStorage.setItem('tan', result.VarRates[0].Tan.toString());\r\n localStorage.setItem('taeg', result.VarRates[0].Taeg.toString());\r\n localStorage.setItem('max-rata-finale', result?.VarRates[0]?.CapitaleResiduo.toString())\r\n }\r\n anticipo = data.advanceFromUser;\r\n localStorage.setItem('importo', importo);\r\n localStorage.setItem('expiry', expiry.toString());\r\n localStorage.setItem('quotaNum', result.QuotationNumber.toString());\r\n localStorage.setItem('productId', itemId as string);\r\n localStorage.setItem('advance', String(data.advanceFromUser));\r\n localStorage.setItem('interests', result.Interests as string);\r\n localStorage.setItem('rata-mensile', result.MonthlyRate as string);\r\n localStorage.setItem('secciUrl', result.SecciUrl as string);\r\n localStorage.setItem('finalPrice', finalPrice?.toString() as string);\r\n localStorage.setItem('confirmDepositAmt', confirmDepositAmt?.toString() as string);\r\n localStorage.setItem('amount-due-total', result.AmountDue as string);\r\n localStorage.setItem('interests', result.Interests as string);\r\n setLegalNotes(result.LegalNotes as string);\r\n opt === 1 ? localStorage.setItem('loanType', 'Classic') : localStorage.setItem('loanType', 'Flex');\r\n document.querySelector('.financing-container.toggled')?.classList.add('updated');\r\n setErrorCOValue(false);\r\n setLoading(false);\r\n }).catch( err => {\r\n setErrorCOValue(true);\r\n setShowSimulation(false);\r\n setLoading(false);\r\n });\r\n });\r\n };\r\n\r\n setTimeout(() => {\r\n window.dispatchEvent(new Event('resize'));\r\n }, 300);\r\n\r\n React.useEffect(() => {\r\n getCurrentDuration();\r\n void _durationValues(opt);\r\n }, [opt, lastDuration]);\r\n\r\n return (\r\n // tslint:disable-next-line:max-func-body-length\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n ON\r\n
\r\n \r\n
\r\n OFF\r\n \r\n
\r\n {financingToggle ? (\r\n
\r\n
\r\n
\r\n Tipo di finanziamento\r\n
\r\n handleOpt(1)}/>\r\n
\r\n \r\n

{text.standardDesc}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n handleOpt(2)}/>\r\n
\r\n \r\n

{text.baloonDesc}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {showSimulation ? (\r\n
\r\n
\r\n

Prendi visione delle{' '}\r\n Note legali\r\n

{legalNotes}

\r\n {' '}prima di proseguire\r\n

\r\n
\r\n
\r\n ) : ''\r\n }\r\n
\r\n

Importo da finanziare

\r\n € {importo && parseFloat(importo) >= 0 ? Number(importo).toLocaleString('it-IT') : Number(amountToBeFinanced.toFixed(2)).toLocaleString('it-IT')}\r\n
\r\n
\r\n
\r\n Anticipo\r\n

{text.advanceDesc}

\r\n
\r\n
\r\n
\r\n (\r\n onChange(v.floatValue)}\r\n // prefix=\"€\"\r\n value={value}\r\n thousandSeparator={'.'}\r\n fixedDecimalScale={true}\r\n />\r\n )}\r\n defaultValue={1000}\r\n name={'advanceFromUser'}\r\n control={control}\r\n rules={{ min: 0, max: amountToBeFinanced }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Durata finanziamento\r\n {duration.min !== duration.max ? (` (${currentDuration ? currentDuration : lastDuration} MESI)`)\r\n : ` (${duration.min} MESI)`\r\n }\r\n

\r\n
\r\n {duration.min === duration.max ? (\r\n
\r\n {duration.min}\r\n
\r\n ) : (\r\n
\r\n getCurrentDuration()} />}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {errorCOValue && (\r\n
\r\n Non ci sono soluzioni disponibili per il finanziamento richiesto, modifica la durata e/o l’importo e scopri il nuovo finanziamento\r\n
\r\n )}\r\n {showSimulation ? (\r\n
\r\n
\r\n
\r\n

Il tuo finanziamento

\r\n

Simulazione non vincolante

\r\n
\r\n
    \r\n
  • \r\n {anticipo ? Number(anticipo).toLocaleString('it-IT') : 0}€\r\n Anticipo\r\n
  • \r\n
  • \r\n {opt === 1 ? localStorage.getItem('duration') : saResultData && saResultData.Flex.duration} MESI\r\n {opt === 1 ? 'Durata del finanziamento' : 'Durata primo periodo'}\r\n
  • \r\n
  • \r\n {saResultData && Number(saResultData.MonthlyRate).toLocaleString('it-IT')}€\r\n Rata mensile\r\n
  • \r\n
  • \r\n {opt === 1 ? saResultData && Number(saResultData.Tan).toLocaleString('it-IT') : saResultData && Number(saResultData.Flex.tan).toLocaleString('it-IT')}%\r\n \r\n
    \r\n
    \r\n Tan\r\n
    \r\n
  • \r\n
  • \r\n {opt === 1 ? saResultData && Number(saResultData.Taeg).toLocaleString('it-IT') : saResultData && Number(saResultData.Flex.taeg).toLocaleString('it-IT')}%\r\n \r\n
    \r\n
    \r\n Taeg\r\n
    \r\n
  • \r\n {opt === 2 ? (\r\n <>\r\n
  • \r\n
    \r\n {saResultData && Number(saResultData.Flex.maxiRateFinal).toLocaleString('it-IT')}€ \r\n \r\n Maxirata finale ({saResultData && saResultData.Flex.secondPartFirstMonth}° Rata)\r\n \r\n
    \r\n
    \r\n

    Oppure potrai scegliere di estinguere l'importo della maxi rata finale tramite finanziamento di:

    \r\n

    \r\n {saResultData && Number(saResultData.Flex.monthlyRateSecondPart).toLocaleString('it-IT')}€\r\n {' '}da{' '}\r\n {saResultData && saResultData.Flex.secondPartFirstMonth}°\r\n {' '}mese a{' '}\r\n {saResultData && saResultData.Flex.durationTotal}°\r\n {' '}mese\r\n \r\n TAN{saResultData && Number(saResultData.Flex.tanSecondPart).toLocaleString('it-IT')}%\r\n

    \r\n
    \r\n \r\n \r\n TAEG{saResultData && Number(saResultData.Flex.taegSecondPart).toLocaleString('it-IT')}%\r\n
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n
  • \r\n \r\n ) : ''\r\n }\r\n
  • \r\n {saResultData && Number(saResultData.AmountDue).toLocaleString('it-IT')}€\r\n Importo totale dovuto\r\n
  • \r\n
  • \r\n {saResultData && Number(saResultData.Interests).toLocaleString('it-IT')}€\r\n Interessi\r\n
  • \r\n
\r\n
\r\n
\r\n ) : ''\r\n }\r\n
\r\n
\r\n ) : ''\r\n }\r\n
\r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\nimport {IOwnerDataProps} from '../utils/utils';\r\nimport { CheckoutSideSimulation } from './components/checkout-side-simulation.component';\r\n\r\n\r\n\r\nconst extraPersonalData = [\r\n 'FirstName_CAP',\r\n 'LastName_CAP',\r\n 'FiscalCode_CAP',\r\n 'Citizenship_CAP',\r\n 'Birthday_CAP',\r\n 'BirthPlace_CAP',\r\n 'OrgName_CAP',\r\n 'VatNum_CAP',\r\n 'Type_CAP',\r\n 'ZipCode_CAP',\r\n 'Address_CAP',\r\n 'City_CAP',\r\n 'Country_CAP',\r\n 'DeliveryMode_CAP',\r\n 'Phone_CAP'\r\n];\r\nconst addressData = [\r\n 'ZipCode_CAP',\r\n 'Address_CAP',\r\n 'City_CAP',\r\n 'Country_CAP',\r\n 'DeliveryMode_CAP',\r\n 'Phone'\r\n];\r\n\r\nexport interface IOrderConfirmationOwnerProps {\r\n ownerData:IOwnerDataProps;\r\n ownerName?:string;\r\n ownerEmail?:string;\r\n}\r\nexport const OrderConfirmationOwnerData = ({ownerData,ownerName,ownerEmail}:IOrderConfirmationOwnerProps) => {\r\n return (\r\n
\r\n

Dati Intestatario

\r\n
\r\n {ownerName}\r\n
\r\n {ownerData.Type_CAP === 'company' && <>Azienda
}\r\n {ownerData.Type_CAP === 'soleproprietorship' && <>Ditta individuale
}\r\n {ownerData && Object.keys(ownerData).filter((i) => !addressData.includes(i) && ownerData[i] !== '' && i !=='Type_CAP').map((item, i) => <>\r\n
{ownerData[item]}
\r\n )}\r\n
{ownerEmail}
\r\n {/** is hidden as shown only on page reload (after some seconds)\r\n
INDIRIZZO DI RESIDENZA
\r\n {ownerData && Object.keys(ownerData).filter((keyName) => addressData.includes(keyName)).map((keyName, i) => (\r\n
{ownerData[keyName]}
\r\n ))}\r\n */}\r\n
\r\n\r\n );\r\n}\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n receiptEmail,\r\n createdDate,\r\n channelReferenceId,\r\n }) => {\r\n return (\r\n \r\n {createdDate}\r\n {channelReferenceId}\r\n {receiptEmail}\r\n \r\n );\r\n};\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, address, pickupDateTimeslot }) => (\r\n \r\n

Dati Intestatario

\r\n {address}\r\n {pickupDateTimeslot}\r\n
\r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n \r\n);\r\n\r\nexport const OrderConfirmationItem: React.FC = ({ groupProps, salesLinesProps, salesLines }) => (\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationItems: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n

Modalità di pagamento del Deposito Cauzionale

\r\n {methods}\r\n
\r\n);\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\nexport interface IGoToMyAccount {\r\n link: string;\r\n}\r\nexport const GoToMyAccount = ({link}:IGoToMyAccount) => {\r\n return (\r\n
\r\n

PER PERFEZIONARE E CONFERMARE IL TUO ORDINE ACCEDI ALLA TUA AREA personale

\r\n Vai all' area personale\r\n
\r\n );\r\n};\r\n\r\nconst OrderConfirmationView: React.FC = props => {\r\n const {\r\n heading,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n payment,\r\n groups,\r\n moduleProps\r\n } = props;\r\n\r\n React.useEffect(() => {\r\n const home = props.context.request.app.routes.home.destinationUrl;\r\n if(!props.context.request.user.isAuthenticated) {\r\n window.location.href = home;\r\n }\r\n }, []);\r\n const salesOrder = props?.data?.orderHydration?.result?.salesOrder;\r\n const salesId = salesOrder?.SalesId;\r\n const transactionId = salesOrder?.Id;\r\n const detailsOrderUrl = props.app.routes.orderDetails.destinationUrl;\r\n const orderid = salesId && salesId!=='' ? `salesid=${salesId}` : `transactionId=${transactionId}`;\r\n const link = `${detailsOrderUrl}?${orderid}`;\r\n // const totalAmount = props?.data?.orderHydration?.result?.salesOrder.TotalAmount;\r\n const deliveryLabel = props.resources.orderSummaryShippingFeeLabel;\r\n\r\n const salesOrderExtProps = salesOrder?.ExtensionProperties;\r\n\r\n // const salesOrderAmountToPay = salesOrderExtProps?.filter(i => i.Key === 'FinalAmount_CAP')[0].Value?.DecimalValue;\r\n const salesOrderChargeLines = salesOrder && salesOrder.SalesLines && salesOrder?.SalesLines[0]?.ChargeLines\r\n && salesOrder?.SalesLines[0]?.ChargeLines;\r\n\r\n const deliveryPrice = salesOrderChargeLines && salesOrderChargeLines.filter(i => i.ChargeCode === 'SHIPMENT')[0]?.Value;\r\n\r\n const deliveryMode = salesOrder && salesOrder.SalesLines && salesOrder.SalesLines[0].DeliveryMode;\r\n const product = props?.data?.orderHydration?.result?.products && props?.data?.orderHydration?.result?.products[0];\r\n const checkoutSideSimulationProps = {\r\n context:props.context,\r\n finalPrice: salesOrder?.NetAmountWithTax,\r\n confirmDepositAmt: product && product.ExtensionProperties && product.ExtensionProperties.filter(i => i.Key === 'ConfirmDepositAmt')[0]?.Value?.DecimalValue,\r\n itemId: salesOrder && salesOrder.SalesLines && salesOrder?.SalesLines[0]?.ItemId,\r\n deliveryAmount: deliveryPrice,\r\n deliveryMode: salesOrder && salesOrder.SalesLines && salesOrder.SalesLines[0].DeliveryMode,\r\n deliveryLabel:props.resources.orderSummaryShippingFeeLabel\r\n };\r\n const compiledFields = salesOrderExtProps?.filter(item => item.Key && extraPersonalData.indexOf(item.Key) > -1);\r\n const [ownerData, setOwnerData] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n const compiledFieldsData:[] = [];\r\n if(compiledFields) {\r\n compiledFields.map((compiledField) => {\r\n const values = [compiledField?.Value?.StringValue, compiledField?.Value?.IntegerValue,compiledField?.Value?.BooleanValue];\r\n if (compiledField.Key) {\r\n compiledFieldsData[compiledField.Key] = values.filter((value) => value !== null)[0];\r\n }\r\n });\r\n setOwnerData(compiledFieldsData);\r\n }\r\n }, []);\r\n\r\n const ownerInfo = {\r\n ownerData:ownerData,\r\n ownerName:props.context.request.user.name,\r\n ownerEmail:props.salesOrder?.ReceiptEmail\r\n }\r\n\r\n if(props.context.request.user.isAuthenticated) {\r\n return (\r\n
\r\n
\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n \r\n

Riepilogo

\r\n \r\n
\r\n

{deliveryLabel}

\r\n

\r\n Hai scelto:\r\n {deliveryMode !== 'Ritiro' ? ` ${deliveryMode} ${deliveryPrice ? deliveryPrice: '0'}€` : ' Punto di ritiro'}\r\n

\r\n
\r\n {payment && }\r\n
\r\n
\r\n
\r\n
\r\n {groups && }\r\n {/* @ts-ignore */}\r\n \r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return
Effettua Login per visualizzare l'ordine
\r\n }\r\n\r\n};\r\n\r\nexport default OrderConfirmationView;","import React from 'react';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IOrderDetailsConfig } from './../../../definition-extensions/order-details.ext.props.autogenerated';\r\n\r\ninterface ISalesorderStatus {\r\n config: IOrderDetailsConfig;\r\n salesOrderStatus: number | null;\r\n}\r\n\r\nexport const OrderCancel = ({config, salesOrderStatus}:ISalesorderStatus) => {\r\n let label = '';\r\n let tooltip = '';\r\n // console.log(config);\r\n if (salesOrderStatus !== null && salesOrderStatus < 8) {\r\n // Before 'Spedito' State\r\n label = 'Richiesta annullamento';\r\n tooltip = config.requestOrderCanceling as string;\r\n // action = annullare;\r\n } else if (salesOrderStatus !== null && salesOrderStatus >= 8) {\r\n // 'Consignato' State\r\n label = 'Richiesta reso';\r\n tooltip = config.requestOrderReturn as string;\r\n // action = rendere;\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {label}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};","import {ICoreContext} from '@msdyn365-commerce/core';\r\nimport {/*AsyncResult, callActionOrExecute, */CommerceProperty/*, IContext*/} from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport {changeAddressByTransactionId_CAPAsync} from '../../../../../actions/CapServices_DataActionExtension.g';\r\nimport {IOrderDetailsResources} from '../../../definition-extensions/order-details.ext.props.autogenerated';\r\nimport {getSalesIdByTransactionId_CAPAsync} from '../../../../../actions/Ros_DataActionExtension.g';\r\ninterface ICustomValues {\r\n AddressType_CAP:string;\r\n Address_CAP: string;\r\n City_CAP: string;\r\n ZipCode_CAP: string;\r\n Country_CAP: string;\r\n Phone_CAP: string;\r\n}\r\n\r\nexport interface IAddressProps {\r\n context: ICoreContext;\r\n transactionId: string | undefined;\r\n salesOrderExtProps:CommerceProperty[] | undefined;\r\n fullAddress:string|undefined;\r\n resources:IOrderDetailsResources;\r\n addressName?: string;\r\n deliveryMode?: string;\r\n}\r\nconst _changeShippingAddress = async(context:ICoreContext,transactionId: string,data:ICustomValues) => {\r\n const apiData = {\r\n context:context,\r\n transactionId:transactionId,\r\n deliveryName:context.request.user.name ? context.request.user.name : '-',\r\n address:data.Address_CAP,\r\n city:data.City_CAP,\r\n countryRegionId:'ITA',\r\n zipCode:data.ZipCode_CAP,\r\n phone:data.Phone_CAP\r\n };\r\n\r\n const getUrlForSalesId = async() => {\r\n await getSalesIdByTransactionId_CAPAsync({ callerContext: apiData.context.actionContext }, apiData.transactionId).then((result) => {\r\n if(result && typeof result === 'string') {\r\n const orderDetailUrl = apiData.context.request.app.routes.orderDetails.destinationUrl;\r\n window.location.href = `${location.origin}${orderDetailUrl}?salesId=${result}`;\r\n return;\r\n } else {\r\n setTimeout(() => {\r\n getUrlForSalesId();\r\n },30000);\r\n }\r\n });\r\n };\r\n changeAddressByTransactionId_CAPAsync({ callerContext: apiData.context.actionContext }, apiData.transactionId, apiData.deliveryName, apiData.address, apiData.city, apiData.countryRegionId, apiData.zipCode, apiData.phone).\r\n then(async(res) => {\r\n if(res.Status) {\r\n getUrlForSalesId();\r\n }\r\n }\r\n );\r\n};\r\nconst OrderDetailsAddress = (props:IAddressProps) => {\r\n const {context, transactionId, resources, salesOrderExtProps,deliveryMode,addressName,fullAddress} = props;\r\n const modifiedAddress_CAP = salesOrderExtProps?.filter(i => i.Key === 'ModifiedAddress_CAP')[0]?.Value?.StringValue;\r\n const [addressChoosen,setAddressChoosen] = React.useState(modifiedAddress_CAP);\r\n const [modifyAddress, setModifyAddress] = React.useState(false);\r\n const [loading,setLoading] = React.useState(false);\r\n const { register, handleSubmit, watch, errors, setValue } = useForm({\r\n defaultValues: {\r\n AddressType_CAP:'sameasowner',\r\n Country_CAP:'Italia'\r\n }\r\n });\r\n const onSubmit = async(data:ICustomValues) => {\r\n if(transactionId) {\r\n if(data.Address_CAP) {\r\n setLoading(true);\r\n } else {\r\n setModifyAddress(false);\r\n setAddressChoosen('1');\r\n }\r\n\r\n // repeat same address for same address choice\r\n const addressDef = salesOrderExtProps?.filter(i => i.Key === 'Address_CAP')[0]?.Value?.StringValue;\r\n const cityDef = salesOrderExtProps?.filter(i => i.Key === 'City_CAP')[0]?.Value?.StringValue;\r\n const zipCodeDef = salesOrderExtProps?.filter(i => i.Key === 'ZipCode_CAP')[0]?.Value?.StringValue;\r\n const phoneDef = salesOrderExtProps?.filter(i => i.Key === 'Phone_CAP')[0]?.Value?.StringValue;\r\n data.Address_CAP = data.Address_CAP ? data.Address_CAP : (addressDef ? addressDef : '');\r\n data.City_CAP = data.City_CAP ? data.City_CAP : (cityDef ? cityDef : '');\r\n data.ZipCode_CAP = data.ZipCode_CAP ? data.ZipCode_CAP : (zipCodeDef ? zipCodeDef : '');\r\n data.Phone_CAP = data.Phone_CAP ? data.Phone_CAP : (phoneDef ? phoneDef : '');\r\n\r\n void _changeShippingAddress(context, transactionId, data);\r\n // setModifyAddress(false);\r\n //\r\n }\r\n };\r\n const _onModify = () => {\r\n setModifyAddress(true);\r\n setValue('AddressType_CAP', 'shipping', { shouldDirty: true });\r\n }\r\n const _renderInput=(name:string,label:string,required:boolean,errorMessage:string, pattern?:RegExp, disabled?:boolean, format?:string): JSX.Element => {\r\n return (\r\n
\r\n \r\n {format &&
({format})
}\r\n {errors[name] && {errorMessage}}\r\n \r\n
\r\n );\r\n };\r\n const typeSelected:string = watch('AddressType_CAP');\r\n if(deliveryMode!=='Ritiro') {\r\n return (\r\n <>\r\n
Indirizzo di spedizione
\r\n {((addressChoosen && addressChoosen === '1') && !modifyAddress) && (\r\n \r\n )}\r\n
\r\n {\r\n ((addressChoosen && addressChoosen === '0') || modifyAddress) ? (\r\n
\r\n {!modifyAddress &&\r\n
\r\n \r\n \r\n
\r\n }\r\n {(typeSelected === 'shipping' || modifyAddress) && (\r\n <>\r\n {_renderInput('Address_CAP',`${resources.addressStreetLabel}`,true,'Inserisci indirizzo corretto',undefined)}\r\n {_renderInput('City_CAP',`${resources.addressCityLabel}`,true,'Inserisci città',undefined)}\r\n {_renderInput('ZipCode_CAP',`${resources.addressZipCodeLabel}`,true,'Inserisci codice postale',undefined)}\r\n {_renderInput('Country_CAP',`${resources.addressThreeLetterISORegionNameLabel}`,true,'Inserisci paese',undefined,true)}\r\n {_renderInput('Phone_CAP',`${resources.addressPhoneLabel} *`,true,'Inserisci telefono',undefined)}\r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n ) : (\r\n
\r\n {fullAddress}\r\n
\r\n )\r\n }\r\n \r\n\r\n );\r\n } else {\r\n return (\r\n <>\r\n
Punto di ritiro
\r\n
\r\n
Hai scelto di ricevere la tua auto presso punto di ritiro:
\r\n
{addressName}
\r\n
{fullAddress}
\r\n
\r\n \r\n )\r\n }\r\n};\r\n\r\nexport default OrderDetailsAddress;","// @ts-nocheck\r\nimport {ICoreContext, RichTextComponent} from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nimport {addAttachmentString_CAPAsync, deleteAttachment_CAPAsync, getAttachmentList_CAPAsync} from '../../../../../actions/CapServices_DataActionExtension.g';\r\nexport interface IDocs {\r\n context:ICoreContext;\r\n salesId: string|undefined;\r\n transactionId: string|undefined;\r\n}\r\n\r\n// @ts-ignore\r\nexport const OrderDetailsDocuments = (docProps) => {\r\n const attachmentData = {\r\n ic: [],\r\n fc: [],\r\n rd:[],\r\n af:[]\r\n };\r\n const [fileList, setFileList] = React.useState({\r\n ic: [],\r\n fc: [],\r\n rd:[],\r\n af:[]\r\n });\r\n\r\n React.useEffect(() => {\r\n void getDocs(docProps);\r\n },[]);\r\n const inputFileIC = React.useRef(null);\r\n const inputFileFC = React.useRef(null);\r\n const inputFileRD = React.useRef(null);\r\n const inputFileAF = React.useRef(null);\r\n const fileTypes = ['ic','fc','rd','af'];\r\n const getDocs = async(docProps) => {\r\n await Promise.all(fileTypes.map(async (fileType) => {\r\n await getAttachmentList_CAPAsync({callerContext: docProps.context.actionContext}, docProps.transactionId, fileType, '-').then((result) => {\r\n // attachmentData[fileType] = result;\r\n result.map((file) => {\r\n attachmentData[fileType].push({\r\n AttachmentFileName:file.AttachmentFileName\r\n });\r\n });\r\n });\r\n })).then(() => {\r\n setFileList(attachmentData);\r\n });\r\n };\r\n\r\n const readFileDataAsBase64 = async(e: React.FormEvent,fileType) => {\r\n const file = e.target.files[0];\r\n // console.log(docProps);\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = async(event) => {\r\n resolve(event?.target?.result);\r\n const base64result:string = event?.target?.result;\r\n const attachmentBody = base64result.split('base64,')[1];\r\n await addAttachmentString_CAPAsync({callerContext: docProps.context.actionContext}, docProps.transactionId, `${fileType}_${file.name}`, attachmentBody,fileType).\r\n then( (res) => {\r\n if(res.Status === true) {\r\n setFileList(prevState => (\r\n {...prevState,\r\n [fileType]: [...prevState[fileType],\r\n {AttachmentFileName:`${fileType}_${file.name}`}]\r\n }));\r\n } else {\r\n console.log('error');\r\n }\r\n }\r\n );\r\n };\r\n\r\n reader.onerror = (err) => {\r\n reject(err);\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n };\r\n const onButtonClick = (type:string) => {\r\n if(type === 'ic' && inputFileIC !== null && inputFileIC.current !== null) {\r\n inputFileIC.current.click();\r\n }\r\n if(type === 'fc' && inputFileFC !== null && inputFileFC.current !== null) {\r\n inputFileFC.current.click();\r\n }\r\n if(type === 'rd' && inputFileRD !== null && inputFileRD.current !== null) {\r\n inputFileRD.current.click();\r\n }\r\n if(type === 'af' && inputFileAF !== null && inputFileAF.current !== null) {\r\n inputFileAF.current.click();\r\n }\r\n };\r\n const deleteFile = async(attachmentFilename,fileType) => {\r\n await deleteAttachment_CAPAsync({callerContext: docProps.context.actionContext}, docProps.transactionId, attachmentFilename).then((res) => {\r\n if(res.Status === true) {\r\n let filteredArray = fileList[fileType].filter(key => key.AttachmentFileName !== attachmentFilename);\r\n setFileList(prevState => (\r\n {...prevState,\r\n [fileType]: filteredArray\r\n }));\r\n } else {\r\n console.log('error');\r\n }\r\n }\r\n );\r\n };\r\n return (\r\n
\r\n
Dati intestatario
\r\n

I tuoi documenti

\r\n
*Documenti obbligatori.
\r\n Da compilare esclusivamente con i dati dell’intestatario.
\r\n
\r\n
Carta d’identità*
\r\n
\r\n {\r\n fileList && fileList.ic && fileList.ic.map((file,index) => {\r\n if (file.AttachmentFileName && file.AttachmentFileName !== 'NotFound' && file.AttachmentFileName !== '') {\r\n return (\r\n
\r\n {file.AttachmentFileName}\r\n {/* tslint:disable-next-line:react-this-binding-issue */}\r\n \r\n
\r\n )\r\n }\r\n })\r\n }\r\n {/* tslint:disable-next-line:react-this-binding-issue */}\r\n \r\n readFileDataAsBase64(event,'ic')} />\r\n
\r\n
\r\n
\r\n
Codice fiscale*
\r\n
\r\n {\r\n fileList && fileList.fc && fileList.fc.map((file,index) => {\r\n if (file.AttachmentFileName && file.AttachmentFileName !== 'NotFound' && file.AttachmentFileName !== '') {\r\n return (\r\n
\r\n {file.AttachmentFileName}\r\n {/* tslint:disable-next-line:react-this-binding-issue */}\r\n \r\n
\r\n )\r\n }\r\n })\r\n }\r\n {/* tslint:disable-next-line:react-this-binding-issue */}\r\n \r\n readFileDataAsBase64(event,'fc')} />\r\n
\r\n
\r\n
\r\n
Documenti immatricolazione*\r\n
\r\n {docProps.config.step3aRegistrationDocuments && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n {\r\n fileList && fileList.rd && fileList.rd.map((file,index) => {\r\n if (file.AttachmentFileName && file.AttachmentFileName !== 'NotFound' && file.AttachmentFileName !== '') {\r\n return (\r\n
\r\n {file.AttachmentFileName}\r\n {/* tslint:disable-next-line:react-this-binding-issue */}\r\n \r\n
\r\n )\r\n }\r\n })\r\n }\r\n {/* tslint:disable-next-line:react-this-binding-issue */}\r\n \r\n readFileDataAsBase64(event,'rd')} />\r\n
\r\n
\r\n
\r\n
File aggiuntivi
\r\n
\r\n {\r\n fileList && fileList.af && fileList.af.map((file,index) => {\r\n if (file.AttachmentFileName && file.AttachmentFileName !== 'NotFound' && file.AttachmentFileName !== '') {\r\n return (\r\n
\r\n {file.AttachmentFileName}\r\n {/* tslint:disable-next-line:react-this-binding-issue */}\r\n \r\n
\r\n )\r\n }\r\n })\r\n }\r\n {/* tslint:disable-next-line:react-this-binding-issue */}\r\n \r\n readFileDataAsBase64(event,'af')} />\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default OrderDetailsDocuments;","import {ICoreContext} from '@msdyn365-commerce/core';\r\nimport {CommerceProperty} from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\nimport {IOrderDetailsConfig, IOrderDetailsResources as IOrderDetailsExtentionResources} from '../../../definition-extensions/order-details.ext.props.autogenerated';\r\nimport OrderDetailsAddress from './order-details--address';\r\nimport {OrderDetailsDocuments} from './order-details--documents';\r\n\r\nexport interface IDocAddress {\r\n context:ICoreContext;\r\n salesId: string|undefined;\r\n transactionId: string|undefined;\r\n salesOrderExtProps:CommerceProperty[] | undefined;\r\n fullAddress:string|undefined;\r\n resources:IOrderDetailsExtentionResources;\r\n config:IOrderDetailsConfig,\r\n deliveryMode:string|undefined,\r\n addressName:string|undefined\r\n}\r\nconst OrderDetailsDocumentsAddresses = (docAddress:IDocAddress) => {\r\n const {\r\n context,\r\n salesId,\r\n transactionId,\r\n salesOrderExtProps,\r\n fullAddress,\r\n resources,\r\n config,\r\n deliveryMode,\r\n addressName\r\n } = docAddress;\r\n const docProps = {\r\n context:context,\r\n salesId:salesId,\r\n transactionId:transactionId,\r\n config:config\r\n };\r\n const addressProps = {\r\n context: context,\r\n transactionId: transactionId,\r\n salesOrderExtProps:salesOrderExtProps,\r\n fullAddress:fullAddress,\r\n resources: resources,\r\n deliveryMode:deliveryMode,\r\n addressName:addressName\r\n };\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default OrderDetailsDocumentsAddresses;","import * as React from 'react';\r\n\r\nimport { modifyOrder_CAPAsync } from '../../../../../actions/CapServices_DataActionExtension.g';\r\nimport { getSantanderLink_c_CAPAsync } from '../../../../../actions/Santander_DataActionExtension.g';\r\nimport { IFinancingProps } from '../../../utils/utils';\r\nimport { Financing } from '../financing.component';\r\nimport { useForm } from 'react-hook-form';\r\n\r\ninterface ICustomValues {\r\n Privacy_CAP: boolean;\r\n}\r\n\r\nconst OrderDetailsFinancing = (financingProps:IFinancingProps) => {\r\n const [madeChoiceFinancing, setMadeChoiceFinancing] = React.useState(false);\r\n const { context, transactionId, finalPrice, ownerData, productExtensionProperties } = financingProps;\r\n\r\n const transactionIdString = transactionId ? transactionId : '';\r\n\r\n const toggleStateOpened = localStorage.getItem('toggleState') === 'opened';\r\n\r\n const anticipoString = localStorage.getItem('advance');\r\n const anticipo = anticipoString && Number(localStorage.getItem('advance'));\r\n\r\n const importoString = localStorage.getItem('importo');\r\n const importoNumber = importoString && parseFloat(importoString);\r\n const importo = importoNumber && Math.round((importoNumber + Number.EPSILON) * 100) / 100;\r\n\r\n const confirmDepositAmt = productExtensionProperties?.filter(i => i.Key === 'ConfirmDepositAmt')[0]?.Value?.DecimalValue;\r\n // let amountToBeFinanced = finalPrice && confirmDepositAmt && Math.round(((finalPrice - confirmDepositAmt) + Number.EPSILON) * 100) / 100;\r\n // const finalAmountWithoutFinancing = confirmDepositAmt && amountToBeFinanced && finalPrice && Math.round(((finalPrice - amountToBeFinanced - confirmDepositAmt) + Number.EPSILON) * 100) / 100;\r\n const finalAmountFinancingOFF = finalPrice && confirmDepositAmt && (finalPrice - confirmDepositAmt).toFixed(2);\r\n const prevNum = localStorage.getItem('quotaNum');\r\n const seccirUrl = localStorage.getItem('secciUrl') as string;\r\n let externalLink = '';\r\n\r\n const [hasSeenSecci, setHasSeenSecci] = React.useState(false);\r\n const { register, handleSubmit, reset, watch } = useForm();\r\n const secci:string = watch('secci');\r\n\r\n const _viewContract = async() => {\r\n setHasSeenSecci(true);\r\n };\r\n const customerData = {\r\n address: ownerData && ownerData.Address_CAP,\r\n zipCode: ownerData && ownerData.ZipCode_CAP,\r\n province: ownerData && ownerData.Country_CAP,\r\n city: ownerData && ownerData.City_CAP,\r\n tel: ownerData && ownerData.Phone_CAP,\r\n mail: context.request.user.emailAddress,\r\n firstName: context.request.user.firstName,\r\n lastName: context.request.user.lastName,\r\n fiscCode: ownerData && ownerData.FiscalCode_CAP,\r\n nationality: ownerData && ownerData.CitezenShip_CAP,\r\n }\r\n const [financingStatus, setFinancingStatus] = React.useState(toggleStateOpened);\r\n const [showSimulation, setShowSimulation] = React.useState(false);\r\n\r\n const proceedStateOne = () => {\r\n if (financingStatus) {\r\n setMadeChoiceFinancing(true);\r\n } else {\r\n modifyOrder_CAPAsync(\r\n {callerContext: context?.actionContext},\r\n transactionIdString,\r\n 0,\r\n finalAmountFinancingOFF ? Number(finalAmountFinancingOFF) : 0,\r\n 0,\r\n 2,\r\n ''\r\n );\r\n setTimeout(() => {\r\n location.reload();\r\n }, 300);\r\n }\r\n }\r\n React.useEffect(() => {\r\n if(ownerData?.Type_CAP === 'company') {\r\n void proceedStateOne();\r\n }\r\n }, [ownerData?.Type_CAP]);\r\n getSantanderLink_c_CAPAsync(\r\n {callerContext: financingProps?.context?.actionContext},\r\n prevNum as string,\r\n 'P',\r\n customerData?.address as string,\r\n customerData?.zipCode as string,\r\n customerData?.province as string,\r\n customerData?.city as string,\r\n customerData?.tel as string,\r\n customerData?.mail as string,\r\n customerData?.firstName as string,\r\n customerData?.lastName as string,\r\n customerData?.fiscCode as string,\r\n customerData?.nationality as string,\r\n window.location.href,\r\n ).then((result) => {\r\n externalLink = result.Link as string;\r\n });\r\n\r\n const proceedToExternal = async(data:ICustomValues) => {\r\n reset(data);\r\n\r\n await modifyOrder_CAPAsync(\r\n {callerContext: context?.actionContext}, \r\n transactionIdString,\r\n importo as number,\r\n anticipo as number,\r\n 0,\r\n 1,\r\n prevNum as string\r\n ).then(() => {\r\n window.open(externalLink, \"_self\");\r\n });\r\n }\r\n return (\r\n <>\r\n {!madeChoiceFinancing ? (\r\n
\r\n setFinancingStatus(financingStatus)}\r\n changeSimulationView={(showSimulation) => setShowSimulation(showSimulation)}\r\n />\r\n \r\n
\r\n ) : (\r\n
\r\n
\r\n

Richiesta di finanziamento

\r\n
\r\n

\r\n Abbiamo generato il modulo SECCI.
\r\n Visualizzalo QUI e conferma di voler proseguire.\r\n

\r\n
\r\n \r\n
\r\n
Confermando il finanziamento prendo atto che il processo prosegue sulla piattaforma digitale di Santander Consumer Bank ed autorizzo il trasferimento dei miei dati personali per la gestione della presente offerta.
\r\n
\r\n \r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default OrderDetailsFinancing;","import { IOrderInformation } from '@msdyn365-commerce-modules/order-management';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst OrderDetailsInfomations: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n createdDate,\r\n}) => (\r\n \r\n

I tuoi ordini

\r\n
{salesId}
\r\n {receiptId}\r\n
Data creazione ordine: {createdDate}
\r\n {/*channelReferenceId*/}\r\n
\r\n);\r\nexport default OrderDetailsInfomations;","import * as React from 'react';\r\n\r\nimport {\r\n IGroup,\r\n IGroups,\r\n ISalesLine\r\n} from '@msdyn365-commerce-modules/order-management';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, ...other }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderDetailsGroup: React.FC = ({ groupProps, salesLinesProps, salesLines, ...other }) => {\r\n // @ts-ignore\r\n salesLines[0].data.salesLine.TotalOrderAmount = other.totalAmount;\r\n return (\r\n \r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n \r\n {salesLine.salesStatus}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport const OrderDetailsProduct: React.FC = ({ groupsProps, groups, ...other}) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport default OrderDetailsProduct;","import {ICoreContext} from '@msdyn365-commerce/core';\r\nimport {CommerceProperty} from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\nimport {getAttachmentList_CAPAsync} from '../../../../../actions/CapServices_DataActionExtension.g';\r\nimport {IRetailTransactionTableAttachment_CAP} from '../../../../../actions/CapServices_DataServiceEntities.g';\r\nimport {IOwnerDataProps} from '../../../utils/utils';\r\n\r\nexport interface IOrderRecapProps {\r\n context: ICoreContext;\r\n ownerData: IOwnerDataProps;\r\n salesOrderExtProps:CommerceProperty[] | undefined;\r\n fullAddress:string|undefined;\r\n deliveryMode:string | undefined;\r\n deliveryPrice?: number;\r\n transactionId:string | undefined;\r\n financingSaPracticeNum:string | undefined;\r\n financingSaStatus:string | undefined;\r\n}\r\nexport interface IDocProps {\r\n context: ICoreContext;\r\n transactionId:string | undefined;\r\n}\r\nconst OrderDetailsRecap = (orderRecapProps:IOrderRecapProps) => {\r\n const {context,ownerData,fullAddress,deliveryMode,deliveryPrice,transactionId,financingSaPracticeNum} = orderRecapProps;\r\n\r\n const ownerName = context.request.user.name;\r\n const [isExpanded, setIsExpanded] = React.useState(false);\r\n const handleExpand = (e:React.SyntheticEvent) => {\r\n if (e.currentTarget.getAttribute('aria-expanded') === 'true') {\r\n e.currentTarget.setAttribute('aria-expanded', 'false');\r\n e.currentTarget?.nextElementSibling?.classList.remove('show');\r\n } else if (e.currentTarget.getAttribute('aria-expanded') === 'false') {\r\n setIsExpanded(!isExpanded);\r\n e.currentTarget.setAttribute('aria-expanded', 'true');\r\n e.currentTarget?.nextElementSibling?.classList.add('show');\r\n }\r\n };\r\n const docProps = {\r\n context:context,\r\n transactionId:transactionId\r\n };\r\n const fileTypes = ['ic','fc','rd','af'];\r\n const attachmentData = {\r\n ic: [],\r\n fc: [],\r\n rd:[],\r\n af:[]\r\n };\r\n const [fileList, setFileList] = React.useState({\r\n ic: [],\r\n fc: [],\r\n rd:[],\r\n af:[]\r\n });\r\n const getDocs = async(docProps:IDocProps) => {\r\n await Promise.all(fileTypes.map(async (fileType) => {\r\n await getAttachmentList_CAPAsync({callerContext: docProps.context.actionContext}, docProps.transactionId ? docProps.transactionId : '', fileType, '-').then((result) => {\r\n // attachmentData[fileType] = result;\r\n result.map((file) => {\r\n attachmentData[fileType].push({\r\n AttachmentFileName:file.AttachmentFileName\r\n });\r\n });\r\n });\r\n })).then(() => {\r\n setFileList(attachmentData);\r\n });\r\n };\r\n React.useEffect(() => {\r\n void getDocs(docProps);\r\n },[]);\r\n return
\r\n

Riepilogo

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {ownerName}
\r\n {ownerData.Type_CAP === 'company' && <>Azienda
}\r\n {ownerData.Type_CAP === 'soleproprietorship' && <>Ditta individuale
}\r\n {Object.keys(ownerData).filter((i) => ownerData[i] !== '' && i !=='Type_CAP').map((item, i) => <>\r\n {ownerData[item]}
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{fullAddress}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Hai scelto: {deliveryMode !== 'Ritiro' ? ` ${deliveryMode} ${deliveryPrice ? deliveryPrice: '0'}€`: ' Punto di ritiro'}

\r\n
\r\n
\r\n
\r\n {\r\n financingSaPracticeNum && (\r\n
\r\n
\r\n \r\n
\r\n

\r\n Numero pratica: {financingSaPracticeNum}\r\n

\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Carta d’identità*
\r\n
\r\n {\r\n fileList && fileList.ic && fileList.ic.map((file: IRetailTransactionTableAttachment_CAP,index) => {\r\n if (file.AttachmentFileName && file.AttachmentFileName !== 'NotFound' && file.AttachmentFileName !== '') {\r\n return
\r\n {file.AttachmentFileName}\r\n
\r\n } else {\r\n return;\r\n }\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
Codice fiscale*
\r\n
\r\n {\r\n fileList && fileList.fc && fileList.fc.map((file: IRetailTransactionTableAttachment_CAP,index) => {\r\n if (file.AttachmentFileName && file.AttachmentFileName !== 'NotFound' && file.AttachmentFileName !== '') {\r\n return
\r\n {file.AttachmentFileName}\r\n
\r\n } else {\r\n return\r\n }\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
Documenti immatricolazione*
\r\n
\r\n {\r\n fileList && fileList.rd && fileList.rd.map((file: IRetailTransactionTableAttachment_CAP,index) => {\r\n if (file.AttachmentFileName && file.AttachmentFileName !== 'NotFound' && file.AttachmentFileName !== '') {\r\n return
\r\n {file.AttachmentFileName}\r\n
\r\n } else {\r\n return\r\n }\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
File aggiuntivi
\r\n
\r\n {\r\n fileList && fileList.af && fileList.af.map((file: IRetailTransactionTableAttachment_CAP,index) => {\r\n if (file.AttachmentFileName && file.AttachmentFileName !== 'NotFound' && file.AttachmentFileName !== '') {\r\n return
\r\n {file.AttachmentFileName}\r\n
\r\n } else {\r\n return\r\n }\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
;\r\n};\r\n\r\nexport default OrderDetailsRecap;","import * as React from 'react';\r\n\r\nimport { RichTextComponent} from '@msdyn365-commerce/core';\r\nimport { IOrderDetailsConfig as IOrderDetailsExtentionConfig } from './../../../definition-extensions/order-details.ext.props.autogenerated';\r\n\r\ninterface ISubStepInfos {\r\n salesOrderStatus: number |null;\r\n config: IOrderDetailsExtentionConfig;\r\n salesOrderAmountToPay:string | number;\r\n salesOrderLoanAmount:string | number;\r\n financingSaStatus: string | undefined;\r\n}\r\n\r\nconst OrderDetailsSubstepInfos = ({\r\n salesOrderStatus,\r\n config,\r\n salesOrderAmountToPay,\r\n salesOrderLoanAmount,\r\n financingSaStatus\r\n }: ISubStepInfos) => {\r\n const infobox = (() => {\r\n if (salesOrderStatus === 1) {\r\n return config.step1FinancingInfobox;\r\n } else if (salesOrderStatus === 2 && salesOrderAmountToPay === '') {\r\n return config.step2DocsAddressInfobox;\r\n } else if (salesOrderStatus === 2 && salesOrderAmountToPay !== '' ) {\r\n return config.step2DocsAddressPayInfobox;\r\n } else if (salesOrderStatus === 3) {\r\n return config.step3LoadDocsInfobox;\r\n } else if (salesOrderStatus === 4) {\r\n return config.step4CongratsInfobox;\r\n } else if (salesOrderStatus === 10) {\r\n return config.step10returnRequiredInfobox;\r\n } else if (salesOrderStatus === 11) {\r\n return config.step11returnProcessingInfobox;\r\n } else if (salesOrderStatus === 12) {\r\n return config.step12returnCompleteInfobox;\r\n } else {\r\n return false;\r\n }\r\n })();\r\n const needToBeCompleted = [101,102,105];\r\n const inApprovement = [103,104];\r\n const approved = [106,107,109,111,112,113,114];\r\n const notApproved = [110,108,115,116,117,120,121];\r\n return (\r\n
\r\n {salesOrderStatus && salesOrderStatus === 2 && salesOrderLoanAmount !== '' && (\r\n
\r\n {(needToBeCompleted.indexOf(Number(financingSaStatus)) > -1 || Number(financingSaStatus) === 0 )&& (\r\n \r\n )}\r\n {(inApprovement.indexOf(Number(financingSaStatus)) > -1) && (\r\n \r\n )}\r\n {approved.indexOf(Number(financingSaStatus)) > -1 && (\r\n \r\n )}\r\n {notApproved.indexOf(Number(financingSaStatus)) > -1 && (\r\n \r\n )}\r\n
\r\n )}\r\n {\r\n infobox && (\r\n
\r\n {salesOrderStatus && salesOrderStatus > 9 ? (\r\n
\r\n )\r\n }\r\n {salesOrderStatus === 2 && (salesOrderLoanAmount === '' || (salesOrderLoanAmount !=='' && Number(financingSaStatus) >= 107)) && (\r\n
\r\n
\r\n
Importo da pagare: {salesOrderAmountToPay.toLocaleString('it-IT')}€
\r\n
\r\n
\r\n
Pagamento
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default OrderDetailsSubstepInfos;","import React from 'react';\r\nimport {RichTextComponent} from '@msdyn365-commerce/core';\r\nimport {IOrderDetailsConfig} from '../../../definition-extensions/order-details.ext.props.autogenerated';\r\nimport CurrentSubStepTitle from '../../../utils/currentSubStepTitle';\r\ninterface ISalesorderStatus {\r\n salesOrderStatus:number | null;\r\n config:IOrderDetailsConfig;\r\n}\r\n\r\nexport const OrderDetailsSubStepper = ({salesOrderStatus, config}:ISalesorderStatus) => {\r\n const currentStep = salesOrderStatus;\r\n if(salesOrderStatus && salesOrderStatus < 10) {\r\n return (\r\n <>\r\n {salesOrderStatus && salesOrderStatus < 5 ? (\r\n <>\r\n
\r\n
\r\n Step {salesOrderStatus}/4\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Lo stato del tuo ordine è: {CurrentSubStepTitle(salesOrderStatus)}\r\n
\r\n
\r\n \r\n )\r\n :\r\n
\r\n

Il mio ordine è

\r\n
\r\n
\r\n \r\n
\r\n
{config.stepper5Title}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
{config.stepper6Title}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
{config.stepper7Title}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
{config.stepper8Title}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
{config.stepper9Title}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n
\r\n {salesOrderStatus && (\r\n
Lo stato del tuo ordine è: {CurrentSubStepTitle(salesOrderStatus)}
\r\n )\r\n }\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import {AsyncResult} from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\nimport { IOrderDetailsViewProps } from '@msdyn365-commerce-modules/order-management';\r\nimport {IOrderDetailsData} from '@msdyn365-commerce-modules/order-management/';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport {IFinancingState} from '../../../actions/get-financing-static-data';\r\nimport { IOrderDetailsProps as IOrderDetailsExtProps } from '../definition-extensions/order-details.ext.props.autogenerated';\r\nimport { OrderCancel } from './components/order-details/order-details--cancel';\r\nimport OrderDetailsDocumentsAddresses from './components/order-details/order-details--documents-address';\r\nimport OrderDetailsFinancing from './components/order-details/order-details--financing';\r\nimport OrderDetailsInformations from './components/order-details/order-details--informations';\r\nimport OrderDetailsProduct from './components/order-details/order-details--product';\r\nimport OrderDetailsRecap from './components/order-details/order-details--recap';\r\nimport OrderDetailsSubstepInfos from './components/order-details/order-details--substep-infos';\r\nimport { OrderDetailsSubStepper } from './components/order-details/order-details--subtepper';\r\n\r\nexport interface IOrderDetailsDataExt extends IOrderDetailsData {\r\n financingStaticData: AsyncResult;\r\n}\r\n\r\nconst extraPersonalData = [\r\n 'FirstName_CAP',\r\n 'LastName_CAP',\r\n 'FiscalCode_CAP',\r\n 'CitezenShip_CAP',\r\n 'Birthday_CAP',\r\n 'BirthPlace_CAP',\r\n 'OrgName_CAP',\r\n 'VatNum_CAP',\r\n 'Type_CAP',\r\n 'ZipCode_CAP',\r\n 'Address_CAP',\r\n 'City_CAP',\r\n 'Country_CAP',\r\n 'DeliveryMode_CAP',\r\n 'Phone_CAP'\r\n];\r\n\r\nconst OrderDetailsView: React.FC> = (\r\n props,\r\n) => {\r\n // Module Props\r\n const {\r\n moduleProps,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n groups,\r\n } = props;\r\n // Using Data\r\n const salesOrder = props?.data?.orderHydration?.result?.salesOrder;\r\n const salesOrderExtProps = salesOrder?.ExtensionProperties;\r\n const salesOrderStatusString = salesOrderExtProps?.filter(i => i.Key === 'SalesOrderStatus_CAP')[0].Value?.StringValue;\r\n const salesOrderStatus = salesOrderExtProps && salesOrderStatusString ? parseFloat(salesOrderStatusString) : null;\r\n /*\r\n salesOrderExtProps && salesOrderExtProps.map((i) => {\r\n console.log(i.Key);\r\n });\r\n */\r\n const extraOrderSummary = {\r\n totalAmount : props?.salesOrder?.GrossAmount\r\n };\r\n const salesOrderAmountToPay = salesOrderExtProps?.filter(i => i.Key === 'FinalAmount_CAP')[0].Value?.DecimalValue;\r\n const salesOrderLoanAmount = salesOrderExtProps?.filter(i => i.Key === 'LoanAmount_CAP')[0].Value?.DecimalValue;\r\n const salesOrderChargeLines = salesOrder && salesOrder.SalesLines && salesOrder?.SalesLines[0]?.ChargeLines\r\n && salesOrder?.SalesLines[0]?.ChargeLines;\r\n // shipping address\r\n // props.data.orderHydration.result.salesOrder.SalesLines[0].ShippingAddress\r\n\r\n const compiledFields = salesOrderExtProps?.filter(item => item.Key && extraPersonalData.indexOf(item.Key) > -1);\r\n const [ownerData, setOwnerData] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n const home = props.context.request.app.routes.home.destinationUrl;\r\n if(!props.context.request.user.isAuthenticated) {\r\n window.location.href = home;\r\n }\r\n }, []);\r\n React.useEffect(() => {\r\n const compiledFieldsData:[] = [];\r\n if(compiledFields) {\r\n compiledFields.map((compiledField) => {\r\n const values = [compiledField?.Value?.StringValue, compiledField?.Value?.IntegerValue,compiledField?.Value?.BooleanValue];\r\n if (compiledField.Key) {\r\n compiledFieldsData[compiledField.Key] = values.filter((value) => value !== null)[0];\r\n }\r\n });\r\n setOwnerData(compiledFieldsData);\r\n }\r\n }, []);\r\n\r\n const docAddress = {\r\n context:props.context,\r\n salesId:props?.data?.orderHydration?.result?.salesOrder?.SalesId,\r\n transactionId:props?.data?.orderHydration?.result?.salesOrder?.Id,\r\n salesOrderExtProps:salesOrderExtProps,\r\n fullAddress: salesOrder && salesOrder.SalesLines && salesOrder?.SalesLines[0]?.ShippingAddress?.FullAddress,\r\n addressName: salesOrder && salesOrder.SalesLines && salesOrder?.SalesLines[0]?.ShippingAddress?.Name,\r\n deliveryMode: salesOrder && salesOrder.SalesLines && salesOrder?.SalesLines[0]?.DeliveryMode,\r\n resources:props.resources,\r\n config:props.config,\r\n };\r\n\r\n const products = props?.data?.orderHydration?.result?.products;\r\n const productDimensionId = products\r\n && products[0].Dimensions?.filter(i => i.DimensionTypeValue === 2)\r\n && products[0].Dimensions?.filter(i => i.DimensionTypeValue === 2)[0].DimensionValue?.DimensionId;\r\n const financingProps = {\r\n context:props.context,\r\n financingStaticTexts: props?.data?.financingStaticData?.result?.financingStaticData,\r\n itemId: (products && products.length > 0) ? products[0]?.ItemId : undefined,\r\n // in the begin the value of NetAmountWithTax is 0 (bug BE), applied workaround\r\n finalPrice: Math.max(Math.abs(salesOrder?.NetAmount || 0) || 0, salesOrder?.NetAmountWithTax || 0),\r\n productExtensionProperties:(products && products.length > 0) ? products[0]?.ExtensionProperties : undefined,\r\n transactionId:props?.data?.orderHydration?.result?.salesOrder ? props?.data?.orderHydration?.result?.salesOrder?.Id : '',\r\n ownerData: ownerData && ownerData,\r\n itemConfiguration:productDimensionId\r\n };\r\n\r\n const orderRecapProps = {\r\n context:props.context,\r\n ownerData: ownerData && ownerData,\r\n salesOrderExtProps:salesOrderExtProps,\r\n fullAddress: salesOrder && salesOrder.SalesLines && salesOrder?.SalesLines[0]?.ShippingAddress?.FullAddress,\r\n deliveryPrice: salesOrderChargeLines && salesOrderChargeLines.filter(i => i.ChargeCode === 'SHIPMENT')[0]?.Value,\r\n deliveryMode: salesOrder && salesOrder.SalesLines && salesOrder.SalesLines[0].DeliveryMode,\r\n transactionId:props?.data?.orderHydration?.result?.salesOrder?.Id,\r\n financingSaPracticeNum:salesOrderExtProps?.filter(i => i.Key === 'PraticeNum_CAP')[0].Value?.StringValue,\r\n financingSaStatus:salesOrderExtProps?.filter(i => i.Key === 'LoanStatus_CAP')[0].Value?.StringValue\r\n };\r\n const orderStepsInfoProps = {\r\n config:props.config,\r\n salesOrderStatus:salesOrderStatus,\r\n salesOrderAmountToPay:salesOrderAmountToPay ? salesOrderAmountToPay:'',\r\n salesOrderLoanAmount:salesOrderLoanAmount ? salesOrderLoanAmount:'',\r\n financingSaStatus:salesOrderExtProps?.filter(i => i.Key === 'LoanStatus_CAP')[0].Value?.StringValue\r\n };\r\n const [showItemDetails, setShowItemDetails] = React.useState(false);\r\n const handleItemDetails = () => {\r\n setShowItemDetails(!showItemDetails);\r\n }\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n
{groups && }
\r\n
handleItemDetails()}>\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {loading}\r\n {alert}\r\n {orderInfomation && }\r\n
\r\n {groups && }\r\n
\r\n \r\n \r\n {salesOrderStatus === 1 && }\r\n {(salesOrderStatus === 2 || salesOrderStatus === 3) && }\r\n {(salesOrderStatus !== null && salesOrderStatus > 3 && salesOrderStatus < 10) && }\r\n {(salesOrderStatus && salesOrderStatus < 9) && }\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default OrderDetailsView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { CheckoutState } from './checkout-state';\n\n/**\n * CheckoutState - action input.\n */\nexport class CheckoutStateInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('CheckoutState', this.apiSettings);\n\n public getCacheObjectType = () => 'CheckoutState';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * CheckoutState - action.\n * @param input\n * @param ctx\n */\nexport async function checkoutStateAction(input: CheckoutStateInput, ctx: IActionContext): Promise {\n return new CheckoutState();\n}\n\n/**\n * CheckoutState - create new input for create action.\n * @param inputData\n */\nconst createInput = (inputData: ICreateActionContext>): IActionInput => {\n return new CheckoutStateInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * CheckoutState - create action.\n */\nexport const checkoutStateActionDataAction = createObservableDataAction({\n action: >checkoutStateAction,\n input: createInput\n});\n\nexport default checkoutStateActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport { Address, GiftCard, TenderLine, TokenizedPaymentCard } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { action, computed, observable } from 'mobx';\n\n/**\n * State information related to what is needed to succesfully perform a checkout.\n */\nexport class CheckoutState {\n @observable private _tokenizedPaymentCard: TokenizedPaymentCard | undefined;\n\n @computed public get tokenizedPaymentCard(): Readonly | undefined {\n return this._tokenizedPaymentCard;\n }\n\n @observable private _tenderLine: TenderLine | undefined;\n\n @computed public get tenderLine(): Readonly | undefined {\n return this._tenderLine;\n }\n\n @observable private _billingAddress: Address | undefined;\n\n @computed public get billingAddress(): Readonly
| undefined {\n return this._billingAddress;\n }\n\n @observable private _shippingAddress: Address | undefined;\n\n @computed public get shippingAddress(): Readonly
| undefined {\n return this._shippingAddress;\n }\n\n @observable private _cardPrefix: string | undefined;\n\n @computed public get cardPrefix(): Readonly | undefined {\n return this._cardPrefix;\n }\n\n @observable private _giftCards: GiftCard[] = [];\n\n @computed public get giftCards(): readonly GiftCard[] {\n return this._giftCards;\n }\n\n @observable private _giftCardExtends: IGiftCardExtend[] = [];\n\n @computed public get giftCardExtends(): readonly IGiftCardExtend[] {\n return this._giftCardExtends;\n }\n\n @observable private _loyaltyCardNumber?: string;\n\n @computed public get loyaltyCardNumber(): Readonly | undefined {\n return this._loyaltyCardNumber;\n }\n\n @observable private _loyaltyAmount: number = 0;\n\n @computed public get loyaltyAmount(): Readonly | number {\n return this._loyaltyAmount;\n }\n\n @observable private _guestCheckoutEmail: string = '';\n\n @computed public get guestCheckoutEmail(): Readonly | string {\n return this._guestCheckoutEmail;\n }\n\n @observable private _isTermsAndConditionAccepted: boolean = false;\n\n @computed public get isTermsAndConditionAccepted(): Readonly | boolean {\n return this._isTermsAndConditionAccepted;\n }\n\n @observable private _customerAccountAmount: number = 0;\n\n @computed public get customerAccountAmount(): Readonly | number {\n return this._customerAccountAmount;\n }\n\n @action\n public updateTokenizedPaymentCard(newTokenizedPaymentCard: TokenizedPaymentCard): void {\n this._tokenizedPaymentCard = newTokenizedPaymentCard;\n }\n\n @action\n public updateTenderLine(newTenderLine: TenderLine | undefined): void {\n this._tenderLine = newTenderLine;\n }\n\n @action\n public updateShippingAddress(newShippingAddress: Address): void {\n this._shippingAddress = newShippingAddress;\n }\n\n @action\n public updateBillingAddress(newBillingAddress: Address): void {\n this._billingAddress = newBillingAddress;\n }\n\n @action\n public updateCardPrefix(newCardPrefix: string): void {\n this._cardPrefix = newCardPrefix;\n }\n\n @action\n public removeGiftCard(giftCardNumber: string): void {\n this._giftCards = this._giftCards.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public removeGiftCardExtend(giftCardNumber: string): void {\n this._giftCardExtends = this._giftCardExtends.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public addGiftCard(giftCard: GiftCard): void {\n this._giftCards = [giftCard, ...this._giftCards];\n }\n\n @action\n public addGiftCardExtend(giftCard: IGiftCardExtend): void {\n this._giftCardExtends = [giftCard, ...this._giftCards];\n }\n\n @action\n public updateLoyaltyCardNumber(newLoyaltyCardNumber: string): void {\n this._loyaltyCardNumber = newLoyaltyCardNumber;\n }\n\n @action\n public updateLoyaltyAmount(newAmount: number): void {\n this._loyaltyAmount = newAmount;\n }\n\n @action\n public updateGuestCheckoutEmail(newGuestCheckoutEmail: string): void {\n this._guestCheckoutEmail = newGuestCheckoutEmail;\n }\n\n @action\n public updateTermsAndConditionsAcceptance(newIsTermsAndConditionAccepted: boolean): void {\n this._isTermsAndConditionAccepted = newIsTermsAndConditionAccepted;\n }\n\n @action\n public updateCustomerAccountAmount(newAmount: number): void {\n this._customerAccountAmount = newAmount;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CacheType, IActionContext, IActionInput } from '@msdyn365-commerce/core';\n\nimport { IModuleStates } from './module-state.data';\n\n/**\n * GetModulesInput.\n */\nexport class ModuleStatesCacheKey implements IActionInput {\n public getCacheKey = () => 'ModuleState';\n\n public getCacheObjectType = () => 'ModuleState';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport function getModuleStates(ctx: IActionContext): IModuleStates {\n const cacheKey = new ModuleStatesCacheKey();\n\n let moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n if (moduleStates) {\n return moduleStates;\n }\n ctx.update(cacheKey, {});\n moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n return moduleStates;\n}\n\nexport function updateModuleStates(value: IModuleStates, ctx: IActionContext): void {\n const cacheKey = new ModuleStatesCacheKey();\n ctx.update(cacheKey, value);\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModule } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport isMatch from 'lodash/isMatch';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { getModuleStates, updateModuleStates } from './module-state';\nimport { IModuleState, IModuleStateManager, IModuleStateProps, IModuleStates } from './module-state.data';\n\nexport interface IProps extends IModule, IModuleStateProps {\n enableControl?: boolean;\n}\n\nconst sectionContainerModuleId = 'section-container';\nconst paymentInstrumentModuleId = 'payment-instrument';\n\nconst withModuleState =

(WrappedComponent: React.ComponentType

): React.ComponentType

=> {\n /**\n *\n * ModuleState component.\n * @extends {React.Component

}\n */\n @observer\n class ModuleState extends React.Component

{\n constructor(props: P) {\n super(props);\n this.initializeState();\n }\n\n public shouldComponentUpdate(nextProps: IModuleStateProps): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const { id } = this.props;\n return ;\n }\n\n private readonly initializeState = (): void => {\n const { id, typeName, context } = this.props;\n const states = getModuleStates(context.actionContext);\n if (!states) {\n this.props.telemetry.error('withModuleState initializeState() - states not found');\n return;\n }\n\n if (states[id]) {\n // State has been initialized\n return;\n }\n\n updateModuleStates(\n {\n ...states,\n [id]: {\n id,\n typeName,\n hasInitialized: false,\n hasError: false,\n isRequired: true,\n isCancellable: true,\n isSubmitContainer: false,\n status: undefined,\n childIds: []\n }\n },\n context.actionContext\n );\n };\n\n /**\n * GetModuleStateManager\n * Get module state manager by id.\n * @param id\n */\n private readonly getModuleStateManager = (id: string): IModuleStateManager => {\n const moduleState = this.get()[id];\n return {\n ...moduleState!,\n hasInitialized: this.validate(id, { hasInitialized: true }, true), // All has initialized is initialized\n hasError: this.validate(id, { hasError: true }), // Partial has error is error\n isReady: this.validate(id, { status: 'ready' }, true, true), // All ready is ready (exclued disabled and skipped)\n isUpdating: this.validate(id, { status: 'updating' }), // Partial updating is updating\n isPending: this.validate(id, { status: 'pending' }), // Partial pending is pending\n isSkipped: this.validate(id, { status: 'skipped' }, true, true), // All skipped is skipped (exclued disabled)\n isDisabled: this.validate(id, { status: 'disabled' }, true), // All disabled is disabled\n isCancelAllowed: this.validate(id, { isCancellable: true }, true, true), // Partial not allowed is not allowed\n shouldSubmitContainer: this.validate(id, { isSubmitContainer: true }), // Partial submit is submit.\n hasExternalSubmitGroup: this.hasExternalSubmitGroup(),\n hasModuleState: this.hasModuleState(id),\n setIsRequired: (value: boolean): void => {\n this.update(id, { isRequired: value });\n },\n setIsCancellable: (value: boolean): void => {\n this.update(id, { isCancellable: value });\n },\n setIsSubmitContainer: (value: boolean): void => {\n this.update(id, { isSubmitContainer: value });\n },\n setHasError: (value: boolean): void => {\n this.update(id, { hasError: value });\n },\n onReady: (): void => {\n this.update(id, { status: 'ready' });\n },\n onUpdating: (): void => {\n this.update(id, { status: 'updating' });\n },\n onPending: (): void => {\n this.update(id, { status: 'pending' });\n },\n onSkip: (): void => {\n this.update(id, { status: 'skipped' });\n },\n onDisable: (): void => {\n this.update(id, { status: 'disabled' });\n },\n getModule: (moduleId: string): IModuleStateManager => this.getModuleStateManager(moduleId),\n getModuleByTypeName: (typeName: string): IModuleStateManager => this.getModuleStateManagerByTypeName(typeName),\n init: (options?: Partial): void => {\n if (moduleState?.hasInitialized) {\n // State has been initialized\n return;\n }\n this.update(id, {\n hasInitialized: true,\n ...options\n });\n }\n };\n };\n\n /**\n * GetModuleStateManagerByTypeName\n * Get module state manager by type name.\n * @param typeName\n */\n private readonly getModuleStateManagerByTypeName = (typeName: string): IModuleStateManager => {\n const moduleStates = getModuleStates(this.props.context.actionContext);\n const moduleState = Object.values(moduleStates).find(_moduleState => _moduleState?.typeName === typeName);\n return this.getModuleStateManager((moduleState && moduleState.id) || '');\n };\n\n /**\n * Get\n * Get all module states.\n */\n private readonly get = (): IModuleStates => {\n return getModuleStates(this.props.context.actionContext);\n };\n\n /**\n * Update\n * Update module state.\n * @param id\n * @param value\n */\n private readonly update = (id: string, value: Partial): void => {\n // Console.log('withModuleState - update', id, value);\n const modules = this.get();\n if (!modules[id]) {\n this.props.telemetry.error(`withModuleState update() - Module state with id ${id} is not found.`);\n return;\n }\n modules[id] = {\n ...modules[id]!,\n ...value\n };\n };\n\n private readonly _validateLeaf = (id: string, source: Partial): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n return isMatch(module, source);\n };\n\n private readonly _validateContainer = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n // Module doesn't has module state\n return !!allMatched;\n }\n\n if (skipSkippableItem && (module.status === 'disabled' || module.status === 'skipped')) {\n // Skip disabled or skipped modules\n return !!allMatched;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n let childIds = module.childIds;\n\n if (this.props.context.app.config.shouldEnableSinglePaymentAuthorizationCheckout) {\n // For new checkout flow, we bypass the isReady check for payment section container to enable the place order button.\n childIds = childIds.filter(childId => !this._isPaymentSectionContainer(childId));\n }\n\n // It is container module\n const method = allMatched ? 'every' : 'some';\n return childIds[method](childId => this._validateContainer(childId, source, allMatched, skipSkippableItem));\n };\n\n /**\n * Check if it is a section container with payment module.\n * @param moduleId -- The id of the module.\n * @returns If it is a section container with payment module.\n */\n private readonly _isPaymentSectionContainer = (moduleId: string): boolean => {\n if (!moduleId.includes(sectionContainerModuleId)) {\n return false;\n }\n\n const modules = this.get();\n const module = modules[moduleId];\n\n if (module && ArrayExtensions.hasElements(module.childIds.filter(childId => childId.includes(paymentInstrumentModuleId)))) {\n return true;\n }\n\n return false;\n };\n\n /**\n * Validate\n * Validate current module and all its child module match the provided condition.\n * @param id\n * @param source\n * @param allMatched\n * @param skipSkippableItem\n */\n private readonly validate = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n // It is container module\n return this._validateContainer(id, source, allMatched, skipSkippableItem);\n };\n\n /**\n * HasExternalSubmitGroup\n * Module will use external submit group.\n */\n private readonly hasExternalSubmitGroup = (): boolean => {\n return !!this.props.enableControl;\n };\n\n /**\n * HasModuleState\n * Module is using module state manager.\n * @param id\n */\n private readonly hasModuleState = (id: string): boolean => {\n const modules = this.get();\n const module = modules[id];\n return !!module;\n };\n }\n\n return ModuleState;\n};\n\nexport default withModuleState;\n","\n import * as Entities from './CommerceTypes.g';\n import { jsonLightReadStringPropertyValue } from '../externals';\n\n const entityDictionary = {};\n \n /**\n * Category entity class.\n */\n export class CategoryClass implements Entities.Category {\n public RecordId: number;\n public OfflineImage: string;\n public Name: string;\n public ParentCategory: number;\n public DisplayOrder: number;\n public LocalizedDescription: string;\n public Images: Entities.MediaLocation[];\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.Name = \n odataObject.Name;\n \n this.ParentCategory = \n (odataObject.ParentCategory != null) ? parseInt(odataObject.ParentCategory, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.LocalizedDescription = \n odataObject.LocalizedDescription;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryClass'] = CategoryClass;\n \n /**\n * Cart entity class.\n */\n export class CartClass implements Entities.Cart {\n public AffiliationLines: Entities.AffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public AmountPaid: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public IsTaxIncludedInPrice: boolean;\n public BeginDateTime: Date;\n public BusinessDate: Date;\n public CancellationChargeAmount: number;\n public EstimatedShippingAmount: number;\n public CartLines: Entities.CartLine[];\n public CartTypeValue: number;\n public ChannelId: number;\n public ChargeAmount: number;\n public CustomerOrderRemainingBalance: number;\n public ChargeLines: Entities.ChargeLine[];\n public TaxViewLines: Entities.TaxViewLine[];\n public Comment: string;\n public InvoiceComment: string;\n public Coupons: Entities.Coupon[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public DiscountCodes: string[];\n public Id: string;\n public SuspendedCartId: string;\n public TransactionTypeValue: number;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public IsReturnByReceipt: boolean;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsSuspended: boolean;\n public LoyaltyCardId: string;\n public ModifiedDateTime: Date;\n public Name: string;\n public OrderNumber: string;\n public AvailableDepositAmount: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public PrepaymentAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PromotionLines: string[];\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public SalesId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public NetPrice: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public WarehouseId: string;\n public IsCreatedOffline: boolean;\n public CartStatusValue: number;\n public ReceiptTransactionTypeValue: number;\n public CommissionSalesGroup: string;\n public Version: number;\n public TotalItems: number;\n public HasTaxCalculationTriggered: boolean;\n public MerchantProperties: Entities.PaymentMerchantInformation[];\n public HasChargeCalculationTriggered: boolean;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationLines = undefined;\n if (odataObject.AffiliationLines) {\n this.AffiliationLines = [];\n for (var i = 0; i < odataObject.AffiliationLines.length; i++) {\n if (odataObject.AffiliationLines[i] != null) {\n if (odataObject.AffiliationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLines[i] = new entityDictionary[className](odataObject.AffiliationLines[i])\n }\n } else {\n this.AffiliationLines[i] = new AffiliationLoyaltyTierClass(odataObject.AffiliationLines[i]);\n }\n } else {\n this.AffiliationLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CancellationChargeAmount = \n (odataObject.CancellationChargeAmount != null) ? parseFloat(odataObject.CancellationChargeAmount) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.CartLines = undefined;\n if (odataObject.CartLines) {\n this.CartLines = [];\n for (var i = 0; i < odataObject.CartLines.length; i++) {\n if (odataObject.CartLines[i] != null) {\n if (odataObject.CartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLines[i] = new entityDictionary[className](odataObject.CartLines[i])\n }\n } else {\n this.CartLines[i] = new CartLineClass(odataObject.CartLines[i]);\n }\n } else {\n this.CartLines[i] = undefined;\n }\n }\n }\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxViewLines = undefined;\n if (odataObject.TaxViewLines) {\n this.TaxViewLines = [];\n for (var i = 0; i < odataObject.TaxViewLines.length; i++) {\n if (odataObject.TaxViewLines[i] != null) {\n if (odataObject.TaxViewLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxViewLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxViewLines[i] = new entityDictionary[className](odataObject.TaxViewLines[i])\n }\n } else {\n this.TaxViewLines[i] = new TaxViewLineClass(odataObject.TaxViewLines[i]);\n }\n } else {\n this.TaxViewLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.Id = \n odataObject.Id;\n \n this.SuspendedCartId = \n odataObject.SuspendedCartId;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.OrderNumber = \n odataObject.OrderNumber;\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.PrepaymentAppliedOnPickup = \n (odataObject.PrepaymentAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.SalesId = \n odataObject.SalesId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.CartStatusValue = \n odataObject.CartStatusValue;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.Version = \n (odataObject.Version != null) ? parseInt(odataObject.Version, 10) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.MerchantProperties = undefined;\n if (odataObject.MerchantProperties) {\n this.MerchantProperties = [];\n for (var i = 0; i < odataObject.MerchantProperties.length; i++) {\n if (odataObject.MerchantProperties[i] != null) {\n if (odataObject.MerchantProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.MerchantProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MerchantProperties[i] = new entityDictionary[className](odataObject.MerchantProperties[i])\n }\n } else {\n this.MerchantProperties[i] = new PaymentMerchantInformationClass(odataObject.MerchantProperties[i]);\n }\n } else {\n this.MerchantProperties[i] = undefined;\n }\n }\n }\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartClass'] = CartClass;\n \n /**\n * Customer entity class.\n */\n export class CustomerClass implements Entities.Customer {\n public AccountNumber: string;\n public RecordId: number;\n public CreatedDateTime: Date;\n public ChargeGroup: string;\n public PriceGroup: string;\n public IsCustomerTaxInclusive: boolean;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Cellphone: string;\n public Email: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public Name: string;\n public PersonNameId: number;\n public FirstName: string;\n public MiddleName: string;\n public LastName: string;\n public DirectoryPartyRecordId: number;\n public PartyNumber: string;\n public CustomerTypeValue: number;\n public Language: string;\n public CustomerGroup: string;\n public CurrencyCode: string;\n public CNPJCPFNumber: string;\n public IdentificationNumber: string;\n public InvoiceAccount: string;\n public MandatoryCreditLimit: boolean;\n public CreditRating: string;\n public CreditLimit: number;\n public Balance: number;\n public Blocked: boolean;\n public BlockedType: number;\n public UseOrderNumberReference: boolean;\n public OrganizationId: string;\n public UsePurchaseRequest: boolean;\n public MultilineDiscountGroup: string;\n public TotalDiscountGroup: string;\n public LineDiscountGroup: string;\n public TaxGroup: string;\n public SalesTaxGroup: string;\n public CommissionSalesGroupId: string;\n public TaxExemptNumber: string;\n public VatNumber: string;\n public TaxOffice: string;\n public NonChargeableAccount: boolean;\n public Tag: string;\n public ReceiptSettings: number;\n public ReceiptEmail: string;\n public OptOutPersonalization: boolean;\n public OptOutWebActivityTracking: boolean;\n public RetailCustomerTableRecordId: number;\n public OfflineImage: string;\n public IsAsyncCustomer: boolean;\n public NewCustomerPartyNumber: string;\n public CustomerAffiliations: Entities.CustomerAffiliation[];\n public Addresses: Entities.Address[];\n public Attributes: Entities.CustomerAttribute[];\n public Images: Entities.MediaLocation[];\n public TitleRecordId: number;\n public IsFloorLimitBlocked: boolean;\n public IsB2b: boolean;\n public IsB2bAdmin: boolean;\n public BusinessPartnerId: string;\n public Contacts: Entities.ContactInfo[];\n public AllowOnAccountPayment: boolean;\n public DefaultPaymentMethod: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.PriceGroup = \n odataObject.PriceGroup;\n \n this.IsCustomerTaxInclusive = \n odataObject.IsCustomerTaxInclusive;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Cellphone = \n odataObject.Cellphone;\n \n this.Email = \n odataObject.Email;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.PersonNameId = \n (odataObject.PersonNameId != null) ? parseInt(odataObject.PersonNameId, 10) : undefined;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.MiddleName = \n odataObject.MiddleName;\n \n this.LastName = \n odataObject.LastName;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Language = \n odataObject.Language;\n \n this.CustomerGroup = \n odataObject.CustomerGroup;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CNPJCPFNumber = \n odataObject.CNPJCPFNumber;\n \n this.IdentificationNumber = \n odataObject.IdentificationNumber;\n \n this.InvoiceAccount = \n odataObject.InvoiceAccount;\n \n this.MandatoryCreditLimit = \n odataObject.MandatoryCreditLimit;\n \n this.CreditRating = \n odataObject.CreditRating;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.BlockedType = \n odataObject.BlockedType;\n \n this.UseOrderNumberReference = \n odataObject.UseOrderNumberReference;\n \n this.OrganizationId = \n odataObject.OrganizationId;\n \n this.UsePurchaseRequest = \n odataObject.UsePurchaseRequest;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.TotalDiscountGroup = \n odataObject.TotalDiscountGroup;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.CommissionSalesGroupId = \n odataObject.CommissionSalesGroupId;\n \n this.TaxExemptNumber = \n odataObject.TaxExemptNumber;\n \n this.VatNumber = \n odataObject.VatNumber;\n \n this.TaxOffice = \n odataObject.TaxOffice;\n \n this.NonChargeableAccount = \n odataObject.NonChargeableAccount;\n \n this.Tag = \n odataObject.Tag;\n \n this.ReceiptSettings = \n odataObject.ReceiptSettings;\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.OptOutPersonalization = \n odataObject.OptOutPersonalization;\n \n this.OptOutWebActivityTracking = \n odataObject.OptOutWebActivityTracking;\n \n this.RetailCustomerTableRecordId = \n (odataObject.RetailCustomerTableRecordId != null) ? parseInt(odataObject.RetailCustomerTableRecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.NewCustomerPartyNumber = \n odataObject.NewCustomerPartyNumber;\n \n this.CustomerAffiliations = undefined;\n if (odataObject.CustomerAffiliations) {\n this.CustomerAffiliations = [];\n for (var i = 0; i < odataObject.CustomerAffiliations.length; i++) {\n if (odataObject.CustomerAffiliations[i] != null) {\n if (odataObject.CustomerAffiliations[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAffiliations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAffiliations[i] = new entityDictionary[className](odataObject.CustomerAffiliations[i])\n }\n } else {\n this.CustomerAffiliations[i] = new CustomerAffiliationClass(odataObject.CustomerAffiliations[i]);\n }\n } else {\n this.CustomerAffiliations[i] = undefined;\n }\n }\n }\n \n this.Addresses = undefined;\n if (odataObject.Addresses) {\n this.Addresses = [];\n for (var i = 0; i < odataObject.Addresses.length; i++) {\n if (odataObject.Addresses[i] != null) {\n if (odataObject.Addresses[i]['@odata.type'] != null) {\n var className: string = odataObject.Addresses[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Addresses[i] = new entityDictionary[className](odataObject.Addresses[i])\n }\n } else {\n this.Addresses[i] = new AddressClass(odataObject.Addresses[i]);\n }\n } else {\n this.Addresses[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.TitleRecordId = \n (odataObject.TitleRecordId != null) ? parseInt(odataObject.TitleRecordId, 10) : undefined;\n \n this.IsFloorLimitBlocked = \n odataObject.IsFloorLimitBlocked;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.IsB2bAdmin = \n odataObject.IsB2bAdmin;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new ContactInfoClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.AllowOnAccountPayment = \n odataObject.AllowOnAccountPayment;\n \n this.DefaultPaymentMethod = \n odataObject.DefaultPaymentMethod;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerClass'] = CustomerClass;\n \n /**\n * Employee entity class.\n */\n export class EmployeeClass implements Entities.Employee {\n public StaffId: string;\n public NameOnReceipt: string;\n public Name: string;\n public CultureName: string;\n public NumberOfDaysToPasswordExpiry: number;\n public Permissions: Entities.EmployeePermissions;\n public Images: Entities.MediaLocation[];\n public DefaultImage: string;\n public DefaultCommissionSalesGroup: string;\n public IdentifierTypeValue: number;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.NameOnReceipt = \n odataObject.NameOnReceipt;\n \n this.Name = \n odataObject.Name;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.NumberOfDaysToPasswordExpiry = \n odataObject.NumberOfDaysToPasswordExpiry;\n \n if (odataObject.Permissions == null) {\n this.Permissions = undefined;\n } else if (odataObject.Permissions['@odata.type'] == null) {\n this.Permissions = new EmployeePermissionsClass(odataObject.Permissions);\n } else {\n var className: string = odataObject.Permissions['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Permissions = new entityDictionary[className](odataObject.Permissions)\n }\n }\n\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.DefaultCommissionSalesGroup = \n odataObject.DefaultCommissionSalesGroup;\n \n this.IdentifierTypeValue = \n odataObject.IdentifierTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeClass'] = EmployeeClass;\n \n /**\n * Checklist entity class.\n */\n export class ChecklistClass implements Entities.Checklist {\n public RecordId: number;\n public Tasks: Entities.ChecklistTask[];\n public Version: string;\n public ProcessId: string;\n public Name: string;\n public Description: string;\n public AssignedToChannelId: number;\n public AssignedToWorkerPersonnelNumber: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public TargetDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Tasks = undefined;\n if (odataObject.Tasks) {\n this.Tasks = [];\n for (var i = 0; i < odataObject.Tasks.length; i++) {\n if (odataObject.Tasks[i] != null) {\n if (odataObject.Tasks[i]['@odata.type'] != null) {\n var className: string = odataObject.Tasks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Tasks[i] = new entityDictionary[className](odataObject.Tasks[i])\n }\n } else {\n this.Tasks[i] = new ChecklistTaskClass(odataObject.Tasks[i]);\n }\n } else {\n this.Tasks[i] = undefined;\n }\n }\n }\n \n this.Version = \n odataObject.Version;\n \n this.ProcessId = \n odataObject.ProcessId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.AssignedToChannelId = \n (odataObject.AssignedToChannelId != null) ? parseInt(odataObject.AssignedToChannelId, 10) : undefined;\n \n this.AssignedToWorkerPersonnelNumber = \n odataObject.AssignedToWorkerPersonnelNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TargetDateTime = \n (odataObject.TargetDateTime instanceof Date) ? odataObject.TargetDateTime\n : (odataObject.TargetDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TargetDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistClass'] = ChecklistClass;\n \n /**\n * SalesOrder entity class.\n */\n export class SalesOrderClass implements Entities.SalesOrder {\n public DocumentStatusValue: number;\n public RecordId: number;\n public StatusValue: number;\n public McrOrderStopped: boolean;\n public Shipments: Entities.Shipment[];\n public AggregateInventoryQuantities: Entities.InventoryQuantities;\n public UnifiedDeliveryInformation: Entities.DeliveryInformation;\n public PaymentStatusValue: number;\n public DetailedOrderStatusValue: number;\n public AffiliationLoyaltyTierLines: Entities.SalesAffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public EstimatedShippingAmount: number;\n public AmountPaid: number;\n public CustomerOrderRemainingBalance: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public AvailableDepositAmount: number;\n public BeginDateTime: Date;\n public CreatedDateTime: Date;\n public BusinessDate: Date;\n public CalculatedDepositAmount: number;\n public CancellationCharge: number;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public ChargeAmount: number;\n public ChargeLines: Entities.ChargeLine[];\n public Comment: string;\n public Coupons: Entities.Coupon[];\n public InvoiceComment: string;\n public ContactInformationCollection: Entities.ContactInformation[];\n public CurrencyCode: string;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public CustomerOrderTypeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountCodes: string[];\n public EntryStatusValue: number;\n public GrossAmount: number;\n public HasLoyaltyPayment: boolean;\n public Id: string;\n public InternalTransactionId: string;\n public SuspendedTransactionId: string;\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public InventoryLocationId: string;\n public IsCreatedOffline: boolean;\n public IsReturnByReceipt: boolean;\n public IsSuspended: boolean;\n public IsTaxIncludedInPrice: boolean;\n public IsTaxExemptedForPriceInclusive: boolean;\n public LineDiscount: number;\n public LineDiscountCalculationTypeValue: number;\n public LoyaltyCardId: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyManualDiscountAmount: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ModifiedDateTime: Date;\n public Name: string;\n public NetAmount: number;\n public NetAmountWithoutTax: number;\n public NetAmountWithNoTax: number;\n public NetAmountWithTax: number;\n public NumberOfItems: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PeriodicDiscountAmount: number;\n public TenderDiscountAmount: number;\n public PrepaymentAmountAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public SalesId: string;\n public SalesPaymentDifference: number;\n public SalesLines: Entities.SalesLine[];\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public StatementCode: string;\n public StoreId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxAmountExclusive: number;\n public TaxAmountInclusive: number;\n public TaxLines: Entities.TaxLine[];\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalDiscount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public TransactionTypeValue: number;\n public TaxCalculationTypeValue: number;\n public SalesInvoiceAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public HasTaxCalculationTriggered: boolean;\n public HasChargeCalculationTriggered: boolean;\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public CustomerName: string;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public LanguageId: string;\n public SalesAgreementRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.McrOrderStopped = \n odataObject.McrOrderStopped;\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n if (odataObject.AggregateInventoryQuantities == null) {\n this.AggregateInventoryQuantities = undefined;\n } else if (odataObject.AggregateInventoryQuantities['@odata.type'] == null) {\n this.AggregateInventoryQuantities = new InventoryQuantitiesClass(odataObject.AggregateInventoryQuantities);\n } else {\n var className: string = odataObject.AggregateInventoryQuantities['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregateInventoryQuantities = new entityDictionary[className](odataObject.AggregateInventoryQuantities)\n }\n }\n\n \n if (odataObject.UnifiedDeliveryInformation == null) {\n this.UnifiedDeliveryInformation = undefined;\n } else if (odataObject.UnifiedDeliveryInformation['@odata.type'] == null) {\n this.UnifiedDeliveryInformation = new DeliveryInformationClass(odataObject.UnifiedDeliveryInformation);\n } else {\n var className: string = odataObject.UnifiedDeliveryInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnifiedDeliveryInformation = new entityDictionary[className](odataObject.UnifiedDeliveryInformation)\n }\n }\n\n \n this.PaymentStatusValue = \n odataObject.PaymentStatusValue;\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.AffiliationLoyaltyTierLines = undefined;\n if (odataObject.AffiliationLoyaltyTierLines) {\n this.AffiliationLoyaltyTierLines = [];\n for (var i = 0; i < odataObject.AffiliationLoyaltyTierLines.length; i++) {\n if (odataObject.AffiliationLoyaltyTierLines[i] != null) {\n if (odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLoyaltyTierLines[i] = new entityDictionary[className](odataObject.AffiliationLoyaltyTierLines[i])\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = new SalesAffiliationLoyaltyTierClass(odataObject.AffiliationLoyaltyTierLines[i]);\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CalculatedDepositAmount = \n (odataObject.CalculatedDepositAmount != null) ? parseFloat(odataObject.CalculatedDepositAmount) : undefined;\n \n this.CancellationCharge = \n (odataObject.CancellationCharge != null) ? parseFloat(odataObject.CancellationCharge) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.ContactInformationCollection = undefined;\n if (odataObject.ContactInformationCollection) {\n this.ContactInformationCollection = [];\n for (var i = 0; i < odataObject.ContactInformationCollection.length; i++) {\n if (odataObject.ContactInformationCollection[i] != null) {\n if (odataObject.ContactInformationCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ContactInformationCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ContactInformationCollection[i] = new entityDictionary[className](odataObject.ContactInformationCollection[i])\n }\n } else {\n this.ContactInformationCollection[i] = new ContactInformationClass(odataObject.ContactInformationCollection[i]);\n }\n } else {\n this.ContactInformationCollection[i] = undefined;\n }\n }\n }\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.CustomerOrderTypeValue = \n odataObject.CustomerOrderTypeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.EntryStatusValue = \n odataObject.EntryStatusValue;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.HasLoyaltyPayment = \n odataObject.HasLoyaltyPayment;\n \n this.Id = \n odataObject.Id;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.SuspendedTransactionId = \n odataObject.SuspendedTransactionId;\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.IsTaxExemptedForPriceInclusive = \n odataObject.IsTaxExemptedForPriceInclusive;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LineDiscountCalculationTypeValue = \n odataObject.LineDiscountCalculationTypeValue;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyManualDiscountAmount = \n (odataObject.LoyaltyManualDiscountAmount != null) ? parseFloat(odataObject.LoyaltyManualDiscountAmount) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetAmountWithNoTax = \n (odataObject.NetAmountWithNoTax != null) ? parseFloat(odataObject.NetAmountWithNoTax) : undefined;\n \n this.NetAmountWithTax = \n (odataObject.NetAmountWithTax != null) ? parseFloat(odataObject.NetAmountWithTax) : undefined;\n \n this.NumberOfItems = \n (odataObject.NumberOfItems != null) ? parseFloat(odataObject.NumberOfItems) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PeriodicDiscountAmount = \n (odataObject.PeriodicDiscountAmount != null) ? parseFloat(odataObject.PeriodicDiscountAmount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.PrepaymentAmountAppliedOnPickup = \n (odataObject.PrepaymentAmountAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAmountAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPaymentDifference = \n (odataObject.SalesPaymentDifference != null) ? parseFloat(odataObject.SalesPaymentDifference) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TaxCalculationTypeValue = \n odataObject.TaxCalculationTypeValue;\n \n this.SalesInvoiceAmount = \n (odataObject.SalesInvoiceAmount != null) ? parseFloat(odataObject.SalesInvoiceAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.SalesAgreementRecordId = \n (odataObject.SalesAgreementRecordId != null) ? parseInt(odataObject.SalesAgreementRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderClass'] = SalesOrderClass;\n \n /**\n * Shift entity class.\n */\n export class ShiftClass implements Entities.Shift {\n public ShiftId: number;\n public TerminalId: string;\n public StartingAmountTotal: number;\n public FloatingEntryAmountTotal: number;\n public AddToTenderAmountTotal: number;\n public SafeDropTotal: number;\n public BankDropTotal: number;\n public RemoveTenderAmountTotal: number;\n public DeclareTenderAmountTotal: number;\n public OverShortTotal: number;\n public TenderedTotal: number;\n public ChangeTotal: number;\n public IncomeAccountTotal: number;\n public ExpenseAccountTotal: number;\n public CashDrawer: string;\n public StoreRecordId: number;\n public StoreId: string;\n public StaffId: string;\n public CurrentStaffId: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public CloseDateTime: Date;\n public ClosedAtTerminalId: string;\n public ClosedAtShiftId: number;\n public CurrentTerminalId: string;\n public SalesTotal: number;\n public StatusDateTime: Date;\n public ReturnsTotal: number;\n public PaidToAccountTotal: number;\n public TaxTotal: number;\n public ChargeTotal: number;\n public DiscountTotal: number;\n public RoundedAmountTotal: number;\n public CustomerCount: number;\n public SaleTransactionCount: number;\n public NoSaleTransactionCount: number;\n public VoidTransactionCount: number;\n public LogOnTransactionCount: number;\n public SuspendedTransactionCount: number;\n public TransactionCount: number;\n public ReceiptsCount: number;\n public ReturnsCount: number;\n public GoodsSoldQty: number;\n public ServicesSoldQty: number;\n public ReceiptCopiesCount: number;\n public ReceiptCopiesTotal: number;\n public PriceOverrideTotal: number;\n public SuspendedTotal: number;\n public SalesTotalIncludingTax: number;\n public SalesTotalExcludingTax: number;\n public SalesGrandTotal: number;\n public ReturnsGrandTotal: number;\n public TaxLines: Entities.ShiftTaxLine[];\n public TenderLines: Entities.ShiftTenderLine[];\n public AccountLines: Entities.ShiftAccountLine[];\n public IsShared: boolean;\n public StartingAmountRunningTotal: number;\n public GiftCardsTotal: number;\n public GiftCardCashOutTotal: number;\n public VoidedSalesTotal: number;\n public ShiftSalesTotal: number;\n public ShiftReturnsTotal: number;\n public HasPendingOfflineTransactions: number;\n public NumberOfUnreconciledLines: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.StartingAmountTotal = \n (odataObject.StartingAmountTotal != null) ? parseFloat(odataObject.StartingAmountTotal) : undefined;\n \n this.FloatingEntryAmountTotal = \n (odataObject.FloatingEntryAmountTotal != null) ? parseFloat(odataObject.FloatingEntryAmountTotal) : undefined;\n \n this.AddToTenderAmountTotal = \n (odataObject.AddToTenderAmountTotal != null) ? parseFloat(odataObject.AddToTenderAmountTotal) : undefined;\n \n this.SafeDropTotal = \n (odataObject.SafeDropTotal != null) ? parseFloat(odataObject.SafeDropTotal) : undefined;\n \n this.BankDropTotal = \n (odataObject.BankDropTotal != null) ? parseFloat(odataObject.BankDropTotal) : undefined;\n \n this.RemoveTenderAmountTotal = \n (odataObject.RemoveTenderAmountTotal != null) ? parseFloat(odataObject.RemoveTenderAmountTotal) : undefined;\n \n this.DeclareTenderAmountTotal = \n (odataObject.DeclareTenderAmountTotal != null) ? parseFloat(odataObject.DeclareTenderAmountTotal) : undefined;\n \n this.OverShortTotal = \n (odataObject.OverShortTotal != null) ? parseFloat(odataObject.OverShortTotal) : undefined;\n \n this.TenderedTotal = \n (odataObject.TenderedTotal != null) ? parseFloat(odataObject.TenderedTotal) : undefined;\n \n this.ChangeTotal = \n (odataObject.ChangeTotal != null) ? parseFloat(odataObject.ChangeTotal) : undefined;\n \n this.IncomeAccountTotal = \n (odataObject.IncomeAccountTotal != null) ? parseFloat(odataObject.IncomeAccountTotal) : undefined;\n \n this.ExpenseAccountTotal = \n (odataObject.ExpenseAccountTotal != null) ? parseFloat(odataObject.ExpenseAccountTotal) : undefined;\n \n this.CashDrawer = \n odataObject.CashDrawer;\n \n this.StoreRecordId = \n (odataObject.StoreRecordId != null) ? parseInt(odataObject.StoreRecordId, 10) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.CurrentStaffId = \n odataObject.CurrentStaffId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CloseDateTime = \n (odataObject.CloseDateTime instanceof Date) ? odataObject.CloseDateTime\n : (odataObject.CloseDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CloseDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ClosedAtTerminalId = \n odataObject.ClosedAtTerminalId;\n \n this.ClosedAtShiftId = \n (odataObject.ClosedAtShiftId != null) ? parseInt(odataObject.ClosedAtShiftId, 10) : undefined;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this.SalesTotal = \n (odataObject.SalesTotal != null) ? parseFloat(odataObject.SalesTotal) : undefined;\n \n this.StatusDateTime = \n (odataObject.StatusDateTime instanceof Date) ? odataObject.StatusDateTime\n : (odataObject.StatusDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StatusDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReturnsTotal = \n (odataObject.ReturnsTotal != null) ? parseFloat(odataObject.ReturnsTotal) : undefined;\n \n this.PaidToAccountTotal = \n (odataObject.PaidToAccountTotal != null) ? parseFloat(odataObject.PaidToAccountTotal) : undefined;\n \n this.TaxTotal = \n (odataObject.TaxTotal != null) ? parseFloat(odataObject.TaxTotal) : undefined;\n \n this.ChargeTotal = \n (odataObject.ChargeTotal != null) ? parseFloat(odataObject.ChargeTotal) : undefined;\n \n this.DiscountTotal = \n (odataObject.DiscountTotal != null) ? parseFloat(odataObject.DiscountTotal) : undefined;\n \n this.RoundedAmountTotal = \n (odataObject.RoundedAmountTotal != null) ? parseFloat(odataObject.RoundedAmountTotal) : undefined;\n \n this.CustomerCount = \n odataObject.CustomerCount;\n \n this.SaleTransactionCount = \n odataObject.SaleTransactionCount;\n \n this.NoSaleTransactionCount = \n odataObject.NoSaleTransactionCount;\n \n this.VoidTransactionCount = \n odataObject.VoidTransactionCount;\n \n this.LogOnTransactionCount = \n odataObject.LogOnTransactionCount;\n \n this.SuspendedTransactionCount = \n odataObject.SuspendedTransactionCount;\n \n this.TransactionCount = \n odataObject.TransactionCount;\n \n this.ReceiptsCount = \n odataObject.ReceiptsCount;\n \n this.ReturnsCount = \n odataObject.ReturnsCount;\n \n this.GoodsSoldQty = \n (odataObject.GoodsSoldQty != null) ? parseFloat(odataObject.GoodsSoldQty) : undefined;\n \n this.ServicesSoldQty = \n (odataObject.ServicesSoldQty != null) ? parseFloat(odataObject.ServicesSoldQty) : undefined;\n \n this.ReceiptCopiesCount = \n odataObject.ReceiptCopiesCount;\n \n this.ReceiptCopiesTotal = \n (odataObject.ReceiptCopiesTotal != null) ? parseFloat(odataObject.ReceiptCopiesTotal) : undefined;\n \n this.PriceOverrideTotal = \n (odataObject.PriceOverrideTotal != null) ? parseFloat(odataObject.PriceOverrideTotal) : undefined;\n \n this.SuspendedTotal = \n (odataObject.SuspendedTotal != null) ? parseFloat(odataObject.SuspendedTotal) : undefined;\n \n this.SalesTotalIncludingTax = \n (odataObject.SalesTotalIncludingTax != null) ? parseFloat(odataObject.SalesTotalIncludingTax) : undefined;\n \n this.SalesTotalExcludingTax = \n (odataObject.SalesTotalExcludingTax != null) ? parseFloat(odataObject.SalesTotalExcludingTax) : undefined;\n \n this.SalesGrandTotal = \n (odataObject.SalesGrandTotal != null) ? parseFloat(odataObject.SalesGrandTotal) : undefined;\n \n this.ReturnsGrandTotal = \n (odataObject.ReturnsGrandTotal != null) ? parseFloat(odataObject.ReturnsGrandTotal) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new ShiftTaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new ShiftTenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.AccountLines = undefined;\n if (odataObject.AccountLines) {\n this.AccountLines = [];\n for (var i = 0; i < odataObject.AccountLines.length; i++) {\n if (odataObject.AccountLines[i] != null) {\n if (odataObject.AccountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AccountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AccountLines[i] = new entityDictionary[className](odataObject.AccountLines[i])\n }\n } else {\n this.AccountLines[i] = new ShiftAccountLineClass(odataObject.AccountLines[i]);\n }\n } else {\n this.AccountLines[i] = undefined;\n }\n }\n }\n \n this.IsShared = \n odataObject.IsShared;\n \n this.StartingAmountRunningTotal = \n (odataObject.StartingAmountRunningTotal != null) ? parseFloat(odataObject.StartingAmountRunningTotal) : undefined;\n \n this.GiftCardsTotal = \n (odataObject.GiftCardsTotal != null) ? parseFloat(odataObject.GiftCardsTotal) : undefined;\n \n this.GiftCardCashOutTotal = \n (odataObject.GiftCardCashOutTotal != null) ? parseFloat(odataObject.GiftCardCashOutTotal) : undefined;\n \n this.VoidedSalesTotal = \n (odataObject.VoidedSalesTotal != null) ? parseFloat(odataObject.VoidedSalesTotal) : undefined;\n \n this.ShiftSalesTotal = \n (odataObject.ShiftSalesTotal != null) ? parseFloat(odataObject.ShiftSalesTotal) : undefined;\n \n this.ShiftReturnsTotal = \n (odataObject.ShiftReturnsTotal != null) ? parseFloat(odataObject.ShiftReturnsTotal) : undefined;\n \n this.HasPendingOfflineTransactions = \n odataObject.HasPendingOfflineTransactions;\n \n this.NumberOfUnreconciledLines = \n (odataObject.NumberOfUnreconciledLines != null) ? parseFloat(odataObject.NumberOfUnreconciledLines) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftClass'] = ShiftClass;\n \n /**\n * StockCountJournal entity class.\n */\n export class StockCountJournalClass implements Entities.StockCountJournal {\n public JournalId: string;\n public RecordId: string;\n public Description: string;\n public InventLocationId: string;\n public DataAreaId: string;\n public StockCountTransactionLines: Entities.StockCountJournalTransaction[];\n public Worker: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Description = \n odataObject.Description;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.StockCountTransactionLines = undefined;\n if (odataObject.StockCountTransactionLines) {\n this.StockCountTransactionLines = [];\n for (var i = 0; i < odataObject.StockCountTransactionLines.length; i++) {\n if (odataObject.StockCountTransactionLines[i] != null) {\n if (odataObject.StockCountTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.StockCountTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.StockCountTransactionLines[i] = new entityDictionary[className](odataObject.StockCountTransactionLines[i])\n }\n } else {\n this.StockCountTransactionLines[i] = new StockCountJournalTransactionClass(odataObject.StockCountTransactionLines[i]);\n }\n } else {\n this.StockCountTransactionLines[i] = undefined;\n }\n }\n }\n \n this.Worker = \n odataObject.Worker;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalClass'] = StockCountJournalClass;\n \n /**\n * OrgUnit entity class.\n */\n export class OrgUnitClass implements Entities.OrgUnit {\n public OrgUnitNumber: string;\n public RecordId: number;\n public InventoryLocationId: string;\n public OMOperatingUnitNumber: string;\n public TaxGroup: string;\n public FunctionalityProfileId: string;\n public UseCustomerBasedTax: boolean;\n public UseCustomerBasedTaxExemption: boolean;\n public UseDestinationBasedTax: boolean;\n public Currency: string;\n public TimeZoneCode: number;\n public OrgUnitAddress: Entities.Address;\n public OrgUnitFullAddress: string;\n public OrgUnitName: string;\n public Latitude: number;\n public Longitude: number;\n public EmailReceiptProfileId: string;\n public ShippingWarehouseAddress: Entities.Address;\n public TaxRegistrations: Entities.TaxRegistration[];\n public EventNotificationProfileId: string;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.OMOperatingUnitNumber = \n odataObject.OMOperatingUnitNumber;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseCustomerBasedTaxExemption = \n odataObject.UseCustomerBasedTaxExemption;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.Currency = \n odataObject.Currency;\n \n this.TimeZoneCode = \n odataObject.TimeZoneCode;\n \n if (odataObject.OrgUnitAddress == null) {\n this.OrgUnitAddress = undefined;\n } else if (odataObject.OrgUnitAddress['@odata.type'] == null) {\n this.OrgUnitAddress = new AddressClass(odataObject.OrgUnitAddress);\n } else {\n var className: string = odataObject.OrgUnitAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitAddress = new entityDictionary[className](odataObject.OrgUnitAddress)\n }\n }\n\n \n this.OrgUnitFullAddress = \n odataObject.OrgUnitFullAddress;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.EmailReceiptProfileId = \n odataObject.EmailReceiptProfileId;\n \n if (odataObject.ShippingWarehouseAddress == null) {\n this.ShippingWarehouseAddress = undefined;\n } else if (odataObject.ShippingWarehouseAddress['@odata.type'] == null) {\n this.ShippingWarehouseAddress = new AddressClass(odataObject.ShippingWarehouseAddress);\n } else {\n var className: string = odataObject.ShippingWarehouseAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingWarehouseAddress = new entityDictionary[className](odataObject.ShippingWarehouseAddress)\n }\n }\n\n \n this.TaxRegistrations = undefined;\n if (odataObject.TaxRegistrations) {\n this.TaxRegistrations = [];\n for (var i = 0; i < odataObject.TaxRegistrations.length; i++) {\n if (odataObject.TaxRegistrations[i] != null) {\n if (odataObject.TaxRegistrations[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxRegistrations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxRegistrations[i] = new entityDictionary[className](odataObject.TaxRegistrations[i])\n }\n } else {\n this.TaxRegistrations[i] = new TaxRegistrationClass(odataObject.TaxRegistrations[i]);\n }\n } else {\n this.TaxRegistrations[i] = undefined;\n }\n }\n }\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitClass'] = OrgUnitClass;\n \n /**\n * Product entity class.\n */\n export class ProductClass implements Entities.Product {\n public RecordId: number;\n public ProductName: string;\n public ProductNumber: string;\n public Description: string;\n public IsMasterProduct: boolean;\n public IsKit: boolean;\n public ItemId: string;\n public HasLinkedProducts: boolean;\n public Rules: Entities.ProductRules;\n public DefaultUnitOfMeasure: string;\n public Name: string;\n public Locale: string;\n public OfflineImage: string;\n public IsRemote: boolean;\n public ChangeTrackingInformation: Entities.ProductChangeTrackingInformation;\n public Image: Entities.RichMediaLocations;\n public UnitsOfMeasureSymbol: string[];\n public LinkedProducts: Entities.LinkedProduct[];\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public RetailContext: Entities.ProjectionDomain;\n public PrimaryCategoryId: number;\n public CategoryIds: number[];\n public DisplayOrderInCategories: Entities.DisplayOrderInCategory[];\n public RelatedProducts: Entities.RelatedProduct[];\n public ProductsRelatedToThis: Entities.RelatedProduct[];\n public ProductSchema: string[];\n public ProductProperties: Entities.ProductPropertyTranslation[];\n public CompositionInformation: Entities.ProductCompositionInformation;\n public ParentKits: Entities.KitComponent[];\n public SearchName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.Description = \n odataObject.Description;\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.IsKit = \n odataObject.IsKit;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n if (odataObject.Rules == null) {\n this.Rules = undefined;\n } else if (odataObject.Rules['@odata.type'] == null) {\n this.Rules = new ProductRulesClass(odataObject.Rules);\n } else {\n var className: string = odataObject.Rules['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Rules = new entityDictionary[className](odataObject.Rules)\n }\n }\n\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.Name = \n odataObject.Name;\n \n this.Locale = \n odataObject.Locale;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsRemote = \n odataObject.IsRemote;\n \n if (odataObject.ChangeTrackingInformation == null) {\n this.ChangeTrackingInformation = undefined;\n } else if (odataObject.ChangeTrackingInformation['@odata.type'] == null) {\n this.ChangeTrackingInformation = new ProductChangeTrackingInformationClass(odataObject.ChangeTrackingInformation);\n } else {\n var className: string = odataObject.ChangeTrackingInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChangeTrackingInformation = new entityDictionary[className](odataObject.ChangeTrackingInformation)\n }\n }\n\n \n if (odataObject.Image == null) {\n this.Image = undefined;\n } else if (odataObject.Image['@odata.type'] == null) {\n this.Image = new RichMediaLocationsClass(odataObject.Image);\n } else {\n var className: string = odataObject.Image['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Image = new entityDictionary[className](odataObject.Image)\n }\n }\n\n \n this.UnitsOfMeasureSymbol = undefined;\n if (odataObject.UnitsOfMeasureSymbol) {\n this.UnitsOfMeasureSymbol = [];\n for (var i = 0; i < odataObject.UnitsOfMeasureSymbol.length; i++) {\n if (odataObject.UnitsOfMeasureSymbol[i] != null) {\n this.UnitsOfMeasureSymbol[i] = \n odataObject.UnitsOfMeasureSymbol[i];\n } else {\n this.UnitsOfMeasureSymbol[i] = undefined;\n }\n }\n }\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new LinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n if (odataObject.RetailContext == null) {\n this.RetailContext = undefined;\n } else if (odataObject.RetailContext['@odata.type'] == null) {\n this.RetailContext = new ProjectionDomainClass(odataObject.RetailContext);\n } else {\n var className: string = odataObject.RetailContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RetailContext = new entityDictionary[className](odataObject.RetailContext)\n }\n }\n\n \n this.PrimaryCategoryId = \n (odataObject.PrimaryCategoryId != null) ? parseInt(odataObject.PrimaryCategoryId, 10) : undefined;\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.DisplayOrderInCategories = undefined;\n if (odataObject.DisplayOrderInCategories) {\n this.DisplayOrderInCategories = [];\n for (var i = 0; i < odataObject.DisplayOrderInCategories.length; i++) {\n if (odataObject.DisplayOrderInCategories[i] != null) {\n if (odataObject.DisplayOrderInCategories[i]['@odata.type'] != null) {\n var className: string = odataObject.DisplayOrderInCategories[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DisplayOrderInCategories[i] = new entityDictionary[className](odataObject.DisplayOrderInCategories[i])\n }\n } else {\n this.DisplayOrderInCategories[i] = new DisplayOrderInCategoryClass(odataObject.DisplayOrderInCategories[i]);\n }\n } else {\n this.DisplayOrderInCategories[i] = undefined;\n }\n }\n }\n \n this.RelatedProducts = undefined;\n if (odataObject.RelatedProducts) {\n this.RelatedProducts = [];\n for (var i = 0; i < odataObject.RelatedProducts.length; i++) {\n if (odataObject.RelatedProducts[i] != null) {\n if (odataObject.RelatedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.RelatedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RelatedProducts[i] = new entityDictionary[className](odataObject.RelatedProducts[i])\n }\n } else {\n this.RelatedProducts[i] = new RelatedProductClass(odataObject.RelatedProducts[i]);\n }\n } else {\n this.RelatedProducts[i] = undefined;\n }\n }\n }\n \n this.ProductsRelatedToThis = undefined;\n if (odataObject.ProductsRelatedToThis) {\n this.ProductsRelatedToThis = [];\n for (var i = 0; i < odataObject.ProductsRelatedToThis.length; i++) {\n if (odataObject.ProductsRelatedToThis[i] != null) {\n if (odataObject.ProductsRelatedToThis[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductsRelatedToThis[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductsRelatedToThis[i] = new entityDictionary[className](odataObject.ProductsRelatedToThis[i])\n }\n } else {\n this.ProductsRelatedToThis[i] = new RelatedProductClass(odataObject.ProductsRelatedToThis[i]);\n }\n } else {\n this.ProductsRelatedToThis[i] = undefined;\n }\n }\n }\n \n this.ProductSchema = undefined;\n if (odataObject.ProductSchema) {\n this.ProductSchema = [];\n for (var i = 0; i < odataObject.ProductSchema.length; i++) {\n if (odataObject.ProductSchema[i] != null) {\n this.ProductSchema[i] = \n odataObject.ProductSchema[i];\n } else {\n this.ProductSchema[i] = undefined;\n }\n }\n }\n \n this.ProductProperties = undefined;\n if (odataObject.ProductProperties) {\n this.ProductProperties = [];\n for (var i = 0; i < odataObject.ProductProperties.length; i++) {\n if (odataObject.ProductProperties[i] != null) {\n if (odataObject.ProductProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductProperties[i] = new entityDictionary[className](odataObject.ProductProperties[i])\n }\n } else {\n this.ProductProperties[i] = new ProductPropertyTranslationClass(odataObject.ProductProperties[i]);\n }\n } else {\n this.ProductProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.CompositionInformation == null) {\n this.CompositionInformation = undefined;\n } else if (odataObject.CompositionInformation['@odata.type'] == null) {\n this.CompositionInformation = new ProductCompositionInformationClass(odataObject.CompositionInformation);\n } else {\n var className: string = odataObject.CompositionInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CompositionInformation = new entityDictionary[className](odataObject.CompositionInformation)\n }\n }\n\n \n this.ParentKits = undefined;\n if (odataObject.ParentKits) {\n this.ParentKits = [];\n for (var i = 0; i < odataObject.ParentKits.length; i++) {\n if (odataObject.ParentKits[i] != null) {\n if (odataObject.ParentKits[i]['@odata.type'] != null) {\n var className: string = odataObject.ParentKits[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ParentKits[i] = new entityDictionary[className](odataObject.ParentKits[i])\n }\n } else {\n this.ParentKits[i] = new KitComponentClass(odataObject.ParentKits[i]);\n }\n } else {\n this.ParentKits[i] = undefined;\n }\n }\n }\n \n this.SearchName = \n odataObject.SearchName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductClass'] = ProductClass;\n \n /**\n * ProductCatalog entity class.\n */\n export class ProductCatalogClass implements Entities.ProductCatalog {\n public RecordId: number;\n public Name: string;\n public Description: string;\n public Language: string;\n public IsSnapshotEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public CreatedOn: Date;\n public ModifiedOn: Date;\n public PublishedOn: Date;\n public Images: Entities.MediaLocation[];\n public ChannelId: number;\n public DefaultImage: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.Language = \n odataObject.Language;\n \n this.IsSnapshotEnabled = \n odataObject.IsSnapshotEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedOn = \n (odataObject.CreatedOn instanceof Date) ? odataObject.CreatedOn\n : (odataObject.CreatedOn != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ModifiedOn = \n (odataObject.ModifiedOn instanceof Date) ? odataObject.ModifiedOn\n : (odataObject.ModifiedOn != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PublishedOn = \n (odataObject.PublishedOn instanceof Date) ? odataObject.PublishedOn\n : (odataObject.PublishedOn != null) ? jsonLightReadStringPropertyValue(odataObject.PublishedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductCatalogClass'] = ProductCatalogClass;\n \n /**\n * CommerceList entity class.\n */\n export class CommerceListClass implements Entities.CommerceList {\n public Id: number;\n public Name: string;\n public CustomerId: string;\n public CustomerName: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public IsCollaborative: boolean;\n public CreatedDateTime: Date;\n public DueDateTime: Date;\n public CommerceListTypeValue: number;\n public CommerceListLines: Entities.CommerceListLine[];\n public CommerceListContributors: Entities.CommerceListContributor[];\n public CommerceListInvitations: Entities.CommerceListInvitation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsCollaborative = \n odataObject.IsCollaborative;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommerceListTypeValue = \n odataObject.CommerceListTypeValue;\n \n this.CommerceListLines = undefined;\n if (odataObject.CommerceListLines) {\n this.CommerceListLines = [];\n for (var i = 0; i < odataObject.CommerceListLines.length; i++) {\n if (odataObject.CommerceListLines[i] != null) {\n if (odataObject.CommerceListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListLines[i] = new entityDictionary[className](odataObject.CommerceListLines[i])\n }\n } else {\n this.CommerceListLines[i] = new CommerceListLineClass(odataObject.CommerceListLines[i]);\n }\n } else {\n this.CommerceListLines[i] = undefined;\n }\n }\n }\n \n this.CommerceListContributors = undefined;\n if (odataObject.CommerceListContributors) {\n this.CommerceListContributors = [];\n for (var i = 0; i < odataObject.CommerceListContributors.length; i++) {\n if (odataObject.CommerceListContributors[i] != null) {\n if (odataObject.CommerceListContributors[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListContributors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListContributors[i] = new entityDictionary[className](odataObject.CommerceListContributors[i])\n }\n } else {\n this.CommerceListContributors[i] = new CommerceListContributorClass(odataObject.CommerceListContributors[i]);\n }\n } else {\n this.CommerceListContributors[i] = undefined;\n }\n }\n }\n \n this.CommerceListInvitations = undefined;\n if (odataObject.CommerceListInvitations) {\n this.CommerceListInvitations = [];\n for (var i = 0; i < odataObject.CommerceListInvitations.length; i++) {\n if (odataObject.CommerceListInvitations[i] != null) {\n if (odataObject.CommerceListInvitations[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListInvitations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListInvitations[i] = new entityDictionary[className](odataObject.CommerceListInvitations[i])\n }\n } else {\n this.CommerceListInvitations[i] = new CommerceListInvitationClass(odataObject.CommerceListInvitations[i]);\n }\n } else {\n this.CommerceListInvitations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListClass'] = CommerceListClass;\n \n /**\n * ProductList entity class.\n */\n export class ProductListClass implements Entities.ProductList {\n public Id: string;\n public Name: string;\n public CustomerId: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public ProductListTypeValue: number;\n public DataAreaId: string;\n public ProductListLines: Entities.ProductListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductListTypeValue = \n odataObject.ProductListTypeValue;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductListLines = undefined;\n if (odataObject.ProductListLines) {\n this.ProductListLines = [];\n for (var i = 0; i < odataObject.ProductListLines.length; i++) {\n if (odataObject.ProductListLines[i] != null) {\n if (odataObject.ProductListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductListLines[i] = new entityDictionary[className](odataObject.ProductListLines[i])\n }\n } else {\n this.ProductListLines[i] = new ProductListLineClass(odataObject.ProductListLines[i]);\n }\n } else {\n this.ProductListLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListClass'] = ProductListClass;\n \n /**\n * Recommendation entity class.\n */\n export class RecommendationClass implements Entities.Recommendation {\n public Id: string;\n public RecommendationTypeValue: number;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.RecommendationTypeValue = \n odataObject.RecommendationTypeValue;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationClass'] = RecommendationClass;\n \n /**\n * TransferOrder entity class.\n */\n export class TransferOrderClass implements Entities.TransferOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityShipRemaining: number;\n public QuantityReceiveRemaining: number;\n public ShipDate: Date;\n public ReceiveDate: Date;\n public DeliveryModeId: string;\n public OrderLines: Entities.TransferOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityShipRemaining = \n (odataObject.QuantityShipRemaining != null) ? parseFloat(odataObject.QuantityShipRemaining) : undefined;\n \n this.QuantityReceiveRemaining = \n (odataObject.QuantityReceiveRemaining != null) ? parseFloat(odataObject.QuantityReceiveRemaining) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new TransferOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderClass'] = TransferOrderClass;\n \n /**\n * PurchaseOrder entity class.\n */\n export class PurchaseOrderClass implements Entities.PurchaseOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public TotalReceived: number;\n public OrderLines: Entities.PurchaseOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PurchaseOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderClass'] = PurchaseOrderClass;\n \n /**\n * PickingList entity class.\n */\n export class PickingListClass implements Entities.PickingList {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationId: string;\n public DeliveryDate: Date;\n public DeliveryMode: string;\n public TotalReceived: number;\n public OrderLines: Entities.PickingListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PickingListLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListClass'] = PickingListClass;\n \n /**\n * Warehouse entity class.\n */\n export class WarehouseClass implements Entities.Warehouse {\n public InventLocation: string;\n public Name: string;\n public IsWMSEnabled: boolean;\n public DefaultInventoryStatus: string;\n public DefaultReceiptLocation: string;\n public DefaultLocationId: string;\n public DefaultIssueLocation: string;\n public Address: Entities.Address;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InventLocation = \n odataObject.InventLocation;\n \n this.Name = \n odataObject.Name;\n \n this.IsWMSEnabled = \n odataObject.IsWMSEnabled;\n \n this.DefaultInventoryStatus = \n odataObject.DefaultInventoryStatus;\n \n this.DefaultReceiptLocation = \n odataObject.DefaultReceiptLocation;\n \n this.DefaultLocationId = \n odataObject.DefaultLocationId;\n \n this.DefaultIssueLocation = \n odataObject.DefaultIssueLocation;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseClass'] = WarehouseClass;\n \n /**\n * ScanResult entity class.\n */\n export class ScanResultClass implements Entities.ScanResult {\n public ScannedText: string;\n public MaskTypeValue: number;\n public Barcode: Entities.Barcode;\n public Product: Entities.SimpleProduct;\n public LoyaltyCard: Entities.LoyaltyCard;\n public GiftCard: Entities.GiftCard;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Customer: Entities.Customer;\n \n // Navigation properties names\n public static customerPropertyName: string = \"Customer\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ScannedText = \n odataObject.ScannedText;\n \n this.MaskTypeValue = \n odataObject.MaskTypeValue;\n \n if (odataObject.Barcode == null) {\n this.Barcode = undefined;\n } else if (odataObject.Barcode['@odata.type'] == null) {\n this.Barcode = new BarcodeClass(odataObject.Barcode);\n } else {\n var className: string = odataObject.Barcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Barcode = new entityDictionary[className](odataObject.Barcode)\n }\n }\n\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n if (odataObject.LoyaltyCard == null) {\n this.LoyaltyCard = undefined;\n } else if (odataObject.LoyaltyCard['@odata.type'] == null) {\n this.LoyaltyCard = new LoyaltyCardClass(odataObject.LoyaltyCard);\n } else {\n var className: string = odataObject.LoyaltyCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCard = new entityDictionary[className](odataObject.LoyaltyCard)\n }\n }\n\n \n if (odataObject.GiftCard == null) {\n this.GiftCard = undefined;\n } else if (odataObject.GiftCard['@odata.type'] == null) {\n this.GiftCard = new GiftCardClass(odataObject.GiftCard);\n } else {\n var className: string = odataObject.GiftCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.GiftCard = new entityDictionary[className](odataObject.GiftCard)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Customer == null) {\n this.Customer = undefined;\n } else if (odataObject.Customer['@odata.type'] == null) {\n this.Customer = new CustomerClass(odataObject.Customer);\n } else {\n var className: string = odataObject.Customer['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Customer = new entityDictionary[className](odataObject.Customer)\n }\n }\n\n \n }\n }\n entityDictionary['ScanResultClass'] = ScanResultClass;\n \n /**\n * SalesOrderContextualOperationsMap entity class.\n */\n export class SalesOrderContextualOperationsMapClass implements Entities.SalesOrderContextualOperationsMap {\n public Id: string;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public SalesOrder: Entities.SalesOrder;\n \n // Navigation properties names\n public static salesOrderPropertyName: string = \"SalesOrder\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.SalesOrder == null) {\n this.SalesOrder = undefined;\n } else if (odataObject.SalesOrder['@odata.type'] == null) {\n this.SalesOrder = new SalesOrderClass(odataObject.SalesOrder);\n } else {\n var className: string = odataObject.SalesOrder['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesOrder = new entityDictionary[className](odataObject.SalesOrder)\n }\n }\n\n \n }\n }\n entityDictionary['SalesOrderContextualOperationsMapClass'] = SalesOrderContextualOperationsMapClass;\n \n /**\n * InventoryInboundOutboundDocument entity class.\n */\n export class InventoryInboundOutboundDocumentClass implements Entities.InventoryInboundOutboundDocument {\n public WorkDocumentId: string;\n public TerminalId: string;\n public CommitRequestId: string;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public OperationTypeValue: number;\n public StatusValue: number;\n public ReceiptId: string;\n public Note: string;\n public OperationResultMessage: string;\n public DocumentId: string;\n public LongVersion: number;\n public SourceDocument: Entities.InventoryInboundOutboundSourceDocument;\n public SourceDocumentTypeValue: number;\n public CreatedDateTime: Date;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public TransactionDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CommitRequestId = \n odataObject.CommitRequestId;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.Note = \n odataObject.Note;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n if (odataObject.SourceDocument == null) {\n this.SourceDocument = undefined;\n } else if (odataObject.SourceDocument['@odata.type'] == null) {\n this.SourceDocument = new InventoryInboundOutboundSourceDocumentClass(odataObject.SourceDocument);\n } else {\n var className: string = odataObject.SourceDocument['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocument = new entityDictionary[className](odataObject.SourceDocument)\n }\n }\n\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.TransactionDate = \n (odataObject.TransactionDate instanceof Date) ? odataObject.TransactionDate\n : (odataObject.TransactionDate != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentClass'] = InventoryInboundOutboundDocumentClass;\n \n /**\n * BusinessPartner entity class.\n */\n export class BusinessPartnerClass implements Entities.BusinessPartner {\n public BusinessPartnerId: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerClass'] = BusinessPartnerClass;\n \n /**\n * BusinessPartnerUser entity class.\n */\n export class BusinessPartnerUserClass implements Entities.BusinessPartnerUser {\n public B2BUserId: string;\n public BusinessPartnerId: string;\n public FirstName: string;\n public LastName: string;\n public Email: string;\n public SpendingLimit: number;\n public LastOperationId: string;\n public StatusValue: number;\n public IsAdmin: boolean;\n public AccountNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.B2BUserId = \n odataObject.B2BUserId;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.Email = \n odataObject.Email;\n \n this.SpendingLimit = \n (odataObject.SpendingLimit != null) ? parseFloat(odataObject.SpendingLimit) : undefined;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.IsAdmin = \n odataObject.IsAdmin;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerUserClass'] = BusinessPartnerUserClass;\n \n /**\n * SuspendedCart entity class.\n */\n export class SuspendedCartClass implements Entities.SuspendedCart {\n public Id: string;\n public ReceiptId: string;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Cart: Entities.Cart;\n \n // Navigation properties names\n public static cartPropertyName: string = \"Cart\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Cart == null) {\n this.Cart = undefined;\n } else if (odataObject.Cart['@odata.type'] == null) {\n this.Cart = new CartClass(odataObject.Cart);\n } else {\n var className: string = odataObject.Cart['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Cart = new entityDictionary[className](odataObject.Cart)\n }\n }\n\n \n }\n }\n entityDictionary['SuspendedCartClass'] = SuspendedCartClass;\n \n /**\n * CountryRegion entity class.\n */\n export class CountryRegionClass implements Entities.CountryRegion {\n public CountryRegionId: string;\n public IsoCode: string;\n public ShortName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsoCode = \n odataObject.IsoCode;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionClass'] = CountryRegionClass;\n \n /**\n * ExtensibleEnumeration entity class.\n */\n export class ExtensibleEnumerationClass implements Entities.ExtensibleEnumeration {\n public Name: string;\n public Value: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['ExtensibleEnumerationClass'] = ExtensibleEnumerationClass;\n \n /**\n * ExtensibleEnumeration_1OfT entity class.\n */\n export class ExtensibleEnumeration_1OfTClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleEnumeration_1OfT {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.Framework.ExtensibleEnumeration_1OfT\";\n \n }\n }\n entityDictionary['ExtensibleEnumeration_1OfTClass'] = ExtensibleEnumeration_1OfTClass;\n \n /**\n * ExtensibleTransactionType entity class.\n */\n export class ExtensibleTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleTransactionTypeClass'] = ExtensibleTransactionTypeClass;\n \n /**\n * ExtensibleSalesTransactionType entity class.\n */\n export class ExtensibleSalesTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleSalesTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleSalesTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleSalesTransactionTypeClass'] = ExtensibleSalesTransactionTypeClass;\n \n /**\n * FulfillmentLineStatus entity class.\n */\n export class FulfillmentLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineStatus\";\n \n }\n }\n entityDictionary['FulfillmentLineStatusClass'] = FulfillmentLineStatusClass;\n \n /**\n * FulfillmentLineDeliveryType entity class.\n */\n export class FulfillmentLineDeliveryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineDeliveryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineDeliveryType\";\n \n }\n }\n entityDictionary['FulfillmentLineDeliveryTypeClass'] = FulfillmentLineDeliveryTypeClass;\n \n /**\n * ExtensibleAddressType entity class.\n */\n export class ExtensibleAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAddressType\";\n \n }\n }\n entityDictionary['ExtensibleAddressTypeClass'] = ExtensibleAddressTypeClass;\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity class.\n */\n export class ExtensibleLoyaltyRewardPointActivityEntryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleLoyaltyRewardPointActivityEntryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleLoyaltyRewardPointActivityEntryType\";\n \n }\n }\n entityDictionary['ExtensibleLoyaltyRewardPointActivityEntryTypeClass'] = ExtensibleLoyaltyRewardPointActivityEntryTypeClass;\n \n /**\n * ExtensibleAttributeDataType entity class.\n */\n export class ExtensibleAttributeDataTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAttributeDataType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAttributeDataType\";\n \n }\n }\n entityDictionary['ExtensibleAttributeDataTypeClass'] = ExtensibleAttributeDataTypeClass;\n \n /**\n * ReleasedProductServiceType entity class.\n */\n export class ReleasedProductServiceTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReleasedProductServiceType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReleasedProductServiceType\";\n \n }\n }\n entityDictionary['ReleasedProductServiceTypeClass'] = ReleasedProductServiceTypeClass;\n \n /**\n * ExtensibleElectronicAddressType entity class.\n */\n export class ExtensibleElectronicAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleElectronicAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleElectronicAddressType\";\n \n }\n }\n entityDictionary['ExtensibleElectronicAddressTypeClass'] = ExtensibleElectronicAddressTypeClass;\n \n /**\n * ReceiptOutputFormatType entity class.\n */\n export class ReceiptOutputFormatTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReceiptOutputFormatType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReceiptOutputFormatType\";\n \n }\n }\n entityDictionary['ReceiptOutputFormatTypeClass'] = ReceiptOutputFormatTypeClass;\n \n /**\n * OrderLookupAdditionalCriteriaType entity class.\n */\n export class OrderLookupAdditionalCriteriaTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.OrderLookupAdditionalCriteriaType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrderLookupAdditionalCriteriaType\";\n \n }\n }\n entityDictionary['OrderLookupAdditionalCriteriaTypeClass'] = OrderLookupAdditionalCriteriaTypeClass;\n \n /**\n * Address entity class.\n */\n export class AddressClass implements Entities.Address {\n public Name: string;\n public Id: string;\n public FullAddress: string;\n public RecordId: number;\n public Street: string;\n public StreetNumber: string;\n public County: string;\n public CountyName: string;\n public City: string;\n public DistrictName: string;\n public State: string;\n public StateName: string;\n public ZipCode: string;\n public ThreeLetterISORegionName: string;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Email: string;\n public EmailContent: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public TwoLetterISORegionName: string;\n public Deactivate: boolean;\n public AttentionTo: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public TaxGroup: string;\n public AddressTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public PartyNumber: string;\n public IsAsyncAddress: boolean;\n public DirectoryPartyTableRecordId: number;\n public DirectoryPartyLocationRecordId: number;\n public DirectoryPartyLocationRoleRecordId: number;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public LogisticsLocationExtRecordId: number;\n public LogisticsLocationRoleRecordId: number;\n public PhoneLogisticsLocationRecordId: number;\n public PhoneLogisticsLocationId: string;\n public EmailLogisticsLocationRecordId: number;\n public EmailLogisticsLocationId: string;\n public UrlLogisticsLocationRecordId: number;\n public UrlLogisticsLocationId: string;\n public ExpireRecordId: number;\n public SortOrder: number;\n public RoleCount: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Id = \n odataObject.Id;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.ZipCode = \n odataObject.ZipCode;\n \n this.ThreeLetterISORegionName = \n odataObject.ThreeLetterISORegionName;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Email = \n odataObject.Email;\n \n this.EmailContent = \n odataObject.EmailContent;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.TwoLetterISORegionName = \n odataObject.TwoLetterISORegionName;\n \n this.Deactivate = \n odataObject.Deactivate;\n \n this.AttentionTo = \n odataObject.AttentionTo;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.IsAsyncAddress = \n odataObject.IsAsyncAddress;\n \n this.DirectoryPartyTableRecordId = \n (odataObject.DirectoryPartyTableRecordId != null) ? parseInt(odataObject.DirectoryPartyTableRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRecordId = \n (odataObject.DirectoryPartyLocationRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRoleRecordId = \n (odataObject.DirectoryPartyLocationRoleRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRoleRecordId, 10) : undefined;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.LogisticsLocationExtRecordId = \n (odataObject.LogisticsLocationExtRecordId != null) ? parseInt(odataObject.LogisticsLocationExtRecordId, 10) : undefined;\n \n this.LogisticsLocationRoleRecordId = \n (odataObject.LogisticsLocationRoleRecordId != null) ? parseInt(odataObject.LogisticsLocationRoleRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationRecordId = \n (odataObject.PhoneLogisticsLocationRecordId != null) ? parseInt(odataObject.PhoneLogisticsLocationRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationId = \n odataObject.PhoneLogisticsLocationId;\n \n this.EmailLogisticsLocationRecordId = \n (odataObject.EmailLogisticsLocationRecordId != null) ? parseInt(odataObject.EmailLogisticsLocationRecordId, 10) : undefined;\n \n this.EmailLogisticsLocationId = \n odataObject.EmailLogisticsLocationId;\n \n this.UrlLogisticsLocationRecordId = \n (odataObject.UrlLogisticsLocationRecordId != null) ? parseInt(odataObject.UrlLogisticsLocationRecordId, 10) : undefined;\n \n this.UrlLogisticsLocationId = \n odataObject.UrlLogisticsLocationId;\n \n this.ExpireRecordId = \n (odataObject.ExpireRecordId != null) ? parseInt(odataObject.ExpireRecordId, 10) : undefined;\n \n this.SortOrder = \n odataObject.SortOrder;\n \n this.RoleCount = \n odataObject.RoleCount;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressClass'] = AddressClass;\n \n /**\n * CustomerAffiliation entity class.\n */\n export class CustomerAffiliationClass implements Entities.CustomerAffiliation {\n public RecordId: number;\n public RetailAffiliationId: number;\n public Name: string;\n public Description: string;\n public HideInChannels: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RetailAffiliationId = \n (odataObject.RetailAffiliationId != null) ? parseInt(odataObject.RetailAffiliationId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.HideInChannels = \n odataObject.HideInChannels;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAffiliationClass'] = CustomerAffiliationClass;\n \n /**\n * CustomerBalances entity class.\n */\n export class CustomerBalancesClass implements Entities.CustomerBalances {\n public Balance: number;\n public PendingBalance: number;\n public CreditLimit: number;\n public InvoiceAccountBalance: number;\n public InvoiceAccountPendingBalance: number;\n public InvoiceAccountCreditLimit: number;\n public OpenInvoiceBalance: number;\n public OpenInvoiceCount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.PendingBalance = \n (odataObject.PendingBalance != null) ? parseFloat(odataObject.PendingBalance) : undefined;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.InvoiceAccountBalance = \n (odataObject.InvoiceAccountBalance != null) ? parseFloat(odataObject.InvoiceAccountBalance) : undefined;\n \n this.InvoiceAccountPendingBalance = \n (odataObject.InvoiceAccountPendingBalance != null) ? parseFloat(odataObject.InvoiceAccountPendingBalance) : undefined;\n \n this.InvoiceAccountCreditLimit = \n (odataObject.InvoiceAccountCreditLimit != null) ? parseFloat(odataObject.InvoiceAccountCreditLimit) : undefined;\n \n this.OpenInvoiceBalance = \n (odataObject.OpenInvoiceBalance != null) ? parseFloat(odataObject.OpenInvoiceBalance) : undefined;\n \n this.OpenInvoiceCount = \n odataObject.OpenInvoiceCount;\n \n }\n }\n entityDictionary['CustomerBalancesClass'] = CustomerBalancesClass;\n \n /**\n * GlobalCustomer entity class.\n */\n export class GlobalCustomerClass implements Entities.GlobalCustomer {\n public PartyNumber: string;\n public RecordId: number;\n public IsAsyncCustomer: boolean;\n public AccountNumber: string;\n public FullName: string;\n public FullAddress: string;\n public Phone: string;\n public Email: string;\n public CustomerTypeValue: number;\n public Images: Entities.MediaLocation[];\n public OfflineImage: string;\n public IsB2b: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.FullName = \n odataObject.FullName;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GlobalCustomerClass'] = GlobalCustomerClass;\n \n /**\n * AttributeValue entity class.\n */\n export class AttributeValueClass implements Entities.AttributeValue {\n public Name: string;\n public KeyName: string;\n public UnitOfMeasureSymbol: string;\n public DataTypeValue: number;\n public BooleanValue: boolean;\n public DateTimeOffsetValue: Date;\n public FloatValue: number;\n public IntegerValue: number;\n public TextValue: string;\n public CurrencyValue: number;\n public CurrencyCode: string;\n public AttributeValueId: number;\n public RecordId: number;\n public Swatches: Entities.AttributeSwatch[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FloatValue = \n (odataObject.FloatValue != null) ? parseFloat(odataObject.FloatValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.TextValue = \n odataObject.TextValue;\n \n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Swatches = undefined;\n if (odataObject.Swatches) {\n this.Swatches = [];\n for (var i = 0; i < odataObject.Swatches.length; i++) {\n if (odataObject.Swatches[i] != null) {\n if (odataObject.Swatches[i]['@odata.type'] != null) {\n var className: string = odataObject.Swatches[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Swatches[i] = new entityDictionary[className](odataObject.Swatches[i])\n }\n } else {\n this.Swatches[i] = new AttributeSwatchClass(odataObject.Swatches[i]);\n }\n } else {\n this.Swatches[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueClass'] = AttributeValueClass;\n \n /**\n * AttributeValueBase entity class.\n */\n export class AttributeValueBaseClass implements Entities.AttributeValueBase {\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueBaseClass'] = AttributeValueBaseClass;\n \n /**\n * Barcode entity class.\n */\n export class BarcodeClass implements Entities.Barcode {\n public BarcodeId: string;\n public BarcodePrice: number;\n public Quantity: number;\n public CustomerId: string;\n public EmployeeId: string;\n public SalespersonId: string;\n public EANLicenseId: string;\n public DataEntry: string;\n public DiscountCode: string;\n public GiftCardNumber: string;\n public LoyaltyCardNumber: string;\n public ItemBarcode: Entities.ItemBarcode;\n public EntryMethodTypeValue: number;\n public ItemType: number;\n public EnterDimensions: boolean;\n public ItemGroupId: string;\n public ItemDepartmentId: string;\n public ScaleItem: boolean;\n public ZeroPriceValid: boolean;\n public NegativeQuantity: boolean;\n public DiscountNotAllowed: boolean;\n public DateToBeBlocked: Date;\n public DateToBeActivated: Date;\n public CheckDigitValidated: boolean;\n public CouponId: string;\n public Message: string;\n public LineDiscountGroup: string;\n public MultilineDiscountGroup: string;\n public IncludedInTotalDiscount: boolean;\n public CostPrice: number;\n public BatchId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BarcodeId = \n odataObject.BarcodeId;\n \n this.BarcodePrice = \n (odataObject.BarcodePrice != null) ? parseFloat(odataObject.BarcodePrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.EmployeeId = \n odataObject.EmployeeId;\n \n this.SalespersonId = \n odataObject.SalespersonId;\n \n this.EANLicenseId = \n odataObject.EANLicenseId;\n \n this.DataEntry = \n odataObject.DataEntry;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.GiftCardNumber = \n odataObject.GiftCardNumber;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n if (odataObject.ItemBarcode == null) {\n this.ItemBarcode = undefined;\n } else if (odataObject.ItemBarcode['@odata.type'] == null) {\n this.ItemBarcode = new ItemBarcodeClass(odataObject.ItemBarcode);\n } else {\n var className: string = odataObject.ItemBarcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemBarcode = new entityDictionary[className](odataObject.ItemBarcode)\n }\n }\n\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.EnterDimensions = \n odataObject.EnterDimensions;\n \n this.ItemGroupId = \n odataObject.ItemGroupId;\n \n this.ItemDepartmentId = \n odataObject.ItemDepartmentId;\n \n this.ScaleItem = \n odataObject.ScaleItem;\n \n this.ZeroPriceValid = \n odataObject.ZeroPriceValid;\n \n this.NegativeQuantity = \n odataObject.NegativeQuantity;\n \n this.DiscountNotAllowed = \n odataObject.DiscountNotAllowed;\n \n this.DateToBeBlocked = \n (odataObject.DateToBeBlocked instanceof Date) ? odataObject.DateToBeBlocked\n : (odataObject.DateToBeBlocked != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeBlocked, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBeActivated = \n (odataObject.DateToBeActivated instanceof Date) ? odataObject.DateToBeActivated\n : (odataObject.DateToBeActivated != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeActivated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CheckDigitValidated = \n odataObject.CheckDigitValidated;\n \n this.CouponId = \n odataObject.CouponId;\n \n this.Message = \n odataObject.Message;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.IncludedInTotalDiscount = \n odataObject.IncludedInTotalDiscount;\n \n this.CostPrice = \n (odataObject.CostPrice != null) ? parseFloat(odataObject.CostPrice) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BarcodeClass'] = BarcodeClass;\n \n /**\n * ItemBarcode entity class.\n */\n export class ItemBarcodeClass implements Entities.ItemBarcode {\n public RecordId: number;\n public ItemId: string;\n public Description: string;\n public BarcodeSetupId: string;\n public ItemBarcodeValue: string;\n public InventoryDimensionId: string;\n public IsBlocked: boolean;\n public Display: boolean;\n public VariantId: string;\n public UnitId: string;\n public UseForInput: boolean;\n public UseForPrinting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.BarcodeSetupId = \n odataObject.BarcodeSetupId;\n \n this.ItemBarcodeValue = \n odataObject.ItemBarcodeValue;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.Display = \n odataObject.Display;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.UseForInput = \n odataObject.UseForInput;\n \n this.UseForPrinting = \n odataObject.UseForPrinting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemBarcodeClass'] = ItemBarcodeClass;\n \n /**\n * ButtonGrid entity class.\n */\n export class ButtonGridClass implements Entities.ButtonGrid {\n public Id: string;\n public Name: string;\n public DefaultColor: number;\n public SpaceBetweenButtonsInPixels: number;\n public Buttons: Entities.ButtonGridButton[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultColor = \n odataObject.DefaultColor;\n \n this.SpaceBetweenButtonsInPixels = \n odataObject.SpaceBetweenButtonsInPixels;\n \n this.Buttons = undefined;\n if (odataObject.Buttons) {\n this.Buttons = [];\n for (var i = 0; i < odataObject.Buttons.length; i++) {\n if (odataObject.Buttons[i] != null) {\n if (odataObject.Buttons[i]['@odata.type'] != null) {\n var className: string = odataObject.Buttons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Buttons[i] = new entityDictionary[className](odataObject.Buttons[i])\n }\n } else {\n this.Buttons[i] = new ButtonGridButtonClass(odataObject.Buttons[i]);\n }\n } else {\n this.Buttons[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridClass'] = ButtonGridClass;\n \n /**\n * GetButtonGridsByIdsCriteria entity class.\n */\n export class GetButtonGridsByIdsCriteriaClass implements Entities.GetButtonGridsByIdsCriteria {\n public ButtonGridIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridIds = undefined;\n if (odataObject.ButtonGridIds) {\n this.ButtonGridIds = [];\n for (var i = 0; i < odataObject.ButtonGridIds.length; i++) {\n if (odataObject.ButtonGridIds[i] != null) {\n this.ButtonGridIds[i] = \n odataObject.ButtonGridIds[i];\n } else {\n this.ButtonGridIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GetButtonGridsByIdsCriteriaClass'] = GetButtonGridsByIdsCriteriaClass;\n \n /**\n * CartLine entity class.\n */\n export class CartLineClass implements Entities.CartLine {\n public LineId: string;\n public TaxOverrideCode: string;\n public ItemId: string;\n public Barcode: string;\n public EntryMethodTypeValue: number;\n public Description: string;\n public InventoryDimensionId: string;\n public Comment: string;\n public ProductId: number;\n public WarehouseId: string;\n public Quantity: number;\n public Price: number;\n public ExtendedPrice: number;\n public TaxAmount: number;\n public ItemTaxGroupId: string;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountAmountWithoutTax: number;\n public DiscountAmount: number;\n public LineDiscount: number;\n public LinePercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public UnitOfMeasureSymbol: string;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public WarrantiedId: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public IsVoided: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public IsGiftCardLine: boolean;\n public IsPriceKeyedIn: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public SalesStatusValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityCanceled: number;\n public FulfillmentStoreId: string;\n public SerialNumber: string;\n public ElectronicDeliveryEmail: string;\n public ElectronicDeliveryEmailContent: string;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public GiftCardBalance: number;\n public LineVersion: number;\n public PromotionLines: string[];\n public PriceLines: Entities.PriceLine[];\n public DiscountLines: Entities.DiscountLine[];\n public RelatedDiscountedLineIds: string[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TaxLines: Entities.TaxLine[];\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxRatePercent: number;\n public IsCustomerAccountDeposit: boolean;\n public LinkedParentLineId: string;\n public QuantityReturnable: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n public LineNumber: number;\n public CommissionSalesGroup: string;\n public TrackingId: string;\n public StaffId: string;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public CatalogId: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public WarehouseLocation: string;\n public DetailedLineStatusValue: number;\n public SalesAgreementLineRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.Comment = \n odataObject.Comment;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ExtendedPrice = \n (odataObject.ExtendedPrice != null) ? parseFloat(odataObject.ExtendedPrice) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.WarrantiedId = \n odataObject.WarrantiedId;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ElectronicDeliveryEmail = \n odataObject.ElectronicDeliveryEmail;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['CartLineClass'] = CartLineClass;\n \n /**\n * ThirdPartyGiftCardInfo entity class.\n */\n export class ThirdPartyGiftCardInfoClass implements Entities.ThirdPartyGiftCardInfo {\n public Amount: number;\n public Authorization: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ThirdPartyGiftCardInfoClass'] = ThirdPartyGiftCardInfoClass;\n \n /**\n * CardTypeInfo entity class.\n */\n export class CardTypeInfoClass implements Entities.CardTypeInfo {\n public RecordId: number;\n public TypeId: string;\n public Name: string;\n public PaymentMethodId: string;\n public CardTypeValue: number;\n public Issuer: string;\n public NumberFrom: string;\n public NumberTo: string;\n public CashBackLimit: number;\n public AllowManualInput: boolean;\n public CheckModulus: boolean;\n public HasTenderDiscount: boolean;\n public IsPinRequired: boolean;\n public IsExpirationDateRequired: boolean;\n public ConnectorName: string;\n public PaymentProcessorMethod: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.Name = \n odataObject.Name;\n \n this.PaymentMethodId = \n odataObject.PaymentMethodId;\n \n this.CardTypeValue = \n odataObject.CardTypeValue;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.NumberFrom = \n odataObject.NumberFrom;\n \n this.NumberTo = \n odataObject.NumberTo;\n \n this.CashBackLimit = \n (odataObject.CashBackLimit != null) ? parseFloat(odataObject.CashBackLimit) : undefined;\n \n this.AllowManualInput = \n odataObject.AllowManualInput;\n \n this.CheckModulus = \n odataObject.CheckModulus;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.IsPinRequired = \n odataObject.IsPinRequired;\n \n this.IsExpirationDateRequired = \n odataObject.IsExpirationDateRequired;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.PaymentProcessorMethod = \n odataObject.PaymentProcessorMethod;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CardTypeInfoClass'] = CardTypeInfoClass;\n \n /**\n * CashDeclaration entity class.\n */\n export class CashDeclarationClass implements Entities.CashDeclaration {\n public RecordId: number;\n public Currency: string;\n public Amount: number;\n public CashTypeValue: number;\n public IncludeInQuickPayShortcuts: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashTypeValue = \n odataObject.CashTypeValue;\n \n this.IncludeInQuickPayShortcuts = \n odataObject.IncludeInQuickPayShortcuts;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CashDeclarationClass'] = CashDeclarationClass;\n \n /**\n * IncomeExpenseAccount entity class.\n */\n export class IncomeExpenseAccountClass implements Entities.IncomeExpenseAccount {\n public Amount: number;\n public AccountNumber: string;\n public AccountName: string;\n public AccountNameAlias: string;\n public AccountTypeValue: number;\n public Quantity: number;\n public Message1Line: string;\n public Message2Line: string;\n public SlipText1Line: string;\n public SlipText2Line: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.AccountName = \n odataObject.AccountName;\n \n this.AccountNameAlias = \n odataObject.AccountNameAlias;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Message1Line = \n odataObject.Message1Line;\n \n this.Message2Line = \n odataObject.Message2Line;\n \n this.SlipText1Line = \n odataObject.SlipText1Line;\n \n this.SlipText2Line = \n odataObject.SlipText2Line;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseAccountClass'] = IncomeExpenseAccountClass;\n \n /**\n * IncomeExpenseLine entity class.\n */\n export class IncomeExpenseLineClass implements Entities.IncomeExpenseLine {\n public Amount: number;\n public IncomeExpenseAccount: string;\n public StoreNumber: string;\n public AccountTypeValue: number;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.IncomeExpenseAccount = \n odataObject.IncomeExpenseAccount;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseLineClass'] = IncomeExpenseLineClass;\n \n /**\n * CartTenderLine entity class.\n */\n export class CartTenderLineClass implements Entities.CartTenderLine {\n public PaymentCard: Entities.PaymentCard;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public CardPaymentAcceptResult: Entities.CardPaymentAcceptResult;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.PaymentCard == null) {\n this.PaymentCard = undefined;\n } else if (odataObject.PaymentCard['@odata.type'] == null) {\n this.PaymentCard = new PaymentCardClass(odataObject.PaymentCard);\n } else {\n var className: string = odataObject.PaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentCard = new entityDictionary[className](odataObject.PaymentCard)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n if (odataObject.CardPaymentAcceptResult == null) {\n this.CardPaymentAcceptResult = undefined;\n } else if (odataObject.CardPaymentAcceptResult['@odata.type'] == null) {\n this.CardPaymentAcceptResult = new CardPaymentAcceptResultClass(odataObject.CardPaymentAcceptResult);\n } else {\n var className: string = odataObject.CardPaymentAcceptResult['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardPaymentAcceptResult = new entityDictionary[className](odataObject.CardPaymentAcceptResult)\n }\n }\n\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartTenderLineClass'] = CartTenderLineClass;\n \n /**\n * ChargeLine entity class.\n */\n export class ChargeLineClass implements Entities.ChargeLine {\n public ChargeLineId: string;\n public ChargeCode: string;\n public CurrencyCode: string;\n public ModuleTypeValue: number;\n public IsHeaderChargeProrated: boolean;\n public ChargeTypeValue: number;\n public ChargeMethodValue: number;\n public CalculatedAmount: number;\n public Value: number;\n public Description: string;\n public TransactionId: string;\n public MarkupAutoLineRecordId: number;\n public MarkupAutoTableRecId: number;\n public SaleLineNumber: number;\n public FromAmount: number;\n public ToAmount: number;\n public Keep: number;\n public AmountRefunded: number;\n public ChargeLineOverrides: Entities.ChargeLineOverride[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public IsOverridden: boolean;\n public IsInvoiced: boolean;\n public CalculatedProratedAmount: number;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeLineId = \n odataObject.ChargeLineId;\n \n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.IsHeaderChargeProrated = \n odataObject.IsHeaderChargeProrated;\n \n this.ChargeTypeValue = \n odataObject.ChargeTypeValue;\n \n this.ChargeMethodValue = \n odataObject.ChargeMethodValue;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.MarkupAutoLineRecordId = \n (odataObject.MarkupAutoLineRecordId != null) ? parseInt(odataObject.MarkupAutoLineRecordId, 10) : undefined;\n \n this.MarkupAutoTableRecId = \n (odataObject.MarkupAutoTableRecId != null) ? parseInt(odataObject.MarkupAutoTableRecId, 10) : undefined;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.FromAmount = \n (odataObject.FromAmount != null) ? parseFloat(odataObject.FromAmount) : undefined;\n \n this.ToAmount = \n (odataObject.ToAmount != null) ? parseFloat(odataObject.ToAmount) : undefined;\n \n this.Keep = \n odataObject.Keep;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.ChargeLineOverrides = undefined;\n if (odataObject.ChargeLineOverrides) {\n this.ChargeLineOverrides = [];\n for (var i = 0; i < odataObject.ChargeLineOverrides.length; i++) {\n if (odataObject.ChargeLineOverrides[i] != null) {\n if (odataObject.ChargeLineOverrides[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLineOverrides[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLineOverrides[i] = new entityDictionary[className](odataObject.ChargeLineOverrides[i])\n }\n } else {\n this.ChargeLineOverrides[i] = new ChargeLineOverrideClass(odataObject.ChargeLineOverrides[i]);\n }\n } else {\n this.ChargeLineOverrides[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.IsOverridden = \n odataObject.IsOverridden;\n \n this.IsInvoiced = \n odataObject.IsInvoiced;\n \n this.CalculatedProratedAmount = \n (odataObject.CalculatedProratedAmount != null) ? parseFloat(odataObject.CalculatedProratedAmount) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeLineClass'] = ChargeLineClass;\n \n /**\n * CityInfo entity class.\n */\n export class CityInfoClass implements Entities.CityInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CityInfoClass'] = CityInfoClass;\n \n /**\n * CommissionSalesGroup entity class.\n */\n export class CommissionSalesGroupClass implements Entities.CommissionSalesGroup {\n public GroupId: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.GroupId = \n odataObject.GroupId;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommissionSalesGroupClass'] = CommissionSalesGroupClass;\n \n /**\n * ContactInformation entity class.\n */\n export class ContactInformationClass implements Entities.ContactInformation {\n public Value: string;\n public ContactInformationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ContactInformationTypeValue = \n odataObject.ContactInformationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInformationClass'] = ContactInformationClass;\n \n /**\n * AttributeCategory entity class.\n */\n export class AttributeCategoryClass implements Entities.AttributeCategory {\n public Value: Entities.CommercePropertyValue;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeCategoryClass'] = AttributeCategoryClass;\n \n /**\n * AttributeProduct entity class.\n */\n export class AttributeProductClass implements Entities.AttributeProduct {\n public MetadataFlags: Entities.ProductAttributeMetadataFlags;\n public IsDimension: boolean;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.MetadataFlags == null) {\n this.MetadataFlags = undefined;\n } else if (odataObject.MetadataFlags['@odata.type'] == null) {\n this.MetadataFlags = new ProductAttributeMetadataFlagsClass(odataObject.MetadataFlags);\n } else {\n var className: string = odataObject.MetadataFlags['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataFlags = new entityDictionary[className](odataObject.MetadataFlags)\n }\n }\n\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeProductClass'] = AttributeProductClass;\n \n /**\n * ProductComparisonEntry entity class.\n */\n export class ProductComparisonEntryClass implements Entities.ProductComparisonEntry {\n public ProductId: number;\n public AttributeValue: Entities.AttributeValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new AttributeValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonEntryClass'] = ProductComparisonEntryClass;\n \n /**\n * ProductComparisonLine entity class.\n */\n export class ProductComparisonLineClass implements Entities.ProductComparisonLine {\n public AttributeRecordId: number;\n public AttributeName: string;\n public ProductAttributeComparisonEntries: Entities.ProductComparisonEntry[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.AttributeName = \n odataObject.AttributeName;\n \n this.ProductAttributeComparisonEntries = undefined;\n if (odataObject.ProductAttributeComparisonEntries) {\n this.ProductAttributeComparisonEntries = [];\n for (var i = 0; i < odataObject.ProductAttributeComparisonEntries.length; i++) {\n if (odataObject.ProductAttributeComparisonEntries[i] != null) {\n if (odataObject.ProductAttributeComparisonEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductAttributeComparisonEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductAttributeComparisonEntries[i] = new entityDictionary[className](odataObject.ProductAttributeComparisonEntries[i])\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = new ProductComparisonEntryClass(odataObject.ProductAttributeComparisonEntries[i]);\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonLineClass'] = ProductComparisonLineClass;\n \n /**\n * CustomerSearchField entity class.\n */\n export class CustomerSearchFieldClass implements Entities.CustomerSearchField {\n public IsShortcut: boolean;\n public DisplayName: string;\n public CanBeRefined: boolean;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsShortcut = \n odataObject.IsShortcut;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.CanBeRefined = \n odataObject.CanBeRefined;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchFieldClass'] = CustomerSearchFieldClass;\n \n /**\n * CustomerSearchByFieldCriteria entity class.\n */\n export class CustomerSearchByFieldCriteriaClass implements Entities.CustomerSearchByFieldCriteria {\n public Criteria: Entities.CustomerSearchByFieldCriterion[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Criteria = undefined;\n if (odataObject.Criteria) {\n this.Criteria = [];\n for (var i = 0; i < odataObject.Criteria.length; i++) {\n if (odataObject.Criteria[i] != null) {\n if (odataObject.Criteria[i]['@odata.type'] != null) {\n var className: string = odataObject.Criteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Criteria[i] = new entityDictionary[className](odataObject.Criteria[i])\n }\n } else {\n this.Criteria[i] = new CustomerSearchByFieldCriterionClass(odataObject.Criteria[i]);\n }\n } else {\n this.Criteria[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriteriaClass'] = CustomerSearchByFieldCriteriaClass;\n \n /**\n * CustomerSearchByFieldCriterion entity class.\n */\n export class CustomerSearchByFieldCriterionClass implements Entities.CustomerSearchByFieldCriterion {\n public SearchTerm: string;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchTerm = \n odataObject.SearchTerm;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriterionClass'] = CustomerSearchByFieldCriterionClass;\n \n /**\n * CustomerSearchFieldType entity class.\n */\n export class CustomerSearchFieldTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.CustomerSearchFieldType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerSearchFieldType\";\n \n }\n }\n entityDictionary['CustomerSearchFieldTypeClass'] = CustomerSearchFieldTypeClass;\n \n /**\n * OrderShipments entity class.\n */\n export class OrderShipmentsClass implements Entities.OrderShipments {\n public SalesId: string;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public StatusValue: number;\n public CurrencyCode: string;\n public CustomerId: string;\n public DeliveryMode: string;\n public GrossAmount: number;\n public InventoryLocationId: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public TotalAmount: number;\n public TaxAmount: number;\n public SalesLines: Entities.SalesLine[];\n public Shipments: Entities.Shipment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderShipmentsClass'] = OrderShipmentsClass;\n \n /**\n * Shipment entity class.\n */\n export class ShipmentClass implements Entities.Shipment {\n public SalesId: string;\n public ShipmentId: string;\n public DeliveryAddress: Entities.Address;\n public ShipDate: Date;\n public DeliveryMode: string;\n public TermsOfDelivery: string;\n public WeightUnit: string;\n public TrackingNumber: string;\n public TrackingUrl: string;\n public LatestCarrierTrackingInfo: Entities.TrackingInfo;\n public CarrierId: string;\n public CarrierName: string;\n public ShippingWeight: number;\n public ShipmentLines: Entities.ShipmentLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ShipmentId = \n odataObject.ShipmentId;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TermsOfDelivery = \n odataObject.TermsOfDelivery;\n \n this.WeightUnit = \n odataObject.WeightUnit;\n \n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n if (odataObject.LatestCarrierTrackingInfo == null) {\n this.LatestCarrierTrackingInfo = undefined;\n } else if (odataObject.LatestCarrierTrackingInfo['@odata.type'] == null) {\n this.LatestCarrierTrackingInfo = new TrackingInfoClass(odataObject.LatestCarrierTrackingInfo);\n } else {\n var className: string = odataObject.LatestCarrierTrackingInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LatestCarrierTrackingInfo = new entityDictionary[className](odataObject.LatestCarrierTrackingInfo)\n }\n }\n\n \n this.CarrierId = \n odataObject.CarrierId;\n \n this.CarrierName = \n odataObject.CarrierName;\n \n this.ShippingWeight = \n (odataObject.ShippingWeight != null) ? parseFloat(odataObject.ShippingWeight) : undefined;\n \n this.ShipmentLines = undefined;\n if (odataObject.ShipmentLines) {\n this.ShipmentLines = [];\n for (var i = 0; i < odataObject.ShipmentLines.length; i++) {\n if (odataObject.ShipmentLines[i] != null) {\n if (odataObject.ShipmentLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentLines[i] = new entityDictionary[className](odataObject.ShipmentLines[i])\n }\n } else {\n this.ShipmentLines[i] = new ShipmentLineClass(odataObject.ShipmentLines[i]);\n }\n } else {\n this.ShipmentLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentClass'] = ShipmentClass;\n \n /**\n * ShipmentLine entity class.\n */\n export class ShipmentLineClass implements Entities.ShipmentLine {\n public ShipmentLineId: string;\n public ItemId: string;\n public Description: string;\n public InventDimId: string;\n public OrderedQuantity: number;\n public DeliveredQuantity: number;\n public RemainingQuantity: number;\n public InventoryTransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShipmentLineId = \n odataObject.ShipmentLineId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.OrderedQuantity = \n (odataObject.OrderedQuantity != null) ? parseFloat(odataObject.OrderedQuantity) : undefined;\n \n this.DeliveredQuantity = \n (odataObject.DeliveredQuantity != null) ? parseFloat(odataObject.DeliveredQuantity) : undefined;\n \n this.RemainingQuantity = \n (odataObject.RemainingQuantity != null) ? parseFloat(odataObject.RemainingQuantity) : undefined;\n \n this.InventoryTransactionId = \n odataObject.InventoryTransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentLineClass'] = ShipmentLineClass;\n \n /**\n * Transaction entity class.\n */\n export class TransactionClass implements Entities.Transaction {\n public Id: string;\n public StoreId: string;\n public TerminalId: string;\n public IsCreatedOffline: boolean;\n public StaffId: string;\n public LanguageId: string;\n public ShiftId: string;\n public ShiftTerminalId: string;\n public Description: string;\n public ReceiptId: string;\n public GrossAmount: number;\n public TotalAmount: number;\n public CreatedDateTime: Date;\n public TransactionTypeValue: number;\n public TransactionStatusValue: number;\n public BeginDateTime: Date;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public FromSafe: string;\n public ToSafe: string;\n public FromShiftTerminalId: string;\n public ToShiftTerminalId: string;\n public FromShiftId: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n public ToShiftId: string;\n public TransactionDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ShiftId = \n odataObject.ShiftId;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.Description = \n odataObject.Description;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.FromSafe = \n odataObject.FromSafe;\n \n this.ToSafe = \n odataObject.ToSafe;\n \n this.FromShiftTerminalId = \n odataObject.FromShiftTerminalId;\n \n this.ToShiftTerminalId = \n odataObject.ToShiftTerminalId;\n \n this.FromShiftId = \n odataObject.FromShiftId;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n this.ToShiftId = \n odataObject.ToShiftId;\n \n this.TransactionDateTime = \n (odataObject.TransactionDateTime instanceof Date) ? odataObject.TransactionDateTime\n : (odataObject.TransactionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionClass'] = TransactionClass;\n \n /**\n * ShiftReconciliationLine entity class.\n */\n export class ShiftReconciliationLineClass\n extends TransactionClass\n implements Entities.ShiftReconciliationLine {\n public GroupId: number;\n public GroupDescription: string;\n public ShiftGroupLinesCount: number;\n public ShiftGroupLinesClosedCount: number;\n public AmountInOriginalCurrency: number;\n public TransactionCurrencyCode: string;\n public TenderType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupDescription = \n odataObject.GroupDescription;\n \n this.ShiftGroupLinesCount = \n (odataObject.ShiftGroupLinesCount != null) ? parseInt(odataObject.ShiftGroupLinesCount, 10) : undefined;\n \n this.ShiftGroupLinesClosedCount = \n (odataObject.ShiftGroupLinesClosedCount != null) ? parseInt(odataObject.ShiftGroupLinesClosedCount, 10) : undefined;\n \n this.AmountInOriginalCurrency = \n (odataObject.AmountInOriginalCurrency != null) ? parseFloat(odataObject.AmountInOriginalCurrency) : undefined;\n \n this.TransactionCurrencyCode = \n odataObject.TransactionCurrencyCode;\n \n this.TenderType = \n odataObject.TenderType;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShiftReconciliationLine\";\n \n }\n }\n entityDictionary['ShiftReconciliationLineClass'] = ShiftReconciliationLineClass;\n \n /**\n * ShiftReconciliationLineRetrievalCriteria entity class.\n */\n export class ShiftReconciliationLineRetrievalCriteriaClass implements Entities.ShiftReconciliationLineRetrievalCriteria {\n public TransactionTypeValues: number[];\n public ShiftReconciliationLineStatusValue: number;\n public Shifts: Entities.ShiftKey[];\n public DestinationShift: Entities.ShiftKey;\n public SourceShift: Entities.ShiftKey;\n public SourceSafe: string;\n public DestinationSafe: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionTypeValues = undefined;\n if (odataObject.TransactionTypeValues) {\n this.TransactionTypeValues = [];\n for (var i = 0; i < odataObject.TransactionTypeValues.length; i++) {\n if (odataObject.TransactionTypeValues[i] != null) {\n this.TransactionTypeValues[i] = \n odataObject.TransactionTypeValues[i];\n } else {\n this.TransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.ShiftReconciliationLineStatusValue = \n odataObject.ShiftReconciliationLineStatusValue;\n \n this.Shifts = undefined;\n if (odataObject.Shifts) {\n this.Shifts = [];\n for (var i = 0; i < odataObject.Shifts.length; i++) {\n if (odataObject.Shifts[i] != null) {\n if (odataObject.Shifts[i]['@odata.type'] != null) {\n var className: string = odataObject.Shifts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shifts[i] = new entityDictionary[className](odataObject.Shifts[i])\n }\n } else {\n this.Shifts[i] = new ShiftKeyClass(odataObject.Shifts[i]);\n }\n } else {\n this.Shifts[i] = undefined;\n }\n }\n }\n \n if (odataObject.DestinationShift == null) {\n this.DestinationShift = undefined;\n } else if (odataObject.DestinationShift['@odata.type'] == null) {\n this.DestinationShift = new ShiftKeyClass(odataObject.DestinationShift);\n } else {\n var className: string = odataObject.DestinationShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationShift = new entityDictionary[className](odataObject.DestinationShift)\n }\n }\n\n \n if (odataObject.SourceShift == null) {\n this.SourceShift = undefined;\n } else if (odataObject.SourceShift['@odata.type'] == null) {\n this.SourceShift = new ShiftKeyClass(odataObject.SourceShift);\n } else {\n var className: string = odataObject.SourceShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceShift = new entityDictionary[className](odataObject.SourceShift)\n }\n }\n\n \n this.SourceSafe = \n odataObject.SourceSafe;\n \n this.DestinationSafe = \n odataObject.DestinationSafe;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n }\n }\n entityDictionary['ShiftReconciliationLineRetrievalCriteriaClass'] = ShiftReconciliationLineRetrievalCriteriaClass;\n \n /**\n * SearchConfiguration entity class.\n */\n export class SearchConfigurationClass implements Entities.SearchConfiguration {\n public ProductSortColumns: Entities.SortColumn[];\n public ProductSearchServiceTypeValue: number;\n public ProductSortColumnsLabels: Entities.LocalizedText[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductSortColumns = undefined;\n if (odataObject.ProductSortColumns) {\n this.ProductSortColumns = [];\n for (var i = 0; i < odataObject.ProductSortColumns.length; i++) {\n if (odataObject.ProductSortColumns[i] != null) {\n if (odataObject.ProductSortColumns[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumns[i] = new entityDictionary[className](odataObject.ProductSortColumns[i])\n }\n } else {\n this.ProductSortColumns[i] = new SortColumnClass(odataObject.ProductSortColumns[i]);\n }\n } else {\n this.ProductSortColumns[i] = undefined;\n }\n }\n }\n \n this.ProductSearchServiceTypeValue = \n odataObject.ProductSearchServiceTypeValue;\n \n this.ProductSortColumnsLabels = undefined;\n if (odataObject.ProductSortColumnsLabels) {\n this.ProductSortColumnsLabels = [];\n for (var i = 0; i < odataObject.ProductSortColumnsLabels.length; i++) {\n if (odataObject.ProductSortColumnsLabels[i] != null) {\n if (odataObject.ProductSortColumnsLabels[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumnsLabels[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumnsLabels[i] = new entityDictionary[className](odataObject.ProductSortColumnsLabels[i])\n }\n } else {\n this.ProductSortColumnsLabels[i] = new LocalizedTextClass(odataObject.ProductSortColumnsLabels[i]);\n }\n } else {\n this.ProductSortColumnsLabels[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchConfigurationClass'] = SearchConfigurationClass;\n \n /**\n * CustomerTimelineItem entity class.\n */\n export class CustomerTimelineItemClass implements Entities.CustomerTimelineItem {\n public CustomerId: string;\n public Description: string;\n public Id: string;\n public EntityType: string;\n public TypeId: string;\n public StaffId: string;\n public StartDateTime: Date;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Description = \n odataObject.Description;\n \n this.Id = \n odataObject.Id;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemClass'] = CustomerTimelineItemClass;\n \n /**\n * AttributeDefinition entity class.\n */\n export class AttributeDefinitionClass implements Entities.AttributeDefinition {\n public RecordId: number;\n public Name: string;\n public AttributeTypeName: string;\n public ExtDataType: Entities.ExtensibleAttributeDataType;\n public DataTypeValue: number;\n public IsHidden: boolean;\n public IsMandatory: boolean;\n public IsMultiValue: boolean;\n public IsEnumeration: boolean;\n public TranslationDetails: Entities.AttributeTranslationDetails[];\n public EnumerationDetails: Entities.AttributeEnumeration[];\n public DefaultValue: Entities.CommercePropertyValue;\n public UpperBound: Entities.CommercePropertyValue;\n public LowerBound: Entities.CommercePropertyValue;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.AttributeTypeName = \n odataObject.AttributeTypeName;\n \n if (odataObject.ExtDataType == null) {\n this.ExtDataType = undefined;\n } else if (odataObject.ExtDataType['@odata.type'] == null) {\n this.ExtDataType = new ExtensibleAttributeDataTypeClass(odataObject.ExtDataType);\n } else {\n var className: string = odataObject.ExtDataType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtDataType = new entityDictionary[className](odataObject.ExtDataType)\n }\n }\n\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.IsHidden = \n odataObject.IsHidden;\n \n this.IsMandatory = \n odataObject.IsMandatory;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsEnumeration = \n odataObject.IsEnumeration;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.EnumerationDetails = undefined;\n if (odataObject.EnumerationDetails) {\n this.EnumerationDetails = [];\n for (var i = 0; i < odataObject.EnumerationDetails.length; i++) {\n if (odataObject.EnumerationDetails[i] != null) {\n if (odataObject.EnumerationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.EnumerationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.EnumerationDetails[i] = new entityDictionary[className](odataObject.EnumerationDetails[i])\n }\n } else {\n this.EnumerationDetails[i] = new AttributeEnumerationClass(odataObject.EnumerationDetails[i]);\n }\n } else {\n this.EnumerationDetails[i] = undefined;\n }\n }\n }\n \n if (odataObject.DefaultValue == null) {\n this.DefaultValue = undefined;\n } else if (odataObject.DefaultValue['@odata.type'] == null) {\n this.DefaultValue = new CommercePropertyValueClass(odataObject.DefaultValue);\n } else {\n var className: string = odataObject.DefaultValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DefaultValue = new entityDictionary[className](odataObject.DefaultValue)\n }\n }\n\n \n if (odataObject.UpperBound == null) {\n this.UpperBound = undefined;\n } else if (odataObject.UpperBound['@odata.type'] == null) {\n this.UpperBound = new CommercePropertyValueClass(odataObject.UpperBound);\n } else {\n var className: string = odataObject.UpperBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpperBound = new entityDictionary[className](odataObject.UpperBound)\n }\n }\n\n \n if (odataObject.LowerBound == null) {\n this.LowerBound = undefined;\n } else if (odataObject.LowerBound['@odata.type'] == null) {\n this.LowerBound = new CommercePropertyValueClass(odataObject.LowerBound);\n } else {\n var className: string = odataObject.LowerBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LowerBound = new entityDictionary[className](odataObject.LowerBound)\n }\n }\n\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionClass'] = AttributeDefinitionClass;\n \n /**\n * AttributeTranslationDetails entity class.\n */\n export class AttributeTranslationDetailsClass implements Entities.AttributeTranslationDetails {\n public AttributeRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeTranslationDetailsClass'] = AttributeTranslationDetailsClass;\n \n /**\n * AttributeEnumeration entity class.\n */\n export class AttributeEnumerationClass implements Entities.AttributeEnumeration {\n public OrdinalNumber: number;\n public EnumerationValue: string;\n public AttributeEnumerationTranslations: Entities.AttributeEnumerationTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrdinalNumber = \n odataObject.OrdinalNumber;\n \n this.EnumerationValue = \n odataObject.EnumerationValue;\n \n this.AttributeEnumerationTranslations = undefined;\n if (odataObject.AttributeEnumerationTranslations) {\n this.AttributeEnumerationTranslations = [];\n for (var i = 0; i < odataObject.AttributeEnumerationTranslations.length; i++) {\n if (odataObject.AttributeEnumerationTranslations[i] != null) {\n if (odataObject.AttributeEnumerationTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeEnumerationTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeEnumerationTranslations[i] = new entityDictionary[className](odataObject.AttributeEnumerationTranslations[i])\n }\n } else {\n this.AttributeEnumerationTranslations[i] = new AttributeEnumerationTranslationClass(odataObject.AttributeEnumerationTranslations[i]);\n }\n } else {\n this.AttributeEnumerationTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationClass'] = AttributeEnumerationClass;\n \n /**\n * AttributeEnumerationTranslation entity class.\n */\n export class AttributeEnumerationTranslationClass implements Entities.AttributeEnumerationTranslation {\n public LanguageId: string;\n public EnumerationTranslationValue: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.EnumerationTranslationValue = \n odataObject.EnumerationTranslationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationTranslationClass'] = AttributeEnumerationTranslationClass;\n \n /**\n * AttributeDefinitionCriteria entity class.\n */\n export class AttributeDefinitionCriteriaClass implements Entities.AttributeDefinitionCriteria {\n public AttributeGroupIdentifier: number;\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifier = \n (odataObject.AttributeGroupIdentifier != null) ? parseInt(odataObject.AttributeGroupIdentifier, 10) : undefined;\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionCriteriaClass'] = AttributeDefinitionCriteriaClass;\n \n /**\n * AttributeGroupDefinition entity class.\n */\n export class AttributeGroupDefinitionClass implements Entities.AttributeGroupDefinition {\n public RecordId: number;\n public Name: string;\n public TranslationDetails: Entities.AttributeGroupTranslationDetails[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeGroupTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionClass'] = AttributeGroupDefinitionClass;\n \n /**\n * AttributeGroupTranslationDetails entity class.\n */\n export class AttributeGroupTranslationDetailsClass implements Entities.AttributeGroupTranslationDetails {\n public AttributeGroupRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupRecordId = \n (odataObject.AttributeGroupRecordId != null) ? parseInt(odataObject.AttributeGroupRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupTranslationDetailsClass'] = AttributeGroupTranslationDetailsClass;\n \n /**\n * AttributeGroupDefinitionCriteria entity class.\n */\n export class AttributeGroupDefinitionCriteriaClass implements Entities.AttributeGroupDefinitionCriteria {\n public AttributeGroupIdentifiers: number[];\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifiers = undefined;\n if (odataObject.AttributeGroupIdentifiers) {\n this.AttributeGroupIdentifiers = [];\n for (var i = 0; i < odataObject.AttributeGroupIdentifiers.length; i++) {\n if (odataObject.AttributeGroupIdentifiers[i] != null) {\n this.AttributeGroupIdentifiers[i] = \n parseInt(odataObject.AttributeGroupIdentifiers[i], 10);\n } else {\n this.AttributeGroupIdentifiers[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionCriteriaClass'] = AttributeGroupDefinitionCriteriaClass;\n \n /**\n * CountyInfo entity class.\n */\n export class CountyInfoClass implements Entities.CountyInfo {\n public Name: string;\n public CountyId: string;\n public CountryRegionId: string;\n public StateId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountyInfoClass'] = CountyInfoClass;\n \n /**\n * CustomerGroup entity class.\n */\n export class CustomerGroupClass implements Entities.CustomerGroup {\n public CustomerGroupNumber: string;\n public CustomerGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerGroupNumber = \n odataObject.CustomerGroupNumber;\n \n this.CustomerGroupName = \n odataObject.CustomerGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerGroupClass'] = CustomerGroupClass;\n \n /**\n * DiscountLine entity class.\n */\n export class DiscountLineClass implements Entities.DiscountLine {\n public SaleLineNumber: number;\n public OfferId: string;\n public OfferName: string;\n public OfferDescription: string;\n public Amount: number;\n public DiscountCost: number;\n public EffectiveAmount: number;\n public EffectivePercentage: number;\n public LineNumber: number;\n public SavedEffectiveAmount: number;\n public Percentage: number;\n public DealPrice: number;\n public DiscountLineTypeValue: number;\n public ManualDiscountTypeValue: number;\n public CustomerDiscountTypeValue: number;\n public PeriodicDiscountTypeValue: number;\n public DiscountApplicationGroup: string;\n public ConcurrencyModeValue: number;\n public IsCompoundable: boolean;\n public DiscountCode: string;\n public PricingPriorityNumber: number;\n public PricingAttributeCombinationPriority: number;\n public IsDiscountCodeRequired: boolean;\n public ThresholdAmountRequired: number;\n public BundleId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.OfferDescription = \n odataObject.OfferDescription;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.DiscountCost = \n (odataObject.DiscountCost != null) ? parseFloat(odataObject.DiscountCost) : undefined;\n \n this.EffectiveAmount = \n (odataObject.EffectiveAmount != null) ? parseFloat(odataObject.EffectiveAmount) : undefined;\n \n this.EffectivePercentage = \n (odataObject.EffectivePercentage != null) ? parseFloat(odataObject.EffectivePercentage) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.SavedEffectiveAmount = \n (odataObject.SavedEffectiveAmount != null) ? parseFloat(odataObject.SavedEffectiveAmount) : undefined;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.DealPrice = \n (odataObject.DealPrice != null) ? parseFloat(odataObject.DealPrice) : undefined;\n \n this.DiscountLineTypeValue = \n odataObject.DiscountLineTypeValue;\n \n this.ManualDiscountTypeValue = \n odataObject.ManualDiscountTypeValue;\n \n this.CustomerDiscountTypeValue = \n odataObject.CustomerDiscountTypeValue;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.DiscountApplicationGroup = \n odataObject.DiscountApplicationGroup;\n \n this.ConcurrencyModeValue = \n odataObject.ConcurrencyModeValue;\n \n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.PricingAttributeCombinationPriority = \n (odataObject.PricingAttributeCombinationPriority != null) ? parseFloat(odataObject.PricingAttributeCombinationPriority) : undefined;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ThresholdAmountRequired = \n (odataObject.ThresholdAmountRequired != null) ? parseFloat(odataObject.ThresholdAmountRequired) : undefined;\n \n this.BundleId = \n odataObject.BundleId;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountLineClass'] = DiscountLineClass;\n \n /**\n * EmployeePermissions entity class.\n */\n export class EmployeePermissionsClass implements Entities.EmployeePermissions {\n public PriceOverrideRestrictionValue: number;\n public AllowPriceOverride: number;\n public MaximumDiscountPercentage: number;\n public MaximumLineDiscountAmount: number;\n public MaximumLineReturnAmount: number;\n public MaximumTotalDiscountAmount: number;\n public MaximumTotalDiscountPercentage: number;\n public MaxTotalReturnAmount: number;\n public StaffId: string;\n public Roles: string[];\n public AllowUseSharedShift: boolean;\n public AllowManageSharedShift: boolean;\n public AllowTaskGuides: boolean;\n public AllowSaleOutsideAssortment: boolean;\n public AllowPrintingReceiptCopy: string;\n public AllowSkipFiscalRegistration: boolean;\n public AllowSkipRegistrationOrMarkAsRegistered: boolean;\n public AllowPostponeRegistration: boolean;\n public AllowCreateTransferOrder: boolean;\n public AllowAcceptOrder: boolean;\n public AllowTaskManagement: boolean;\n public AllowRejectOrder: boolean;\n public AllowMassActivation: boolean;\n public AllowPostInventoryAdjustment: boolean;\n public AllowPostStockCounting: boolean;\n public AllowCreatePurchaseOrder: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct 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.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeePermissionsClass'] = EmployeePermissionsClass;\n \n /**\n * CommerceProperty entity class.\n */\n export class CommercePropertyClass implements Entities.CommerceProperty {\n public Key: string;\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['CommercePropertyClass'] = CommercePropertyClass;\n \n /**\n * CommercePropertyValue entity class.\n */\n export class CommercePropertyValueClass implements Entities.CommercePropertyValue {\n public BooleanValue: boolean;\n public ByteValue: number;\n public DateTimeOffsetValue: Date;\n public DecimalValue: number;\n public IntegerValue: number;\n public LongValue: number;\n public StringValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.ByteValue = \n (odataObject.ByteValue != null) ? parseInt(odataObject.ByteValue, 10) : undefined;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DecimalValue = \n (odataObject.DecimalValue != null) ? parseFloat(odataObject.DecimalValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.LongValue = \n (odataObject.LongValue != null) ? parseInt(odataObject.LongValue, 10) : undefined;\n \n this.StringValue = \n odataObject.StringValue;\n \n }\n }\n entityDictionary['CommercePropertyValueClass'] = CommercePropertyValueClass;\n \n /**\n * CountryRegionInfo entity class.\n */\n export class CountryRegionInfoClass implements Entities.CountryRegionInfo {\n public CountryRegionId: string;\n public ShortName: string;\n public LongName: string;\n public ISOCode: string;\n public TimeZone: number;\n public LanguageId: string;\n public AddressFormatLines: Entities.AddressFormattingInfo[];\n public AddressFormatId: string;\n public AddressFormatName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.LongName = \n odataObject.LongName;\n \n this.ISOCode = \n odataObject.ISOCode;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AddressFormatLines = undefined;\n if (odataObject.AddressFormatLines) {\n this.AddressFormatLines = [];\n for (var i = 0; i < odataObject.AddressFormatLines.length; i++) {\n if (odataObject.AddressFormatLines[i] != null) {\n if (odataObject.AddressFormatLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AddressFormatLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AddressFormatLines[i] = new entityDictionary[className](odataObject.AddressFormatLines[i])\n }\n } else {\n this.AddressFormatLines[i] = new AddressFormattingInfoClass(odataObject.AddressFormatLines[i]);\n }\n } else {\n this.AddressFormatLines[i] = undefined;\n }\n }\n }\n \n this.AddressFormatId = \n odataObject.AddressFormatId;\n \n this.AddressFormatName = \n odataObject.AddressFormatName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionInfoClass'] = CountryRegionInfoClass;\n \n /**\n * CreditMemo entity class.\n */\n export class CreditMemoClass implements Entities.CreditMemo {\n public Id: string;\n public Balance: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreditMemoClass'] = CreditMemoClass;\n \n /**\n * Currency entity class.\n */\n export class CurrencyClass implements Entities.Currency {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public RoundOffPrice: number;\n public RoundOffSales: number;\n public RoundOffTypePrice: number;\n public RoundOffTypeSales: number;\n public NumberOfDecimals: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.RoundOffPrice = \n (odataObject.RoundOffPrice != null) ? parseFloat(odataObject.RoundOffPrice) : undefined;\n \n this.RoundOffSales = \n (odataObject.RoundOffSales != null) ? parseFloat(odataObject.RoundOffSales) : undefined;\n \n this.RoundOffTypePrice = \n odataObject.RoundOffTypePrice;\n \n this.RoundOffTypeSales = \n odataObject.RoundOffTypeSales;\n \n this.NumberOfDecimals = \n odataObject.NumberOfDecimals;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyClass'] = CurrencyClass;\n \n /**\n * CurrencyAmount entity class.\n */\n export class CurrencyAmountClass implements Entities.CurrencyAmount {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public ConvertedAmount: number;\n public RoundedConvertedAmount: number;\n public ExchangeRate: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.ConvertedAmount = \n (odataObject.ConvertedAmount != null) ? parseFloat(odataObject.ConvertedAmount) : undefined;\n \n this.RoundedConvertedAmount = \n (odataObject.RoundedConvertedAmount != null) ? parseFloat(odataObject.RoundedConvertedAmount) : undefined;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyAmountClass'] = CurrencyAmountClass;\n \n /**\n * ScaleUnitConfiguration entity class.\n */\n export class ScaleUnitConfigurationClass implements Entities.ScaleUnitConfiguration {\n public Id: string;\n public Name: string;\n public Region: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Region = \n odataObject.Region;\n \n }\n }\n entityDictionary['ScaleUnitConfigurationClass'] = ScaleUnitConfigurationClass;\n \n /**\n * EnvironmentConfiguration entity class.\n */\n export class EnvironmentConfigurationClass implements Entities.EnvironmentConfiguration {\n public EnvironmentId: string;\n public EnvironmentName: string;\n public TenantId: string;\n public ClientAppInsightsInstrumentationKey: string;\n public HardwareStationAppInsightsInstrumentationKey: string;\n public WindowsPhonePosAppInsightsInstrumentationKey: string;\n public BaseVersion: string;\n public ScaleUnit: Entities.ScaleUnitConfiguration;\n public AADAuthority: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.EnvironmentName = \n odataObject.EnvironmentName;\n \n this.TenantId = \n odataObject.TenantId;\n \n this.ClientAppInsightsInstrumentationKey = \n odataObject.ClientAppInsightsInstrumentationKey;\n \n this.HardwareStationAppInsightsInstrumentationKey = \n odataObject.HardwareStationAppInsightsInstrumentationKey;\n \n this.WindowsPhonePosAppInsightsInstrumentationKey = \n odataObject.WindowsPhonePosAppInsightsInstrumentationKey;\n \n this.BaseVersion = \n odataObject.BaseVersion;\n \n if (odataObject.ScaleUnit == null) {\n this.ScaleUnit = undefined;\n } else if (odataObject.ScaleUnit['@odata.type'] == null) {\n this.ScaleUnit = new ScaleUnitConfigurationClass(odataObject.ScaleUnit);\n } else {\n var className: string = odataObject.ScaleUnit['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ScaleUnit = new entityDictionary[className](odataObject.ScaleUnit)\n }\n }\n\n \n this.AADAuthority = \n odataObject.AADAuthority;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['EnvironmentConfigurationClass'] = EnvironmentConfigurationClass;\n \n /**\n * DeviceConfiguration entity class.\n */\n export class DeviceConfigurationClass implements Entities.DeviceConfiguration {\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowItemsAggregation: boolean;\n public AggregateItemsForPrinting: boolean;\n public AggregatePayments: boolean;\n public AlwaysExpandTransactionScreenLineDetails: boolean;\n public AuditEnabled: boolean;\n public DiscountAtTotal: string;\n public ProductDiscount: string;\n public ManuallyCalculateComplexDiscounts: boolean;\n public DisplaySecondaryTotalCurrency: boolean;\n public EndOfTransaction: string;\n public ItemNotOnFile: string;\n public LimitStaffListToStore: boolean;\n public LineItemTaxChange: string;\n public MarkUp: string;\n public MaximumPrice: number;\n public MaximumQuantity: number;\n public MinimumPasswordLength: number;\n public MustKeyInPriceIfZero: boolean;\n public NfcEContingencyModeEnabled: string;\n public NfcEVoided: string;\n public FunctionalityProfileDescription: string;\n public OverridePrice: string;\n public PrintVoidTransactionReceipts: boolean;\n public PrintReceiptsOnCardDecline: boolean;\n public PrintXZReportsOnTerminal: boolean;\n public PrintTenderDetailsOnXReport: boolean;\n public ProfileId: string;\n public RefundSale: string;\n public ReturnProduct: string;\n public SalesPerson: string;\n public SecondaryTotalCurrency: string;\n public SelectHardwareStationOnTendering: boolean;\n public SerialNumber: string;\n public ShowStaffListAtLogOn: boolean;\n public StaffBarcodeLogOn: boolean;\n public StaffBarcodeLogOnRequiresPassword: boolean;\n public StaffCardLogOn: boolean;\n public StaffCardLogOnRequiresPassword: boolean;\n public StartOfTransaction: string;\n public EnableTimeRegistration: boolean;\n public TenderDeclaration: string;\n public TransactionTaxChange: string;\n public VoidItem: string;\n public VoidPayment: string;\n public SalesModeDefaultsAsCustomerOrder: boolean;\n public CreateOfflineCustomerOrders: boolean;\n public CreateAsyncCustomers: boolean;\n public EnableAxCustomerSearch: boolean;\n public VoidTransaction: string;\n public CultureName: string;\n public SystemLegalTermsUrl: string;\n public SystemPrivacyStatementUrl: string;\n public HideTrainingMode: boolean;\n public StorePhone: string;\n public StatementMethod: string;\n public StoreNumber: string;\n public ChannelId: number;\n public StoreTaxGroup: string;\n public TaxIdNumber: string;\n public TaxOverrideGroup: number;\n public TenderDeclarationCalculation: number;\n public UseCustomerBasedTax: boolean;\n public UseDestinationBasedTax: boolean;\n public AutoLogOffTimeoutInMinutes: number;\n public AutoExitMethodValue: number;\n public CustomerDisplayText1: string;\n public CustomerDisplayText2: string;\n public EFTStoreId: number;\n public EFTTerminalId: string;\n public ExitAfterEachTransaction: boolean;\n public HardwareProfile: string;\n public Placement: string;\n public TerminalDescription: string;\n public OpenDrawer: string;\n public OpenDrawerAtLogOnLogOff: boolean;\n public PrintTaxRefundChecks: boolean;\n public StandAlone: boolean;\n public TerminalId: string;\n public TerminalStatement: boolean;\n public VisualProfile: string;\n public Currency: string;\n public InventLocationId: string;\n public IncludeKitComponents: boolean;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontScheme: number;\n public ShowAppBarLabel: boolean;\n public LogOnBackgroundPictureAsBase64: string;\n public LogOnBackgroundPicturePortraitAsBase64: string;\n public BackgroundPictureAsBase64: string;\n public LogonBackgroundPictureId: number;\n public LogonBackgroundPictureIdCompact: number;\n public LogonBackgroundPictureIdPortrait: number;\n public LogonBackgroundPictureIdCompactPortrait: number;\n public BackgroundPictureId: number;\n public RequireAmountDeclaration: boolean;\n public DecimalNotRequiredForMinorCurrencyUnit: boolean;\n public MaxTransactionSearchResults: number;\n public OfflineProfileId: number;\n public NewOfflineDatabaseCheckInterval: number;\n public OfflineTransactionUploadInterval: number;\n public ReconnectToOnlineInterval: number;\n public SwitchToOfflineTimeout: number;\n public OfflineSwitchApiPerformanceThresholdInSeconds: number;\n public ReconnectFromPerformanceInducedOfflineIntervalInSeconds: number;\n public RetentionDays: number;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public CreateRecording: boolean;\n public PlaybackRecording: boolean;\n public ShouldUseDefaultCommisionSalesGroup: boolean;\n public AskForSalesRepresentative: number;\n public IsSalesRepRequired: boolean;\n public ProhibitMixingSalesAndReturns: boolean;\n public ApplyDiscountsToPriceKeyedIn: boolean;\n public ApplyDiscountsToPriceOverrides: boolean;\n public IsProductSuggestionsEnabled: boolean;\n public ProductSearchType: string;\n public TerminalRecId: number;\n public DeviceRecId: number;\n public DenominationsToDisplayValue: number;\n public PromptOnSeamlessOffline: boolean;\n public RetryCountToOffline: number;\n public EnableAdvancedOfflineSwitching: boolean;\n public SystemHealthCheckInterval: number;\n public RejectOrderFulfillment: string;\n public ManuallyCalculateTaxes: boolean;\n public EmployeeLogonTypeValue: number;\n public StartAmountCalculation: number;\n public BankDropCalculation: number;\n public GenerateLoyaltyCardNumber: boolean;\n public FiscalRegistrationProcessId: string;\n public IncludeSalesOrderInvoices: boolean;\n public IncludeFreeTextInvoices: boolean;\n public IncludeProjectInvoices: boolean;\n public IncludeCreditNoteInvoices: boolean;\n public DisplayTaxExemptInLineDetails: boolean;\n public TaxExemptReceiptIndicator: string;\n public ManuallyCalculateCharges: boolean;\n public ChargeOverrideReasonCode: string;\n public ShiftReconcilation: string;\n public CustomerAccountFloorLimit: number;\n public VoidSuspendedTransactionsOnCloseShift: boolean;\n public ShowDateTime: boolean;\n public UseAdvancedCashManagement: boolean;\n public DefaultCustomerSearchModeValue: number;\n public AllowManualOfflineBeforeSignIn: boolean;\n public UseFinancialReconciliationInStore: boolean;\n public RequirePaymentForFulfillmentValue: number;\n public CardNotPresentProcessingConfigurationValue: number;\n public EnableQuickPayShortcuts: boolean;\n public ChangeDueBehaviorValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowItemsAggregation = \n odataObject.AllowItemsAggregation;\n \n this.AggregateItemsForPrinting = \n odataObject.AggregateItemsForPrinting;\n \n this.AggregatePayments = \n odataObject.AggregatePayments;\n \n this.AlwaysExpandTransactionScreenLineDetails = \n odataObject.AlwaysExpandTransactionScreenLineDetails;\n \n this.AuditEnabled = \n odataObject.AuditEnabled;\n \n this.DiscountAtTotal = \n odataObject.DiscountAtTotal;\n \n this.ProductDiscount = \n odataObject.ProductDiscount;\n \n this.ManuallyCalculateComplexDiscounts = \n odataObject.ManuallyCalculateComplexDiscounts;\n \n this.DisplaySecondaryTotalCurrency = \n odataObject.DisplaySecondaryTotalCurrency;\n \n this.EndOfTransaction = \n odataObject.EndOfTransaction;\n \n this.ItemNotOnFile = \n odataObject.ItemNotOnFile;\n \n this.LimitStaffListToStore = \n odataObject.LimitStaffListToStore;\n \n this.LineItemTaxChange = \n odataObject.LineItemTaxChange;\n \n this.MarkUp = \n odataObject.MarkUp;\n \n this.MaximumPrice = \n (odataObject.MaximumPrice != null) ? parseFloat(odataObject.MaximumPrice) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumPasswordLength = \n odataObject.MinimumPasswordLength;\n \n this.MustKeyInPriceIfZero = \n odataObject.MustKeyInPriceIfZero;\n \n this.NfcEContingencyModeEnabled = \n odataObject.NfcEContingencyModeEnabled;\n \n this.NfcEVoided = \n odataObject.NfcEVoided;\n \n this.FunctionalityProfileDescription = \n odataObject.FunctionalityProfileDescription;\n \n this.OverridePrice = \n odataObject.OverridePrice;\n \n this.PrintVoidTransactionReceipts = \n odataObject.PrintVoidTransactionReceipts;\n \n this.PrintReceiptsOnCardDecline = \n odataObject.PrintReceiptsOnCardDecline;\n \n this.PrintXZReportsOnTerminal = \n odataObject.PrintXZReportsOnTerminal;\n \n this.PrintTenderDetailsOnXReport = \n odataObject.PrintTenderDetailsOnXReport;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RefundSale = \n odataObject.RefundSale;\n \n this.ReturnProduct = \n odataObject.ReturnProduct;\n \n this.SalesPerson = \n odataObject.SalesPerson;\n \n this.SecondaryTotalCurrency = \n odataObject.SecondaryTotalCurrency;\n \n this.SelectHardwareStationOnTendering = \n odataObject.SelectHardwareStationOnTendering;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ShowStaffListAtLogOn = \n odataObject.ShowStaffListAtLogOn;\n \n this.StaffBarcodeLogOn = \n odataObject.StaffBarcodeLogOn;\n \n this.StaffBarcodeLogOnRequiresPassword = \n odataObject.StaffBarcodeLogOnRequiresPassword;\n \n this.StaffCardLogOn = \n odataObject.StaffCardLogOn;\n \n this.StaffCardLogOnRequiresPassword = \n odataObject.StaffCardLogOnRequiresPassword;\n \n this.StartOfTransaction = \n odataObject.StartOfTransaction;\n \n this.EnableTimeRegistration = \n odataObject.EnableTimeRegistration;\n \n this.TenderDeclaration = \n odataObject.TenderDeclaration;\n \n this.TransactionTaxChange = \n odataObject.TransactionTaxChange;\n \n this.VoidItem = \n odataObject.VoidItem;\n \n this.VoidPayment = \n odataObject.VoidPayment;\n \n this.SalesModeDefaultsAsCustomerOrder = \n odataObject.SalesModeDefaultsAsCustomerOrder;\n \n this.CreateOfflineCustomerOrders = \n odataObject.CreateOfflineCustomerOrders;\n \n this.CreateAsyncCustomers = \n odataObject.CreateAsyncCustomers;\n \n this.EnableAxCustomerSearch = \n odataObject.EnableAxCustomerSearch;\n \n this.VoidTransaction = \n odataObject.VoidTransaction;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.SystemLegalTermsUrl = \n odataObject.SystemLegalTermsUrl;\n \n this.SystemPrivacyStatementUrl = \n odataObject.SystemPrivacyStatementUrl;\n \n this.HideTrainingMode = \n odataObject.HideTrainingMode;\n \n this.StorePhone = \n odataObject.StorePhone;\n \n this.StatementMethod = \n odataObject.StatementMethod;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreTaxGroup = \n odataObject.StoreTaxGroup;\n \n this.TaxIdNumber = \n odataObject.TaxIdNumber;\n \n this.TaxOverrideGroup = \n (odataObject.TaxOverrideGroup != null) ? parseInt(odataObject.TaxOverrideGroup, 10) : undefined;\n \n this.TenderDeclarationCalculation = \n odataObject.TenderDeclarationCalculation;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.AutoLogOffTimeoutInMinutes = \n odataObject.AutoLogOffTimeoutInMinutes;\n \n this.AutoExitMethodValue = \n odataObject.AutoExitMethodValue;\n \n this.CustomerDisplayText1 = \n odataObject.CustomerDisplayText1;\n \n this.CustomerDisplayText2 = \n odataObject.CustomerDisplayText2;\n \n this.EFTStoreId = \n (odataObject.EFTStoreId != null) ? parseInt(odataObject.EFTStoreId, 10) : undefined;\n \n this.EFTTerminalId = \n odataObject.EFTTerminalId;\n \n this.ExitAfterEachTransaction = \n odataObject.ExitAfterEachTransaction;\n \n this.HardwareProfile = \n odataObject.HardwareProfile;\n \n this.Placement = \n odataObject.Placement;\n \n this.TerminalDescription = \n odataObject.TerminalDescription;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.OpenDrawerAtLogOnLogOff = \n odataObject.OpenDrawerAtLogOnLogOff;\n \n this.PrintTaxRefundChecks = \n odataObject.PrintTaxRefundChecks;\n \n this.StandAlone = \n odataObject.StandAlone;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TerminalStatement = \n odataObject.TerminalStatement;\n \n this.VisualProfile = \n odataObject.VisualProfile;\n \n this.Currency = \n odataObject.Currency;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.IncludeKitComponents = \n odataObject.IncludeKitComponents;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontScheme = \n odataObject.FontScheme;\n \n this.ShowAppBarLabel = \n odataObject.ShowAppBarLabel;\n \n this.LogOnBackgroundPictureAsBase64 = \n odataObject.LogOnBackgroundPictureAsBase64;\n \n this.LogOnBackgroundPicturePortraitAsBase64 = \n odataObject.LogOnBackgroundPicturePortraitAsBase64;\n \n this.BackgroundPictureAsBase64 = \n odataObject.BackgroundPictureAsBase64;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompact = \n (odataObject.LogonBackgroundPictureIdCompact != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompact, 10) : undefined;\n \n this.LogonBackgroundPictureIdPortrait = \n (odataObject.LogonBackgroundPictureIdPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdPortrait, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompactPortrait = \n (odataObject.LogonBackgroundPictureIdCompactPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompactPortrait, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.RequireAmountDeclaration = \n odataObject.RequireAmountDeclaration;\n \n this.DecimalNotRequiredForMinorCurrencyUnit = \n odataObject.DecimalNotRequiredForMinorCurrencyUnit;\n \n this.MaxTransactionSearchResults = \n odataObject.MaxTransactionSearchResults;\n \n this.OfflineProfileId = \n (odataObject.OfflineProfileId != null) ? parseInt(odataObject.OfflineProfileId, 10) : undefined;\n \n this.NewOfflineDatabaseCheckInterval = \n odataObject.NewOfflineDatabaseCheckInterval;\n \n this.OfflineTransactionUploadInterval = \n odataObject.OfflineTransactionUploadInterval;\n \n this.ReconnectToOnlineInterval = \n odataObject.ReconnectToOnlineInterval;\n \n this.SwitchToOfflineTimeout = \n odataObject.SwitchToOfflineTimeout;\n \n this.OfflineSwitchApiPerformanceThresholdInSeconds = \n odataObject.OfflineSwitchApiPerformanceThresholdInSeconds;\n \n this.ReconnectFromPerformanceInducedOfflineIntervalInSeconds = \n odataObject.ReconnectFromPerformanceInducedOfflineIntervalInSeconds;\n \n this.RetentionDays = \n odataObject.RetentionDays;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.CreateRecording = \n odataObject.CreateRecording;\n \n this.PlaybackRecording = \n odataObject.PlaybackRecording;\n \n this.ShouldUseDefaultCommisionSalesGroup = \n odataObject.ShouldUseDefaultCommisionSalesGroup;\n \n this.AskForSalesRepresentative = \n odataObject.AskForSalesRepresentative;\n \n this.IsSalesRepRequired = \n odataObject.IsSalesRepRequired;\n \n this.ProhibitMixingSalesAndReturns = \n odataObject.ProhibitMixingSalesAndReturns;\n \n this.ApplyDiscountsToPriceKeyedIn = \n odataObject.ApplyDiscountsToPriceKeyedIn;\n \n this.ApplyDiscountsToPriceOverrides = \n odataObject.ApplyDiscountsToPriceOverrides;\n \n this.IsProductSuggestionsEnabled = \n odataObject.IsProductSuggestionsEnabled;\n \n this.ProductSearchType = \n odataObject.ProductSearchType;\n \n this.TerminalRecId = \n (odataObject.TerminalRecId != null) ? parseInt(odataObject.TerminalRecId, 10) : undefined;\n \n this.DeviceRecId = \n (odataObject.DeviceRecId != null) ? parseInt(odataObject.DeviceRecId, 10) : undefined;\n \n this.DenominationsToDisplayValue = \n odataObject.DenominationsToDisplayValue;\n \n this.PromptOnSeamlessOffline = \n odataObject.PromptOnSeamlessOffline;\n \n this.RetryCountToOffline = \n odataObject.RetryCountToOffline;\n \n this.EnableAdvancedOfflineSwitching = \n odataObject.EnableAdvancedOfflineSwitching;\n \n this.SystemHealthCheckInterval = \n odataObject.SystemHealthCheckInterval;\n \n this.RejectOrderFulfillment = \n odataObject.RejectOrderFulfillment;\n \n this.ManuallyCalculateTaxes = \n odataObject.ManuallyCalculateTaxes;\n \n this.EmployeeLogonTypeValue = \n odataObject.EmployeeLogonTypeValue;\n \n this.StartAmountCalculation = \n odataObject.StartAmountCalculation;\n \n this.BankDropCalculation = \n odataObject.BankDropCalculation;\n \n this.GenerateLoyaltyCardNumber = \n odataObject.GenerateLoyaltyCardNumber;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IncludeSalesOrderInvoices = \n odataObject.IncludeSalesOrderInvoices;\n \n this.IncludeFreeTextInvoices = \n odataObject.IncludeFreeTextInvoices;\n \n this.IncludeProjectInvoices = \n odataObject.IncludeProjectInvoices;\n \n this.IncludeCreditNoteInvoices = \n odataObject.IncludeCreditNoteInvoices;\n \n this.DisplayTaxExemptInLineDetails = \n odataObject.DisplayTaxExemptInLineDetails;\n \n this.TaxExemptReceiptIndicator = \n odataObject.TaxExemptReceiptIndicator;\n \n this.ManuallyCalculateCharges = \n odataObject.ManuallyCalculateCharges;\n \n this.ChargeOverrideReasonCode = \n odataObject.ChargeOverrideReasonCode;\n \n this.ShiftReconcilation = \n odataObject.ShiftReconcilation;\n \n this.CustomerAccountFloorLimit = \n (odataObject.CustomerAccountFloorLimit != null) ? parseFloat(odataObject.CustomerAccountFloorLimit) : undefined;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.ShowDateTime = \n odataObject.ShowDateTime;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.DefaultCustomerSearchModeValue = \n odataObject.DefaultCustomerSearchModeValue;\n \n this.AllowManualOfflineBeforeSignIn = \n odataObject.AllowManualOfflineBeforeSignIn;\n \n this.UseFinancialReconciliationInStore = \n odataObject.UseFinancialReconciliationInStore;\n \n this.RequirePaymentForFulfillmentValue = \n odataObject.RequirePaymentForFulfillmentValue;\n \n this.CardNotPresentProcessingConfigurationValue = \n odataObject.CardNotPresentProcessingConfigurationValue;\n \n this.EnableQuickPayShortcuts = \n odataObject.EnableQuickPayShortcuts;\n \n this.ChangeDueBehaviorValue = \n odataObject.ChangeDueBehaviorValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceConfigurationClass'] = DeviceConfigurationClass;\n \n /**\n * VisualProfile entity class.\n */\n export class VisualProfileClass implements Entities.VisualProfile {\n public ChannelId: number;\n public TerminalId: string;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontSchemeTypeValue: number;\n public IsAppBarLabelVisible: boolean;\n public IsDateTimeVisible: boolean;\n public LogOnLayoutTypeValue: number;\n public LogOnKeyboardTypeValue: number;\n public LogonBackgroundPictureId: number;\n public CompactLogonBackgroundPictureId: number;\n public PortraitLogonBackgroundPictureId: number;\n public CompactPortraitLogonBackgroundPictureId: number;\n public BackgroundPictureId: number;\n public LogOnLogoPictureId: number;\n public IsProductIdVisibleOnCartLine: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontSchemeTypeValue = \n odataObject.FontSchemeTypeValue;\n \n this.IsAppBarLabelVisible = \n odataObject.IsAppBarLabelVisible;\n \n this.IsDateTimeVisible = \n odataObject.IsDateTimeVisible;\n \n this.LogOnLayoutTypeValue = \n odataObject.LogOnLayoutTypeValue;\n \n this.LogOnKeyboardTypeValue = \n odataObject.LogOnKeyboardTypeValue;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.CompactLogonBackgroundPictureId = \n (odataObject.CompactLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactLogonBackgroundPictureId, 10) : undefined;\n \n this.PortraitLogonBackgroundPictureId = \n (odataObject.PortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.PortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.CompactPortraitLogonBackgroundPictureId = \n (odataObject.CompactPortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactPortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.LogOnLogoPictureId = \n (odataObject.LogOnLogoPictureId != null) ? parseInt(odataObject.LogOnLogoPictureId, 10) : undefined;\n \n this.IsProductIdVisibleOnCartLine = \n odataObject.IsProductIdVisibleOnCartLine;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VisualProfileClass'] = VisualProfileClass;\n \n /**\n * OperationalInsightsConfiguration entity class.\n */\n export class OperationalInsightsConfigurationClass implements Entities.OperationalInsightsConfiguration {\n public InstrumentationKey: string;\n public EnvironmentId: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InstrumentationKey = \n odataObject.InstrumentationKey;\n \n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationalInsightsConfigurationClass'] = OperationalInsightsConfigurationClass;\n \n /**\n * Device entity class.\n */\n export class DeviceClass implements Entities.Device {\n public ChannelId: number;\n public RecordId: number;\n public DeviceNumber: string;\n public DeviceId: string;\n public Description: string;\n public DeviceType: number;\n public TerminalRecordId: number;\n public TerminalId: string;\n public ChannelName: string;\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowMassActivation: boolean;\n public TokenIssueTime: Date;\n public ActivationStatusValue: number;\n public Token: string;\n public CountryRegionIsoCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.DeviceId = \n odataObject.DeviceId;\n \n this.Description = \n odataObject.Description;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.TerminalRecordId = \n (odataObject.TerminalRecordId != null) ? parseInt(odataObject.TerminalRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ChannelName = \n odataObject.ChannelName;\n \n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.TokenIssueTime = \n (odataObject.TokenIssueTime instanceof Date) ? odataObject.TokenIssueTime\n : (odataObject.TokenIssueTime != null) ? jsonLightReadStringPropertyValue(odataObject.TokenIssueTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceClass'] = DeviceClass;\n \n /**\n * DiscountCode entity class.\n */\n export class DiscountCodeClass implements Entities.DiscountCode {\n public RecordId: number;\n public Barcode: string;\n public Code: string;\n public ConcurrencyMode: number;\n public Description: string;\n public Disclaimer: string;\n public IsDiscountCodeRequired: boolean;\n public Name: string;\n public OfferId: string;\n public IsEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.Code = \n odataObject.Code;\n \n this.ConcurrencyMode = \n odataObject.ConcurrencyMode;\n \n this.Description = \n odataObject.Description;\n \n this.Disclaimer = \n odataObject.Disclaimer;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.Name = \n odataObject.Name;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountCodeClass'] = DiscountCodeClass;\n \n /**\n * DistrictInfo entity class.\n */\n export class DistrictInfoClass implements Entities.DistrictInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DistrictInfoClass'] = DistrictInfoClass;\n \n /**\n * HardwareProfile entity class.\n */\n export class HardwareProfileClass implements Entities.HardwareProfile {\n public RecordId: number;\n public LineDisplayDelayForLinkedItems: number;\n public LineDisplayBalanceText: string;\n public LineDisplayBinaryConversion: boolean;\n public LineDisplayCharacterSet: number;\n public LineDisplayClosedLine1: string;\n public LineDisplayClosedLine2: string;\n public LineDisplayDeviceDescription: string;\n public LineDisplayDeviceTypeValue: number;\n public LineDisplayDeviceName: string;\n public LineDisplayDisplayLinkedItem: boolean;\n public LineDisplayDisplayTerminalClosed: boolean;\n public LineDisplayTotalText: string;\n public DualDisplayActive: boolean;\n public DualDisplayWebBrowserUrl: string;\n public DualDisplayImageRotatorInterval: number;\n public DualDisplayImageRotatorPath: string;\n public DualDisplayReceiptWidthPercentage: number;\n public DualDisplayDisplayType: string;\n public EftTypeId: number;\n public EftCompanyId: string;\n public EftConfiguration: number;\n public EftPaymentConnectorName: string;\n public EftData: string;\n public EftDescription: string;\n public EftMerchantId: string;\n public EftPassword: string;\n public EftServerName: string;\n public EftServerPort: string;\n public EftUserId: string;\n public EftTestMode: boolean;\n public MsrEndTrack1: string;\n public MsrEndTrack2: string;\n public FiscalPrinterManagementReportPAFIdentification: string;\n public FiscalPrinterManagementReportConfigParameter: string;\n public FiscalPrinterManagementReportTenderType: string;\n public FiscalPrinterManagementReportGiftCard: string;\n public FiscalRegisterDeviceTypeValue: number;\n public FiscalRegisterConfiguration: string;\n public FiscalRegisterDeviceDescription: string;\n public FiscalRegisterDeviceName: string;\n public KeyboardMappingId: string;\n public KeyLockDeviceTypeValue: number;\n public KeyLockDeviceDescription: string;\n public KeyLockDeviceName: string;\n public MsrDeviceTypeValue: number;\n public MsrDeviceDescription: string;\n public MsrDeviceName: string;\n public MsrMake: string;\n public MsrModel: string;\n public MsrSeparator: string;\n public MsrStartTrack: string;\n public PinPadDeviceTypeValue: number;\n public PinPadDeviceName: string;\n public PinPadMake: string;\n public PinPadModel: string;\n public PinPadDeviceDescription: string;\n public ProfileDescription: string;\n public ProfileId: string;\n public RFIDDeviceTypeValue: number;\n public RFIDDeviceName: string;\n public RFIDDeviceDescription: string;\n public ScaleDeviceTypeValue: number;\n public ScaleDeviceName: string;\n public ScaleDeviceDescription: string;\n public ScaleManualInputAllowed: boolean;\n public ScaleTimeoutInSeconds: number;\n public SignatureCaptureDeviceTypeValue: number;\n public SignatureCaptureDeviceName: string;\n public SignatureCaptureMake: string;\n public SignatureCaptureModel: string;\n public SignatureCaptureDeviceDescription: string;\n public SignatureCaptureFormName: string;\n public Printers: Entities.HardwareProfilePrinter[];\n public Scanners: Entities.HardwareProfileScanner[];\n public FiscalIntegrationTechnicalProfiles: Entities.FiscalIntegrationTechnicalProfile[];\n public CashDrawers: Entities.HardwareProfileCashDrawer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineDisplayDelayForLinkedItems = \n odataObject.LineDisplayDelayForLinkedItems;\n \n this.LineDisplayBalanceText = \n odataObject.LineDisplayBalanceText;\n \n this.LineDisplayBinaryConversion = \n odataObject.LineDisplayBinaryConversion;\n \n this.LineDisplayCharacterSet = \n odataObject.LineDisplayCharacterSet;\n \n this.LineDisplayClosedLine1 = \n odataObject.LineDisplayClosedLine1;\n \n this.LineDisplayClosedLine2 = \n odataObject.LineDisplayClosedLine2;\n \n this.LineDisplayDeviceDescription = \n odataObject.LineDisplayDeviceDescription;\n \n this.LineDisplayDeviceTypeValue = \n odataObject.LineDisplayDeviceTypeValue;\n \n this.LineDisplayDeviceName = \n odataObject.LineDisplayDeviceName;\n \n this.LineDisplayDisplayLinkedItem = \n odataObject.LineDisplayDisplayLinkedItem;\n \n this.LineDisplayDisplayTerminalClosed = \n odataObject.LineDisplayDisplayTerminalClosed;\n \n this.LineDisplayTotalText = \n odataObject.LineDisplayTotalText;\n \n this.DualDisplayActive = \n odataObject.DualDisplayActive;\n \n this.DualDisplayWebBrowserUrl = \n odataObject.DualDisplayWebBrowserUrl;\n \n this.DualDisplayImageRotatorInterval = \n odataObject.DualDisplayImageRotatorInterval;\n \n this.DualDisplayImageRotatorPath = \n odataObject.DualDisplayImageRotatorPath;\n \n this.DualDisplayReceiptWidthPercentage = \n (odataObject.DualDisplayReceiptWidthPercentage != null) ? parseFloat(odataObject.DualDisplayReceiptWidthPercentage) : undefined;\n \n this.DualDisplayDisplayType = \n odataObject.DualDisplayDisplayType;\n \n this.EftTypeId = \n odataObject.EftTypeId;\n \n this.EftCompanyId = \n odataObject.EftCompanyId;\n \n this.EftConfiguration = \n odataObject.EftConfiguration;\n \n this.EftPaymentConnectorName = \n odataObject.EftPaymentConnectorName;\n \n this.EftData = \n odataObject.EftData;\n \n this.EftDescription = \n odataObject.EftDescription;\n \n this.EftMerchantId = \n odataObject.EftMerchantId;\n \n this.EftPassword = \n odataObject.EftPassword;\n \n this.EftServerName = \n odataObject.EftServerName;\n \n this.EftServerPort = \n odataObject.EftServerPort;\n \n this.EftUserId = \n odataObject.EftUserId;\n \n this.EftTestMode = \n odataObject.EftTestMode;\n \n this.MsrEndTrack1 = \n odataObject.MsrEndTrack1;\n \n this.MsrEndTrack2 = \n odataObject.MsrEndTrack2;\n \n this.FiscalPrinterManagementReportPAFIdentification = \n odataObject.FiscalPrinterManagementReportPAFIdentification;\n \n this.FiscalPrinterManagementReportConfigParameter = \n odataObject.FiscalPrinterManagementReportConfigParameter;\n \n this.FiscalPrinterManagementReportTenderType = \n odataObject.FiscalPrinterManagementReportTenderType;\n \n this.FiscalPrinterManagementReportGiftCard = \n odataObject.FiscalPrinterManagementReportGiftCard;\n \n this.FiscalRegisterDeviceTypeValue = \n odataObject.FiscalRegisterDeviceTypeValue;\n \n this.FiscalRegisterConfiguration = \n odataObject.FiscalRegisterConfiguration;\n \n this.FiscalRegisterDeviceDescription = \n odataObject.FiscalRegisterDeviceDescription;\n \n this.FiscalRegisterDeviceName = \n odataObject.FiscalRegisterDeviceName;\n \n this.KeyboardMappingId = \n odataObject.KeyboardMappingId;\n \n this.KeyLockDeviceTypeValue = \n odataObject.KeyLockDeviceTypeValue;\n \n this.KeyLockDeviceDescription = \n odataObject.KeyLockDeviceDescription;\n \n this.KeyLockDeviceName = \n odataObject.KeyLockDeviceName;\n \n this.MsrDeviceTypeValue = \n odataObject.MsrDeviceTypeValue;\n \n this.MsrDeviceDescription = \n odataObject.MsrDeviceDescription;\n \n this.MsrDeviceName = \n odataObject.MsrDeviceName;\n \n this.MsrMake = \n odataObject.MsrMake;\n \n this.MsrModel = \n odataObject.MsrModel;\n \n this.MsrSeparator = \n odataObject.MsrSeparator;\n \n this.MsrStartTrack = \n odataObject.MsrStartTrack;\n \n this.PinPadDeviceTypeValue = \n odataObject.PinPadDeviceTypeValue;\n \n this.PinPadDeviceName = \n odataObject.PinPadDeviceName;\n \n this.PinPadMake = \n odataObject.PinPadMake;\n \n this.PinPadModel = \n odataObject.PinPadModel;\n \n this.PinPadDeviceDescription = \n odataObject.PinPadDeviceDescription;\n \n this.ProfileDescription = \n odataObject.ProfileDescription;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RFIDDeviceTypeValue = \n odataObject.RFIDDeviceTypeValue;\n \n this.RFIDDeviceName = \n odataObject.RFIDDeviceName;\n \n this.RFIDDeviceDescription = \n odataObject.RFIDDeviceDescription;\n \n this.ScaleDeviceTypeValue = \n odataObject.ScaleDeviceTypeValue;\n \n this.ScaleDeviceName = \n odataObject.ScaleDeviceName;\n \n this.ScaleDeviceDescription = \n odataObject.ScaleDeviceDescription;\n \n this.ScaleManualInputAllowed = \n odataObject.ScaleManualInputAllowed;\n \n this.ScaleTimeoutInSeconds = \n odataObject.ScaleTimeoutInSeconds;\n \n this.SignatureCaptureDeviceTypeValue = \n odataObject.SignatureCaptureDeviceTypeValue;\n \n this.SignatureCaptureDeviceName = \n odataObject.SignatureCaptureDeviceName;\n \n this.SignatureCaptureMake = \n odataObject.SignatureCaptureMake;\n \n this.SignatureCaptureModel = \n odataObject.SignatureCaptureModel;\n \n this.SignatureCaptureDeviceDescription = \n odataObject.SignatureCaptureDeviceDescription;\n \n this.SignatureCaptureFormName = \n odataObject.SignatureCaptureFormName;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new HardwareProfilePrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.Scanners = undefined;\n if (odataObject.Scanners) {\n this.Scanners = [];\n for (var i = 0; i < odataObject.Scanners.length; i++) {\n if (odataObject.Scanners[i] != null) {\n if (odataObject.Scanners[i]['@odata.type'] != null) {\n var className: string = odataObject.Scanners[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scanners[i] = new entityDictionary[className](odataObject.Scanners[i])\n }\n } else {\n this.Scanners[i] = new HardwareProfileScannerClass(odataObject.Scanners[i]);\n }\n } else {\n this.Scanners[i] = undefined;\n }\n }\n }\n \n this.FiscalIntegrationTechnicalProfiles = undefined;\n if (odataObject.FiscalIntegrationTechnicalProfiles) {\n this.FiscalIntegrationTechnicalProfiles = [];\n for (var i = 0; i < odataObject.FiscalIntegrationTechnicalProfiles.length; i++) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i] != null) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalIntegrationTechnicalProfiles[i] = new entityDictionary[className](odataObject.FiscalIntegrationTechnicalProfiles[i])\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalIntegrationTechnicalProfiles[i]);\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = undefined;\n }\n }\n }\n \n this.CashDrawers = undefined;\n if (odataObject.CashDrawers) {\n this.CashDrawers = [];\n for (var i = 0; i < odataObject.CashDrawers.length; i++) {\n if (odataObject.CashDrawers[i] != null) {\n if (odataObject.CashDrawers[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawers[i] = new entityDictionary[className](odataObject.CashDrawers[i])\n }\n } else {\n this.CashDrawers[i] = new HardwareProfileCashDrawerClass(odataObject.CashDrawers[i]);\n }\n } else {\n this.CashDrawers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileClass'] = HardwareProfileClass;\n \n /**\n * SupportedLanguage entity class.\n */\n export class SupportedLanguageClass implements Entities.SupportedLanguage {\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SupportedLanguageClass'] = SupportedLanguageClass;\n \n /**\n * PaymentCard entity class.\n */\n export class PaymentCardClass implements Entities.PaymentCard {\n public UseShippingAddress: boolean;\n public CardNumber: string;\n public CCID: string;\n public Track1: string;\n public Track2: string;\n public Track3: string;\n public VoiceAuthorizationCode: string;\n public EncryptedPin: string;\n public AdditionalSecurityData: string;\n public IsSwipe: boolean;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseShippingAddress = \n odataObject.UseShippingAddress;\n \n this.CardNumber = \n odataObject.CardNumber;\n \n this.CCID = \n odataObject.CCID;\n \n this.Track1 = \n odataObject.Track1;\n \n this.Track2 = \n odataObject.Track2;\n \n this.Track3 = \n odataObject.Track3;\n \n this.VoiceAuthorizationCode = \n odataObject.VoiceAuthorizationCode;\n \n this.EncryptedPin = \n odataObject.EncryptedPin;\n \n this.AdditionalSecurityData = \n odataObject.AdditionalSecurityData;\n \n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentCardClass'] = PaymentCardClass;\n \n /**\n * CardPaymentAcceptSettings entity class.\n */\n export class CardPaymentAcceptSettingsClass implements Entities.CardPaymentAcceptSettings {\n public HostPageOrigin: string;\n public AdaptorPath: string;\n public CardTokenizationEnabled: boolean;\n public CardPaymentEnabled: boolean;\n public PaymentAmount: number;\n public HideBillingAddress: boolean;\n public TenderTypeId: string;\n public Locale: string;\n public RequireShippingAddress: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HostPageOrigin = \n odataObject.HostPageOrigin;\n \n this.AdaptorPath = \n odataObject.AdaptorPath;\n \n this.CardTokenizationEnabled = \n odataObject.CardTokenizationEnabled;\n \n this.CardPaymentEnabled = \n odataObject.CardPaymentEnabled;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.HideBillingAddress = \n odataObject.HideBillingAddress;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Locale = \n odataObject.Locale;\n \n this.RequireShippingAddress = \n odataObject.RequireShippingAddress;\n \n }\n }\n entityDictionary['CardPaymentAcceptSettingsClass'] = CardPaymentAcceptSettingsClass;\n \n /**\n * CardPaymentAcceptPoint entity class.\n */\n export class CardPaymentAcceptPointClass implements Entities.CardPaymentAcceptPoint {\n public AcceptPageUrl: string;\n public AcceptPageSubmitUrl: string;\n public MessageOrigin: string;\n public AcceptPageContent: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AcceptPageUrl = \n odataObject.AcceptPageUrl;\n \n this.AcceptPageSubmitUrl = \n odataObject.AcceptPageSubmitUrl;\n \n this.MessageOrigin = \n odataObject.MessageOrigin;\n \n this.AcceptPageContent = \n odataObject.AcceptPageContent;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['CardPaymentAcceptPointClass'] = CardPaymentAcceptPointClass;\n \n /**\n * CardPaymentAcceptResult entity class.\n */\n export class CardPaymentAcceptResultClass implements Entities.CardPaymentAcceptResult {\n public TenderLine: Entities.TenderLine;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public PaymentSdkErrors: Entities.PaymentError[];\n public AdditionalContext: string;\n public AccessCode: string;\n public Settings: Entities.RetrievePaymentResultSettings;\n public Email: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.TenderLine == null) {\n this.TenderLine = undefined;\n } else if (odataObject.TenderLine['@odata.type'] == null) {\n this.TenderLine = new TenderLineClass(odataObject.TenderLine);\n } else {\n var className: string = odataObject.TenderLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLine = new entityDictionary[className](odataObject.TenderLine)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.AccessCode = \n odataObject.AccessCode;\n \n if (odataObject.Settings == null) {\n this.Settings = undefined;\n } else if (odataObject.Settings['@odata.type'] == null) {\n this.Settings = new RetrievePaymentResultSettingsClass(odataObject.Settings);\n } else {\n var className: string = odataObject.Settings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Settings = new entityDictionary[className](odataObject.Settings)\n }\n }\n\n \n this.Email = \n odataObject.Email;\n \n }\n }\n entityDictionary['CardPaymentAcceptResultClass'] = CardPaymentAcceptResultClass;\n \n /**\n * ReasonCodeLine entity class.\n */\n export class ReasonCodeLineClass implements Entities.ReasonCodeLine {\n public LineId: string;\n public Amount: number;\n public Information: string;\n public InformationAmount: number;\n public InputTypeValue: number;\n public ItemTender: string;\n public LineNumber: number;\n public LineTypeValue: number;\n public ParentLineId: string;\n public ReasonCodeId: string;\n public StatementCode: string;\n public SubReasonCodeId: string;\n public SourceCode: string;\n public SourceCode2: string;\n public SourceCode3: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public FiscalTransactionParentGuid: string;\n public IsChanged: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Information = \n odataObject.Information;\n \n this.InformationAmount = \n (odataObject.InformationAmount != null) ? parseFloat(odataObject.InformationAmount) : undefined;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ItemTender = \n odataObject.ItemTender;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LineTypeValue = \n odataObject.LineTypeValue;\n \n this.ParentLineId = \n odataObject.ParentLineId;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.SubReasonCodeId = \n odataObject.SubReasonCodeId;\n \n this.SourceCode = \n odataObject.SourceCode;\n \n this.SourceCode2 = \n odataObject.SourceCode2;\n \n this.SourceCode3 = \n odataObject.SourceCode3;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FiscalTransactionParentGuid = \n odataObject.FiscalTransactionParentGuid;\n \n this.IsChanged = \n odataObject.IsChanged;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeLineClass'] = ReasonCodeLineClass;\n \n /**\n * ReasonSubCode entity class.\n */\n export class ReasonSubCodeClass implements Entities.ReasonSubCode {\n public TriggerCode: string;\n public AmountPercent: number;\n public ReasonCodeId: string;\n public SubCodeId: string;\n public Description: string;\n public TriggerFunctionTypeValue: number;\n public ProductId: number;\n public PriceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TriggerCode = \n odataObject.TriggerCode;\n \n this.AmountPercent = \n (odataObject.AmountPercent != null) ? parseFloat(odataObject.AmountPercent) : undefined;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SubCodeId = \n odataObject.SubCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.TriggerFunctionTypeValue = \n odataObject.TriggerFunctionTypeValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.PriceTypeValue = \n odataObject.PriceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonSubCodeClass'] = ReasonSubCodeClass;\n \n /**\n * Receipt entity class.\n */\n export class ReceiptClass implements Entities.Receipt {\n public TransactionId: string;\n public Header: string;\n public Body: string;\n public Footer: string;\n public Width: number;\n public ReceiptId: string;\n public LayoutId: string;\n public ReceiptTitle: string;\n public ReceiptTypeValue: number;\n public ReceiptTypeStrValue: string;\n public Printers: Entities.Printer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.Header = \n odataObject.Header;\n \n this.Body = \n odataObject.Body;\n \n this.Footer = \n odataObject.Footer;\n \n this.Width = \n odataObject.Width;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypeStrValue = \n odataObject.ReceiptTypeStrValue;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new PrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptClass'] = ReceiptClass;\n \n /**\n * ReceiptMask entity class.\n */\n export class ReceiptMaskClass implements Entities.ReceiptMask {\n public FunctionalityProfileId: string;\n public IsIndependent: boolean;\n public ReceiptTransactionTypeValue: number;\n public RecordId: number;\n public Mask: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.IsIndependent = \n odataObject.IsIndependent;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Mask = \n odataObject.Mask;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptMaskClass'] = ReceiptMaskClass;\n \n /**\n * SalesLine entity class.\n */\n export class SalesLineClass implements Entities.SalesLine {\n public StaffId: string;\n public LineId: string;\n public Description: string;\n public OriginLineId: string;\n public TaxOverrideCode: string;\n public IsPriceKeyedIn: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public ProductId: number;\n public Barcode: string;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public EntryMethodTypeValue: number;\n public MasterProductId: number;\n public ListingId: number;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public Comment: string;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public WarehouseLocation: string;\n public InventoryStatusId: string;\n public LicensePlate: string;\n public InventoryDimensionId: string;\n public InventoryTransactionId: string;\n public ItemType: number;\n public ReservationId: string;\n public LineNumber: number;\n public ReturnQuantity: number;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public LineVersion: number;\n public StatusValue: number;\n public SalesStatusValue: number;\n public ProductSourceValue: number;\n public IsGiftCardLine: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public IsInvoiceSettled: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public IsVoided: boolean;\n public IsPriceLocked: boolean;\n public ChargeLines: Entities.ChargeLine[];\n public BasePrice: number;\n public AgreementPrice: number;\n public AdjustedPrice: number;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public ReturnStore: string;\n public ReturnTerminalId: string;\n public ReturnChannelId: number;\n public FulfillmentStoreId: string;\n public SalesDate: Date;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public SavedQuantity: number;\n public IsSavedDiscount: boolean;\n public RecordId: number;\n public SerialNumber: string;\n public BatchId: string;\n public DeliveryModeChargeAmount: number;\n public UnitOfMeasureSymbol: string;\n public CatalogId: number;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyPercentageDiscount: number;\n public TenderDiscountAmount: number;\n public TenderDiscountPercentage: number;\n public GiftCardBalance: number;\n public IsCustomerAccountDeposit: boolean;\n public Blocked: boolean;\n public Found: boolean;\n public DateToActivateItem: Date;\n public LinePercentageDiscount: number;\n public PeriodicPercentageDiscount: number;\n public QuantityDiscounted: number;\n public UnitQuantity: number;\n public UnitOfMeasureConversion: Entities.UnitOfMeasureConversion;\n public DiscountLines: Entities.DiscountLine[];\n public PriceLines: Entities.PriceLine[];\n public AttainablePriceLines: Entities.PriceLine[];\n public PeriodicDiscountPossibilities: Entities.DiscountLine[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReturnLabelProperties: Entities.ReturnLabelContent;\n public LineMultilineDiscOnItem: string;\n public RelatedDiscountedLineIds: string[];\n public LinkedParentLineId: string;\n public LineMultilineDiscOnItemValue: number;\n public WasChanged: boolean;\n public OriginalSalesOrderUnitOfMeasure: string;\n public InventOrderUnitOfMeasure: string;\n public TrackingId: string;\n public IsLoyaltyDiscountApplied: boolean;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public QuantityReturnable: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ReturnLoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public DetailedLineStatusValue: number;\n public DetailedLineStatus: Entities.DetailedLineStatus;\n public LastReturnProcessedTime: Date;\n public SalesAgreementPrice: number;\n public SalesAgreementLineRecordId: number;\n public IsSalesAgreementSkipped: boolean;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Description = \n odataObject.Description;\n \n this.OriginLineId = \n odataObject.OriginLineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comment = \n odataObject.Comment;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.InventoryStatusId = \n odataObject.InventoryStatusId;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.InventoryTransactionId = \n odataObject.InventoryTransactionId;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.ReservationId = \n odataObject.ReservationId;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.ReturnQuantity = \n (odataObject.ReturnQuantity != null) ? parseFloat(odataObject.ReturnQuantity) : undefined;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.ProductSourceValue = \n odataObject.ProductSourceValue;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.IsInvoiceSettled = \n odataObject.IsInvoiceSettled;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsPriceLocked = \n odataObject.IsPriceLocked;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.AgreementPrice = \n (odataObject.AgreementPrice != null) ? parseFloat(odataObject.AgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.ReturnStore = \n odataObject.ReturnStore;\n \n this.ReturnTerminalId = \n odataObject.ReturnTerminalId;\n \n this.ReturnChannelId = \n (odataObject.ReturnChannelId != null) ? parseInt(odataObject.ReturnChannelId, 10) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SalesDate = \n (odataObject.SalesDate instanceof Date) ? odataObject.SalesDate\n : (odataObject.SalesDate != null) ? jsonLightReadStringPropertyValue(odataObject.SalesDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.SavedQuantity = \n (odataObject.SavedQuantity != null) ? parseFloat(odataObject.SavedQuantity) : undefined;\n \n this.IsSavedDiscount = \n odataObject.IsSavedDiscount;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyPercentageDiscount = \n (odataObject.LoyaltyPercentageDiscount != null) ? parseFloat(odataObject.LoyaltyPercentageDiscount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.TenderDiscountPercentage = \n (odataObject.TenderDiscountPercentage != null) ? parseFloat(odataObject.TenderDiscountPercentage) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.Found = \n odataObject.Found;\n \n this.DateToActivateItem = \n (odataObject.DateToActivateItem instanceof Date) ? odataObject.DateToActivateItem\n : (odataObject.DateToActivateItem != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivateItem, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.QuantityDiscounted = \n (odataObject.QuantityDiscounted != null) ? parseFloat(odataObject.QuantityDiscounted) : undefined;\n \n this.UnitQuantity = \n (odataObject.UnitQuantity != null) ? parseFloat(odataObject.UnitQuantity) : undefined;\n \n if (odataObject.UnitOfMeasureConversion == null) {\n this.UnitOfMeasureConversion = undefined;\n } else if (odataObject.UnitOfMeasureConversion['@odata.type'] == null) {\n this.UnitOfMeasureConversion = new UnitOfMeasureConversionClass(odataObject.UnitOfMeasureConversion);\n } else {\n var className: string = odataObject.UnitOfMeasureConversion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnitOfMeasureConversion = new entityDictionary[className](odataObject.UnitOfMeasureConversion)\n }\n }\n\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.AttainablePriceLines = undefined;\n if (odataObject.AttainablePriceLines) {\n this.AttainablePriceLines = [];\n for (var i = 0; i < odataObject.AttainablePriceLines.length; i++) {\n if (odataObject.AttainablePriceLines[i] != null) {\n if (odataObject.AttainablePriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AttainablePriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttainablePriceLines[i] = new entityDictionary[className](odataObject.AttainablePriceLines[i])\n }\n } else {\n this.AttainablePriceLines[i] = new PriceLineClass(odataObject.AttainablePriceLines[i]);\n }\n } else {\n this.AttainablePriceLines[i] = undefined;\n }\n }\n }\n \n this.PeriodicDiscountPossibilities = undefined;\n if (odataObject.PeriodicDiscountPossibilities) {\n this.PeriodicDiscountPossibilities = [];\n for (var i = 0; i < odataObject.PeriodicDiscountPossibilities.length; i++) {\n if (odataObject.PeriodicDiscountPossibilities[i] != null) {\n if (odataObject.PeriodicDiscountPossibilities[i]['@odata.type'] != null) {\n var className: string = odataObject.PeriodicDiscountPossibilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PeriodicDiscountPossibilities[i] = new entityDictionary[className](odataObject.PeriodicDiscountPossibilities[i])\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = new DiscountLineClass(odataObject.PeriodicDiscountPossibilities[i]);\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.ReturnLabelProperties == null) {\n this.ReturnLabelProperties = undefined;\n } else if (odataObject.ReturnLabelProperties['@odata.type'] == null) {\n this.ReturnLabelProperties = new ReturnLabelContentClass(odataObject.ReturnLabelProperties);\n } else {\n var className: string = odataObject.ReturnLabelProperties['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLabelProperties = new entityDictionary[className](odataObject.ReturnLabelProperties)\n }\n }\n\n \n this.LineMultilineDiscOnItem = \n odataObject.LineMultilineDiscOnItem;\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.LineMultilineDiscOnItemValue = \n odataObject.LineMultilineDiscOnItemValue;\n \n this.WasChanged = \n odataObject.WasChanged;\n \n this.OriginalSalesOrderUnitOfMeasure = \n odataObject.OriginalSalesOrderUnitOfMeasure;\n \n this.InventOrderUnitOfMeasure = \n odataObject.InventOrderUnitOfMeasure;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.IsLoyaltyDiscountApplied = \n odataObject.IsLoyaltyDiscountApplied;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ReturnLoyaltyRewardPointLines = undefined;\n if (odataObject.ReturnLoyaltyRewardPointLines) {\n this.ReturnLoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.ReturnLoyaltyRewardPointLines.length; i++) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i] != null) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.ReturnLoyaltyRewardPointLines[i])\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.ReturnLoyaltyRewardPointLines[i]);\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n if (odataObject.DetailedLineStatus == null) {\n this.DetailedLineStatus = undefined;\n } else if (odataObject.DetailedLineStatus['@odata.type'] == null) {\n this.DetailedLineStatus = new DetailedLineStatusClass(odataObject.DetailedLineStatus);\n } else {\n var className: string = odataObject.DetailedLineStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DetailedLineStatus = new entityDictionary[className](odataObject.DetailedLineStatus)\n }\n }\n\n \n this.LastReturnProcessedTime = \n (odataObject.LastReturnProcessedTime instanceof Date) ? odataObject.LastReturnProcessedTime\n : (odataObject.LastReturnProcessedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastReturnProcessedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n this.IsSalesAgreementSkipped = \n odataObject.IsSalesAgreementSkipped;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineClass'] = SalesLineClass;\n \n /**\n * SearchArea entity class.\n */\n export class SearchAreaClass implements Entities.SearchArea {\n public Longitude: number;\n public Latitude: number;\n public Radius: number;\n public DistanceUnitValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Radius = \n (odataObject.Radius != null) ? parseFloat(odataObject.Radius) : undefined;\n \n this.DistanceUnitValue = \n odataObject.DistanceUnitValue;\n \n }\n }\n entityDictionary['SearchAreaClass'] = SearchAreaClass;\n \n /**\n * ShiftAccountLine entity class.\n */\n export class ShiftAccountLineClass implements Entities.ShiftAccountLine {\n public AccountTypeValue: number;\n public AccountNumber: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftAccountLineClass'] = ShiftAccountLineClass;\n \n /**\n * ShiftTenderLine entity class.\n */\n export class ShiftTenderLineClass implements Entities.ShiftTenderLine {\n public TenderTypeId: string;\n public TenderTypeName: string;\n public CardTypeId: string;\n public TenderCurrency: string;\n public CountingRequired: boolean;\n public StartingAmountOfStoreCurrency: number;\n public StartingAmountOfTenderCurrency: number;\n public FloatingEntryAmountOfStoreCurrency: number;\n public FloatingEntryAmountOfTenderCurrency: number;\n public SafeDropAmountOfStoreCurrency: number;\n public SafeDropAmountOfTenderCurrency: number;\n public BankDropAmountOfStoreCurrency: number;\n public BankDropAmountOfTenderCurrency: number;\n public RemoveTenderAmountOfStoreCurrency: number;\n public RemoveTenderAmountOfTenderCurrency: number;\n public DeclareTenderAmountOfStoreCurrency: number;\n public DeclareTenderAmountOfTenderCurrency: number;\n public TenderedAmountOfStoreCurrency: number;\n public TenderedAmountOfTenderCurrency: number;\n public ChangeAmountOfStoreCurrency: number;\n public ChangeAmountOfTenderCurrency: number;\n public Count: number;\n public Notes: string;\n public Overridden: boolean;\n public OverriddenFloatEntryAmountInStoreCurrency: number;\n public OverriddenFloatEntryAmountInTenderedCurrency: number;\n public OverriddenBankDropAmountInStoreCurrency: number;\n public OverriddenBankDropAmountInTenderedCurrency: number;\n public OverriddenChangeAmountInStoreCurrency: number;\n public OverriddenChangeAmountInTenderedCurrency: number;\n public OverriddenDeclaredTenderAmountInStoreCurrency: number;\n public OverriddenDeclaredTenderAmountInTenderedCurrency: number;\n public OverriddenRemovedTenderAmountInStoreCurrency: number;\n public OverriddenRemovedTenderAmountInTenderedCurrency: number;\n public OverriddenSafeDropAmountInStoreCurrency: number;\n public OverriddenSafeDropAmountInTenderedCurrency: number;\n public OverriddenStartingAmountInStoreCurrency: number;\n public OverriddenStartingAmountInTenderedCurrency: number;\n public OverriddenTenderedAmountInStoreCurrency: number;\n public OverriddenTenderedAmountInTenderedCurrency: number;\n public OverShortAmountOfTenderCurrency: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderTypeName = \n odataObject.TenderTypeName;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.TenderCurrency = \n odataObject.TenderCurrency;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.StartingAmountOfStoreCurrency = \n (odataObject.StartingAmountOfStoreCurrency != null) ? parseFloat(odataObject.StartingAmountOfStoreCurrency) : undefined;\n \n this.StartingAmountOfTenderCurrency = \n (odataObject.StartingAmountOfTenderCurrency != null) ? parseFloat(odataObject.StartingAmountOfTenderCurrency) : undefined;\n \n this.FloatingEntryAmountOfStoreCurrency = \n (odataObject.FloatingEntryAmountOfStoreCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfStoreCurrency) : undefined;\n \n this.FloatingEntryAmountOfTenderCurrency = \n (odataObject.FloatingEntryAmountOfTenderCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfTenderCurrency) : undefined;\n \n this.SafeDropAmountOfStoreCurrency = \n (odataObject.SafeDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfStoreCurrency) : undefined;\n \n this.SafeDropAmountOfTenderCurrency = \n (odataObject.SafeDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfTenderCurrency) : undefined;\n \n this.BankDropAmountOfStoreCurrency = \n (odataObject.BankDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.BankDropAmountOfStoreCurrency) : undefined;\n \n this.BankDropAmountOfTenderCurrency = \n (odataObject.BankDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.BankDropAmountOfTenderCurrency) : undefined;\n \n this.RemoveTenderAmountOfStoreCurrency = \n (odataObject.RemoveTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfStoreCurrency) : undefined;\n \n this.RemoveTenderAmountOfTenderCurrency = \n (odataObject.RemoveTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfTenderCurrency) : undefined;\n \n this.DeclareTenderAmountOfStoreCurrency = \n (odataObject.DeclareTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfStoreCurrency) : undefined;\n \n this.DeclareTenderAmountOfTenderCurrency = \n (odataObject.DeclareTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfTenderCurrency) : undefined;\n \n this.TenderedAmountOfStoreCurrency = \n (odataObject.TenderedAmountOfStoreCurrency != null) ? parseFloat(odataObject.TenderedAmountOfStoreCurrency) : undefined;\n \n this.TenderedAmountOfTenderCurrency = \n (odataObject.TenderedAmountOfTenderCurrency != null) ? parseFloat(odataObject.TenderedAmountOfTenderCurrency) : undefined;\n \n this.ChangeAmountOfStoreCurrency = \n (odataObject.ChangeAmountOfStoreCurrency != null) ? parseFloat(odataObject.ChangeAmountOfStoreCurrency) : undefined;\n \n this.ChangeAmountOfTenderCurrency = \n (odataObject.ChangeAmountOfTenderCurrency != null) ? parseFloat(odataObject.ChangeAmountOfTenderCurrency) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.Notes = \n odataObject.Notes;\n \n this.Overridden = \n odataObject.Overridden;\n \n this.OverriddenFloatEntryAmountInStoreCurrency = \n (odataObject.OverriddenFloatEntryAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInStoreCurrency) : undefined;\n \n this.OverriddenFloatEntryAmountInTenderedCurrency = \n (odataObject.OverriddenFloatEntryAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInTenderedCurrency) : undefined;\n \n this.OverriddenBankDropAmountInStoreCurrency = \n (odataObject.OverriddenBankDropAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInStoreCurrency) : undefined;\n \n this.OverriddenBankDropAmountInTenderedCurrency = \n (odataObject.OverriddenBankDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenChangeAmountInStoreCurrency = \n (odataObject.OverriddenChangeAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInStoreCurrency) : undefined;\n \n this.OverriddenChangeAmountInTenderedCurrency = \n (odataObject.OverriddenChangeAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInTenderedCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInStoreCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInStoreCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInTenderedCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInStoreCurrency = \n (odataObject.OverriddenRemovedTenderAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInStoreCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInTenderedCurrency = \n (odataObject.OverriddenRemovedTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInStoreCurrency = \n (odataObject.OverriddenSafeDropAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInStoreCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInTenderedCurrency = \n (odataObject.OverriddenSafeDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenStartingAmountInStoreCurrency = \n (odataObject.OverriddenStartingAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInStoreCurrency) : undefined;\n \n this.OverriddenStartingAmountInTenderedCurrency = \n (odataObject.OverriddenStartingAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInTenderedCurrency) : undefined;\n \n this.OverriddenTenderedAmountInStoreCurrency = \n (odataObject.OverriddenTenderedAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenTenderedAmountInStoreCurrency) : undefined;\n \n this.OverriddenTenderedAmountInTenderedCurrency = \n (odataObject.OverriddenTenderedAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenTenderedAmountInTenderedCurrency) : undefined;\n \n this.OverShortAmountOfTenderCurrency = \n (odataObject.OverShortAmountOfTenderCurrency != null) ? parseFloat(odataObject.OverShortAmountOfTenderCurrency) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTenderLineClass'] = ShiftTenderLineClass;\n \n /**\n * StockCountJournalTransaction entity class.\n */\n export class StockCountJournalTransactionClass implements Entities.StockCountJournalTransaction {\n public JournalId: string;\n public RecordId: number;\n public OperationType: number;\n public ItemId: string;\n public DataAreaId: string;\n public ProductRecordId: number;\n public ItemName: string;\n public InventDimId: string;\n public Counted: number;\n public Quantity: number;\n public EstimatedOnHandQuantity: number;\n public OnHandCalculationDateTime: Date;\n public Unit: string;\n public UserId: string;\n public TerminalId: string;\n public CountedDate: Date;\n public Status: number;\n public InventBatchId: string;\n public WarehouseLocationId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public WarehousePalletId: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public InventSerialId: string;\n public TrackingGuid: string;\n public UpdatedInAx: boolean;\n public Message: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OperationType = \n odataObject.OperationType;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.Counted = \n (odataObject.Counted != null) ? parseFloat(odataObject.Counted) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.EstimatedOnHandQuantity = \n (odataObject.EstimatedOnHandQuantity != null) ? parseFloat(odataObject.EstimatedOnHandQuantity) : undefined;\n \n this.OnHandCalculationDateTime = \n (odataObject.OnHandCalculationDateTime instanceof Date) ? odataObject.OnHandCalculationDateTime\n : (odataObject.OnHandCalculationDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OnHandCalculationDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.UserId = \n odataObject.UserId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CountedDate = \n (odataObject.CountedDate instanceof Date) ? odataObject.CountedDate\n : (odataObject.CountedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CountedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WarehouseLocationId = \n odataObject.WarehouseLocationId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.WarehousePalletId = \n odataObject.WarehousePalletId;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.TrackingGuid = \n odataObject.TrackingGuid;\n \n this.UpdatedInAx = \n odataObject.UpdatedInAx;\n \n this.Message = \n odataObject.Message;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalTransactionClass'] = StockCountJournalTransactionClass;\n \n /**\n * TaxLine entity class.\n */\n export class TaxLineClass implements Entities.TaxLine {\n public TaxGroup: string;\n public Percentage: number;\n public IsExempt: boolean;\n public TaxBasis: number;\n public IsIncludedInPrice: boolean;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TaxCode: string;\n public Amount: number;\n public AmountRefunded: number;\n public IsTaxGroupRounding: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.IsExempt = \n odataObject.IsExempt;\n \n this.TaxBasis = \n (odataObject.TaxBasis != null) ? parseFloat(odataObject.TaxBasis) : undefined;\n \n this.IsIncludedInPrice = \n odataObject.IsIncludedInPrice;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TaxCode = \n odataObject.TaxCode;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.IsTaxGroupRounding = \n odataObject.IsTaxGroupRounding;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxLineClass'] = TaxLineClass;\n \n /**\n * TenderLine entity class.\n */\n export class TenderLineClass implements Entities.TenderLine {\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public InternalTransactionId: string;\n public RefundableAmount: number;\n public CaptureToken: string;\n public CardToken: string;\n public Authorization: string;\n public TransactionStatusValue: number;\n public IncomeExpenseAccountTypeValue: number;\n public MaskedCardNumber: string;\n public TenderDate: Date;\n public IsPreProcessed: boolean;\n public IsDeposit: boolean;\n public IsCustomerAccountFloorLimitUsed: boolean;\n public AuthorizationReferenceId: string;\n public IsIncrementalCaptureEnabled: boolean;\n public IsReauthorizationEnabled: boolean;\n public IncrementalOffsetAmount: number;\n public ChannelId: number;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public RoundingDifference: number;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.RefundableAmount = \n (odataObject.RefundableAmount != null) ? parseFloat(odataObject.RefundableAmount) : undefined;\n \n this.CaptureToken = \n odataObject.CaptureToken;\n \n this.CardToken = \n odataObject.CardToken;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.IncomeExpenseAccountTypeValue = \n odataObject.IncomeExpenseAccountTypeValue;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n this.TenderDate = \n (odataObject.TenderDate instanceof Date) ? odataObject.TenderDate\n : (odataObject.TenderDate != null) ? jsonLightReadStringPropertyValue(odataObject.TenderDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsPreProcessed = \n odataObject.IsPreProcessed;\n \n this.IsDeposit = \n odataObject.IsDeposit;\n \n this.IsCustomerAccountFloorLimitUsed = \n odataObject.IsCustomerAccountFloorLimitUsed;\n \n this.AuthorizationReferenceId = \n odataObject.AuthorizationReferenceId;\n \n this.IsIncrementalCaptureEnabled = \n odataObject.IsIncrementalCaptureEnabled;\n \n this.IsReauthorizationEnabled = \n odataObject.IsReauthorizationEnabled;\n \n this.IncrementalOffsetAmount = \n (odataObject.IncrementalOffsetAmount != null) ? parseFloat(odataObject.IncrementalOffsetAmount) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.RoundingDifference = \n (odataObject.RoundingDifference != null) ? parseFloat(odataObject.RoundingDifference) : undefined;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderLineClass'] = TenderLineClass;\n \n /**\n * TextValueTranslation entity class.\n */\n export class TextValueTranslationClass implements Entities.TextValueTranslation {\n public Language: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Language = \n odataObject.Language;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TextValueTranslationClass'] = TextValueTranslationClass;\n \n /**\n * UnitOfMeasure entity class.\n */\n export class UnitOfMeasureClass implements Entities.UnitOfMeasure {\n public DecimalPrecision: number;\n public Symbol: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DecimalPrecision = \n odataObject.DecimalPrecision;\n \n this.Symbol = \n odataObject.Symbol;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureClass'] = UnitOfMeasureClass;\n \n /**\n * RecommendedElement entity class.\n */\n export class RecommendedElementClass implements Entities.RecommendedElement {\n public ElementId: string;\n public ElementTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ElementId = \n odataObject.ElementId;\n \n this.ElementTypeValue = \n odataObject.ElementTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendedElementClass'] = RecommendedElementClass;\n \n /**\n * RecommendationCriteria entity class.\n */\n export class RecommendationCriteriaClass implements Entities.RecommendationCriteria {\n public CustomerAccountNumber: string;\n public CatalogId: number;\n public ProductIds: number[];\n public CategoryIds: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationCriteriaClass'] = RecommendationCriteriaClass;\n \n /**\n * ProductListLine entity class.\n */\n export class ProductListLineClass implements Entities.ProductListLine {\n public ProductListId: string;\n public LineId: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductListId = \n odataObject.ProductListId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListLineClass'] = ProductListLineClass;\n \n /**\n * CommerceListLine entity class.\n */\n export class CommerceListLineClass implements Entities.CommerceListLine {\n public CommerceListId: number;\n public LineId: number;\n public CustomerId: string;\n public CustomerName: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CommerceListId = \n (odataObject.CommerceListId != null) ? parseInt(odataObject.CommerceListId, 10) : undefined;\n \n this.LineId = \n (odataObject.LineId != null) ? parseInt(odataObject.LineId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListLineClass'] = CommerceListLineClass;\n \n /**\n * CommerceListContributor entity class.\n */\n export class CommerceListContributorClass implements Entities.CommerceListContributor {\n public RecordId: number;\n public CustomerId: string;\n public CustomerName: string;\n public InvitationId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvitationId = \n (odataObject.InvitationId != null) ? parseInt(odataObject.InvitationId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListContributorClass'] = CommerceListContributorClass;\n \n /**\n * CommerceListInvitation entity class.\n */\n export class CommerceListInvitationClass implements Entities.CommerceListInvitation {\n public RecordId: number;\n public Invitee: string;\n public IsSent: boolean;\n public LastRequestDateTime: Date;\n public LastSentDateTime: Date;\n public StatusValue: number;\n public Token: string;\n public InvitationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Invitee = \n odataObject.Invitee;\n \n this.IsSent = \n odataObject.IsSent;\n \n this.LastRequestDateTime = \n (odataObject.LastRequestDateTime instanceof Date) ? odataObject.LastRequestDateTime\n : (odataObject.LastRequestDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastRequestDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastSentDateTime = \n (odataObject.LastSentDateTime instanceof Date) ? odataObject.LastSentDateTime\n : (odataObject.LastSentDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSentDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.InvitationTypeValue = \n odataObject.InvitationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListInvitationClass'] = CommerceListInvitationClass;\n \n /**\n * SearchFilter entity class.\n */\n export class SearchFilterClass implements Entities.SearchFilter {\n public Key: string;\n public FilterTypeValue: number;\n public SearchValues: Entities.SearchFilterValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.FilterTypeValue = \n odataObject.FilterTypeValue;\n \n this.SearchValues = undefined;\n if (odataObject.SearchValues) {\n this.SearchValues = [];\n for (var i = 0; i < odataObject.SearchValues.length; i++) {\n if (odataObject.SearchValues[i] != null) {\n if (odataObject.SearchValues[i]['@odata.type'] != null) {\n var className: string = odataObject.SearchValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchValues[i] = new entityDictionary[className](odataObject.SearchValues[i])\n }\n } else {\n this.SearchValues[i] = new SearchFilterValueClass(odataObject.SearchValues[i]);\n }\n } else {\n this.SearchValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchFilterClass'] = SearchFilterClass;\n \n /**\n * SearchFilterValue entity class.\n */\n export class SearchFilterValueClass implements Entities.SearchFilterValue {\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['SearchFilterValueClass'] = SearchFilterValueClass;\n \n /**\n * TransactionSearchCriteria entity class.\n */\n export class TransactionSearchCriteriaClass implements Entities.TransactionSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SearchLocationTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionSearchCriteriaClass'] = TransactionSearchCriteriaClass;\n \n /**\n * SalesOrderSearchCriteria entity class.\n */\n export class SalesOrderSearchCriteriaClass implements Entities.SalesOrderSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public SearchTypeValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public IncludeDetails: boolean;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SalesTransactionTypeValues: number[];\n public SearchLocationTypeValue: number;\n public TransactionStatusTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SearchTypeValue = \n odataObject.SearchTypeValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IncludeDetails = \n odataObject.IncludeDetails;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SalesTransactionTypeValues = undefined;\n if (odataObject.SalesTransactionTypeValues) {\n this.SalesTransactionTypeValues = [];\n for (var i = 0; i < odataObject.SalesTransactionTypeValues.length; i++) {\n if (odataObject.SalesTransactionTypeValues[i] != null) {\n this.SalesTransactionTypeValues[i] = \n odataObject.SalesTransactionTypeValues[i];\n } else {\n this.SalesTransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.TransactionStatusTypeValues = undefined;\n if (odataObject.TransactionStatusTypeValues) {\n this.TransactionStatusTypeValues = [];\n for (var i = 0; i < odataObject.TransactionStatusTypeValues.length; i++) {\n if (odataObject.TransactionStatusTypeValues[i] != null) {\n this.TransactionStatusTypeValues[i] = \n odataObject.TransactionStatusTypeValues[i];\n } else {\n this.TransactionStatusTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderSearchCriteriaClass'] = SalesOrderSearchCriteriaClass;\n \n /**\n * SearchStoreCriteria entity class.\n */\n export class SearchStoreCriteriaClass implements Entities.SearchStoreCriteria {\n public ChannelId: number;\n public StoreNumber: string;\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n }\n }\n entityDictionary['SearchStoreCriteriaClass'] = SearchStoreCriteriaClass;\n \n /**\n * CustomerSearchCriteria entity class.\n */\n export class CustomerSearchCriteriaClass implements Entities.CustomerSearchCriteria {\n public Keyword: string;\n public SearchOnlyCurrentCompany: boolean;\n public SearchLocationValue: number;\n public Refinements: Entities.CustomerRefinerValue[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Keyword = \n odataObject.Keyword;\n \n this.SearchOnlyCurrentCompany = \n odataObject.SearchOnlyCurrentCompany;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.Refinements = undefined;\n if (odataObject.Refinements) {\n this.Refinements = [];\n for (var i = 0; i < odataObject.Refinements.length; i++) {\n if (odataObject.Refinements[i] != null) {\n if (odataObject.Refinements[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinements[i] = new entityDictionary[className](odataObject.Refinements[i])\n }\n } else {\n this.Refinements[i] = new CustomerRefinerValueClass(odataObject.Refinements[i]);\n }\n } else {\n this.Refinements[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchCriteriaClass'] = CustomerSearchCriteriaClass;\n \n /**\n * ProductPrice entity class.\n */\n export class ProductPriceClass implements Entities.ProductPrice {\n public ProductId: number;\n public ListingId: number;\n public BasePrice: number;\n public TradeAgreementPrice: number;\n public AdjustedPrice: number;\n public MaxVariantPrice: number;\n public MinVariantPrice: number;\n public CustomerContextualPrice: number;\n public DiscountAmount: number;\n public CurrencyCode: string;\n public ItemId: string;\n public InventoryDimensionId: string;\n public UnitOfMeasure: string;\n public ValidFrom: Date;\n public ProductLookupId: number;\n public ChannelId: number;\n public CatalogId: number;\n public DiscountLines: Entities.DiscountLine[];\n public SalesAgreementPrice: number;\n public PriceSourceTypeValue: number;\n public AttainablePriceLines: Entities.PriceLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.TradeAgreementPrice = \n (odataObject.TradeAgreementPrice != null) ? parseFloat(odataObject.TradeAgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.CustomerContextualPrice = \n (odataObject.CustomerContextualPrice != null) ? parseFloat(odataObject.CustomerContextualPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductLookupId = \n (odataObject.ProductLookupId != null) ? parseInt(odataObject.ProductLookupId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.PriceSourceTypeValue = \n odataObject.PriceSourceTypeValue;\n \n this.AttainablePriceLines = undefined;\n if (odataObject.AttainablePriceLines) {\n this.AttainablePriceLines = [];\n for (var i = 0; i < odataObject.AttainablePriceLines.length; i++) {\n if (odataObject.AttainablePriceLines[i] != null) {\n if (odataObject.AttainablePriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AttainablePriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttainablePriceLines[i] = new entityDictionary[className](odataObject.AttainablePriceLines[i])\n }\n } else {\n this.AttainablePriceLines[i] = new PriceLineClass(odataObject.AttainablePriceLines[i]);\n }\n } else {\n this.AttainablePriceLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPriceClass'] = ProductPriceClass;\n \n /**\n * OrgUnitAvailability entity class.\n */\n export class OrgUnitAvailabilityClass implements Entities.OrgUnitAvailability {\n public OrgUnitLocation: Entities.OrgUnitLocation;\n public ItemAvailabilities: Entities.ItemAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.OrgUnitLocation == null) {\n this.OrgUnitLocation = undefined;\n } else if (odataObject.OrgUnitLocation['@odata.type'] == null) {\n this.OrgUnitLocation = new OrgUnitLocationClass(odataObject.OrgUnitLocation);\n } else {\n var className: string = odataObject.OrgUnitLocation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitLocation = new entityDictionary[className](odataObject.OrgUnitLocation)\n }\n }\n\n \n this.ItemAvailabilities = undefined;\n if (odataObject.ItemAvailabilities) {\n this.ItemAvailabilities = [];\n for (var i = 0; i < odataObject.ItemAvailabilities.length; i++) {\n if (odataObject.ItemAvailabilities[i] != null) {\n if (odataObject.ItemAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemAvailabilities[i] = new entityDictionary[className](odataObject.ItemAvailabilities[i])\n }\n } else {\n this.ItemAvailabilities[i] = new ItemAvailabilityClass(odataObject.ItemAvailabilities[i]);\n }\n } else {\n this.ItemAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitAvailabilityClass'] = OrgUnitAvailabilityClass;\n \n /**\n * ProductVariantPropertySet entity class.\n */\n export class ProductVariantPropertySetClass implements Entities.ProductVariantPropertySet {\n public VariantId: number;\n public ProductVariantPropertiesAsList: Entities.ProductPropertyTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.VariantId = \n (odataObject.VariantId != null) ? parseInt(odataObject.VariantId, 10) : undefined;\n \n this.ProductVariantPropertiesAsList = undefined;\n if (odataObject.ProductVariantPropertiesAsList) {\n this.ProductVariantPropertiesAsList = [];\n for (var i = 0; i < odataObject.ProductVariantPropertiesAsList.length; i++) {\n if (odataObject.ProductVariantPropertiesAsList[i] != null) {\n if (odataObject.ProductVariantPropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductVariantPropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductVariantPropertiesAsList[i] = new entityDictionary[className](odataObject.ProductVariantPropertiesAsList[i])\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.ProductVariantPropertiesAsList[i]);\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantPropertySetClass'] = ProductVariantPropertySetClass;\n \n /**\n * PurchaseOrderLine entity class.\n */\n export class PurchaseOrderLineClass implements Entities.PurchaseOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseQuantity: number;\n public PurchaseUnit: string;\n public PurchaseReceived: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public UniqueIdentifier: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseQuantity = \n (odataObject.PurchaseQuantity != null) ? parseFloat(odataObject.PurchaseQuantity) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.PurchaseReceived = \n (odataObject.PurchaseReceived != null) ? parseFloat(odataObject.PurchaseReceived) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.UniqueIdentifier = \n odataObject.UniqueIdentifier;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderLineClass'] = PurchaseOrderLineClass;\n \n /**\n * TransferOrderLine entity class.\n */\n export class TransferOrderLineClass implements Entities.TransferOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityTransferred: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityRemainShip: number;\n public QuantityRemainReceive: number;\n public PurchaseUnit: string;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityTransferred = \n (odataObject.QuantityTransferred != null) ? parseFloat(odataObject.QuantityTransferred) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityRemainShip = \n (odataObject.QuantityRemainShip != null) ? parseFloat(odataObject.QuantityRemainShip) : undefined;\n \n this.QuantityRemainReceive = \n (odataObject.QuantityRemainReceive != null) ? parseFloat(odataObject.QuantityRemainReceive) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderLineClass'] = TransferOrderLineClass;\n \n /**\n * TransferOrderJournal entity class.\n */\n export class TransferOrderJournalClass implements Entities.TransferOrderJournal {\n public OrderId: string;\n public VoucherId: string;\n public UpdatedByWorker: string;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public PostingDate: Date;\n public DeliveryMode: string;\n public Comments: string;\n public JournalLines: Entities.TransferOrderJournalLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.VoucherId = \n odataObject.VoucherId;\n \n this.UpdatedByWorker = \n odataObject.UpdatedByWorker;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.PostingDate = \n (odataObject.PostingDate instanceof Date) ? odataObject.PostingDate\n : (odataObject.PostingDate != null) ? jsonLightReadStringPropertyValue(odataObject.PostingDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comments = \n odataObject.Comments;\n \n this.JournalLines = undefined;\n if (odataObject.JournalLines) {\n this.JournalLines = [];\n for (var i = 0; i < odataObject.JournalLines.length; i++) {\n if (odataObject.JournalLines[i] != null) {\n if (odataObject.JournalLines[i]['@odata.type'] != null) {\n var className: string = odataObject.JournalLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.JournalLines[i] = new entityDictionary[className](odataObject.JournalLines[i])\n }\n } else {\n this.JournalLines[i] = new TransferOrderJournalLineClass(odataObject.JournalLines[i]);\n }\n } else {\n this.JournalLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalClass'] = TransferOrderJournalClass;\n \n /**\n * PickingListLine entity class.\n */\n export class PickingListLineClass implements Entities.PickingListLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListLineClass'] = PickingListLineClass;\n \n /**\n * Affiliation entity class.\n */\n export class AffiliationClass implements Entities.Affiliation {\n public RecordId: number;\n public AffiliationTypeValue: number;\n public Description: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationClass'] = AffiliationClass;\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity class.\n */\n export class InventoryInboundOutboundDocumentLinesSummaryClass implements Entities.InventoryInboundOutboundDocumentLinesSummary {\n public InProgressQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InProgressQuantity = \n (odataObject.InProgressQuantity != null) ? parseFloat(odataObject.InProgressQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLinesSummaryClass'] = InventoryInboundOutboundDocumentLinesSummaryClass;\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity class.\n */\n export class InventoryDocumentSerialNumberLinesSummaryClass implements Entities.InventoryDocumentSerialNumberLinesSummary {\n public RegisteringQuantity: number;\n public RegisteredQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegisteringQuantity = \n (odataObject.RegisteringQuantity != null) ? parseFloat(odataObject.RegisteringQuantity) : undefined;\n \n this.RegisteredQuantity = \n (odataObject.RegisteredQuantity != null) ? parseFloat(odataObject.RegisteredQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLinesSummaryClass'] = InventoryDocumentSerialNumberLinesSummaryClass;\n \n /**\n * InventoryInboundOutboundDocumentLine entity class.\n */\n export class InventoryInboundOutboundDocumentLineClass implements Entities.InventoryInboundOutboundDocumentLine {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentLineRecordId: number;\n public SourceDocumentTypeValue: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public QuantityToUpdate: number;\n public LocationId: string;\n public ItemId: string;\n public ProductId: number;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public OperationResultMessage: string;\n public IsCloseLine: boolean;\n public OriginTypeValue: number;\n public UnitOfMeasure: string;\n public SourceDocumentLine: Entities.InventoryInboundOutboundSourceDocumentLine;\n public SerialNumberLines: Entities.InventoryDocumentSerialNumberLine[];\n public LongVersion: number;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.QuantityToUpdate = \n (odataObject.QuantityToUpdate != null) ? parseFloat(odataObject.QuantityToUpdate) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.IsCloseLine = \n odataObject.IsCloseLine;\n \n this.OriginTypeValue = \n odataObject.OriginTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n if (odataObject.SourceDocumentLine == null) {\n this.SourceDocumentLine = undefined;\n } else if (odataObject.SourceDocumentLine['@odata.type'] == null) {\n this.SourceDocumentLine = new InventoryInboundOutboundSourceDocumentLineClass(odataObject.SourceDocumentLine);\n } else {\n var className: string = odataObject.SourceDocumentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocumentLine = new entityDictionary[className](odataObject.SourceDocumentLine)\n }\n }\n\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLineClass'] = InventoryInboundOutboundDocumentLineClass;\n \n /**\n * InventoryInboundOutboundSourceDocument entity class.\n */\n export class InventoryInboundOutboundSourceDocumentClass implements Entities.InventoryInboundOutboundSourceDocument {\n public RecordId: number;\n public DocumentTypeValue: number;\n public DocumentId: string;\n public StatusValue: number;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public TotalQuantityOrdered: number;\n public TotalQuantityShipped: number;\n public TotalQuantityReceived: number;\n public TotalQuantityCancelled: number;\n public DataAreaId: string;\n public Note: string;\n public TotalLines: number;\n public IsChangeAllowed: boolean;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalQuantityOrdered = \n (odataObject.TotalQuantityOrdered != null) ? parseFloat(odataObject.TotalQuantityOrdered) : undefined;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.TotalQuantityReceived = \n (odataObject.TotalQuantityReceived != null) ? parseFloat(odataObject.TotalQuantityReceived) : undefined;\n \n this.TotalQuantityCancelled = \n (odataObject.TotalQuantityCancelled != null) ? parseFloat(odataObject.TotalQuantityCancelled) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.TotalLines = \n (odataObject.TotalLines != null) ? parseInt(odataObject.TotalLines, 10) : undefined;\n \n this.IsChangeAllowed = \n odataObject.IsChangeAllowed;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentClass'] = InventoryInboundOutboundSourceDocumentClass;\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity class.\n */\n export class InventoryInboundOutboundSourceDocumentLineClass implements Entities.InventoryInboundOutboundSourceDocumentLine {\n public DocumentRecordId: number;\n public DocumentTypeValue: number;\n public RecordId: number;\n public LineNumber: number;\n public ItemId: string;\n public ProductId: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public LocationId: string;\n public OverDeliveryPercentage: number;\n public UnderDeliveryPercentage: number;\n public UnitId: string;\n public Receiver: string;\n public DataAreaId: string;\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentId: string;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public HasSerialNumber: boolean;\n public IsSerialNumberBlankReceiptAllowed: boolean;\n public IsSerialNumberDuplicateCheckEnabled: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public SerialNumberLines: Entities.InventoryDocumentSourceSerialNumberLine[];\n public StatusValue: number;\n public ToProductId: number;\n public ToLocationId: string;\n public InventoryDimensionId: string;\n public ToInventoryDimensionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentRecordId = \n (odataObject.DocumentRecordId != null) ? parseInt(odataObject.DocumentRecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.OverDeliveryPercentage = \n (odataObject.OverDeliveryPercentage != null) ? parseFloat(odataObject.OverDeliveryPercentage) : undefined;\n \n this.UnderDeliveryPercentage = \n (odataObject.UnderDeliveryPercentage != null) ? parseFloat(odataObject.UnderDeliveryPercentage) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsSerialNumberBlankReceiptAllowed = \n odataObject.IsSerialNumberBlankReceiptAllowed;\n \n this.IsSerialNumberDuplicateCheckEnabled = \n odataObject.IsSerialNumberDuplicateCheckEnabled;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ToProductId = \n (odataObject.ToProductId != null) ? parseInt(odataObject.ToProductId, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ToInventoryDimensionId = \n odataObject.ToInventoryDimensionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentLineClass'] = InventoryInboundOutboundSourceDocumentLineClass;\n \n /**\n * InventoryDocumentLineFilterCriteria entity class.\n */\n export class InventoryDocumentLineFilterCriteriaClass implements Entities.InventoryDocumentLineFilterCriteria {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineFilterCriteriaClass'] = InventoryDocumentLineFilterCriteriaClass;\n \n /**\n * InventoryDocumentUpdateLinesAction entity class.\n */\n export class InventoryDocumentUpdateLinesActionClass implements Entities.InventoryDocumentUpdateLinesAction {\n public Quantity: number;\n public ActionTypeValue: number;\n public LocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ActionTypeValue = \n odataObject.ActionTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentUpdateLinesActionClass'] = InventoryDocumentUpdateLinesActionClass;\n \n /**\n * InventoryDocumentLineOperationResultSettings entity class.\n */\n export class InventoryDocumentLineOperationResultSettingsClass implements Entities.InventoryDocumentLineOperationResultSettings {\n public ModeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModeValue = \n odataObject.ModeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineOperationResultSettingsClass'] = InventoryDocumentLineOperationResultSettingsClass;\n \n /**\n * InventoryDocumentLineSearchCriteria entity class.\n */\n export class InventoryDocumentLineSearchCriteriaClass implements Entities.InventoryDocumentLineSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ProductId: number;\n public ItemIds: string[];\n public AvailableSerializedLineOnly: boolean;\n public DocumentLineIds: string[];\n public DocumentOperationTypeValue: number;\n public OperationTypeValue: number;\n public LocationId: string;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n this.ItemIds[i] = \n odataObject.ItemIds[i];\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.AvailableSerializedLineOnly = \n odataObject.AvailableSerializedLineOnly;\n \n this.DocumentLineIds = undefined;\n if (odataObject.DocumentLineIds) {\n this.DocumentLineIds = [];\n for (var i = 0; i < odataObject.DocumentLineIds.length; i++) {\n if (odataObject.DocumentLineIds[i] != null) {\n this.DocumentLineIds[i] = \n odataObject.DocumentLineIds[i];\n } else {\n this.DocumentLineIds[i] = undefined;\n }\n }\n }\n \n this.DocumentOperationTypeValue = \n odataObject.DocumentOperationTypeValue;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineSearchCriteriaClass'] = InventoryDocumentLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSearchCriteria entity class.\n */\n export class InventoryDocumentSearchCriteriaClass implements Entities.InventoryDocumentSearchCriteria {\n public DocumentId: string;\n public TransferFromWarehouse: string;\n public ShipFromWarehouse: string;\n public TransferToWarehouse: string;\n public Description: string;\n public DocumentTypeIds: string[];\n public DocumentStateValue: number;\n public DocumentTypeValues: number[];\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.TransferFromWarehouse = \n odataObject.TransferFromWarehouse;\n \n this.ShipFromWarehouse = \n odataObject.ShipFromWarehouse;\n \n this.TransferToWarehouse = \n odataObject.TransferToWarehouse;\n \n this.Description = \n odataObject.Description;\n \n this.DocumentTypeIds = undefined;\n if (odataObject.DocumentTypeIds) {\n this.DocumentTypeIds = [];\n for (var i = 0; i < odataObject.DocumentTypeIds.length; i++) {\n if (odataObject.DocumentTypeIds[i] != null) {\n this.DocumentTypeIds[i] = \n odataObject.DocumentTypeIds[i];\n } else {\n this.DocumentTypeIds[i] = undefined;\n }\n }\n }\n \n this.DocumentStateValue = \n odataObject.DocumentStateValue;\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSearchCriteriaClass'] = InventoryDocumentSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity class.\n */\n export class InventoryDocumentSerialNumberLineSearchCriteriaClass implements Entities.InventoryDocumentSerialNumberLineSearchCriteria {\n public DocumentLineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineSearchCriteriaClass'] = InventoryDocumentSerialNumberLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity class.\n */\n export class InventoryDocumentSerialNumberLineUpdateActionClass implements Entities.InventoryDocumentSerialNumberLineUpdateAction {\n public DocumentLineId: string;\n public LineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineUpdateActionClass'] = InventoryDocumentSerialNumberLineUpdateActionClass;\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity class.\n */\n export class InventoryDocumentSerialNumberLineResetActionClass implements Entities.InventoryDocumentSerialNumberLineResetAction {\n public DocumentLineId: string;\n public LineId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineResetActionClass'] = InventoryDocumentSerialNumberLineResetActionClass;\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity class.\n */\n export class InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass implements Entities.InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n public UpdatedLines: Entities.InventoryInboundOutboundDocumentLine[];\n public TotalLinesUpdated: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UpdatedLines = undefined;\n if (odataObject.UpdatedLines) {\n this.UpdatedLines = [];\n for (var i = 0; i < odataObject.UpdatedLines.length; i++) {\n if (odataObject.UpdatedLines[i] != null) {\n if (odataObject.UpdatedLines[i]['@odata.type'] != null) {\n var className: string = odataObject.UpdatedLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpdatedLines[i] = new entityDictionary[className](odataObject.UpdatedLines[i])\n }\n } else {\n this.UpdatedLines[i] = new InventoryInboundOutboundDocumentLineClass(odataObject.UpdatedLines[i]);\n }\n } else {\n this.UpdatedLines[i] = undefined;\n }\n }\n }\n \n this.TotalLinesUpdated = \n odataObject.TotalLinesUpdated;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass'] = InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass;\n \n /**\n * WarehouseLocationSearchCriteria entity class.\n */\n export class WarehouseLocationSearchCriteriaClass implements Entities.WarehouseLocationSearchCriteria {\n public WarehouseIds: string[];\n public IsLocationProfileRequired: boolean;\n public SearchText: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarehouseIds = undefined;\n if (odataObject.WarehouseIds) {\n this.WarehouseIds = [];\n for (var i = 0; i < odataObject.WarehouseIds.length; i++) {\n if (odataObject.WarehouseIds[i] != null) {\n this.WarehouseIds[i] = \n odataObject.WarehouseIds[i];\n } else {\n this.WarehouseIds[i] = undefined;\n }\n }\n }\n \n this.IsLocationProfileRequired = \n odataObject.IsLocationProfileRequired;\n \n this.SearchText = \n odataObject.SearchText;\n \n }\n }\n entityDictionary['WarehouseLocationSearchCriteriaClass'] = WarehouseLocationSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLine entity class.\n */\n export class InventoryDocumentSerialNumberLineClass implements Entities.InventoryDocumentSerialNumberLine {\n public WorkDocumentId: string;\n public WorkDocumentLineId: string;\n public SourceLineId: string;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public ModifiedDateTime: Date;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public SourceLine: Entities.InventoryDocumentSourceSerialNumberLine;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.WorkDocumentLineId = \n odataObject.WorkDocumentLineId;\n \n this.SourceLineId = \n odataObject.SourceLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n if (odataObject.SourceLine == null) {\n this.SourceLine = undefined;\n } else if (odataObject.SourceLine['@odata.type'] == null) {\n this.SourceLine = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SourceLine);\n } else {\n var className: string = odataObject.SourceLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceLine = new entityDictionary[className](odataObject.SourceLine)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineClass'] = InventoryDocumentSerialNumberLineClass;\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity class.\n */\n export class InventoryDocumentValidationCategoryResultsSummaryClass implements Entities.InventoryDocumentValidationCategoryResultsSummary {\n public CategoryName: string;\n public SeverityValue: number;\n public TotalValidationResultCount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.TotalValidationResultCount = \n odataObject.TotalValidationResultCount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationCategoryResultsSummaryClass'] = InventoryDocumentValidationCategoryResultsSummaryClass;\n \n /**\n * InventoryDocumentValidationResultSummary entity class.\n */\n export class InventoryDocumentValidationResultSummaryClass implements Entities.InventoryDocumentValidationResultSummary {\n public DocumentId: string;\n public DocumentVersion: number;\n public CategorySummaries: Entities.InventoryDocumentValidationCategoryResultsSummary[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.CategorySummaries = undefined;\n if (odataObject.CategorySummaries) {\n this.CategorySummaries = [];\n for (var i = 0; i < odataObject.CategorySummaries.length; i++) {\n if (odataObject.CategorySummaries[i] != null) {\n if (odataObject.CategorySummaries[i]['@odata.type'] != null) {\n var className: string = odataObject.CategorySummaries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategorySummaries[i] = new entityDictionary[className](odataObject.CategorySummaries[i])\n }\n } else {\n this.CategorySummaries[i] = new InventoryDocumentValidationCategoryResultsSummaryClass(odataObject.CategorySummaries[i]);\n }\n } else {\n this.CategorySummaries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSummaryClass'] = InventoryDocumentValidationResultSummaryClass;\n \n /**\n * InventoryDocumentValidationResultLine entity class.\n */\n export class InventoryDocumentValidationResultLineClass implements Entities.InventoryDocumentValidationResultLine {\n public DocumentValidationResultLineId: string;\n public CategoryName: string;\n public SeverityValue: number;\n public ErrorCode: number;\n public ErrorMessage: string;\n public DocumentId: string;\n public DocumentLongVersion: number;\n public DocumentLineId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentValidationResultLineId = \n odataObject.DocumentValidationResultLineId;\n \n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentLongVersion = \n (odataObject.DocumentLongVersion != null) ? parseInt(odataObject.DocumentLongVersion, 10) : undefined;\n \n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultLineClass'] = InventoryDocumentValidationResultLineClass;\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity class.\n */\n export class InventoryDocumentValidationResultSearchCriteriaClass implements Entities.InventoryDocumentValidationResultSearchCriteria {\n public DocumentId: string;\n public DocumentVersion: number;\n public SeverityValue: number;\n public Categories: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.Categories = undefined;\n if (odataObject.Categories) {\n this.Categories = [];\n for (var i = 0; i < odataObject.Categories.length; i++) {\n if (odataObject.Categories[i] != null) {\n this.Categories[i] = \n odataObject.Categories[i];\n } else {\n this.Categories[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSearchCriteriaClass'] = InventoryDocumentValidationResultSearchCriteriaClass;\n \n /**\n * ProductDimensionValueInventoryAvailability entity class.\n */\n export class ProductDimensionValueInventoryAvailabilityClass implements Entities.ProductDimensionValueInventoryAvailability {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ProductIds: number[];\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n }\n }\n entityDictionary['ProductDimensionValueInventoryAvailabilityClass'] = ProductDimensionValueInventoryAvailabilityClass;\n \n /**\n * ProductDimension entity class.\n */\n export class ProductDimensionClass implements Entities.ProductDimension {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionClass'] = ProductDimensionClass;\n \n /**\n * ProductDimensionValue entity class.\n */\n export class ProductDimensionValueClass implements Entities.ProductDimensionValue {\n public RecordId: number;\n public Value: string;\n public DimensionId: string;\n public ColorHexCode: string;\n public ImageUrl: string;\n public RefinerGroup: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n odataObject.Value;\n \n this.DimensionId = \n odataObject.DimensionId;\n \n this.ColorHexCode = \n odataObject.ColorHexCode;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.RefinerGroup = \n odataObject.RefinerGroup;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionValueClass'] = ProductDimensionValueClass;\n \n /**\n * ProductDimensionCombination entity class.\n */\n export class ProductDimensionCombinationClass implements Entities.ProductDimensionCombination {\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionCombinationClass'] = ProductDimensionCombinationClass;\n \n /**\n * SearchRefiner entity class.\n */\n export class SearchRefinerClass implements Entities.SearchRefiner {\n public RecordId: number;\n public KeyName: string;\n public DataTypeValue: number;\n public RefinerTypeValue: number;\n public DisplayTemplateValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.RefinerTypeValue = \n odataObject.RefinerTypeValue;\n \n this.DisplayTemplateValue = \n odataObject.DisplayTemplateValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerClass'] = SearchRefinerClass;\n \n /**\n * SearchRefinerValue entity class.\n */\n export class SearchRefinerValueClass implements Entities.SearchRefinerValue {\n public RefinerRecordId: number;\n public DataTypeValue: number;\n public LeftValueBoundString: string;\n public RightValueBoundString: string;\n public UnitText: string;\n public RowNumber: number;\n public Count: number;\n public LeftValueBoundLocalizedString: string;\n public RightValueBoundLocalizedString: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinerRecordId = \n (odataObject.RefinerRecordId != null) ? parseInt(odataObject.RefinerRecordId, 10) : undefined;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.LeftValueBoundString = \n odataObject.LeftValueBoundString;\n \n this.RightValueBoundString = \n odataObject.RightValueBoundString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.RowNumber = \n odataObject.RowNumber;\n \n this.Count = \n odataObject.Count;\n \n this.LeftValueBoundLocalizedString = \n odataObject.LeftValueBoundLocalizedString;\n \n this.RightValueBoundLocalizedString = \n odataObject.RightValueBoundLocalizedString;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerValueClass'] = SearchRefinerValueClass;\n \n /**\n * ProductRefiner entity class.\n */\n export class ProductRefinerClass\n extends SearchRefinerClass\n implements Entities.ProductRefiner {\n public SourceValue: number;\n public Values: Entities.ProductRefinerValue[];\n public IsDimension: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ProductRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefiner\";\n \n }\n }\n entityDictionary['ProductRefinerClass'] = ProductRefinerClass;\n \n /**\n * ProductRefinerValue entity class.\n */\n export class ProductRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ProductRefinerValue {\n public RefinerSourceValue: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefinerValue\";\n \n }\n }\n entityDictionary['ProductRefinerValueClass'] = ProductRefinerValueClass;\n \n /**\n * ClientBookRefiner entity class.\n */\n export class ClientBookRefinerClass\n extends SearchRefinerClass\n implements Entities.ClientBookRefiner {\n public SourceValue: number;\n public Values: Entities.ClientBookRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ClientBookRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefiner\";\n \n }\n }\n entityDictionary['ClientBookRefinerClass'] = ClientBookRefinerClass;\n \n /**\n * ClientBookRefinerValue entity class.\n */\n export class ClientBookRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ClientBookRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefinerValue\";\n \n }\n }\n entityDictionary['ClientBookRefinerValueClass'] = ClientBookRefinerValueClass;\n \n /**\n * ProductRelationType entity class.\n */\n export class ProductRelationTypeClass implements Entities.ProductRelationType {\n public Name: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRelationTypeClass'] = ProductRelationTypeClass;\n \n /**\n * ComponentInSlotRelation entity class.\n */\n export class ComponentInSlotRelationClass implements Entities.ComponentInSlotRelation {\n public ComponentId: number;\n public SlotId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentId = \n (odataObject.ComponentId != null) ? parseInt(odataObject.ComponentId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentInSlotRelationClass'] = ComponentInSlotRelationClass;\n \n /**\n * ProductRules entity class.\n */\n export class ProductRulesClass implements Entities.ProductRules {\n public HasLinkedProducts: boolean;\n public IsSerialized: boolean;\n public IsActiveInSalesProcess: boolean;\n public IsBlocked: boolean;\n public DateOfBlocking: Date;\n public DateToActivate: Date;\n public DateToBlock: Date;\n public DefaultUnitOfMeasure: string;\n public PriceKeyingRequirementValue: number;\n public QuantityKeyingRequirementValue: number;\n public MustKeyInComment: boolean;\n public CanQuantityBecomeNegative: boolean;\n public MustScaleItem: boolean;\n public CanPriceBeZero: boolean;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n this.IsSerialized = \n odataObject.IsSerialized;\n \n this.IsActiveInSalesProcess = \n odataObject.IsActiveInSalesProcess;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.DateOfBlocking = \n (odataObject.DateOfBlocking instanceof Date) ? odataObject.DateOfBlocking\n : (odataObject.DateOfBlocking != null) ? jsonLightReadStringPropertyValue(odataObject.DateOfBlocking, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToActivate = \n (odataObject.DateToActivate instanceof Date) ? odataObject.DateToActivate\n : (odataObject.DateToActivate != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBlock = \n (odataObject.DateToBlock instanceof Date) ? odataObject.DateToBlock\n : (odataObject.DateToBlock != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBlock, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.PriceKeyingRequirementValue = \n odataObject.PriceKeyingRequirementValue;\n \n this.QuantityKeyingRequirementValue = \n odataObject.QuantityKeyingRequirementValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.CanQuantityBecomeNegative = \n odataObject.CanQuantityBecomeNegative;\n \n this.MustScaleItem = \n odataObject.MustScaleItem;\n \n this.CanPriceBeZero = \n odataObject.CanPriceBeZero;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRulesClass'] = ProductRulesClass;\n \n /**\n * LocalizedString entity class.\n */\n export class LocalizedStringClass implements Entities.LocalizedString {\n public RecordId: number;\n public LanguageId: string;\n public TextId: number;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedStringClass'] = LocalizedStringClass;\n \n /**\n * LoyaltyCard entity class.\n */\n export class LoyaltyCardClass implements Entities.LoyaltyCard {\n public CardNumber: string;\n public CardTenderTypeValue: number;\n public CustomerAccount: string;\n public LoyaltyGroups: Entities.LoyaltyGroup[];\n public RewardPoints: Entities.LoyaltyRewardPoint[];\n public LoyaltyEnrollmentDate: Date;\n public LoyaltyEnrollmentDateLocal: Date;\n public LoyaltyEnrollmentTime: number;\n public LoyaltyEnrollmentTimeLocal: number;\n public OmOperatingUnitId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardNumber = \n odataObject.CardNumber;\n \n this.CardTenderTypeValue = \n odataObject.CardTenderTypeValue;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.LoyaltyGroups = undefined;\n if (odataObject.LoyaltyGroups) {\n this.LoyaltyGroups = [];\n for (var i = 0; i < odataObject.LoyaltyGroups.length; i++) {\n if (odataObject.LoyaltyGroups[i] != null) {\n if (odataObject.LoyaltyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyGroups[i] = new entityDictionary[className](odataObject.LoyaltyGroups[i])\n }\n } else {\n this.LoyaltyGroups[i] = new LoyaltyGroupClass(odataObject.LoyaltyGroups[i]);\n }\n } else {\n this.LoyaltyGroups[i] = undefined;\n }\n }\n }\n \n this.RewardPoints = undefined;\n if (odataObject.RewardPoints) {\n this.RewardPoints = [];\n for (var i = 0; i < odataObject.RewardPoints.length; i++) {\n if (odataObject.RewardPoints[i] != null) {\n if (odataObject.RewardPoints[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPoints[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPoints[i] = new entityDictionary[className](odataObject.RewardPoints[i])\n }\n } else {\n this.RewardPoints[i] = new LoyaltyRewardPointClass(odataObject.RewardPoints[i]);\n }\n } else {\n this.RewardPoints[i] = undefined;\n }\n }\n }\n \n this.LoyaltyEnrollmentDate = \n (odataObject.LoyaltyEnrollmentDate instanceof Date) ? odataObject.LoyaltyEnrollmentDate\n : (odataObject.LoyaltyEnrollmentDate != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentDateLocal = \n (odataObject.LoyaltyEnrollmentDateLocal instanceof Date) ? odataObject.LoyaltyEnrollmentDateLocal\n : (odataObject.LoyaltyEnrollmentDateLocal != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDateLocal, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentTime = \n odataObject.LoyaltyEnrollmentTime;\n \n this.LoyaltyEnrollmentTimeLocal = \n odataObject.LoyaltyEnrollmentTimeLocal;\n \n this.OmOperatingUnitId = \n (odataObject.OmOperatingUnitId != null) ? parseInt(odataObject.OmOperatingUnitId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardClass'] = LoyaltyCardClass;\n \n /**\n * ProductComponent entity class.\n */\n export class ProductComponentClass implements Entities.ProductComponent {\n public ProductId: number;\n public SlotId: number;\n public Product: Entities.SimpleProduct;\n public AdditionalChargeForComponent: number;\n public Behavior: Entities.ProductBehavior;\n public Description: string;\n public Dimensions: Entities.ProductDimension[];\n public ItemId: string;\n public Name: string;\n public ProductTypeValue: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n this.AdditionalChargeForComponent = \n (odataObject.AdditionalChargeForComponent != null) ? parseFloat(odataObject.AdditionalChargeForComponent) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Description = \n odataObject.Description;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComponentClass'] = ProductComponentClass;\n \n /**\n * SimpleProduct entity class.\n */\n export class SimpleProductClass implements Entities.SimpleProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public MasterProductId: number;\n public Components: Entities.ProductComponent[];\n public IsGiftCard: boolean;\n public ProductNumber: string;\n public Dimensions: Entities.ProductDimension[];\n public Behavior: Entities.ProductBehavior;\n public LinkedProducts: Entities.SimpleLinkedProduct[];\n public PrimaryImageUrl: string;\n public ItemTypeValue: number;\n public ItemServiceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.Components = undefined;\n if (odataObject.Components) {\n this.Components = [];\n for (var i = 0; i < odataObject.Components.length; i++) {\n if (odataObject.Components[i] != null) {\n if (odataObject.Components[i]['@odata.type'] != null) {\n var className: string = odataObject.Components[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Components[i] = new entityDictionary[className](odataObject.Components[i])\n }\n } else {\n this.Components[i] = new ProductComponentClass(odataObject.Components[i]);\n }\n } else {\n this.Components[i] = undefined;\n }\n }\n }\n \n this.IsGiftCard = \n odataObject.IsGiftCard;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new SimpleLinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.ItemTypeValue = \n odataObject.ItemTypeValue;\n \n this.ItemServiceTypeValue = \n odataObject.ItemServiceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleProductClass'] = SimpleProductClass;\n \n /**\n * ProductBehavior entity class.\n */\n export class ProductBehaviorClass implements Entities.ProductBehavior {\n public HasSerialNumber: boolean;\n public IsDiscountAllowed: boolean;\n public IsManualDiscountAllowed: boolean;\n public IsKitDisassemblyAllowed: boolean;\n public IsNegativeQuantityAllowed: boolean;\n public IsReturnAllowed: boolean;\n public IsSaleAtPhysicalStoresAllowed: boolean;\n public IsZeroSalePriceAllowed: boolean;\n public KeyInPriceValue: number;\n public KeyInQuantityValue: number;\n public MustKeyInComment: boolean;\n public MustPrintIndividualShelfLabelsForVariants: boolean;\n public MustPromptForSerialNumberOnlyAtSale: boolean;\n public MustWeighProductAtSale: boolean;\n public ValidFromDateForSaleAtPhysicalStores: Date;\n public ValidToDateForSaleAtPhysicalStores: Date;\n public IsStorageDimensionGroupLocationActive: boolean;\n public IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n public AllowNegativePhysicalInventory: boolean;\n public IsStockedProduct: boolean;\n public IsBlankSerialNumberAllowed: boolean;\n public IsBlankSerialNumberReceiptAllowed: boolean;\n public IsSerialNumberControlEnabled: boolean;\n public IsStorageDimensionGroupLocationBlankIssueAllowed: boolean;\n public IsSerialNumberRequired: boolean;\n public DefaultQuantity: number;\n public MaximumQuantity: number;\n public MinimumQuantity: number;\n public MultipleOfQuantity: number;\n public InventoryLocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsDiscountAllowed = \n odataObject.IsDiscountAllowed;\n \n this.IsManualDiscountAllowed = \n odataObject.IsManualDiscountAllowed;\n \n this.IsKitDisassemblyAllowed = \n odataObject.IsKitDisassemblyAllowed;\n \n this.IsNegativeQuantityAllowed = \n odataObject.IsNegativeQuantityAllowed;\n \n this.IsReturnAllowed = \n odataObject.IsReturnAllowed;\n \n this.IsSaleAtPhysicalStoresAllowed = \n odataObject.IsSaleAtPhysicalStoresAllowed;\n \n this.IsZeroSalePriceAllowed = \n odataObject.IsZeroSalePriceAllowed;\n \n this.KeyInPriceValue = \n odataObject.KeyInPriceValue;\n \n this.KeyInQuantityValue = \n odataObject.KeyInQuantityValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.MustPrintIndividualShelfLabelsForVariants = \n odataObject.MustPrintIndividualShelfLabelsForVariants;\n \n this.MustPromptForSerialNumberOnlyAtSale = \n odataObject.MustPromptForSerialNumberOnlyAtSale;\n \n this.MustWeighProductAtSale = \n odataObject.MustWeighProductAtSale;\n \n this.ValidFromDateForSaleAtPhysicalStores = \n (odataObject.ValidFromDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidFromDateForSaleAtPhysicalStores\n : (odataObject.ValidFromDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDateForSaleAtPhysicalStores = \n (odataObject.ValidToDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidToDateForSaleAtPhysicalStores\n : (odataObject.ValidToDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsStorageDimensionGroupLocationActive = \n odataObject.IsStorageDimensionGroupLocationActive;\n \n this.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled = \n odataObject.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled;\n \n this.AllowNegativePhysicalInventory = \n odataObject.AllowNegativePhysicalInventory;\n \n this.IsStockedProduct = \n odataObject.IsStockedProduct;\n \n this.IsBlankSerialNumberAllowed = \n odataObject.IsBlankSerialNumberAllowed;\n \n this.IsBlankSerialNumberReceiptAllowed = \n odataObject.IsBlankSerialNumberReceiptAllowed;\n \n this.IsSerialNumberControlEnabled = \n odataObject.IsSerialNumberControlEnabled;\n \n this.IsStorageDimensionGroupLocationBlankIssueAllowed = \n odataObject.IsStorageDimensionGroupLocationBlankIssueAllowed;\n \n this.IsSerialNumberRequired = \n odataObject.IsSerialNumberRequired;\n \n this.DefaultQuantity = \n (odataObject.DefaultQuantity != null) ? parseFloat(odataObject.DefaultQuantity) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumQuantity = \n (odataObject.MinimumQuantity != null) ? parseFloat(odataObject.MinimumQuantity) : undefined;\n \n this.MultipleOfQuantity = \n (odataObject.MultipleOfQuantity != null) ? parseFloat(odataObject.MultipleOfQuantity) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductBehaviorClass'] = ProductBehaviorClass;\n \n /**\n * SimpleLinkedProduct entity class.\n */\n export class SimpleLinkedProductClass implements Entities.SimpleLinkedProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public Quantity: number;\n public Behavior: Entities.ProductBehavior;\n public Dimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleLinkedProductClass'] = SimpleLinkedProductClass;\n \n /**\n * ProductSearchResult entity class.\n */\n export class ProductSearchResultClass implements Entities.ProductSearchResult {\n public ItemId: string;\n public Name: string;\n public Price: number;\n public PrimaryImageUrl: string;\n public RecordId: number;\n public ProductNumber: string;\n public TrackingId: string;\n public AverageRating: number;\n public TotalRatings: number;\n public Description: string;\n public BasePrice: number;\n public MinVariantPrice: number;\n public MaxVariantPrice: number;\n public DisplayOrder: number;\n public AttributeValues: Entities.AttributeValue[];\n public IsMasterProduct: boolean;\n public MasterProductId: number;\n public DefaultUnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.Description = \n odataObject.Description;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductSearchResultClass'] = ProductSearchResultClass;\n \n /**\n * SearchSuggestion entity class.\n */\n export class SearchSuggestionClass implements Entities.SearchSuggestion {\n public Value: string;\n public Value2: Entities.CommerceProperty;\n public Value3: Entities.CommerceProperty;\n public Value4: Entities.CommerceProperty;\n public SuggestionType: string;\n public Id: string;\n public ImageUrl: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n if (odataObject.Value2 == null) {\n this.Value2 = undefined;\n } else if (odataObject.Value2['@odata.type'] == null) {\n this.Value2 = new CommercePropertyClass(odataObject.Value2);\n } else {\n var className: string = odataObject.Value2['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value2 = new entityDictionary[className](odataObject.Value2)\n }\n }\n\n \n if (odataObject.Value3 == null) {\n this.Value3 = undefined;\n } else if (odataObject.Value3['@odata.type'] == null) {\n this.Value3 = new CommercePropertyClass(odataObject.Value3);\n } else {\n var className: string = odataObject.Value3['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value3 = new entityDictionary[className](odataObject.Value3)\n }\n }\n\n \n if (odataObject.Value4 == null) {\n this.Value4 = undefined;\n } else if (odataObject.Value4['@odata.type'] == null) {\n this.Value4 = new CommercePropertyClass(odataObject.Value4);\n } else {\n var className: string = odataObject.Value4['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value4 = new entityDictionary[className](odataObject.Value4)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.Id = \n odataObject.Id;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchSuggestionClass'] = SearchSuggestionClass;\n \n /**\n * LoyaltyPointRedemptionEstimate entity class.\n */\n export class LoyaltyPointRedemptionEstimateClass implements Entities.LoyaltyPointRedemptionEstimate {\n public MaxCurrencyValueOfLoyaltyPoints: number;\n public RewardPointToRedeemList: Entities.LoyaltyRewardPointLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MaxCurrencyValueOfLoyaltyPoints = \n (odataObject.MaxCurrencyValueOfLoyaltyPoints != null) ? parseFloat(odataObject.MaxCurrencyValueOfLoyaltyPoints) : undefined;\n \n this.RewardPointToRedeemList = undefined;\n if (odataObject.RewardPointToRedeemList) {\n this.RewardPointToRedeemList = [];\n for (var i = 0; i < odataObject.RewardPointToRedeemList.length; i++) {\n if (odataObject.RewardPointToRedeemList[i] != null) {\n if (odataObject.RewardPointToRedeemList[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPointToRedeemList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPointToRedeemList[i] = new entityDictionary[className](odataObject.RewardPointToRedeemList[i])\n }\n } else {\n this.RewardPointToRedeemList[i] = new LoyaltyRewardPointLineClass(odataObject.RewardPointToRedeemList[i]);\n }\n } else {\n this.RewardPointToRedeemList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyPointRedemptionEstimateClass'] = LoyaltyPointRedemptionEstimateClass;\n \n /**\n * LoyaltyGroup entity class.\n */\n export class LoyaltyGroupClass implements Entities.LoyaltyGroup {\n public Description: string;\n public Name: string;\n public RecordId: number;\n public LoyaltyTiers: Entities.LoyaltyTier[];\n public LoyaltyCardTiers: Entities.LoyaltyCardTier[];\n public HighestActiveLoyaltyCardTier: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LoyaltyTiers = undefined;\n if (odataObject.LoyaltyTiers) {\n this.LoyaltyTiers = [];\n for (var i = 0; i < odataObject.LoyaltyTiers.length; i++) {\n if (odataObject.LoyaltyTiers[i] != null) {\n if (odataObject.LoyaltyTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyTiers[i] = new entityDictionary[className](odataObject.LoyaltyTiers[i])\n }\n } else {\n this.LoyaltyTiers[i] = new LoyaltyTierClass(odataObject.LoyaltyTiers[i]);\n }\n } else {\n this.LoyaltyTiers[i] = undefined;\n }\n }\n }\n \n this.LoyaltyCardTiers = undefined;\n if (odataObject.LoyaltyCardTiers) {\n this.LoyaltyCardTiers = [];\n for (var i = 0; i < odataObject.LoyaltyCardTiers.length; i++) {\n if (odataObject.LoyaltyCardTiers[i] != null) {\n if (odataObject.LoyaltyCardTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyCardTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCardTiers[i] = new entityDictionary[className](odataObject.LoyaltyCardTiers[i])\n }\n } else {\n this.LoyaltyCardTiers[i] = new LoyaltyCardTierClass(odataObject.LoyaltyCardTiers[i]);\n }\n } else {\n this.LoyaltyCardTiers[i] = undefined;\n }\n }\n }\n \n this.HighestActiveLoyaltyCardTier = \n (odataObject.HighestActiveLoyaltyCardTier != null) ? parseInt(odataObject.HighestActiveLoyaltyCardTier, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyGroupClass'] = LoyaltyGroupClass;\n \n /**\n * LoyaltyTier entity class.\n */\n export class LoyaltyTierClass implements Entities.LoyaltyTier {\n public Description: string;\n public RecordId: number;\n public TierId: string;\n public TierLevel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.TierLevel = \n (odataObject.TierLevel != null) ? parseFloat(odataObject.TierLevel) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyTierClass'] = LoyaltyTierClass;\n \n /**\n * LoyaltyCardTier entity class.\n */\n export class LoyaltyCardTierClass implements Entities.LoyaltyCardTier {\n public RecordId: number;\n public TierId: string;\n public LoyaltyTierRecordId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardTierClass'] = LoyaltyCardTierClass;\n \n /**\n * LoyaltyRewardPoint entity class.\n */\n export class LoyaltyRewardPointClass implements Entities.LoyaltyRewardPoint {\n public IsRedeemable: boolean;\n public RewardPointCurrency: string;\n public RewardPointTypeValue: number;\n public Description: string;\n public RewardPointId: string;\n public IssuedPoints: number;\n public UsedPoints: number;\n public ExpiredPoints: number;\n public ActivePoints: number;\n public PointsExpiringSoon: number;\n public UnvestedPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsRedeemable = \n odataObject.IsRedeemable;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.RewardPointTypeValue = \n odataObject.RewardPointTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.IssuedPoints = \n (odataObject.IssuedPoints != null) ? parseFloat(odataObject.IssuedPoints) : undefined;\n \n this.UsedPoints = \n (odataObject.UsedPoints != null) ? parseFloat(odataObject.UsedPoints) : undefined;\n \n this.ExpiredPoints = \n (odataObject.ExpiredPoints != null) ? parseFloat(odataObject.ExpiredPoints) : undefined;\n \n this.ActivePoints = \n (odataObject.ActivePoints != null) ? parseFloat(odataObject.ActivePoints) : undefined;\n \n this.PointsExpiringSoon = \n (odataObject.PointsExpiringSoon != null) ? parseFloat(odataObject.PointsExpiringSoon) : undefined;\n \n this.UnvestedPoints = \n (odataObject.UnvestedPoints != null) ? parseFloat(odataObject.UnvestedPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointClass'] = LoyaltyRewardPointClass;\n \n /**\n * LoyaltyCardTransaction entity class.\n */\n export class LoyaltyCardTransactionClass implements Entities.LoyaltyCardTransaction {\n public ChannelName: string;\n public EntryDateTime: Date;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public RewardPointAmountQuantity: number;\n public TransactionId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelName = \n odataObject.ChannelName;\n \n this.EntryDateTime = \n (odataObject.EntryDateTime instanceof Date) ? odataObject.EntryDateTime\n : (odataObject.EntryDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n }\n }\n entityDictionary['LoyaltyCardTransactionClass'] = LoyaltyCardTransactionClass;\n \n /**\n * GiftCard entity class.\n */\n export class GiftCardClass implements Entities.GiftCard {\n public Id: string;\n public Balance: number;\n public BalanceCurrencyCode: string;\n public BalanceInCardCurrency: number;\n public CardCurrencyCode: string;\n public GiftCardIssueAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.BalanceCurrencyCode = \n odataObject.BalanceCurrencyCode;\n \n this.BalanceInCardCurrency = \n (odataObject.BalanceInCardCurrency != null) ? parseFloat(odataObject.BalanceInCardCurrency) : undefined;\n \n this.CardCurrencyCode = \n odataObject.CardCurrencyCode;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GiftCardClass'] = GiftCardClass;\n \n /**\n * OperationPermission entity class.\n */\n export class OperationPermissionClass implements Entities.OperationPermission {\n public OperationName: string;\n public OperationId: number;\n public CheckUserAccess: boolean;\n public AllowAnonymousAccess: boolean;\n public AllowCustomerAccess: boolean;\n public AllowApplicationAccess: boolean;\n public IsEnabledForTaskManagement: boolean;\n public Permissions: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OperationName = \n odataObject.OperationName;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.CheckUserAccess = \n odataObject.CheckUserAccess;\n \n this.AllowAnonymousAccess = \n odataObject.AllowAnonymousAccess;\n \n this.AllowCustomerAccess = \n odataObject.AllowCustomerAccess;\n \n this.AllowApplicationAccess = \n odataObject.AllowApplicationAccess;\n \n this.IsEnabledForTaskManagement = \n odataObject.IsEnabledForTaskManagement;\n \n this.Permissions = undefined;\n if (odataObject.Permissions) {\n this.Permissions = [];\n for (var i = 0; i < odataObject.Permissions.length; i++) {\n if (odataObject.Permissions[i] != null) {\n this.Permissions[i] = \n odataObject.Permissions[i];\n } else {\n this.Permissions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationPermissionClass'] = OperationPermissionClass;\n \n /**\n * StateProvinceInfo entity class.\n */\n export class StateProvinceInfoClass implements Entities.StateProvinceInfo {\n public CountryRegionId: string;\n public StateId: string;\n public StateName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.StateName = \n odataObject.StateName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StateProvinceInfoClass'] = StateProvinceInfoClass;\n \n /**\n * TransactionLog entity class.\n */\n export class TransactionLogClass\n extends TransactionClass\n implements Entities.TransactionLog {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TransactionLog\";\n \n }\n }\n entityDictionary['TransactionLogClass'] = TransactionLogClass;\n \n /**\n * KitTransaction entity class.\n */\n export class KitTransactionClass\n extends TransactionLogClass\n implements Entities.KitTransaction {\n public KitTransactionLines: Entities.KitTransactionLine[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.KitTransactionLines = undefined;\n if (odataObject.KitTransactionLines) {\n this.KitTransactionLines = [];\n for (var i = 0; i < odataObject.KitTransactionLines.length; i++) {\n if (odataObject.KitTransactionLines[i] != null) {\n if (odataObject.KitTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.KitTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitTransactionLines[i] = new entityDictionary[className](odataObject.KitTransactionLines[i])\n }\n } else {\n this.KitTransactionLines[i] = new KitTransactionLineClass(odataObject.KitTransactionLines[i]);\n }\n } else {\n this.KitTransactionLines[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.KitTransaction\";\n \n }\n }\n entityDictionary['KitTransactionClass'] = KitTransactionClass;\n \n /**\n * SalesTaxGroup entity class.\n */\n export class SalesTaxGroupClass implements Entities.SalesTaxGroup {\n public RecordId: number;\n public TaxGroup: string;\n public TaxGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.TaxGroupName = \n odataObject.TaxGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesTaxGroupClass'] = SalesTaxGroupClass;\n \n /**\n * ProductProperty entity class.\n */\n export class ProductPropertyClass implements Entities.ProductProperty {\n public ValueString: string;\n public UnitText: string;\n public PropertyTypeValue: number;\n public KeyName: string;\n public FriendlyName: string;\n public RecordId: number;\n public IsDimensionProperty: boolean;\n public AttributeValueId: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public GroupId: number;\n public GroupTypeValue: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public ProductId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValueString = \n odataObject.ValueString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.PropertyTypeValue = \n odataObject.PropertyTypeValue;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsDimensionProperty = \n odataObject.IsDimensionProperty;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupTypeValue = \n odataObject.GroupTypeValue;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductPropertyClass'] = ProductPropertyClass;\n \n /**\n * ProductCompositionInformation entity class.\n */\n export class ProductCompositionInformationClass implements Entities.ProductCompositionInformation {\n public VariantInformation: Entities.ProductVariantInformation;\n public KitDefinition: Entities.KitDefinition;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.VariantInformation == null) {\n this.VariantInformation = undefined;\n } else if (odataObject.VariantInformation['@odata.type'] == null) {\n this.VariantInformation = new ProductVariantInformationClass(odataObject.VariantInformation);\n } else {\n var className: string = odataObject.VariantInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.VariantInformation = new entityDictionary[className](odataObject.VariantInformation)\n }\n }\n\n \n if (odataObject.KitDefinition == null) {\n this.KitDefinition = undefined;\n } else if (odataObject.KitDefinition['@odata.type'] == null) {\n this.KitDefinition = new KitDefinitionClass(odataObject.KitDefinition);\n } else {\n var className: string = odataObject.KitDefinition['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitDefinition = new entityDictionary[className](odataObject.KitDefinition)\n }\n }\n\n \n }\n }\n entityDictionary['ProductCompositionInformationClass'] = ProductCompositionInformationClass;\n \n /**\n * ProductVariantInformation entity class.\n */\n export class ProductVariantInformationClass implements Entities.ProductVariantInformation {\n public ActiveVariantProductId: number;\n public Variants: Entities.ProductVariant[];\n public Dimensions: Entities.ProductDimensionSet[];\n public ItemId: string;\n public MasterProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActiveVariantProductId = \n (odataObject.ActiveVariantProductId != null) ? parseInt(odataObject.ActiveVariantProductId, 10) : undefined;\n \n this.Variants = undefined;\n if (odataObject.Variants) {\n this.Variants = [];\n for (var i = 0; i < odataObject.Variants.length; i++) {\n if (odataObject.Variants[i] != null) {\n if (odataObject.Variants[i]['@odata.type'] != null) {\n var className: string = odataObject.Variants[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Variants[i] = new entityDictionary[className](odataObject.Variants[i])\n }\n } else {\n this.Variants[i] = new ProductVariantClass(odataObject.Variants[i]);\n }\n } else {\n this.Variants[i] = undefined;\n }\n }\n }\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionSetClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductVariantInformationClass'] = ProductVariantInformationClass;\n \n /**\n * ProductChangeTrackingInformation entity class.\n */\n export class ProductChangeTrackingInformationClass implements Entities.ProductChangeTrackingInformation {\n public ModifiedDateTime: Date;\n public ChangeActionValue: number;\n public RequestedActionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChangeActionValue = \n odataObject.ChangeActionValue;\n \n this.RequestedActionValue = \n odataObject.RequestedActionValue;\n \n }\n }\n entityDictionary['ProductChangeTrackingInformationClass'] = ProductChangeTrackingInformationClass;\n \n /**\n * ProductDimensionSet entity class.\n */\n export class ProductDimensionSetClass implements Entities.ProductDimensionSet {\n public DimensionKey: string;\n public DimensionValues: Entities.ProductDimensionValueSet[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionKey = \n odataObject.DimensionKey;\n \n this.DimensionValues = undefined;\n if (odataObject.DimensionValues) {\n this.DimensionValues = [];\n for (var i = 0; i < odataObject.DimensionValues.length; i++) {\n if (odataObject.DimensionValues[i] != null) {\n if (odataObject.DimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.DimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValues[i] = new entityDictionary[className](odataObject.DimensionValues[i])\n }\n } else {\n this.DimensionValues[i] = new ProductDimensionValueSetClass(odataObject.DimensionValues[i]);\n }\n } else {\n this.DimensionValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionSetClass'] = ProductDimensionSetClass;\n \n /**\n * ProductDimensionValueSet entity class.\n */\n export class ProductDimensionValueSetClass implements Entities.ProductDimensionValueSet {\n public DimensionId: string;\n public DimensionValue: string;\n public VariantSet: number[];\n public Language: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public SwatchRefinerGroupValue: string;\n public SwatchRefinerGroupTranslation: string;\n public SwatchRefinerGroupImageUrl: string;\n public SwatchRefinerGroupColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionId = \n odataObject.DimensionId;\n \n this.DimensionValue = \n odataObject.DimensionValue;\n \n this.VariantSet = undefined;\n if (odataObject.VariantSet) {\n this.VariantSet = [];\n for (var i = 0; i < odataObject.VariantSet.length; i++) {\n if (odataObject.VariantSet[i] != null) {\n this.VariantSet[i] = \n parseInt(odataObject.VariantSet[i], 10);\n } else {\n this.VariantSet[i] = undefined;\n }\n }\n }\n \n this.Language = \n odataObject.Language;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.SwatchRefinerGroupValue = \n odataObject.SwatchRefinerGroupValue;\n \n this.SwatchRefinerGroupTranslation = \n odataObject.SwatchRefinerGroupTranslation;\n \n this.SwatchRefinerGroupImageUrl = \n odataObject.SwatchRefinerGroupImageUrl;\n \n this.SwatchRefinerGroupColorHexCode = \n odataObject.SwatchRefinerGroupColorHexCode;\n \n }\n }\n entityDictionary['ProductDimensionValueSetClass'] = ProductDimensionValueSetClass;\n \n /**\n * RichMediaLocations entity class.\n */\n export class RichMediaLocationsClass implements Entities.RichMediaLocations {\n public Items: Entities.RichMediaLocationsRichMediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Items = undefined;\n if (odataObject.Items) {\n this.Items = [];\n for (var i = 0; i < odataObject.Items.length; i++) {\n if (odataObject.Items[i] != null) {\n if (odataObject.Items[i]['@odata.type'] != null) {\n var className: string = odataObject.Items[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Items[i] = new entityDictionary[className](odataObject.Items[i])\n }\n } else {\n this.Items[i] = new RichMediaLocationsRichMediaLocationClass(odataObject.Items[i]);\n }\n } else {\n this.Items[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RichMediaLocationsClass'] = RichMediaLocationsClass;\n \n /**\n * RichMediaLocationsRichMediaLocation entity class.\n */\n export class RichMediaLocationsRichMediaLocationClass implements Entities.RichMediaLocationsRichMediaLocation {\n public Url: string;\n public AltText: string;\n public IsSelfHosted: boolean;\n public IsDefault: boolean;\n public Priority: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.Priority = \n odataObject.Priority;\n \n }\n }\n entityDictionary['RichMediaLocationsRichMediaLocationClass'] = RichMediaLocationsRichMediaLocationClass;\n \n /**\n * KitDefinition entity class.\n */\n export class KitDefinitionClass implements Entities.KitDefinition {\n public DisassembleAtRegister: boolean;\n public KitLineDefinitions: Entities.KitLineDefinition[];\n public KitLineProductToVariantMap: Entities.ComponentKitVariantSet[];\n public KitVariantToComponentMap: Entities.KitVariantContent[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DisassembleAtRegister = \n odataObject.DisassembleAtRegister;\n \n this.KitLineDefinitions = undefined;\n if (odataObject.KitLineDefinitions) {\n this.KitLineDefinitions = [];\n for (var i = 0; i < odataObject.KitLineDefinitions.length; i++) {\n if (odataObject.KitLineDefinitions[i] != null) {\n if (odataObject.KitLineDefinitions[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineDefinitions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineDefinitions[i] = new entityDictionary[className](odataObject.KitLineDefinitions[i])\n }\n } else {\n this.KitLineDefinitions[i] = new KitLineDefinitionClass(odataObject.KitLineDefinitions[i]);\n }\n } else {\n this.KitLineDefinitions[i] = undefined;\n }\n }\n }\n \n this.KitLineProductToVariantMap = undefined;\n if (odataObject.KitLineProductToVariantMap) {\n this.KitLineProductToVariantMap = [];\n for (var i = 0; i < odataObject.KitLineProductToVariantMap.length; i++) {\n if (odataObject.KitLineProductToVariantMap[i] != null) {\n if (odataObject.KitLineProductToVariantMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineProductToVariantMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineProductToVariantMap[i] = new entityDictionary[className](odataObject.KitLineProductToVariantMap[i])\n }\n } else {\n this.KitLineProductToVariantMap[i] = new ComponentKitVariantSetClass(odataObject.KitLineProductToVariantMap[i]);\n }\n } else {\n this.KitLineProductToVariantMap[i] = undefined;\n }\n }\n }\n \n this.KitVariantToComponentMap = undefined;\n if (odataObject.KitVariantToComponentMap) {\n this.KitVariantToComponentMap = [];\n for (var i = 0; i < odataObject.KitVariantToComponentMap.length; i++) {\n if (odataObject.KitVariantToComponentMap[i] != null) {\n if (odataObject.KitVariantToComponentMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitVariantToComponentMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitVariantToComponentMap[i] = new entityDictionary[className](odataObject.KitVariantToComponentMap[i])\n }\n } else {\n this.KitVariantToComponentMap[i] = new KitVariantContentClass(odataObject.KitVariantToComponentMap[i]);\n }\n } else {\n this.KitVariantToComponentMap[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitDefinitionClass'] = KitDefinitionClass;\n \n /**\n * ComponentKitVariantSet entity class.\n */\n export class ComponentKitVariantSetClass implements Entities.ComponentKitVariantSet {\n public KitLineProductId: number;\n public KitVariantIdList: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineProductId = \n (odataObject.KitLineProductId != null) ? parseInt(odataObject.KitLineProductId, 10) : undefined;\n \n this.KitVariantIdList = undefined;\n if (odataObject.KitVariantIdList) {\n this.KitVariantIdList = [];\n for (var i = 0; i < odataObject.KitVariantIdList.length; i++) {\n if (odataObject.KitVariantIdList[i] != null) {\n this.KitVariantIdList[i] = \n parseInt(odataObject.KitVariantIdList[i], 10);\n } else {\n this.KitVariantIdList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentKitVariantSetClass'] = ComponentKitVariantSetClass;\n \n /**\n * KitLineDefinition entity class.\n */\n export class KitLineDefinitionClass implements Entities.KitLineDefinition {\n public ComponentProductId: number;\n public KitLineIdentifier: number;\n public SubstituteProductIds: number[];\n public ComponentProperties: Entities.KitLineProductProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentProductId = \n (odataObject.ComponentProductId != null) ? parseInt(odataObject.ComponentProductId, 10) : undefined;\n \n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.SubstituteProductIds = undefined;\n if (odataObject.SubstituteProductIds) {\n this.SubstituteProductIds = [];\n for (var i = 0; i < odataObject.SubstituteProductIds.length; i++) {\n if (odataObject.SubstituteProductIds[i] != null) {\n this.SubstituteProductIds[i] = \n parseInt(odataObject.SubstituteProductIds[i], 10);\n } else {\n this.SubstituteProductIds[i] = undefined;\n }\n }\n }\n \n this.ComponentProperties = undefined;\n if (odataObject.ComponentProperties) {\n this.ComponentProperties = [];\n for (var i = 0; i < odataObject.ComponentProperties.length; i++) {\n if (odataObject.ComponentProperties[i] != null) {\n if (odataObject.ComponentProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ComponentProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ComponentProperties[i] = new entityDictionary[className](odataObject.ComponentProperties[i])\n }\n } else {\n this.ComponentProperties[i] = new KitLineProductPropertyClass(odataObject.ComponentProperties[i]);\n }\n } else {\n this.ComponentProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineDefinitionClass'] = KitLineDefinitionClass;\n \n /**\n * KitLineProductProperty entity class.\n */\n export class KitLineProductPropertyClass implements Entities.KitLineProductProperty {\n public KitLineIdentifier: number;\n public ProductId: number;\n public Unit: string;\n public Quantity: number;\n public Charge: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Charge = \n (odataObject.Charge != null) ? parseFloat(odataObject.Charge) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineProductPropertyClass'] = KitLineProductPropertyClass;\n \n /**\n * KitComponentKey entity class.\n */\n export class KitComponentKeyClass implements Entities.KitComponentKey {\n public KitLineIdentifier: number;\n public DistinctProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.DistinctProductId = \n (odataObject.DistinctProductId != null) ? parseInt(odataObject.DistinctProductId, 10) : undefined;\n \n }\n }\n entityDictionary['KitComponentKeyClass'] = KitComponentKeyClass;\n \n /**\n * KitVariantContent entity class.\n */\n export class KitVariantContentClass implements Entities.KitVariantContent {\n public KitVariantId: number;\n public KitComponentKeyList: Entities.KitComponentKey[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitVariantId = \n (odataObject.KitVariantId != null) ? parseInt(odataObject.KitVariantId, 10) : undefined;\n \n this.KitComponentKeyList = undefined;\n if (odataObject.KitComponentKeyList) {\n this.KitComponentKeyList = [];\n for (var i = 0; i < odataObject.KitComponentKeyList.length; i++) {\n if (odataObject.KitComponentKeyList[i] != null) {\n if (odataObject.KitComponentKeyList[i]['@odata.type'] != null) {\n var className: string = odataObject.KitComponentKeyList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitComponentKeyList[i] = new entityDictionary[className](odataObject.KitComponentKeyList[i])\n }\n } else {\n this.KitComponentKeyList[i] = new KitComponentKeyClass(odataObject.KitComponentKeyList[i]);\n }\n } else {\n this.KitComponentKeyList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitVariantContentClass'] = KitVariantContentClass;\n \n /**\n * ProductLookupClause entity class.\n */\n export class ProductLookupClauseClass implements Entities.ProductLookupClause {\n public ItemId: string;\n public InventDimensionId: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductLookupClauseClass'] = ProductLookupClauseClass;\n \n /**\n * ProductAssortmentInterval entity class.\n */\n export class ProductAssortmentIntervalClass implements Entities.ProductAssortmentInterval {\n public ProductId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAssortmentIntervalClass'] = ProductAssortmentIntervalClass;\n \n /**\n * OrgUnitLocation entity class.\n */\n export class OrgUnitLocationClass implements Entities.OrgUnitLocation {\n public Contacts: Entities.OrgUnitContact[];\n public ChannelId: number;\n public Latitude: number;\n public Longitude: number;\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n public Address: string;\n public Street: string;\n public StreetNumber: string;\n public City: string;\n public DistrictName: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public Zip: string;\n public County: string;\n public CountyName: string;\n public State: string;\n public StateName: string;\n public Country: string;\n public Distance: number;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public PostalAddressId: number;\n public OpenFrom: number;\n public OpenTo: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.Address = \n odataObject.Address;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.Zip = \n odataObject.Zip;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.Country = \n odataObject.Country;\n \n this.Distance = \n (odataObject.Distance != null) ? parseFloat(odataObject.Distance) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.PostalAddressId = \n (odataObject.PostalAddressId != null) ? parseInt(odataObject.PostalAddressId, 10) : undefined;\n \n this.OpenFrom = \n odataObject.OpenFrom;\n \n this.OpenTo = \n odataObject.OpenTo;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitLocationClass'] = OrgUnitLocationClass;\n \n /**\n * OrgUnitContact entity class.\n */\n export class OrgUnitContactClass implements Entities.OrgUnitContact {\n public ChannelId: number;\n public Locator: string;\n public LocatorExtension: string;\n public ContactTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Locator = \n odataObject.Locator;\n \n this.LocatorExtension = \n odataObject.LocatorExtension;\n \n this.ContactTypeValue = \n odataObject.ContactTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitContactClass'] = OrgUnitContactClass;\n \n /**\n * SalesLineDeliveryOption entity class.\n */\n export class SalesLineDeliveryOptionClass implements Entities.SalesLineDeliveryOption {\n public SalesLineId: string;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineId = \n odataObject.SalesLineId;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineDeliveryOptionClass'] = SalesLineDeliveryOptionClass;\n \n /**\n * DeliveryOption entity class.\n */\n export class DeliveryOptionClass implements Entities.DeliveryOption {\n public ChargeGroup: string;\n public Code: string;\n public Description: string;\n public RecordId: number;\n public DeliveryChargeLines: Entities.DeliveryChargeLine[];\n public TotalChargeAmount: number;\n public ShippingChargeAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.Code = \n odataObject.Code;\n \n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeliveryChargeLines = undefined;\n if (odataObject.DeliveryChargeLines) {\n this.DeliveryChargeLines = [];\n for (var i = 0; i < odataObject.DeliveryChargeLines.length; i++) {\n if (odataObject.DeliveryChargeLines[i] != null) {\n if (odataObject.DeliveryChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryChargeLines[i] = new entityDictionary[className](odataObject.DeliveryChargeLines[i])\n }\n } else {\n this.DeliveryChargeLines[i] = new DeliveryChargeLineClass(odataObject.DeliveryChargeLines[i]);\n }\n } else {\n this.DeliveryChargeLines[i] = undefined;\n }\n }\n }\n \n this.TotalChargeAmount = \n (odataObject.TotalChargeAmount != null) ? parseFloat(odataObject.TotalChargeAmount) : undefined;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryOptionClass'] = DeliveryOptionClass;\n \n /**\n * ChannelDeliveryOption entity class.\n */\n export class ChannelDeliveryOptionClass implements Entities.ChannelDeliveryOption {\n public ChannelId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionClass'] = ChannelDeliveryOptionClass;\n \n /**\n * ChannelIdentity entity class.\n */\n export class ChannelIdentityClass implements Entities.ChannelIdentity {\n public ChannelType: Entities.ExtensibleRetailChannelType;\n public Name: string;\n public OperatingUnitNumber: string;\n public DataAreaId: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ChannelType == null) {\n this.ChannelType = undefined;\n } else if (odataObject.ChannelType['@odata.type'] == null) {\n this.ChannelType = new ExtensibleRetailChannelTypeClass(odataObject.ChannelType);\n } else {\n var className: string = odataObject.ChannelType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelType = new entityDictionary[className](odataObject.ChannelType)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.OperatingUnitNumber = \n odataObject.OperatingUnitNumber;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelIdentityClass'] = ChannelIdentityClass;\n \n /**\n * ExtensibleRetailChannelType entity class.\n */\n export class ExtensibleRetailChannelTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleRetailChannelType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleRetailChannelType\";\n \n }\n }\n entityDictionary['ExtensibleRetailChannelTypeClass'] = ExtensibleRetailChannelTypeClass;\n \n /**\n * ChannelProfileProperty entity class.\n */\n export class ChannelProfilePropertyClass implements Entities.ChannelProfileProperty {\n public Key: number;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfilePropertyClass'] = ChannelProfilePropertyClass;\n \n /**\n * ChannelConfiguration entity class.\n */\n export class ChannelConfigurationClass implements Entities.ChannelConfiguration {\n public RecordId: number;\n public ChannelNaturalId: string;\n public MinimumDepositPercentage: number;\n public QuoteExpirationDays: number;\n public PickupDeliveryModeCode: string;\n public CarryoutDeliveryModeCode: string;\n public CancellationChargePercentage: number;\n public InventLocation: string;\n public InventLocationDataAreaId: string;\n public BingMapsApiKey: string;\n public BingMapsEnabled: boolean;\n public Currency: string;\n public CatalogDefaultImageTemplate: string;\n public CompanyCurrency: string;\n public PriceIncludesSalesTax: boolean;\n public CountryRegionId: string;\n public ChannelCountryRegionISOCode: string;\n public DefaultLanguageId: string;\n public TimeZoneInfoId: string;\n public EmailDeliveryModeCode: string;\n public GiftCardItemId: string;\n public EnableProductRecommendations: boolean;\n public RefundableShippingAmountWithoutApproval: number;\n public RefundShippingCharges: boolean;\n public ReceiptSettingsValue: number;\n public CustomerAttributeGroupId: number;\n public ClientBookAttributeGroupId: number;\n public NotificationRefreshInterval: number;\n public AllowExchangeOnReturnOrders: boolean;\n public FiscalRegistrationProcessId: string;\n public IsInventoryAutomaticValidationEnabled: boolean;\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public Properties: Entities.ChannelProperty[];\n public Languages: Entities.ChannelLanguage[];\n public UseAdvancedAutoCharges: boolean;\n public UseRTSForOnlineOrderCreation: boolean;\n public IsWarrantyAutoPromptEnabled: boolean;\n public EnableProductRatingsForRetailStores: boolean;\n public EnableFetchingPickingListsForPickingAndReceiving: boolean;\n public EnableReturnsForMultipleOrderInvoices: boolean;\n public EnableAnonymousOrderLookupByChannelReferenceId: boolean;\n public VoidSuspendedTransactionsOnCloseShift: number;\n public EnableOmniChannelPayments: boolean;\n public UseAdvancedCashManagement: boolean;\n public EnableFiscalRegistrationStorageBackup: boolean;\n public UseSalesReceiptAsDefaultReceiptTypeInJournal: boolean;\n public SalesOrderHeaderAttributeGroups: number[];\n public SalesOrderLinesAttributeGroups: number[];\n public CustomerAddressBooks: Entities.StoreAddressBook[];\n public EnableReturnPolicies: boolean;\n public InventAvailabilityCalculationMode: string;\n public IsPriceInclusiveTaxExemptCalculationEnabled: boolean;\n public EnableValidationOfSerialNumbersForInStoreReturns: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelNaturalId = \n odataObject.ChannelNaturalId;\n \n this.MinimumDepositPercentage = \n (odataObject.MinimumDepositPercentage != null) ? parseFloat(odataObject.MinimumDepositPercentage) : undefined;\n \n this.QuoteExpirationDays = \n odataObject.QuoteExpirationDays;\n \n this.PickupDeliveryModeCode = \n odataObject.PickupDeliveryModeCode;\n \n this.CarryoutDeliveryModeCode = \n odataObject.CarryoutDeliveryModeCode;\n \n this.CancellationChargePercentage = \n (odataObject.CancellationChargePercentage != null) ? parseFloat(odataObject.CancellationChargePercentage) : undefined;\n \n this.InventLocation = \n odataObject.InventLocation;\n \n this.InventLocationDataAreaId = \n odataObject.InventLocationDataAreaId;\n \n this.BingMapsApiKey = \n odataObject.BingMapsApiKey;\n \n this.BingMapsEnabled = \n odataObject.BingMapsEnabled;\n \n this.Currency = \n odataObject.Currency;\n \n this.CatalogDefaultImageTemplate = \n odataObject.CatalogDefaultImageTemplate;\n \n this.CompanyCurrency = \n odataObject.CompanyCurrency;\n \n this.PriceIncludesSalesTax = \n odataObject.PriceIncludesSalesTax;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ChannelCountryRegionISOCode = \n odataObject.ChannelCountryRegionISOCode;\n \n this.DefaultLanguageId = \n odataObject.DefaultLanguageId;\n \n this.TimeZoneInfoId = \n odataObject.TimeZoneInfoId;\n \n this.EmailDeliveryModeCode = \n odataObject.EmailDeliveryModeCode;\n \n this.GiftCardItemId = \n odataObject.GiftCardItemId;\n \n this.EnableProductRecommendations = \n odataObject.EnableProductRecommendations;\n \n this.RefundableShippingAmountWithoutApproval = \n (odataObject.RefundableShippingAmountWithoutApproval != null) ? parseFloat(odataObject.RefundableShippingAmountWithoutApproval) : undefined;\n \n this.RefundShippingCharges = \n odataObject.RefundShippingCharges;\n \n this.ReceiptSettingsValue = \n odataObject.ReceiptSettingsValue;\n \n this.CustomerAttributeGroupId = \n (odataObject.CustomerAttributeGroupId != null) ? parseInt(odataObject.CustomerAttributeGroupId, 10) : undefined;\n \n this.ClientBookAttributeGroupId = \n (odataObject.ClientBookAttributeGroupId != null) ? parseInt(odataObject.ClientBookAttributeGroupId, 10) : undefined;\n \n this.NotificationRefreshInterval = \n odataObject.NotificationRefreshInterval;\n \n this.AllowExchangeOnReturnOrders = \n odataObject.AllowExchangeOnReturnOrders;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IsInventoryAutomaticValidationEnabled = \n odataObject.IsInventoryAutomaticValidationEnabled;\n \n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.Properties = undefined;\n if (odataObject.Properties) {\n this.Properties = [];\n for (var i = 0; i < odataObject.Properties.length; i++) {\n if (odataObject.Properties[i] != null) {\n if (odataObject.Properties[i]['@odata.type'] != null) {\n var className: string = odataObject.Properties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Properties[i] = new entityDictionary[className](odataObject.Properties[i])\n }\n } else {\n this.Properties[i] = new ChannelPropertyClass(odataObject.Properties[i]);\n }\n } else {\n this.Properties[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n if (odataObject.Languages[i]['@odata.type'] != null) {\n var className: string = odataObject.Languages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Languages[i] = new entityDictionary[className](odataObject.Languages[i])\n }\n } else {\n this.Languages[i] = new ChannelLanguageClass(odataObject.Languages[i]);\n }\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n this.UseAdvancedAutoCharges = \n odataObject.UseAdvancedAutoCharges;\n \n this.UseRTSForOnlineOrderCreation = \n odataObject.UseRTSForOnlineOrderCreation;\n \n this.IsWarrantyAutoPromptEnabled = \n odataObject.IsWarrantyAutoPromptEnabled;\n \n this.EnableProductRatingsForRetailStores = \n odataObject.EnableProductRatingsForRetailStores;\n \n this.EnableFetchingPickingListsForPickingAndReceiving = \n odataObject.EnableFetchingPickingListsForPickingAndReceiving;\n \n this.EnableReturnsForMultipleOrderInvoices = \n odataObject.EnableReturnsForMultipleOrderInvoices;\n \n this.EnableAnonymousOrderLookupByChannelReferenceId = \n odataObject.EnableAnonymousOrderLookupByChannelReferenceId;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.EnableOmniChannelPayments = \n odataObject.EnableOmniChannelPayments;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.EnableFiscalRegistrationStorageBackup = \n odataObject.EnableFiscalRegistrationStorageBackup;\n \n this.UseSalesReceiptAsDefaultReceiptTypeInJournal = \n odataObject.UseSalesReceiptAsDefaultReceiptTypeInJournal;\n \n this.SalesOrderHeaderAttributeGroups = undefined;\n if (odataObject.SalesOrderHeaderAttributeGroups) {\n this.SalesOrderHeaderAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderHeaderAttributeGroups.length; i++) {\n if (odataObject.SalesOrderHeaderAttributeGroups[i] != null) {\n this.SalesOrderHeaderAttributeGroups[i] = \n parseInt(odataObject.SalesOrderHeaderAttributeGroups[i], 10);\n } else {\n this.SalesOrderHeaderAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.SalesOrderLinesAttributeGroups = undefined;\n if (odataObject.SalesOrderLinesAttributeGroups) {\n this.SalesOrderLinesAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderLinesAttributeGroups.length; i++) {\n if (odataObject.SalesOrderLinesAttributeGroups[i] != null) {\n this.SalesOrderLinesAttributeGroups[i] = \n parseInt(odataObject.SalesOrderLinesAttributeGroups[i], 10);\n } else {\n this.SalesOrderLinesAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.CustomerAddressBooks = undefined;\n if (odataObject.CustomerAddressBooks) {\n this.CustomerAddressBooks = [];\n for (var i = 0; i < odataObject.CustomerAddressBooks.length; i++) {\n if (odataObject.CustomerAddressBooks[i] != null) {\n if (odataObject.CustomerAddressBooks[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAddressBooks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAddressBooks[i] = new entityDictionary[className](odataObject.CustomerAddressBooks[i])\n }\n } else {\n this.CustomerAddressBooks[i] = new StoreAddressBookClass(odataObject.CustomerAddressBooks[i]);\n }\n } else {\n this.CustomerAddressBooks[i] = undefined;\n }\n }\n }\n \n this.EnableReturnPolicies = \n odataObject.EnableReturnPolicies;\n \n this.InventAvailabilityCalculationMode = \n odataObject.InventAvailabilityCalculationMode;\n \n this.IsPriceInclusiveTaxExemptCalculationEnabled = \n odataObject.IsPriceInclusiveTaxExemptCalculationEnabled;\n \n this.EnableValidationOfSerialNumbersForInStoreReturns = \n odataObject.EnableValidationOfSerialNumbersForInStoreReturns;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelConfigurationClass'] = ChannelConfigurationClass;\n \n /**\n * ChannelProperty entity class.\n */\n export class ChannelPropertyClass implements Entities.ChannelProperty {\n public Name: string;\n public Value: string;\n public Channel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPropertyClass'] = ChannelPropertyClass;\n \n /**\n * ChannelLanguage entity class.\n */\n export class ChannelLanguageClass implements Entities.ChannelLanguage {\n public LanguageId: string;\n public IsDefault: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelLanguageClass'] = ChannelLanguageClass;\n \n /**\n * ChannelDeliveryOptionConfiguration entity class.\n */\n export class ChannelDeliveryOptionConfigurationClass implements Entities.ChannelDeliveryOptionConfiguration {\n public PickupDeliveryModeCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PickupDeliveryModeCodes = undefined;\n if (odataObject.PickupDeliveryModeCodes) {\n this.PickupDeliveryModeCodes = [];\n for (var i = 0; i < odataObject.PickupDeliveryModeCodes.length; i++) {\n if (odataObject.PickupDeliveryModeCodes[i] != null) {\n this.PickupDeliveryModeCodes[i] = \n odataObject.PickupDeliveryModeCodes[i];\n } else {\n this.PickupDeliveryModeCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionConfigurationClass'] = ChannelDeliveryOptionConfigurationClass;\n \n /**\n * NonSalesTransaction entity class.\n */\n export class NonSalesTransactionClass\n extends TransactionClass\n implements Entities.NonSalesTransaction {\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Amount: number;\n public ForeignCurrency: string;\n public TenderTypeId: string;\n public OpenDrawer: boolean;\n public DenominationDetails: Entities.DenominationDetail[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.NonSalesTransaction\";\n \n }\n }\n entityDictionary['NonSalesTransactionClass'] = NonSalesTransactionClass;\n \n /**\n * DropAndDeclareTransaction entity class.\n */\n export class DropAndDeclareTransactionClass\n extends TransactionClass\n implements Entities.DropAndDeclareTransaction {\n public TenderDetails: Entities.TenderDetail[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public OpenDrawer: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderDetails = undefined;\n if (odataObject.TenderDetails) {\n this.TenderDetails = [];\n for (var i = 0; i < odataObject.TenderDetails.length; i++) {\n if (odataObject.TenderDetails[i] != null) {\n if (odataObject.TenderDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderDetails[i] = new entityDictionary[className](odataObject.TenderDetails[i])\n }\n } else {\n this.TenderDetails[i] = new TenderDetailClass(odataObject.TenderDetails[i]);\n }\n } else {\n this.TenderDetails[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DropAndDeclareTransaction\";\n \n }\n }\n entityDictionary['DropAndDeclareTransactionClass'] = DropAndDeclareTransactionClass;\n \n /**\n * ProductSearchCriteria entity class.\n */\n export class ProductSearchCriteriaClass implements Entities.ProductSearchCriteria {\n public Ids: number[];\n public CategoryIds: number[];\n public IncludeProductsFromDescendantCategories: boolean;\n public SearchCondition: string;\n public SkipVariantExpansion: boolean;\n public IncludeAttributes: boolean;\n public Barcodes: string[];\n public ItemIds: Entities.ProductLookupClause[];\n public Refinement: Entities.ProductRefinerValue[];\n public CustomerAccountNumber: string;\n public RecommendationListId: string;\n public DownloadProductData: boolean;\n public Context: Entities.ProjectionDomain;\n public Language: string;\n public IsOnline: boolean;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n this.Ids[i] = \n parseInt(odataObject.Ids[i], 10);\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.IncludeProductsFromDescendantCategories = \n odataObject.IncludeProductsFromDescendantCategories;\n \n this.SearchCondition = \n odataObject.SearchCondition;\n \n this.SkipVariantExpansion = \n odataObject.SkipVariantExpansion;\n \n this.IncludeAttributes = \n odataObject.IncludeAttributes;\n \n this.Barcodes = undefined;\n if (odataObject.Barcodes) {\n this.Barcodes = [];\n for (var i = 0; i < odataObject.Barcodes.length; i++) {\n if (odataObject.Barcodes[i] != null) {\n this.Barcodes[i] = \n odataObject.Barcodes[i];\n } else {\n this.Barcodes[i] = undefined;\n }\n }\n }\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n if (odataObject.ItemIds[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemIds[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemIds[i] = new entityDictionary[className](odataObject.ItemIds[i])\n }\n } else {\n this.ItemIds[i] = new ProductLookupClauseClass(odataObject.ItemIds[i]);\n }\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ProductRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.RecommendationListId = \n odataObject.RecommendationListId;\n \n this.DownloadProductData = \n odataObject.DownloadProductData;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.Language = \n odataObject.Language;\n \n this.IsOnline = \n odataObject.IsOnline;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ProductSearchCriteriaClass'] = ProductSearchCriteriaClass;\n \n /**\n * ChangedProductsSearchCriteria entity class.\n */\n export class ChangedProductsSearchCriteriaClass implements Entities.ChangedProductsSearchCriteria {\n public SynchronizationToken: string;\n public Context: Entities.ProjectionDomain;\n public AsListings: boolean;\n public Session: Entities.ReadChangedProductsSession;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SynchronizationToken = \n odataObject.SynchronizationToken;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.AsListings = \n odataObject.AsListings;\n \n if (odataObject.Session == null) {\n this.Session = undefined;\n } else if (odataObject.Session['@odata.type'] == null) {\n this.Session = new ReadChangedProductsSessionClass(odataObject.Session);\n } else {\n var className: string = odataObject.Session['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Session = new entityDictionary[className](odataObject.Session)\n }\n }\n\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ChangedProductsSearchCriteriaClass'] = ChangedProductsSearchCriteriaClass;\n \n /**\n * EmployeeActivitySearchCriteria entity class.\n */\n export class EmployeeActivitySearchCriteriaClass implements Entities.EmployeeActivitySearchCriteria {\n public FromDateTimeOffset: Date;\n public ToDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValues: number[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromDateTimeOffset = \n (odataObject.FromDateTimeOffset instanceof Date) ? odataObject.FromDateTimeOffset\n : (odataObject.FromDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.FromDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDateTimeOffset = \n (odataObject.ToDateTimeOffset instanceof Date) ? odataObject.ToDateTimeOffset\n : (odataObject.ToDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ToDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValues = undefined;\n if (odataObject.EmployeeActivityTypeValues) {\n this.EmployeeActivityTypeValues = [];\n for (var i = 0; i < odataObject.EmployeeActivityTypeValues.length; i++) {\n if (odataObject.EmployeeActivityTypeValues[i] != null) {\n this.EmployeeActivityTypeValues[i] = \n odataObject.EmployeeActivityTypeValues[i];\n } else {\n this.EmployeeActivityTypeValues[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['EmployeeActivitySearchCriteriaClass'] = EmployeeActivitySearchCriteriaClass;\n \n /**\n * SearchSuggestionCriteria entity class.\n */\n export class SearchSuggestionCriteriaClass implements Entities.SearchSuggestionCriteria {\n public ProductSearchCriteria: Entities.ProductSearchCriteria;\n public CustomerSearchCriteria: Entities.CustomerSearchCriteria;\n public SuggestionType: string;\n public HitPrefix: string;\n public HitSuffix: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ProductSearchCriteria == null) {\n this.ProductSearchCriteria = undefined;\n } else if (odataObject.ProductSearchCriteria['@odata.type'] == null) {\n this.ProductSearchCriteria = new ProductSearchCriteriaClass(odataObject.ProductSearchCriteria);\n } else {\n var className: string = odataObject.ProductSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSearchCriteria = new entityDictionary[className](odataObject.ProductSearchCriteria)\n }\n }\n\n \n if (odataObject.CustomerSearchCriteria == null) {\n this.CustomerSearchCriteria = undefined;\n } else if (odataObject.CustomerSearchCriteria['@odata.type'] == null) {\n this.CustomerSearchCriteria = new CustomerSearchCriteriaClass(odataObject.CustomerSearchCriteria);\n } else {\n var className: string = odataObject.CustomerSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerSearchCriteria = new entityDictionary[className](odataObject.CustomerSearchCriteria)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.HitPrefix = \n odataObject.HitPrefix;\n \n this.HitSuffix = \n odataObject.HitSuffix;\n \n }\n }\n entityDictionary['SearchSuggestionCriteriaClass'] = SearchSuggestionCriteriaClass;\n \n /**\n * CartLineDeliveryPreference entity class.\n */\n export class CartLineDeliveryPreferenceClass implements Entities.CartLineDeliveryPreference {\n public LineId: string;\n public DeliveryPreferenceTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.DeliveryPreferenceTypeValues = undefined;\n if (odataObject.DeliveryPreferenceTypeValues) {\n this.DeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.DeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.DeliveryPreferenceTypeValues[i] != null) {\n this.DeliveryPreferenceTypeValues[i] = \n odataObject.DeliveryPreferenceTypeValues[i];\n } else {\n this.DeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineDeliveryPreferenceClass'] = CartLineDeliveryPreferenceClass;\n \n /**\n * CartLinePromotion entity class.\n */\n export class CartLinePromotionClass implements Entities.CartLinePromotion {\n public LineId: string;\n public Promotions: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Promotions = undefined;\n if (odataObject.Promotions) {\n this.Promotions = [];\n for (var i = 0; i < odataObject.Promotions.length; i++) {\n if (odataObject.Promotions[i] != null) {\n this.Promotions[i] = \n odataObject.Promotions[i];\n } else {\n this.Promotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLinePromotionClass'] = CartLinePromotionClass;\n \n /**\n * ProductVariant entity class.\n */\n export class ProductVariantClass implements Entities.ProductVariant {\n public ItemId: string;\n public MasterProductId: number;\n public InventoryDimensionId: string;\n public AdjustedPrice: number;\n public BasePrice: number;\n public Price: number;\n public Color: string;\n public Style: string;\n public Size: string;\n public Configuration: string;\n public ColorId: string;\n public StyleId: string;\n public SizeId: string;\n public ConfigId: string;\n public VariantId: string;\n public Images: Entities.RichMediaLocations[];\n public DistinctProductVariantId: number;\n public ProductNumber: string;\n public PropertiesAsList: Entities.ProductPropertyTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.Color = \n odataObject.Color;\n \n this.Style = \n odataObject.Style;\n \n this.Size = \n odataObject.Size;\n \n this.Configuration = \n odataObject.Configuration;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new RichMediaLocationsClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DistinctProductVariantId = \n (odataObject.DistinctProductVariantId != null) ? parseInt(odataObject.DistinctProductVariantId, 10) : undefined;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.PropertiesAsList = undefined;\n if (odataObject.PropertiesAsList) {\n this.PropertiesAsList = [];\n for (var i = 0; i < odataObject.PropertiesAsList.length; i++) {\n if (odataObject.PropertiesAsList[i] != null) {\n if (odataObject.PropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.PropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PropertiesAsList[i] = new entityDictionary[className](odataObject.PropertiesAsList[i])\n }\n } else {\n this.PropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.PropertiesAsList[i]);\n }\n } else {\n this.PropertiesAsList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantClass'] = ProductVariantClass;\n \n /**\n * HardwareProfilePrinter entity class.\n */\n export class HardwareProfilePrinterClass implements Entities.HardwareProfilePrinter {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public DeviceDescription: string;\n public CharacterSet: number;\n public ReceiptProfileId: string;\n public BinaryConversion: boolean;\n public DocInsertRemovalTimeout: number;\n public Logo: string;\n public LogoAlignment: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.CharacterSet = \n odataObject.CharacterSet;\n \n this.ReceiptProfileId = \n odataObject.ReceiptProfileId;\n \n this.BinaryConversion = \n odataObject.BinaryConversion;\n \n this.DocInsertRemovalTimeout = \n odataObject.DocInsertRemovalTimeout;\n \n this.Logo = \n odataObject.Logo;\n \n this.LogoAlignment = \n odataObject.LogoAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfilePrinterClass'] = HardwareProfilePrinterClass;\n \n /**\n * HardwareProfileScanner entity class.\n */\n export class HardwareProfileScannerClass implements Entities.HardwareProfileScanner {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DecodeData: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DecodeData = \n odataObject.DecodeData;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileScannerClass'] = HardwareProfileScannerClass;\n \n /**\n * HardwareProfileCashDrawer entity class.\n */\n export class HardwareProfileCashDrawerClass implements Entities.HardwareProfileCashDrawer {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public IsSharedShiftDrawer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.IsSharedShiftDrawer = \n odataObject.IsSharedShiftDrawer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileCashDrawerClass'] = HardwareProfileCashDrawerClass;\n \n /**\n * TillLayout entity class.\n */\n export class TillLayoutClass implements Entities.TillLayout {\n public CashChangerLayoutXml: string;\n public CustomerLayoutId: string;\n public CustomerLayoutXml: string;\n public Height: number;\n public LayoutId: string;\n public LayoutTypeValue: number;\n public LayoutXml: string;\n public LayoutXmlPortrait: string;\n public Name: string;\n public ReceiptId: string;\n public ReceiptItemsLayoutXml: string;\n public ReceiptPaymentLayoutXml: string;\n public TotalId: string;\n public TotalsLayoutXml: string;\n public Width: number;\n public RecordId: number;\n public StartScreen: number;\n public ButtonGridZones: Entities.ButtonGridZone[];\n public ImageZones: Entities.ImageZone[];\n public ReportZones: Entities.ReportZone[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashChangerLayoutXml = \n odataObject.CashChangerLayoutXml;\n \n this.CustomerLayoutId = \n odataObject.CustomerLayoutId;\n \n this.CustomerLayoutXml = \n odataObject.CustomerLayoutXml;\n \n this.Height = \n odataObject.Height;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.LayoutTypeValue = \n odataObject.LayoutTypeValue;\n \n this.LayoutXml = \n odataObject.LayoutXml;\n \n this.LayoutXmlPortrait = \n odataObject.LayoutXmlPortrait;\n \n this.Name = \n odataObject.Name;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ReceiptItemsLayoutXml = \n odataObject.ReceiptItemsLayoutXml;\n \n this.ReceiptPaymentLayoutXml = \n odataObject.ReceiptPaymentLayoutXml;\n \n this.TotalId = \n odataObject.TotalId;\n \n this.TotalsLayoutXml = \n odataObject.TotalsLayoutXml;\n \n this.Width = \n odataObject.Width;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StartScreen = \n odataObject.StartScreen;\n \n this.ButtonGridZones = undefined;\n if (odataObject.ButtonGridZones) {\n this.ButtonGridZones = [];\n for (var i = 0; i < odataObject.ButtonGridZones.length; i++) {\n if (odataObject.ButtonGridZones[i] != null) {\n if (odataObject.ButtonGridZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ButtonGridZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ButtonGridZones[i] = new entityDictionary[className](odataObject.ButtonGridZones[i])\n }\n } else {\n this.ButtonGridZones[i] = new ButtonGridZoneClass(odataObject.ButtonGridZones[i]);\n }\n } else {\n this.ButtonGridZones[i] = undefined;\n }\n }\n }\n \n this.ImageZones = undefined;\n if (odataObject.ImageZones) {\n this.ImageZones = [];\n for (var i = 0; i < odataObject.ImageZones.length; i++) {\n if (odataObject.ImageZones[i] != null) {\n if (odataObject.ImageZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageZones[i] = new entityDictionary[className](odataObject.ImageZones[i])\n }\n } else {\n this.ImageZones[i] = new ImageZoneClass(odataObject.ImageZones[i]);\n }\n } else {\n this.ImageZones[i] = undefined;\n }\n }\n }\n \n this.ReportZones = undefined;\n if (odataObject.ReportZones) {\n this.ReportZones = [];\n for (var i = 0; i < odataObject.ReportZones.length; i++) {\n if (odataObject.ReportZones[i] != null) {\n if (odataObject.ReportZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ReportZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReportZones[i] = new entityDictionary[className](odataObject.ReportZones[i])\n }\n } else {\n this.ReportZones[i] = new ReportZoneClass(odataObject.ReportZones[i]);\n }\n } else {\n this.ReportZones[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TillLayoutClass'] = TillLayoutClass;\n \n /**\n * SalesInvoice entity class.\n */\n export class SalesInvoiceClass implements Entities.SalesInvoice {\n public RecordId: number;\n public ChannelId: number;\n public Id: string;\n public SalesId: string;\n public SalesType: string;\n public InvoiceDate: Date;\n public DueDate: Date;\n public CurrencyCode: string;\n public InvoiceSubtotal: number;\n public TotalCharges: number;\n public TotalTaxAmount: number;\n public TotalLineDiscount: number;\n public TotalDiscount: number;\n public Amount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public Account: string;\n public Name: string;\n public TotalManualDiscountPercentage: number;\n public TotalManualDiscountAmount: number;\n public SalesInvoiceLine: Entities.SalesInvoiceLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TenderLines: Entities.TenderLine[];\n public DeliveryModeChargeAmount: number;\n public OrderAccount: string;\n public OrderedByCustomerName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Id = \n odataObject.Id;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesType = \n odataObject.SalesType;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDate = \n (odataObject.DueDate instanceof Date) ? odataObject.DueDate\n : (odataObject.DueDate != null) ? jsonLightReadStringPropertyValue(odataObject.DueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceSubtotal = \n (odataObject.InvoiceSubtotal != null) ? parseFloat(odataObject.InvoiceSubtotal) : undefined;\n \n this.TotalCharges = \n (odataObject.TotalCharges != null) ? parseFloat(odataObject.TotalCharges) : undefined;\n \n this.TotalTaxAmount = \n (odataObject.TotalTaxAmount != null) ? parseFloat(odataObject.TotalTaxAmount) : undefined;\n \n this.TotalLineDiscount = \n (odataObject.TotalLineDiscount != null) ? parseFloat(odataObject.TotalLineDiscount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.Account = \n odataObject.Account;\n \n this.Name = \n odataObject.Name;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.SalesInvoiceLine = undefined;\n if (odataObject.SalesInvoiceLine) {\n this.SalesInvoiceLine = [];\n for (var i = 0; i < odataObject.SalesInvoiceLine.length; i++) {\n if (odataObject.SalesInvoiceLine[i] != null) {\n if (odataObject.SalesInvoiceLine[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesInvoiceLine[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesInvoiceLine[i] = new entityDictionary[className](odataObject.SalesInvoiceLine[i])\n }\n } else {\n this.SalesInvoiceLine[i] = new SalesInvoiceLineClass(odataObject.SalesInvoiceLine[i]);\n }\n } else {\n this.SalesInvoiceLine[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.OrderAccount = \n odataObject.OrderAccount;\n \n this.OrderedByCustomerName = \n odataObject.OrderedByCustomerName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceClass'] = SalesInvoiceClass;\n \n /**\n * OrderInvoice entity class.\n */\n export class OrderInvoiceClass implements Entities.OrderInvoice {\n public Id: string;\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public InvoiceDate: Date;\n public TotalAmount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public InvoiceTypeValue: number;\n public CurrencyCode: string;\n public InvoiceDueDate: Date;\n public InvoicePaidStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceDueDate = \n (odataObject.InvoiceDueDate instanceof Date) ? odataObject.InvoiceDueDate\n : (odataObject.InvoiceDueDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InvoicePaidStatusValue = \n odataObject.InvoicePaidStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderInvoiceClass'] = OrderInvoiceClass;\n \n /**\n * TaxOverride entity class.\n */\n export class TaxOverrideClass implements Entities.TaxOverride {\n public Code: string;\n public SourceTaxGroup: string;\n public DestinationTaxGroup: string;\n public SourceItemTaxGroup: string;\n public DestinationItemTaxGroup: string;\n public ChannelId: number;\n public AdditionalDescription: string;\n public Status: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.SourceTaxGroup = \n odataObject.SourceTaxGroup;\n \n this.DestinationTaxGroup = \n odataObject.DestinationTaxGroup;\n \n this.SourceItemTaxGroup = \n odataObject.SourceItemTaxGroup;\n \n this.DestinationItemTaxGroup = \n odataObject.DestinationItemTaxGroup;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.AdditionalDescription = \n odataObject.AdditionalDescription;\n \n this.Status = \n odataObject.Status;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxOverrideClass'] = TaxOverrideClass;\n \n /**\n * TenderType entity class.\n */\n export class TenderTypeClass implements Entities.TenderType {\n public Function: number;\n public TenderTypeId: string;\n public Name: string;\n public OperationId: number;\n public OperationName: string;\n public ChangeTenderTypeId: string;\n public AboveMinimumChangeAmount: number;\n public AboveMinimumChangeTenderTypeId: string;\n public OpenDrawer: boolean;\n public UseSignatureCaptureDevice: boolean;\n public MinimumSignatureCaptureAmount: number;\n public IsOvertenderAllowed: boolean;\n public IsUndertenderAllowed: boolean;\n public MaximumOvertenderAmount: number;\n public MaximumUndertenderAmount: number;\n public MaximumAmountPerTransaction: number;\n public MaximumAmountPerLine: number;\n public MinimumAmountPerTransaction: number;\n public MinimumAmountPerLine: number;\n public RoundOff: number;\n public CountingRequired: number;\n public TakenToBank: number;\n public TakenToSafe: number;\n public ConnectorId: string;\n public GiftCardItem: string;\n public GiftCardCashoutOutThreshold: number;\n public ChangeLineOnReceipt: string;\n public HideCardInputDetails: boolean;\n public CashDrawerLimitEnabled: boolean;\n public CashDrawerLimit: number;\n public RestrictReturnsWithoutReceipt: boolean;\n public HasTenderDiscount: boolean;\n public DefaultCardTypeId: string;\n public UseForDeclareStartAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Function = \n odataObject.Function;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Name = \n odataObject.Name;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.OperationName = \n odataObject.OperationName;\n \n this.ChangeTenderTypeId = \n odataObject.ChangeTenderTypeId;\n \n this.AboveMinimumChangeAmount = \n (odataObject.AboveMinimumChangeAmount != null) ? parseFloat(odataObject.AboveMinimumChangeAmount) : undefined;\n \n this.AboveMinimumChangeTenderTypeId = \n odataObject.AboveMinimumChangeTenderTypeId;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.UseSignatureCaptureDevice = \n odataObject.UseSignatureCaptureDevice;\n \n this.MinimumSignatureCaptureAmount = \n (odataObject.MinimumSignatureCaptureAmount != null) ? parseFloat(odataObject.MinimumSignatureCaptureAmount) : undefined;\n \n this.IsOvertenderAllowed = \n odataObject.IsOvertenderAllowed;\n \n this.IsUndertenderAllowed = \n odataObject.IsUndertenderAllowed;\n \n this.MaximumOvertenderAmount = \n (odataObject.MaximumOvertenderAmount != null) ? parseFloat(odataObject.MaximumOvertenderAmount) : undefined;\n \n this.MaximumUndertenderAmount = \n (odataObject.MaximumUndertenderAmount != null) ? parseFloat(odataObject.MaximumUndertenderAmount) : undefined;\n \n this.MaximumAmountPerTransaction = \n (odataObject.MaximumAmountPerTransaction != null) ? parseFloat(odataObject.MaximumAmountPerTransaction) : undefined;\n \n this.MaximumAmountPerLine = \n (odataObject.MaximumAmountPerLine != null) ? parseFloat(odataObject.MaximumAmountPerLine) : undefined;\n \n this.MinimumAmountPerTransaction = \n (odataObject.MinimumAmountPerTransaction != null) ? parseFloat(odataObject.MinimumAmountPerTransaction) : undefined;\n \n this.MinimumAmountPerLine = \n (odataObject.MinimumAmountPerLine != null) ? parseFloat(odataObject.MinimumAmountPerLine) : undefined;\n \n this.RoundOff = \n (odataObject.RoundOff != null) ? parseFloat(odataObject.RoundOff) : undefined;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.TakenToBank = \n odataObject.TakenToBank;\n \n this.TakenToSafe = \n odataObject.TakenToSafe;\n \n this.ConnectorId = \n odataObject.ConnectorId;\n \n this.GiftCardItem = \n odataObject.GiftCardItem;\n \n this.GiftCardCashoutOutThreshold = \n (odataObject.GiftCardCashoutOutThreshold != null) ? parseFloat(odataObject.GiftCardCashoutOutThreshold) : undefined;\n \n this.ChangeLineOnReceipt = \n odataObject.ChangeLineOnReceipt;\n \n this.HideCardInputDetails = \n odataObject.HideCardInputDetails;\n \n this.CashDrawerLimitEnabled = \n odataObject.CashDrawerLimitEnabled;\n \n this.CashDrawerLimit = \n (odataObject.CashDrawerLimit != null) ? parseFloat(odataObject.CashDrawerLimit) : undefined;\n \n this.RestrictReturnsWithoutReceipt = \n odataObject.RestrictReturnsWithoutReceipt;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.DefaultCardTypeId = \n odataObject.DefaultCardTypeId;\n \n this.UseForDeclareStartAmount = \n odataObject.UseForDeclareStartAmount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeClass'] = TenderTypeClass;\n \n /**\n * ReasonCode entity class.\n */\n export class ReasonCodeClass implements Entities.ReasonCode {\n public InputRequired: boolean;\n public LinkedReasonCodeId: string;\n public MaximumLength: number;\n public MaximumValue: number;\n public MinimumLength: number;\n public MinimumValue: number;\n public OncePerTransaction: boolean;\n public PrintInputNameOnReceipt: boolean;\n public PrintInputToReceipt: boolean;\n public PrintPromptToReceipt: boolean;\n public Prompt: string;\n public RandomFactor: number;\n public RetailUseReasonCode: boolean;\n public ReasonCodeId: string;\n public Description: string;\n public InputTypeValue: number;\n public ActivityValue: number;\n public IsMultiLineText: boolean;\n public ReasonSubCodes: Entities.ReasonSubCode[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InputRequired = \n odataObject.InputRequired;\n \n this.LinkedReasonCodeId = \n odataObject.LinkedReasonCodeId;\n \n this.MaximumLength = \n odataObject.MaximumLength;\n \n this.MaximumValue = \n (odataObject.MaximumValue != null) ? parseFloat(odataObject.MaximumValue) : undefined;\n \n this.MinimumLength = \n odataObject.MinimumLength;\n \n this.MinimumValue = \n (odataObject.MinimumValue != null) ? parseFloat(odataObject.MinimumValue) : undefined;\n \n this.OncePerTransaction = \n odataObject.OncePerTransaction;\n \n this.PrintInputNameOnReceipt = \n odataObject.PrintInputNameOnReceipt;\n \n this.PrintInputToReceipt = \n odataObject.PrintInputToReceipt;\n \n this.PrintPromptToReceipt = \n odataObject.PrintPromptToReceipt;\n \n this.Prompt = \n odataObject.Prompt;\n \n this.RandomFactor = \n (odataObject.RandomFactor != null) ? parseFloat(odataObject.RandomFactor) : undefined;\n \n this.RetailUseReasonCode = \n odataObject.RetailUseReasonCode;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ActivityValue = \n odataObject.ActivityValue;\n \n this.IsMultiLineText = \n odataObject.IsMultiLineText;\n \n this.ReasonSubCodes = undefined;\n if (odataObject.ReasonSubCodes) {\n this.ReasonSubCodes = [];\n for (var i = 0; i < odataObject.ReasonSubCodes.length; i++) {\n if (odataObject.ReasonSubCodes[i] != null) {\n if (odataObject.ReasonSubCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonSubCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonSubCodes[i] = new entityDictionary[className](odataObject.ReasonSubCodes[i])\n }\n } else {\n this.ReasonSubCodes[i] = new ReasonSubCodeClass(odataObject.ReasonSubCodes[i]);\n }\n } else {\n this.ReasonSubCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeClass'] = ReasonCodeClass;\n \n /**\n * ReportDataSet entity class.\n */\n export class ReportDataSetClass implements Entities.ReportDataSet {\n public ReportId: string;\n public Parameters: Entities.CommerceProperty[];\n public Locale: string;\n public Output: Entities.ReportRow[];\n public HasTotalRow: boolean;\n public HasDisclaimer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportId = \n odataObject.ReportId;\n \n this.Parameters = undefined;\n if (odataObject.Parameters) {\n this.Parameters = [];\n for (var i = 0; i < odataObject.Parameters.length; i++) {\n if (odataObject.Parameters[i] != null) {\n if (odataObject.Parameters[i]['@odata.type'] != null) {\n var className: string = odataObject.Parameters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Parameters[i] = new entityDictionary[className](odataObject.Parameters[i])\n }\n } else {\n this.Parameters[i] = new CommercePropertyClass(odataObject.Parameters[i]);\n }\n } else {\n this.Parameters[i] = undefined;\n }\n }\n }\n \n this.Locale = \n odataObject.Locale;\n \n this.Output = undefined;\n if (odataObject.Output) {\n this.Output = [];\n for (var i = 0; i < odataObject.Output.length; i++) {\n if (odataObject.Output[i] != null) {\n if (odataObject.Output[i]['@odata.type'] != null) {\n var className: string = odataObject.Output[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Output[i] = new entityDictionary[className](odataObject.Output[i])\n }\n } else {\n this.Output[i] = new ReportRowClass(odataObject.Output[i]);\n }\n } else {\n this.Output[i] = undefined;\n }\n }\n }\n \n this.HasTotalRow = \n odataObject.HasTotalRow;\n \n this.HasDisclaimer = \n odataObject.HasDisclaimer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportDataSetClass'] = ReportDataSetClass;\n \n /**\n * ZipCodeInfo entity class.\n */\n export class ZipCodeInfoClass implements Entities.ZipCodeInfo {\n public ZipPostalCode: string;\n public StreetName: string;\n public TimeZone: number;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public CityAlias: string;\n public District: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ZipPostalCode = \n odataObject.ZipPostalCode;\n \n this.StreetName = \n odataObject.StreetName;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.CityAlias = \n odataObject.CityAlias;\n \n this.District = \n odataObject.District;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ZipCodeInfoClass'] = ZipCodeInfoClass;\n \n /**\n * ReasonCodeRequirement entity class.\n */\n export class ReasonCodeRequirementClass implements Entities.ReasonCodeRequirement {\n public ReasonCodeId: string;\n public SourceId: string;\n public TableRefTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SourceId = \n odataObject.SourceId;\n \n this.TableRefTypeValue = \n odataObject.TableRefTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeRequirementClass'] = ReasonCodeRequirementClass;\n \n /**\n * QueryResultSettings entity class.\n */\n export class QueryResultSettingsClass implements Entities.QueryResultSettings {\n public Paging: Entities.PagingInfo;\n public Sorting: Entities.SortingInfo;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Paging == null) {\n this.Paging = undefined;\n } else if (odataObject.Paging['@odata.type'] == null) {\n this.Paging = new PagingInfoClass(odataObject.Paging);\n } else {\n var className: string = odataObject.Paging['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Paging = new entityDictionary[className](odataObject.Paging)\n }\n }\n\n \n if (odataObject.Sorting == null) {\n this.Sorting = undefined;\n } else if (odataObject.Sorting['@odata.type'] == null) {\n this.Sorting = new SortingInfoClass(odataObject.Sorting);\n } else {\n var className: string = odataObject.Sorting['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Sorting = new entityDictionary[className](odataObject.Sorting)\n }\n }\n\n \n }\n }\n entityDictionary['QueryResultSettingsClass'] = QueryResultSettingsClass;\n \n /**\n * SortingInfo entity class.\n */\n export class SortingInfoClass implements Entities.SortingInfo {\n public Columns: Entities.SortColumn[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Columns = undefined;\n if (odataObject.Columns) {\n this.Columns = [];\n for (var i = 0; i < odataObject.Columns.length; i++) {\n if (odataObject.Columns[i] != null) {\n if (odataObject.Columns[i]['@odata.type'] != null) {\n var className: string = odataObject.Columns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Columns[i] = new entityDictionary[className](odataObject.Columns[i])\n }\n } else {\n this.Columns[i] = new SortColumnClass(odataObject.Columns[i]);\n }\n } else {\n this.Columns[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SortingInfoClass'] = SortingInfoClass;\n \n /**\n * SortColumn entity class.\n */\n export class SortColumnClass implements Entities.SortColumn {\n public ColumnName: string;\n public IsDescending: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ColumnName = \n odataObject.ColumnName;\n \n this.IsDescending = \n odataObject.IsDescending;\n \n }\n }\n entityDictionary['SortColumnClass'] = SortColumnClass;\n \n /**\n * PagingInfo entity class.\n */\n export class PagingInfoClass implements Entities.PagingInfo {\n public NextPageToken: string;\n public Top: number;\n public Skip: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.NextPageToken = \n odataObject.NextPageToken;\n \n this.Top = \n (odataObject.Top != null) ? parseInt(odataObject.Top, 10) : undefined;\n \n this.Skip = \n (odataObject.Skip != null) ? parseInt(odataObject.Skip, 10) : undefined;\n \n }\n }\n entityDictionary['PagingInfoClass'] = PagingInfoClass;\n \n /**\n * ProductPropertyTranslation entity class.\n */\n export class ProductPropertyTranslationClass implements Entities.ProductPropertyTranslation {\n public TranslationLanguage: string;\n public TranslatedProperties: Entities.ProductProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TranslationLanguage = \n odataObject.TranslationLanguage;\n \n this.TranslatedProperties = undefined;\n if (odataObject.TranslatedProperties) {\n this.TranslatedProperties = [];\n for (var i = 0; i < odataObject.TranslatedProperties.length; i++) {\n if (odataObject.TranslatedProperties[i] != null) {\n if (odataObject.TranslatedProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslatedProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslatedProperties[i] = new entityDictionary[className](odataObject.TranslatedProperties[i])\n }\n } else {\n this.TranslatedProperties[i] = new ProductPropertyClass(odataObject.TranslatedProperties[i]);\n }\n } else {\n this.TranslatedProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPropertyTranslationClass'] = ProductPropertyTranslationClass;\n \n /**\n * NumberSequenceSeedData entity class.\n */\n export class NumberSequenceSeedDataClass implements Entities.NumberSequenceSeedData {\n public DataTypeValue: number;\n public DataValue: number;\n public LastTransactionDataValue: number;\n public LastTransactionCreatedDateTime: Date;\n public LastTransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.DataValue = \n (odataObject.DataValue != null) ? parseInt(odataObject.DataValue, 10) : undefined;\n \n this.LastTransactionDataValue = \n (odataObject.LastTransactionDataValue != null) ? parseInt(odataObject.LastTransactionDataValue, 10) : undefined;\n \n this.LastTransactionCreatedDateTime = \n (odataObject.LastTransactionCreatedDateTime instanceof Date) ? odataObject.LastTransactionCreatedDateTime\n : (odataObject.LastTransactionCreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastTransactionCreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastTransactionId = \n odataObject.LastTransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NumberSequenceSeedDataClass'] = NumberSequenceSeedDataClass;\n \n /**\n * ReceiptNumberResetInfo entity class.\n */\n export class ReceiptNumberResetInfoClass implements Entities.ReceiptNumberResetInfo {\n public ValidFrom: Date;\n public ValidTo: Date;\n public ResetDate: Date;\n public TypeValue: number;\n public Enabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResetDate = \n (odataObject.ResetDate instanceof Date) ? odataObject.ResetDate\n : (odataObject.ResetDate != null) ? jsonLightReadStringPropertyValue(odataObject.ResetDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Enabled = \n odataObject.Enabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptNumberResetInfoClass'] = ReceiptNumberResetInfoClass;\n \n /**\n * DeviceActivationResult entity class.\n */\n export class DeviceActivationResultClass implements Entities.DeviceActivationResult {\n public Device: Entities.Device;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Device == null) {\n this.Device = undefined;\n } else if (odataObject.Device['@odata.type'] == null) {\n this.Device = new DeviceClass(odataObject.Device);\n } else {\n var className: string = odataObject.Device['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Device = new entityDictionary[className](odataObject.Device)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceActivationResultClass'] = DeviceActivationResultClass;\n \n /**\n * PurchaseHistory entity class.\n */\n export class PurchaseHistoryClass implements Entities.PurchaseHistory {\n public DatePurchased: Date;\n public ImageUrl: string;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public ReceiptId: string;\n public SalesId: string;\n public ChannelId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DatePurchased = \n (odataObject.DatePurchased instanceof Date) ? odataObject.DatePurchased\n : (odataObject.DatePurchased != null) ? jsonLightReadStringPropertyValue(odataObject.DatePurchased, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseHistoryClass'] = PurchaseHistoryClass;\n \n /**\n * PurchaseHistorySearchCriteria entity class.\n */\n export class PurchaseHistorySearchCriteriaClass implements Entities.PurchaseHistorySearchCriteria {\n public StartDate: Date;\n public EndDate: Date;\n public CustomerAccountNumber: string;\n public ItemId: string;\n public ProductNameFilter: string;\n public ReceiptId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductNameFilter = \n odataObject.ProductNameFilter;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n }\n }\n entityDictionary['PurchaseHistorySearchCriteriaClass'] = PurchaseHistorySearchCriteriaClass;\n \n /**\n * Node entity class.\n */\n export class NodeClass implements Entities.Node {\n public ParentScopeId: string;\n public ParentSequence: number;\n public Id: string;\n public Sequence: number;\n public Description: string;\n public ScreenshotUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ParentScopeId = \n odataObject.ParentScopeId;\n \n this.ParentSequence = \n odataObject.ParentSequence;\n \n this.Id = \n odataObject.Id;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Description = \n odataObject.Description;\n \n this.ScreenshotUri = \n odataObject.ScreenshotUri;\n \n }\n }\n entityDictionary['NodeClass'] = NodeClass;\n \n /**\n * Line entity class.\n */\n export class LineClass implements Entities.Line {\n public ChildrenIds: number[];\n public Id: number;\n public Name: string;\n public Description: string;\n public IsLinked: boolean;\n public LineMetadataId: number;\n public Artifacts: Entities.ArtifactSummary[];\n public MetadataPropertyValues: Entities.MetadataPropertyValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChildrenIds = undefined;\n if (odataObject.ChildrenIds) {\n this.ChildrenIds = [];\n for (var i = 0; i < odataObject.ChildrenIds.length; i++) {\n if (odataObject.ChildrenIds[i] != null) {\n this.ChildrenIds[i] = \n parseInt(odataObject.ChildrenIds[i], 10);\n } else {\n this.ChildrenIds[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.IsLinked = \n odataObject.IsLinked;\n \n this.LineMetadataId = \n (odataObject.LineMetadataId != null) ? parseInt(odataObject.LineMetadataId, 10) : undefined;\n \n this.Artifacts = undefined;\n if (odataObject.Artifacts) {\n this.Artifacts = [];\n for (var i = 0; i < odataObject.Artifacts.length; i++) {\n if (odataObject.Artifacts[i] != null) {\n if (odataObject.Artifacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Artifacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Artifacts[i] = new entityDictionary[className](odataObject.Artifacts[i])\n }\n } else {\n this.Artifacts[i] = new ArtifactSummaryClass(odataObject.Artifacts[i]);\n }\n } else {\n this.Artifacts[i] = undefined;\n }\n }\n }\n \n this.MetadataPropertyValues = undefined;\n if (odataObject.MetadataPropertyValues) {\n this.MetadataPropertyValues = [];\n for (var i = 0; i < odataObject.MetadataPropertyValues.length; i++) {\n if (odataObject.MetadataPropertyValues[i] != null) {\n if (odataObject.MetadataPropertyValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MetadataPropertyValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataPropertyValues[i] = new entityDictionary[className](odataObject.MetadataPropertyValues[i])\n }\n } else {\n this.MetadataPropertyValues[i] = new MetadataPropertyValueClass(odataObject.MetadataPropertyValues[i]);\n }\n } else {\n this.MetadataPropertyValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineClass'] = LineClass;\n \n /**\n * MetadataText entity class.\n */\n export class MetadataTextClass implements Entities.MetadataText {\n public Id: string;\n public Text: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Text = \n odataObject.Text;\n \n }\n }\n entityDictionary['MetadataTextClass'] = MetadataTextClass;\n \n /**\n * MetadataHypertextLink entity class.\n */\n export class MetadataHypertextLinkClass implements Entities.MetadataHypertextLink {\n public Id: string;\n public DisplayName: string;\n public Url: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.Url = \n odataObject.Url;\n \n }\n }\n entityDictionary['MetadataHypertextLinkClass'] = MetadataHypertextLinkClass;\n \n /**\n * Scope entity class.\n */\n export class ScopeClass\n extends NodeClass\n implements Entities.Scope {\n public Name: string;\n public ScopeTypeValue: number;\n public Children: Entities.Node[];\n public ActiveCount: number;\n public IsForm: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ScopeTypeValue = \n odataObject.ScopeTypeValue;\n \n this.Children = undefined;\n if (odataObject.Children) {\n this.Children = [];\n for (var i = 0; i < odataObject.Children.length; i++) {\n if (odataObject.Children[i] != null) {\n if (odataObject.Children[i]['@odata.type'] != null) {\n var className: string = odataObject.Children[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Children[i] = new entityDictionary[className](odataObject.Children[i])\n }\n } else {\n this.Children[i] = new NodeClass(odataObject.Children[i]);\n }\n } else {\n this.Children[i] = undefined;\n }\n }\n }\n \n this.ActiveCount = \n odataObject.ActiveCount;\n \n this.IsForm = \n odataObject.IsForm;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Scope\";\n \n }\n }\n entityDictionary['ScopeClass'] = ScopeClass;\n \n /**\n * Framework entity class.\n */\n export class FrameworkClass implements Entities.Framework {\n public Lines: Entities.Line[];\n public Id: number;\n public Name: string;\n public Access: string;\n public Hierarchy: Entities.Line[];\n public Publisher: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Access = \n odataObject.Access;\n \n this.Hierarchy = undefined;\n if (odataObject.Hierarchy) {\n this.Hierarchy = [];\n for (var i = 0; i < odataObject.Hierarchy.length; i++) {\n if (odataObject.Hierarchy[i] != null) {\n if (odataObject.Hierarchy[i]['@odata.type'] != null) {\n var className: string = odataObject.Hierarchy[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Hierarchy[i] = new entityDictionary[className](odataObject.Hierarchy[i])\n }\n } else {\n this.Hierarchy[i] = new LineClass(odataObject.Hierarchy[i]);\n }\n } else {\n this.Hierarchy[i] = undefined;\n }\n }\n }\n \n this.Publisher = \n odataObject.Publisher;\n \n }\n }\n entityDictionary['FrameworkClass'] = FrameworkClass;\n \n /**\n * UserAction entity class.\n */\n export class UserActionClass\n extends NodeClass\n implements Entities.UserAction {\n public SystemGenerated: boolean;\n public GlobalId: string;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SystemGenerated = \n odataObject.SystemGenerated;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAction\";\n \n }\n }\n entityDictionary['UserActionClass'] = UserActionClass;\n \n /**\n * TaskUserAction entity class.\n */\n export class TaskUserActionClass\n extends UserActionClass\n implements Entities.TaskUserAction {\n public UserActionTypeValue: number;\n public Name: string;\n public Comment: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.UserActionTypeValue = \n odataObject.UserActionTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this.TaskId = \n odataObject.TaskId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskUserAction\";\n \n }\n }\n entityDictionary['TaskUserActionClass'] = TaskUserActionClass;\n \n /**\n * FormUserAction entity class.\n */\n export class FormUserActionClass\n extends UserActionClass\n implements Entities.FormUserAction {\n public FormId: string;\n public ControlLabel: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormUserAction\";\n \n }\n }\n entityDictionary['FormUserActionClass'] = FormUserActionClass;\n \n /**\n * CommandUserAction entity class.\n */\n export class CommandUserActionClass\n extends FormUserActionClass\n implements Entities.CommandUserAction {\n public ReturnTypeValue: number;\n public CommandName: string;\n public ControlName: string;\n public ControlType: string;\n public Arguments: Entities.CommandArgument[];\n public LabelId: string;\n public ReturnValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReturnTypeValue = \n odataObject.ReturnTypeValue;\n \n this.CommandName = \n odataObject.CommandName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.Arguments = undefined;\n if (odataObject.Arguments) {\n this.Arguments = [];\n for (var i = 0; i < odataObject.Arguments.length; i++) {\n if (odataObject.Arguments[i] != null) {\n if (odataObject.Arguments[i]['@odata.type'] != null) {\n var className: string = odataObject.Arguments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Arguments[i] = new entityDictionary[className](odataObject.Arguments[i])\n }\n } else {\n this.Arguments[i] = new CommandArgumentClass(odataObject.Arguments[i]);\n }\n } else {\n this.Arguments[i] = undefined;\n }\n }\n }\n \n this.LabelId = \n odataObject.LabelId;\n \n this.ReturnValue = \n odataObject.ReturnValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommandUserAction\";\n \n }\n }\n entityDictionary['CommandUserActionClass'] = CommandUserActionClass;\n \n /**\n * Annotation entity class.\n */\n export class AnnotationClass implements Entities.Annotation {\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['AnnotationClass'] = AnnotationClass;\n \n /**\n * Recording entity class.\n */\n export class RecordingClass implements Entities.Recording {\n public Scopes: Entities.Scope[];\n public FormContextEntries: Entities.FormContextDictionaryEntry[];\n public RootScope: Entities.Scope;\n public Name: string;\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Scopes = undefined;\n if (odataObject.Scopes) {\n this.Scopes = [];\n for (var i = 0; i < odataObject.Scopes.length; i++) {\n if (odataObject.Scopes[i] != null) {\n if (odataObject.Scopes[i]['@odata.type'] != null) {\n var className: string = odataObject.Scopes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scopes[i] = new entityDictionary[className](odataObject.Scopes[i])\n }\n } else {\n this.Scopes[i] = new ScopeClass(odataObject.Scopes[i]);\n }\n } else {\n this.Scopes[i] = undefined;\n }\n }\n }\n \n this.FormContextEntries = undefined;\n if (odataObject.FormContextEntries) {\n this.FormContextEntries = [];\n for (var i = 0; i < odataObject.FormContextEntries.length; i++) {\n if (odataObject.FormContextEntries[i] != null) {\n if (odataObject.FormContextEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.FormContextEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContextEntries[i] = new entityDictionary[className](odataObject.FormContextEntries[i])\n }\n } else {\n this.FormContextEntries[i] = new FormContextDictionaryEntryClass(odataObject.FormContextEntries[i]);\n }\n } else {\n this.FormContextEntries[i] = undefined;\n }\n }\n }\n \n if (odataObject.RootScope == null) {\n this.RootScope = undefined;\n } else if (odataObject.RootScope['@odata.type'] == null) {\n this.RootScope = new ScopeClass(odataObject.RootScope);\n } else {\n var className: string = odataObject.RootScope['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RootScope = new entityDictionary[className](odataObject.RootScope)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['RecordingClass'] = RecordingClass;\n \n /**\n * FormContextDictionaryEntry entity class.\n */\n export class FormContextDictionaryEntryClass implements Entities.FormContextDictionaryEntry {\n public FormId: string;\n public FormContext: Entities.FormContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n if (odataObject.FormContext == null) {\n this.FormContext = undefined;\n } else if (odataObject.FormContext['@odata.type'] == null) {\n this.FormContext = new FormContextClass(odataObject.FormContext);\n } else {\n var className: string = odataObject.FormContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContext = new entityDictionary[className](odataObject.FormContext)\n }\n }\n\n \n }\n }\n entityDictionary['FormContextDictionaryEntryClass'] = FormContextDictionaryEntryClass;\n \n /**\n * ProductVariantResolutionContext entity class.\n */\n export class ProductVariantResolutionContextClass implements Entities.ProductVariantResolutionContext {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ProductVariantResolutionContextClass'] = ProductVariantResolutionContextClass;\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity class.\n */\n export class ProductVariantResolutionOnKitSelectionContextClass\n extends ProductVariantResolutionContextClass\n implements Entities.ProductVariantResolutionOnKitSelectionContext {\n public SelectedComponents: Entities.ComponentInSlotRelation[];\n public SlotId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SelectedComponents = undefined;\n if (odataObject.SelectedComponents) {\n this.SelectedComponents = [];\n for (var i = 0; i < odataObject.SelectedComponents.length; i++) {\n if (odataObject.SelectedComponents[i] != null) {\n if (odataObject.SelectedComponents[i]['@odata.type'] != null) {\n var className: string = odataObject.SelectedComponents[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SelectedComponents[i] = new entityDictionary[className](odataObject.SelectedComponents[i])\n }\n } else {\n this.SelectedComponents[i] = new ComponentInSlotRelationClass(odataObject.SelectedComponents[i]);\n }\n } else {\n this.SelectedComponents[i] = undefined;\n }\n }\n }\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductVariantResolutionOnKitSelectionContext\";\n \n }\n }\n entityDictionary['ProductVariantResolutionOnKitSelectionContextClass'] = ProductVariantResolutionOnKitSelectionContextClass;\n \n /**\n * WarehouseLocation entity class.\n */\n export class WarehouseLocationClass implements Entities.WarehouseLocation {\n public LocationId: string;\n public IsLicensePlateControlled: boolean;\n public ProfileId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocationId = \n odataObject.LocationId;\n \n this.IsLicensePlateControlled = \n odataObject.IsLicensePlateControlled;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseLocationClass'] = WarehouseLocationClass;\n \n /**\n * FiscalTransaction entity class.\n */\n export class FiscalTransactionClass implements Entities.FiscalTransaction {\n public CreatedDateTime: Date;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TransDateTime: Date;\n public LineNumber: number;\n public RegisterResponse: string;\n public ReceiptCopy: boolean;\n public RecordGUID: string;\n public RegisterStoreId: string;\n public RegisterTerminalId: string;\n public StaffId: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public DocumentNumber: string;\n public RegistrationTypeValue: number;\n public ServiceName: string;\n public CountryRegionIsoCode: string;\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.ReceiptCopy = \n odataObject.ReceiptCopy;\n \n this.RecordGUID = \n odataObject.RecordGUID;\n \n this.RegisterStoreId = \n odataObject.RegisterStoreId;\n \n this.RegisterTerminalId = \n odataObject.RegisterTerminalId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.DocumentNumber = \n odataObject.DocumentNumber;\n \n this.RegistrationTypeValue = \n odataObject.RegistrationTypeValue;\n \n this.ServiceName = \n odataObject.ServiceName;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionClass'] = FiscalTransactionClass;\n \n /**\n * FulfillmentLine entity class.\n */\n export class FulfillmentLineClass implements Entities.FulfillmentLine {\n public SalesId: string;\n public SalesPersonStoreId: string;\n public SalesPersonId: string;\n public SalesPersonFirstName: string;\n public SalesPersonLastName: string;\n public SalesLineNumber: number;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public DeliveryModeCode: string;\n public DocumentStatusValue: number;\n public FulfillmentDeliveryType: Entities.FulfillmentLineDeliveryType;\n public DeliveryTypeValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public StoreInventoryTotalQuantity: number;\n public StoreInventoryReservedQuantity: number;\n public StoreInventoryOrderedQuantity: number;\n public ItemId: string;\n public ProductId: number;\n public ProductVariant: string;\n public ItemName: string;\n public SerialNumber: string;\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public UnitOfMeasureSymbol: string;\n public RequestedShipDate: Date;\n public RequestedDeliveryDate: Date;\n public RequestedReceiptDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public CreatedDate: Date;\n public TotalAmount: number;\n public Balance: number;\n public ShippingAddress: Entities.Address;\n public DetailedOrderStatusValue: number;\n public DetailedLineStatusValue: number;\n public ChannelTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPersonStoreId = \n odataObject.SalesPersonStoreId;\n \n this.SalesPersonId = \n odataObject.SalesPersonId;\n \n this.SalesPersonFirstName = \n odataObject.SalesPersonFirstName;\n \n this.SalesPersonLastName = \n odataObject.SalesPersonLastName;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n if (odataObject.FulfillmentDeliveryType == null) {\n this.FulfillmentDeliveryType = undefined;\n } else if (odataObject.FulfillmentDeliveryType['@odata.type'] == null) {\n this.FulfillmentDeliveryType = new FulfillmentLineDeliveryTypeClass(odataObject.FulfillmentDeliveryType);\n } else {\n var className: string = odataObject.FulfillmentDeliveryType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentDeliveryType = new entityDictionary[className](odataObject.FulfillmentDeliveryType)\n }\n }\n\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.StoreInventoryTotalQuantity = \n (odataObject.StoreInventoryTotalQuantity != null) ? parseFloat(odataObject.StoreInventoryTotalQuantity) : undefined;\n \n this.StoreInventoryReservedQuantity = \n (odataObject.StoreInventoryReservedQuantity != null) ? parseFloat(odataObject.StoreInventoryReservedQuantity) : undefined;\n \n this.StoreInventoryOrderedQuantity = \n (odataObject.StoreInventoryOrderedQuantity != null) ? parseFloat(odataObject.StoreInventoryOrderedQuantity) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductVariant = \n odataObject.ProductVariant;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.RequestedShipDate = \n (odataObject.RequestedShipDate instanceof Date) ? odataObject.RequestedShipDate\n : (odataObject.RequestedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptDate = \n (odataObject.RequestedReceiptDate instanceof Date) ? odataObject.RequestedReceiptDate\n : (odataObject.RequestedReceiptDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDate = \n (odataObject.CreatedDate instanceof Date) ? odataObject.CreatedDate\n : (odataObject.CreatedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.ChannelTypeValue = \n odataObject.ChannelTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineClass'] = FulfillmentLineClass;\n \n /**\n * FulfillmentLineSearchCriteria entity class.\n */\n export class FulfillmentLineSearchCriteriaClass implements Entities.FulfillmentLineSearchCriteria {\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public SalesId: string;\n public OrderCreatedStartDate: Date;\n public OrderCreatedEndDate: Date;\n public ReceiptId: string;\n public StoreId: string;\n public ChannelReferenceId: string;\n public RequestedReceiptStartDate: Date;\n public RequestedReceiptEndDate: Date;\n public RequestedDeliveryStartDate: Date;\n public RequestedDeliveryEndDate: Date;\n public FulfillmentStatusValues: number[];\n public DeliveryModeCode: string;\n public WarehouseId: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public DeliveryTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.OrderCreatedStartDate = \n (odataObject.OrderCreatedStartDate instanceof Date) ? odataObject.OrderCreatedStartDate\n : (odataObject.OrderCreatedStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OrderCreatedEndDate = \n (odataObject.OrderCreatedEndDate instanceof Date) ? odataObject.OrderCreatedEndDate\n : (odataObject.OrderCreatedEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.RequestedReceiptStartDate = \n (odataObject.RequestedReceiptStartDate instanceof Date) ? odataObject.RequestedReceiptStartDate\n : (odataObject.RequestedReceiptStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptEndDate = \n (odataObject.RequestedReceiptEndDate instanceof Date) ? odataObject.RequestedReceiptEndDate\n : (odataObject.RequestedReceiptEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryStartDate = \n (odataObject.RequestedDeliveryStartDate instanceof Date) ? odataObject.RequestedDeliveryStartDate\n : (odataObject.RequestedDeliveryStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryEndDate = \n (odataObject.RequestedDeliveryEndDate instanceof Date) ? odataObject.RequestedDeliveryEndDate\n : (odataObject.RequestedDeliveryEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FulfillmentStatusValues = undefined;\n if (odataObject.FulfillmentStatusValues) {\n this.FulfillmentStatusValues = [];\n for (var i = 0; i < odataObject.FulfillmentStatusValues.length; i++) {\n if (odataObject.FulfillmentStatusValues[i] != null) {\n this.FulfillmentStatusValues[i] = \n odataObject.FulfillmentStatusValues[i];\n } else {\n this.FulfillmentStatusValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineSearchCriteriaClass'] = FulfillmentLineSearchCriteriaClass;\n \n /**\n * Comment entity class.\n */\n export class CommentClass implements Entities.Comment {\n public RecordId: number;\n public AuthorStaffId: string;\n public AuthorName: string;\n public Text: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AuthorStaffId = \n odataObject.AuthorStaffId;\n \n this.AuthorName = \n odataObject.AuthorName;\n \n this.Text = \n odataObject.Text;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommentClass'] = CommentClass;\n \n /**\n * AddressPurpose entity class.\n */\n export class AddressPurposeClass implements Entities.AddressPurpose {\n public RecordId: number;\n public AddressType: number;\n public Name: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AddressType = \n odataObject.AddressType;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressPurposeClass'] = AddressPurposeClass;\n \n /**\n * DeliveryChargeLine entity class.\n */\n export class DeliveryChargeLineClass implements Entities.DeliveryChargeLine {\n public ChargeCode: string;\n public CurrencyCode: string;\n public CalculatedAmount: number;\n public Description: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryChargeLineClass'] = DeliveryChargeLineClass;\n \n /**\n * ExtensionPackageDefinition entity class.\n */\n export class ExtensionPackageDefinitionClass implements Entities.ExtensionPackageDefinition {\n public Name: string;\n public Publisher: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Publisher = \n odataObject.Publisher;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionPackageDefinitionClass'] = ExtensionPackageDefinitionClass;\n \n /**\n * ReturnPolicy entity class.\n */\n export class ReturnPolicyClass implements Entities.ReturnPolicy {\n public RecordId: number;\n public TenderTypePolicies: Entities.TenderTypePolicy[];\n public IsManagerOverrideEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TenderTypePolicies = undefined;\n if (odataObject.TenderTypePolicies) {\n this.TenderTypePolicies = [];\n for (var i = 0; i < odataObject.TenderTypePolicies.length; i++) {\n if (odataObject.TenderTypePolicies[i] != null) {\n if (odataObject.TenderTypePolicies[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderTypePolicies[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderTypePolicies[i] = new entityDictionary[className](odataObject.TenderTypePolicies[i])\n }\n } else {\n this.TenderTypePolicies[i] = new TenderTypePolicyClass(odataObject.TenderTypePolicies[i]);\n }\n } else {\n this.TenderTypePolicies[i] = undefined;\n }\n }\n }\n \n this.IsManagerOverrideEnabled = \n odataObject.IsManagerOverrideEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnPolicyClass'] = ReturnPolicyClass;\n \n /**\n * TenderTypeAmount entity class.\n */\n export class TenderTypeAmountClass implements Entities.TenderTypeAmount {\n public TenderTypeId: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeAmountClass'] = TenderTypeAmountClass;\n \n /**\n * FeatureState entity class.\n */\n export class FeatureStateClass implements Entities.FeatureState {\n public Name: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FeatureStateClass'] = FeatureStateClass;\n \n /**\n * Warranty entity class.\n */\n export class WarrantyClass\n extends SimpleProductClass\n implements Entities.Warranty {\n public DurationUnitValue: number;\n public Duration: number;\n public ApplicablePriceRangeBaseTypeValue: number;\n public ApplicablePriceRangeMin: number;\n public ApplicablePriceRangeMax: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.DurationUnitValue = \n odataObject.DurationUnitValue;\n \n this.Duration = \n odataObject.Duration;\n \n this.ApplicablePriceRangeBaseTypeValue = \n odataObject.ApplicablePriceRangeBaseTypeValue;\n \n this.ApplicablePriceRangeMin = \n (odataObject.ApplicablePriceRangeMin != null) ? parseFloat(odataObject.ApplicablePriceRangeMin) : undefined;\n \n this.ApplicablePriceRangeMax = \n (odataObject.ApplicablePriceRangeMax != null) ? parseFloat(odataObject.ApplicablePriceRangeMax) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Warranty\";\n \n }\n }\n entityDictionary['WarrantyClass'] = WarrantyClass;\n \n /**\n * RecallInvoicedSalesLineLookup entity class.\n */\n export class RecallInvoicedSalesLineLookupClass implements Entities.RecallInvoicedSalesLineLookup {\n public InvoicedLineId: number;\n public Quantity: number;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoicedLineId = \n (odataObject.InvoicedLineId != null) ? parseInt(odataObject.InvoicedLineId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecallInvoicedSalesLineLookupClass'] = RecallInvoicedSalesLineLookupClass;\n \n /**\n * WarrantyGroup entity class.\n */\n export class WarrantyGroupClass implements Entities.WarrantyGroup {\n public Warranties: Entities.Warranty[];\n public RecordId: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Warranties = undefined;\n if (odataObject.Warranties) {\n this.Warranties = [];\n for (var i = 0; i < odataObject.Warranties.length; i++) {\n if (odataObject.Warranties[i] != null) {\n if (odataObject.Warranties[i]['@odata.type'] != null) {\n var className: string = odataObject.Warranties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Warranties[i] = new entityDictionary[className](odataObject.Warranties[i])\n }\n } else {\n this.Warranties[i] = new WarrantyClass(odataObject.Warranties[i]);\n }\n } else {\n this.Warranties[i] = undefined;\n }\n }\n }\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarrantyGroupClass'] = WarrantyGroupClass;\n \n /**\n * ProductWarrantiesMapping entity class.\n */\n export class ProductWarrantiesMappingClass implements Entities.ProductWarrantiesMapping {\n public WarrantyGroups: Entities.WarrantyGroup[];\n public WarrantableProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarrantyGroups = undefined;\n if (odataObject.WarrantyGroups) {\n this.WarrantyGroups = [];\n for (var i = 0; i < odataObject.WarrantyGroups.length; i++) {\n if (odataObject.WarrantyGroups[i] != null) {\n if (odataObject.WarrantyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.WarrantyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.WarrantyGroups[i] = new entityDictionary[className](odataObject.WarrantyGroups[i])\n }\n } else {\n this.WarrantyGroups[i] = new WarrantyGroupClass(odataObject.WarrantyGroups[i]);\n }\n } else {\n this.WarrantyGroups[i] = undefined;\n }\n }\n }\n \n this.WarrantableProductId = \n (odataObject.WarrantableProductId != null) ? parseInt(odataObject.WarrantableProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarrantiesMappingClass'] = ProductWarrantiesMappingClass;\n \n /**\n * FulfillmentLineContextualOperationsMap entity class.\n */\n export class FulfillmentLineContextualOperationsMapClass implements Entities.FulfillmentLineContextualOperationsMap {\n public FulfillmentLine: Entities.FulfillmentLine;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.FulfillmentLine == null) {\n this.FulfillmentLine = undefined;\n } else if (odataObject.FulfillmentLine['@odata.type'] == null) {\n this.FulfillmentLine = new FulfillmentLineClass(odataObject.FulfillmentLine);\n } else {\n var className: string = odataObject.FulfillmentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentLine = new entityDictionary[className](odataObject.FulfillmentLine)\n }\n }\n\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineContextualOperationsMapClass'] = FulfillmentLineContextualOperationsMapClass;\n \n /**\n * UserAlert entity class.\n */\n export class UserAlertClass implements Entities.UserAlert {\n public AlertSourceIdValue: number;\n public LocalizedMessage: string;\n public IsBlocking: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AlertSourceIdValue = \n odataObject.AlertSourceIdValue;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.IsBlocking = \n odataObject.IsBlocking;\n \n }\n }\n entityDictionary['UserAlertClass'] = UserAlertClass;\n \n /**\n * CartLineUserAlerts entity class.\n */\n export class CartLineUserAlertsClass implements Entities.CartLineUserAlerts {\n public LineIndex: number;\n public LineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIndex = \n odataObject.LineIndex;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineUserAlertsClass'] = CartLineUserAlertsClass;\n \n /**\n * FulfillmentLineUserAlerts entity class.\n */\n export class FulfillmentLineUserAlertsClass implements Entities.FulfillmentLineUserAlerts {\n public SalesId: string;\n public SalesLineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineUserAlertsClass'] = FulfillmentLineUserAlertsClass;\n \n /**\n * BusinessPartnerProspect entity class.\n */\n export class BusinessPartnerProspectClass implements Entities.BusinessPartnerProspect {\n public FirstName: string;\n public LastName: string;\n public CompanyName: string;\n public Address: Entities.Address;\n public JobTitle: string;\n public Department: string;\n public CompanySize: number;\n public Comments: string;\n public LastOperationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.CompanyName = \n odataObject.CompanyName;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.JobTitle = \n odataObject.JobTitle;\n \n this.Department = \n odataObject.Department;\n \n this.CompanySize = \n odataObject.CompanySize;\n \n this.Comments = \n odataObject.Comments;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerProspectClass'] = BusinessPartnerProspectClass;\n \n /**\n * ChannelSearchCriteria entity class.\n */\n export class ChannelSearchCriteriaClass implements Entities.ChannelSearchCriteria {\n public SearchLocationValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelSearchCriteriaClass'] = ChannelSearchCriteriaClass;\n \n /**\n * BusinessPartnerOperation entity class.\n */\n export class BusinessPartnerOperationClass implements Entities.BusinessPartnerOperation {\n public TypeValue: number;\n public StatusValue: number;\n public Value: string;\n public Description: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Value = \n odataObject.Value;\n \n this.Description = \n odataObject.Description;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationClass'] = BusinessPartnerOperationClass;\n \n /**\n * BusinessPartnerOperationRequest entity class.\n */\n export class BusinessPartnerOperationRequestClass implements Entities.BusinessPartnerOperationRequest {\n public TypeValue: number;\n public StatusValue: number;\n public CreatedDateTime: Date;\n public Details: Entities.BusinessPartnerOperationRequestDetails;\n public UserId: string;\n public UserFirstName: string;\n public UserLastName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.Details == null) {\n this.Details = undefined;\n } else if (odataObject.Details['@odata.type'] == null) {\n this.Details = new BusinessPartnerOperationRequestDetailsClass(odataObject.Details);\n } else {\n var className: string = odataObject.Details['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Details = new entityDictionary[className](odataObject.Details)\n }\n }\n\n \n this.UserId = \n odataObject.UserId;\n \n this.UserFirstName = \n odataObject.UserFirstName;\n \n this.UserLastName = \n odataObject.UserLastName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestClass'] = BusinessPartnerOperationRequestClass;\n \n /**\n * ReceiptTypesByFormatType entity class.\n */\n export class ReceiptTypesByFormatTypeClass implements Entities.ReceiptTypesByFormatType {\n public ReceiptOutputFormatType: Entities.ReceiptOutputFormatType;\n public ReceiptTypesValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ReceiptOutputFormatType == null) {\n this.ReceiptOutputFormatType = undefined;\n } else if (odataObject.ReceiptOutputFormatType['@odata.type'] == null) {\n this.ReceiptOutputFormatType = new ReceiptOutputFormatTypeClass(odataObject.ReceiptOutputFormatType);\n } else {\n var className: string = odataObject.ReceiptOutputFormatType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptOutputFormatType = new entityDictionary[className](odataObject.ReceiptOutputFormatType)\n }\n }\n\n \n this.ReceiptTypesValues = undefined;\n if (odataObject.ReceiptTypesValues) {\n this.ReceiptTypesValues = [];\n for (var i = 0; i < odataObject.ReceiptTypesValues.length; i++) {\n if (odataObject.ReceiptTypesValues[i] != null) {\n this.ReceiptTypesValues[i] = \n odataObject.ReceiptTypesValues[i];\n } else {\n this.ReceiptTypesValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptTypesByFormatTypeClass'] = ReceiptTypesByFormatTypeClass;\n \n /**\n * InventoryJournalNameSearchCriteria entity class.\n */\n export class InventoryJournalNameSearchCriteriaClass implements Entities.InventoryJournalNameSearchCriteria {\n public JournalNameIds: string[];\n public DocumentTypeValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalNameIds = undefined;\n if (odataObject.JournalNameIds) {\n this.JournalNameIds = [];\n for (var i = 0; i < odataObject.JournalNameIds.length; i++) {\n if (odataObject.JournalNameIds[i] != null) {\n this.JournalNameIds[i] = \n odataObject.JournalNameIds[i];\n } else {\n this.JournalNameIds[i] = undefined;\n }\n }\n }\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameSearchCriteriaClass'] = InventoryJournalNameSearchCriteriaClass;\n \n /**\n * AssortedProductIdentity entity class.\n */\n export class AssortedProductIdentityClass implements Entities.AssortedProductIdentity {\n public ProductId: number;\n public IsRemoteProduct: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.IsRemoteProduct = \n odataObject.IsRemoteProduct;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AssortedProductIdentityClass'] = AssortedProductIdentityClass;\n \n /**\n * ProductExistenceId entity class.\n */\n export class ProductExistenceIdClass implements Entities.ProductExistenceId {\n public ProductId: number;\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceIdClass'] = ProductExistenceIdClass;\n \n /**\n * ProductExistenceCriteria entity class.\n */\n export class ProductExistenceCriteriaClass implements Entities.ProductExistenceCriteria {\n public ChannelId: number;\n public CatalogId: number;\n public Ids: Entities.ProductExistenceId[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n if (odataObject.Ids[i]['@odata.type'] != null) {\n var className: string = odataObject.Ids[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Ids[i] = new entityDictionary[className](odataObject.Ids[i])\n }\n } else {\n this.Ids[i] = new ProductExistenceIdClass(odataObject.Ids[i]);\n }\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceCriteriaClass'] = ProductExistenceCriteriaClass;\n \n /**\n * ChecklistTask entity class.\n */\n export class ChecklistTaskClass implements Entities.ChecklistTask {\n public Version: string;\n public InstructionsVersion: string;\n public AssignedToPersonnelNumbers: string[];\n public AssignedToExternalSubId: string;\n public Id: string;\n public Name: string;\n public Description: string;\n public DueDateTime: Date;\n public DeepLinkTypeValue: number;\n public DeepLink: string;\n public DeepLinkPosOperationName: string;\n public ContactPersonPersonnelNumber: string;\n public Instructions: string;\n public StatusValue: number;\n public CompletionDateTime: Date;\n public ResolvedByPersonnelNumber: string;\n public ChecklistId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Version = \n odataObject.Version;\n \n this.InstructionsVersion = \n odataObject.InstructionsVersion;\n \n this.AssignedToPersonnelNumbers = undefined;\n if (odataObject.AssignedToPersonnelNumbers) {\n this.AssignedToPersonnelNumbers = [];\n for (var i = 0; i < odataObject.AssignedToPersonnelNumbers.length; i++) {\n if (odataObject.AssignedToPersonnelNumbers[i] != null) {\n this.AssignedToPersonnelNumbers[i] = \n odataObject.AssignedToPersonnelNumbers[i];\n } else {\n this.AssignedToPersonnelNumbers[i] = undefined;\n }\n }\n }\n \n this.AssignedToExternalSubId = \n odataObject.AssignedToExternalSubId;\n \n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeepLinkTypeValue = \n odataObject.DeepLinkTypeValue;\n \n this.DeepLink = \n odataObject.DeepLink;\n \n this.DeepLinkPosOperationName = \n odataObject.DeepLinkPosOperationName;\n \n this.ContactPersonPersonnelNumber = \n odataObject.ContactPersonPersonnelNumber;\n \n this.Instructions = \n odataObject.Instructions;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CompletionDateTime = \n (odataObject.CompletionDateTime instanceof Date) ? odataObject.CompletionDateTime\n : (odataObject.CompletionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CompletionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResolvedByPersonnelNumber = \n odataObject.ResolvedByPersonnelNumber;\n \n this.ChecklistId = \n odataObject.ChecklistId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskClass'] = ChecklistTaskClass;\n \n /**\n * MediaLocation entity class.\n */\n export class MediaLocationClass implements Entities.MediaLocation {\n public Uri: string;\n public AltText: string;\n public IsDefault: boolean;\n public IsSelfHosted: boolean;\n public Priority: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Uri = \n odataObject.Uri;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.Priority = \n odataObject.Priority;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaLocationClass'] = MediaLocationClass;\n \n /**\n * EmployeeActivity entity class.\n */\n export class EmployeeActivityClass implements Entities.EmployeeActivity {\n public StaffId: string;\n public StaffName: string;\n public Activity: string;\n public ActivityDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValue: number;\n public BreakCategory: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.StaffName = \n odataObject.StaffName;\n \n this.Activity = \n odataObject.Activity;\n \n this.ActivityDateTimeOffset = \n (odataObject.ActivityDateTimeOffset instanceof Date) ? odataObject.ActivityDateTimeOffset\n : (odataObject.ActivityDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValue = \n odataObject.EmployeeActivityTypeValue;\n \n this.BreakCategory = \n odataObject.BreakCategory;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeActivityClass'] = EmployeeActivityClass;\n \n /**\n * CustomerRefiner entity class.\n */\n export class CustomerRefinerClass\n extends SearchRefinerClass\n implements Entities.CustomerRefiner {\n public SourceValue: number;\n public Values: Entities.CustomerRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new CustomerRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefiner\";\n \n }\n }\n entityDictionary['CustomerRefinerClass'] = CustomerRefinerClass;\n \n /**\n * TokenizedPaymentCard entity class.\n */\n export class TokenizedPaymentCardClass implements Entities.TokenizedPaymentCard {\n public IsSwipe: boolean;\n public TenderType: string;\n public CardTokenInfo: Entities.CardTokenInfo;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.TenderType = \n odataObject.TenderType;\n \n if (odataObject.CardTokenInfo == null) {\n this.CardTokenInfo = undefined;\n } else if (odataObject.CardTokenInfo['@odata.type'] == null) {\n this.CardTokenInfo = new CardTokenInfoClass(odataObject.CardTokenInfo);\n } else {\n var className: string = odataObject.CardTokenInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardTokenInfo = new entityDictionary[className](odataObject.CardTokenInfo)\n }\n }\n\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TokenizedPaymentCardClass'] = TokenizedPaymentCardClass;\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity class.\n */\n export class ProductDimensionAvailabilitySearchCriteriaClass implements Entities.ProductDimensionAvailabilitySearchCriteria {\n public RequestedDimensionTypeValue: number;\n public MatchingDimensionValues: Entities.ProductDimension[];\n public DefaultWarehouseOnly: boolean;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedDimensionTypeValue = \n odataObject.RequestedDimensionTypeValue;\n \n this.MatchingDimensionValues = undefined;\n if (odataObject.MatchingDimensionValues) {\n this.MatchingDimensionValues = [];\n for (var i = 0; i < odataObject.MatchingDimensionValues.length; i++) {\n if (odataObject.MatchingDimensionValues[i] != null) {\n if (odataObject.MatchingDimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MatchingDimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MatchingDimensionValues[i] = new entityDictionary[className](odataObject.MatchingDimensionValues[i])\n }\n } else {\n this.MatchingDimensionValues[i] = new ProductDimensionClass(odataObject.MatchingDimensionValues[i]);\n }\n } else {\n this.MatchingDimensionValues[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductDimensionAvailabilitySearchCriteriaClass'] = ProductDimensionAvailabilitySearchCriteriaClass;\n \n /**\n * LineShippingAddress entity class.\n */\n export class LineShippingAddressClass implements Entities.LineShippingAddress {\n public LineId: string;\n public ShippingAddress: Entities.Address;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n }\n }\n entityDictionary['LineShippingAddressClass'] = LineShippingAddressClass;\n \n /**\n * CartDeliveryPreferences entity class.\n */\n export class CartDeliveryPreferencesClass implements Entities.CartDeliveryPreferences {\n public HeaderDeliveryPreferenceTypeValues: number[];\n public CartLineDeliveryPreferences: Entities.CartLineDeliveryPreference[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderDeliveryPreferenceTypeValues = undefined;\n if (odataObject.HeaderDeliveryPreferenceTypeValues) {\n this.HeaderDeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.HeaderDeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.HeaderDeliveryPreferenceTypeValues[i] != null) {\n this.HeaderDeliveryPreferenceTypeValues[i] = \n odataObject.HeaderDeliveryPreferenceTypeValues[i];\n } else {\n this.HeaderDeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n this.CartLineDeliveryPreferences = undefined;\n if (odataObject.CartLineDeliveryPreferences) {\n this.CartLineDeliveryPreferences = [];\n for (var i = 0; i < odataObject.CartLineDeliveryPreferences.length; i++) {\n if (odataObject.CartLineDeliveryPreferences[i] != null) {\n if (odataObject.CartLineDeliveryPreferences[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLineDeliveryPreferences[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLineDeliveryPreferences[i] = new entityDictionary[className](odataObject.CartLineDeliveryPreferences[i])\n }\n } else {\n this.CartLineDeliveryPreferences[i] = new CartLineDeliveryPreferenceClass(odataObject.CartLineDeliveryPreferences[i]);\n }\n } else {\n this.CartLineDeliveryPreferences[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartDeliveryPreferencesClass'] = CartDeliveryPreferencesClass;\n \n /**\n * LineDeliverySpecification entity class.\n */\n export class LineDeliverySpecificationClass implements Entities.LineDeliverySpecification {\n public LineId: string;\n public DeliverySpecification: Entities.DeliverySpecification;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.DeliverySpecification == null) {\n this.DeliverySpecification = undefined;\n } else if (odataObject.DeliverySpecification['@odata.type'] == null) {\n this.DeliverySpecification = new DeliverySpecificationClass(odataObject.DeliverySpecification);\n } else {\n var className: string = odataObject.DeliverySpecification['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliverySpecification = new entityDictionary[className](odataObject.DeliverySpecification)\n }\n }\n\n \n }\n }\n entityDictionary['LineDeliverySpecificationClass'] = LineDeliverySpecificationClass;\n \n /**\n * DeliverySpecification entity class.\n */\n export class DeliverySpecificationClass implements Entities.DeliverySpecification {\n public DeliveryModeId: string;\n public DeliveryPreferenceTypeValue: number;\n public DeliveryAddress: Entities.Address;\n public RequestedDeliveryDate: Date;\n public PickUpStoreId: string;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public ShipFromStoreId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.DeliveryPreferenceTypeValue = \n odataObject.DeliveryPreferenceTypeValue;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickUpStoreId = \n odataObject.PickUpStoreId;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.ShipFromStoreId = \n odataObject.ShipFromStoreId;\n \n }\n }\n entityDictionary['DeliverySpecificationClass'] = DeliverySpecificationClass;\n \n /**\n * OrderSearchCriteria entity class.\n */\n export class OrderSearchCriteriaClass implements Entities.OrderSearchCriteria {\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public EmailAddress: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public SalesId: string;\n public ReceiptId: string;\n public OrderStatusValues: number[];\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ChannelReferenceId: string;\n public StoreId: string;\n public OrderType: number;\n public CustomFilters: Entities.SearchFilter[];\n public FulfillmentTypeValues: number[];\n public DeliveryMode: string;\n public PickupStartDate: Date;\n public PickupEndDate: Date;\n public PickupTimeslotStartTime: number;\n public PickupTimeslotEndTime: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.OrderStatusValues = undefined;\n if (odataObject.OrderStatusValues) {\n this.OrderStatusValues = [];\n for (var i = 0; i < odataObject.OrderStatusValues.length; i++) {\n if (odataObject.OrderStatusValues[i] != null) {\n this.OrderStatusValues[i] = \n odataObject.OrderStatusValues[i];\n } else {\n this.OrderStatusValues[i] = undefined;\n }\n }\n }\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.OrderType = \n odataObject.OrderType;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.FulfillmentTypeValues = undefined;\n if (odataObject.FulfillmentTypeValues) {\n this.FulfillmentTypeValues = [];\n for (var i = 0; i < odataObject.FulfillmentTypeValues.length; i++) {\n if (odataObject.FulfillmentTypeValues[i] != null) {\n this.FulfillmentTypeValues[i] = \n odataObject.FulfillmentTypeValues[i];\n } else {\n this.FulfillmentTypeValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.PickupStartDate = \n (odataObject.PickupStartDate instanceof Date) ? odataObject.PickupStartDate\n : (odataObject.PickupStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupEndDate = \n (odataObject.PickupEndDate instanceof Date) ? odataObject.PickupEndDate\n : (odataObject.PickupEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartTime = \n odataObject.PickupTimeslotStartTime;\n \n this.PickupTimeslotEndTime = \n odataObject.PickupTimeslotEndTime;\n \n }\n }\n entityDictionary['OrderSearchCriteriaClass'] = OrderSearchCriteriaClass;\n \n /**\n * ChecklistSearchCriteria entity class.\n */\n export class ChecklistSearchCriteriaClass implements Entities.ChecklistSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public ChecklistIds: string[];\n public StatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.ChecklistIds = undefined;\n if (odataObject.ChecklistIds) {\n this.ChecklistIds = [];\n for (var i = 0; i < odataObject.ChecklistIds.length; i++) {\n if (odataObject.ChecklistIds[i] != null) {\n this.ChecklistIds[i] = \n odataObject.ChecklistIds[i];\n } else {\n this.ChecklistIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistSearchCriteriaClass'] = ChecklistSearchCriteriaClass;\n \n /**\n * TaskSearchCriteria entity class.\n */\n export class TaskSearchCriteriaClass implements Entities.TaskSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public TaskIds: string[];\n public StatusValues: number[];\n public FilterMyTasks: boolean;\n public FilterOverdueTasks: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.TaskIds = undefined;\n if (odataObject.TaskIds) {\n this.TaskIds = [];\n for (var i = 0; i < odataObject.TaskIds.length; i++) {\n if (odataObject.TaskIds[i] != null) {\n this.TaskIds[i] = \n odataObject.TaskIds[i];\n } else {\n this.TaskIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.FilterMyTasks = \n odataObject.FilterMyTasks;\n \n this.FilterOverdueTasks = \n odataObject.FilterOverdueTasks;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaskSearchCriteriaClass'] = TaskSearchCriteriaClass;\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity class.\n */\n export class ChecklistTaskTeamsIntegrationConfigurationClass implements Entities.ChecklistTaskTeamsIntegrationConfiguration {\n public IsEnabled: boolean;\n public MicrosoftGraphResource: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.MicrosoftGraphResource = \n odataObject.MicrosoftGraphResource;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskTeamsIntegrationConfigurationClass'] = ChecklistTaskTeamsIntegrationConfigurationClass;\n \n /**\n * ReturnCartLine entity class.\n */\n export class ReturnCartLineClass implements Entities.ReturnCartLine {\n public Description: string;\n public ItemId: string;\n public ProductId: number;\n public Quantity: number;\n public ReturnLineNumber: number;\n public ReturnTransactionId: string;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Price: number;\n public IsPriceKeyedIn: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n }\n }\n entityDictionary['ReturnCartLineClass'] = ReturnCartLineClass;\n \n /**\n * TenderDiscountLine entity class.\n */\n export class TenderDiscountLineClass implements Entities.TenderDiscountLine {\n public DiscountAmount: number;\n public PaymentAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDiscountLineClass'] = TenderDiscountLineClass;\n \n /**\n * ReceiptRetrievalCriteria entity class.\n */\n export class ReceiptRetrievalCriteriaClass implements Entities.ReceiptRetrievalCriteria {\n public IsCopy: boolean;\n public IsRemoteTransaction: boolean;\n public IsPreview: boolean;\n public QueryBySalesId: boolean;\n public ReceiptTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public HardwareProfileId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsCopy = \n odataObject.IsCopy;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.IsPreview = \n odataObject.IsPreview;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n }\n }\n entityDictionary['ReceiptRetrievalCriteriaClass'] = ReceiptRetrievalCriteriaClass;\n \n /**\n * CartSearchCriteria entity class.\n */\n export class CartSearchCriteriaClass implements Entities.CartSearchCriteria {\n public CartId: string;\n public ExpectedCartVersion: number;\n public CustomerAccountNumber: string;\n public IncludeAnonymous: boolean;\n public SuspendedOnly: boolean;\n public CartTypeValue: number;\n public LastModifiedDateTimeFrom: Date;\n public LastModifiedDateTimeTo: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CartId = \n odataObject.CartId;\n \n this.ExpectedCartVersion = \n (odataObject.ExpectedCartVersion != null) ? parseInt(odataObject.ExpectedCartVersion, 10) : undefined;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.IncludeAnonymous = \n odataObject.IncludeAnonymous;\n \n this.SuspendedOnly = \n odataObject.SuspendedOnly;\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.LastModifiedDateTimeFrom = \n (odataObject.LastModifiedDateTimeFrom instanceof Date) ? odataObject.LastModifiedDateTimeFrom\n : (odataObject.LastModifiedDateTimeFrom != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastModifiedDateTimeTo = \n (odataObject.LastModifiedDateTimeTo instanceof Date) ? odataObject.LastModifiedDateTimeTo\n : (odataObject.LastModifiedDateTimeTo != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['CartSearchCriteriaClass'] = CartSearchCriteriaClass;\n \n /**\n * RetrievePaymentResultSettings entity class.\n */\n export class RetrievePaymentResultSettingsClass implements Entities.RetrievePaymentResultSettings {\n public ReturnUrl: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnUrl = \n odataObject.ReturnUrl;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['RetrievePaymentResultSettingsClass'] = RetrievePaymentResultSettingsClass;\n \n /**\n * SearchReceiptCriteria entity class.\n */\n export class SearchReceiptCriteriaClass implements Entities.SearchReceiptCriteria {\n public TransactionId: string;\n public ReceiptTypeValue: number;\n public ReceiptTypesByFormatTypeCollection: Entities.ReceiptTypesByFormatType[];\n public IsCopy: boolean;\n public GiftReceiptLineNumbers: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypesByFormatTypeCollection = undefined;\n if (odataObject.ReceiptTypesByFormatTypeCollection) {\n this.ReceiptTypesByFormatTypeCollection = [];\n for (var i = 0; i < odataObject.ReceiptTypesByFormatTypeCollection.length; i++) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i] != null) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptTypesByFormatTypeCollection[i] = new entityDictionary[className](odataObject.ReceiptTypesByFormatTypeCollection[i])\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = new ReceiptTypesByFormatTypeClass(odataObject.ReceiptTypesByFormatTypeCollection[i]);\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = undefined;\n }\n }\n }\n \n this.IsCopy = \n odataObject.IsCopy;\n \n this.GiftReceiptLineNumbers = undefined;\n if (odataObject.GiftReceiptLineNumbers) {\n this.GiftReceiptLineNumbers = [];\n for (var i = 0; i < odataObject.GiftReceiptLineNumbers.length; i++) {\n if (odataObject.GiftReceiptLineNumbers[i] != null) {\n this.GiftReceiptLineNumbers[i] = \n parseFloat(odataObject.GiftReceiptLineNumbers[i]);\n } else {\n this.GiftReceiptLineNumbers[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchReceiptCriteriaClass'] = SearchReceiptCriteriaClass;\n \n /**\n * ElectronicAddress entity class.\n */\n export class ElectronicAddressClass implements Entities.ElectronicAddress {\n public AddressTypeValue: number;\n public ExtensibleEAddressType: Entities.ExtensibleElectronicAddressType;\n public Address: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n if (odataObject.ExtensibleEAddressType == null) {\n this.ExtensibleEAddressType = undefined;\n } else if (odataObject.ExtensibleEAddressType['@odata.type'] == null) {\n this.ExtensibleEAddressType = new ExtensibleElectronicAddressTypeClass(odataObject.ExtensibleEAddressType);\n } else {\n var className: string = odataObject.ExtensibleEAddressType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEAddressType = new entityDictionary[className](odataObject.ExtensibleEAddressType)\n }\n }\n\n \n this.Address = \n odataObject.Address;\n \n }\n }\n entityDictionary['ElectronicAddressClass'] = ElectronicAddressClass;\n \n /**\n * ChannelReferenceLookupCriteria entity class.\n */\n export class ChannelReferenceLookupCriteriaClass implements Entities.ChannelReferenceLookupCriteria {\n public ChannelReferenceId: string;\n public SearchLocationValue: number;\n public ChannelReferenceAdditionalLookupCriteria: Entities.ChannelReferenceAdditionalLookupCriteria[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ChannelReferenceAdditionalLookupCriteria = undefined;\n if (odataObject.ChannelReferenceAdditionalLookupCriteria) {\n this.ChannelReferenceAdditionalLookupCriteria = [];\n for (var i = 0; i < odataObject.ChannelReferenceAdditionalLookupCriteria.length; i++) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i] != null) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new entityDictionary[className](odataObject.ChannelReferenceAdditionalLookupCriteria[i])\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new ChannelReferenceAdditionalLookupCriteriaClass(odataObject.ChannelReferenceAdditionalLookupCriteria[i]);\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelReferenceLookupCriteriaClass'] = ChannelReferenceLookupCriteriaClass;\n \n /**\n * FulfillmentLineParameter entity class.\n */\n export class FulfillmentLineParameterClass implements Entities.FulfillmentLineParameter {\n public SalesId: string;\n public SalesLineNumber: number;\n public Quantity: number;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineParameterClass'] = FulfillmentLineParameterClass;\n \n /**\n * ShipFulfillmentLine entity class.\n */\n export class ShipFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.ShipFulfillmentLine {\n public ProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShipFulfillmentLine\";\n \n }\n }\n entityDictionary['ShipFulfillmentLineClass'] = ShipFulfillmentLineClass;\n \n /**\n * RejectFulfillmentLine entity class.\n */\n export class RejectFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.RejectFulfillmentLine {\n public RejectedQuantity: number;\n public InfoCodeId: string;\n public SubInfoCodeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RejectedQuantity = \n (odataObject.RejectedQuantity != null) ? parseFloat(odataObject.RejectedQuantity) : undefined;\n \n this.InfoCodeId = \n odataObject.InfoCodeId;\n \n this.SubInfoCodeId = \n odataObject.SubInfoCodeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.RejectFulfillmentLine\";\n \n }\n }\n entityDictionary['RejectFulfillmentLineClass'] = RejectFulfillmentLineClass;\n \n /**\n * ReadChangedProductsSession entity class.\n */\n export class ReadChangedProductsSessionClass implements Entities.ReadChangedProductsSession {\n public Id: string;\n public TotalNumberOfProducts: number;\n public NumberOfProductsRead: number;\n public NumberOfProductsReadInCurrentPage: number;\n public NextSynchronizationToken: string;\n public IsInitialSync: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.TotalNumberOfProducts = \n odataObject.TotalNumberOfProducts;\n \n this.NumberOfProductsRead = \n odataObject.NumberOfProductsRead;\n \n this.NumberOfProductsReadInCurrentPage = \n odataObject.NumberOfProductsReadInCurrentPage;\n \n this.NextSynchronizationToken = \n odataObject.NextSynchronizationToken;\n \n this.IsInitialSync = \n odataObject.IsInitialSync;\n \n }\n }\n entityDictionary['ReadChangedProductsSessionClass'] = ReadChangedProductsSessionClass;\n \n /**\n * DeletedListingsResult entity class.\n */\n export class DeletedListingsResultClass implements Entities.DeletedListingsResult {\n public HasMorePublishedListings: boolean;\n public DeletedListings: Entities.ListingIdentity[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasMorePublishedListings = \n odataObject.HasMorePublishedListings;\n \n this.DeletedListings = undefined;\n if (odataObject.DeletedListings) {\n this.DeletedListings = [];\n for (var i = 0; i < odataObject.DeletedListings.length; i++) {\n if (odataObject.DeletedListings[i] != null) {\n if (odataObject.DeletedListings[i]['@odata.type'] != null) {\n var className: string = odataObject.DeletedListings[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeletedListings[i] = new entityDictionary[className](odataObject.DeletedListings[i])\n }\n } else {\n this.DeletedListings[i] = new ListingIdentityClass(odataObject.DeletedListings[i]);\n }\n } else {\n this.DeletedListings[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeletedListingsResultClass'] = DeletedListingsResultClass;\n \n /**\n * ProductRating entity class.\n */\n export class ProductRatingClass implements Entities.ProductRating {\n public ProductId: number;\n public AverageRating: number;\n public TotalRatings: number;\n public RatingDistribution: Entities.ProductRatingCount[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.RatingDistribution = undefined;\n if (odataObject.RatingDistribution) {\n this.RatingDistribution = [];\n for (var i = 0; i < odataObject.RatingDistribution.length; i++) {\n if (odataObject.RatingDistribution[i] != null) {\n if (odataObject.RatingDistribution[i]['@odata.type'] != null) {\n var className: string = odataObject.RatingDistribution[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RatingDistribution[i] = new entityDictionary[className](odataObject.RatingDistribution[i])\n }\n } else {\n this.RatingDistribution[i] = new ProductRatingCountClass(odataObject.RatingDistribution[i]);\n }\n } else {\n this.RatingDistribution[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingClass'] = ProductRatingClass;\n \n /**\n * ProductDeliveryOptions entity class.\n */\n export class ProductDeliveryOptionsClass implements Entities.ProductDeliveryOptions {\n public ProductId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDeliveryOptionsClass'] = ProductDeliveryOptionsClass;\n \n /**\n * ListingPublishStatus entity class.\n */\n export class ListingPublishStatusClass implements Entities.ListingPublishStatus {\n public PublishStatusValue: number;\n public ListingModifiedDateTime: Date;\n public ChannelListingId: string;\n public ChannelId: number;\n public CatalogId: number;\n public ProductId: number;\n public LanguageId: string;\n public AppliedActionValue: number;\n public StatusMessage: string;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PublishStatusValue = \n odataObject.PublishStatusValue;\n \n this.ListingModifiedDateTime = \n (odataObject.ListingModifiedDateTime instanceof Date) ? odataObject.ListingModifiedDateTime\n : (odataObject.ListingModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ListingModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelListingId = \n odataObject.ChannelListingId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AppliedActionValue = \n odataObject.AppliedActionValue;\n \n this.StatusMessage = \n odataObject.StatusMessage;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingPublishStatusClass'] = ListingPublishStatusClass;\n \n /**\n * OrgUnitLocationSearchCriteria entity class.\n */\n export class OrgUnitLocationSearchCriteriaClass implements Entities.OrgUnitLocationSearchCriteria {\n public OrgUnitNumber: string;\n public OrgUnitName: string;\n public InventoryLocationIds: string[];\n public DeliveryModeTypeFilterValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.InventoryLocationIds = undefined;\n if (odataObject.InventoryLocationIds) {\n this.InventoryLocationIds = [];\n for (var i = 0; i < odataObject.InventoryLocationIds.length; i++) {\n if (odataObject.InventoryLocationIds[i] != null) {\n this.InventoryLocationIds[i] = \n odataObject.InventoryLocationIds[i];\n } else {\n this.InventoryLocationIds[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n }\n }\n entityDictionary['OrgUnitLocationSearchCriteriaClass'] = OrgUnitLocationSearchCriteriaClass;\n \n /**\n * StoreHours entity class.\n */\n export class StoreHoursClass implements Entities.StoreHours {\n public RegularStoreHours: Entities.RegularStoreHours;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegularStoreHours == null) {\n this.RegularStoreHours = undefined;\n } else if (odataObject.RegularStoreHours['@odata.type'] == null) {\n this.RegularStoreHours = new RegularStoreHoursClass(odataObject.RegularStoreHours);\n } else {\n var className: string = odataObject.RegularStoreHours['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegularStoreHours = new entityDictionary[className](odataObject.RegularStoreHours)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreHoursClass'] = StoreHoursClass;\n \n /**\n * CartPromotions entity class.\n */\n export class CartPromotionsClass implements Entities.CartPromotions {\n public HeaderPromotions: string[];\n public CartLinePromotions: Entities.CartLinePromotion[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderPromotions = undefined;\n if (odataObject.HeaderPromotions) {\n this.HeaderPromotions = [];\n for (var i = 0; i < odataObject.HeaderPromotions.length; i++) {\n if (odataObject.HeaderPromotions[i] != null) {\n this.HeaderPromotions[i] = \n odataObject.HeaderPromotions[i];\n } else {\n this.HeaderPromotions[i] = undefined;\n }\n }\n }\n \n this.CartLinePromotions = undefined;\n if (odataObject.CartLinePromotions) {\n this.CartLinePromotions = [];\n for (var i = 0; i < odataObject.CartLinePromotions.length; i++) {\n if (odataObject.CartLinePromotions[i] != null) {\n if (odataObject.CartLinePromotions[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLinePromotions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLinePromotions[i] = new entityDictionary[className](odataObject.CartLinePromotions[i])\n }\n } else {\n this.CartLinePromotions[i] = new CartLinePromotionClass(odataObject.CartLinePromotions[i]);\n }\n } else {\n this.CartLinePromotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionsClass'] = CartPromotionsClass;\n \n /**\n * CartPromotionLine entity class.\n */\n export class CartPromotionLineClass implements Entities.CartPromotionLine {\n public LineId: string;\n public Promotion: Entities.Promotion;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.Promotion == null) {\n this.Promotion = undefined;\n } else if (odataObject.Promotion['@odata.type'] == null) {\n this.Promotion = new PromotionClass(odataObject.Promotion);\n } else {\n var className: string = odataObject.Promotion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Promotion = new entityDictionary[className](odataObject.Promotion)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionLineClass'] = CartPromotionLineClass;\n \n /**\n * ItemUnit entity class.\n */\n export class ItemUnitClass implements Entities.ItemUnit {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public Product: number;\n public DistinctProductVariant: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.Product = \n (odataObject.Product != null) ? parseInt(odataObject.Product, 10) : undefined;\n \n this.DistinctProductVariant = \n (odataObject.DistinctProductVariant != null) ? parseInt(odataObject.DistinctProductVariant, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemUnitClass'] = ItemUnitClass;\n \n /**\n * ProductAvailableQuantity entity class.\n */\n export class ProductAvailableQuantityClass implements Entities.ProductAvailableQuantity {\n public ProductId: number;\n public AvailableQuantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAvailableQuantityClass'] = ProductAvailableQuantityClass;\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity class.\n */\n export class OrgUnitAvailabilitySearchCriteriaClass implements Entities.OrgUnitAvailabilitySearchCriteria {\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n }\n }\n entityDictionary['OrgUnitAvailabilitySearchCriteriaClass'] = OrgUnitAvailabilitySearchCriteriaClass;\n \n /**\n * InvoiceSearchCriteria entity class.\n */\n export class InvoiceSearchCriteriaClass implements Entities.InvoiceSearchCriteria {\n public BusinessPartnerId: string;\n public CustomerId: string;\n public InvoiceIds: string[];\n public InvoiceTypeValues: number[];\n public InvoicePaidStatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.InvoiceIds = undefined;\n if (odataObject.InvoiceIds) {\n this.InvoiceIds = [];\n for (var i = 0; i < odataObject.InvoiceIds.length; i++) {\n if (odataObject.InvoiceIds[i] != null) {\n this.InvoiceIds[i] = \n odataObject.InvoiceIds[i];\n } else {\n this.InvoiceIds[i] = undefined;\n }\n }\n }\n \n this.InvoiceTypeValues = undefined;\n if (odataObject.InvoiceTypeValues) {\n this.InvoiceTypeValues = [];\n for (var i = 0; i < odataObject.InvoiceTypeValues.length; i++) {\n if (odataObject.InvoiceTypeValues[i] != null) {\n this.InvoiceTypeValues[i] = \n odataObject.InvoiceTypeValues[i];\n } else {\n this.InvoiceTypeValues[i] = undefined;\n }\n }\n }\n \n this.InvoicePaidStatusValues = undefined;\n if (odataObject.InvoicePaidStatusValues) {\n this.InvoicePaidStatusValues = [];\n for (var i = 0; i < odataObject.InvoicePaidStatusValues.length; i++) {\n if (odataObject.InvoicePaidStatusValues[i] != null) {\n this.InvoicePaidStatusValues[i] = \n odataObject.InvoicePaidStatusValues[i];\n } else {\n this.InvoicePaidStatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceSearchCriteriaClass'] = InvoiceSearchCriteriaClass;\n \n /**\n * InvoiceDetailsSearchCriteria entity class.\n */\n export class InvoiceDetailsSearchCriteriaClass implements Entities.InvoiceDetailsSearchCriteria {\n public InvoiceId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceDetailsSearchCriteriaClass'] = InvoiceDetailsSearchCriteriaClass;\n \n /**\n * PickAndPackSalesLineParameter entity class.\n */\n export class PickAndPackSalesLineParameterClass implements Entities.PickAndPackSalesLineParameter {\n public SalesLineNumber: number;\n public Quantity: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n }\n }\n entityDictionary['PickAndPackSalesLineParameterClass'] = PickAndPackSalesLineParameterClass;\n \n /**\n * ProductListSearchCriteria entity class.\n */\n export class ProductListSearchCriteriaClass implements Entities.ProductListSearchCriteria {\n public CustomerId: string;\n public ProductListId: string;\n public ProductListType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.ProductListId = \n odataObject.ProductListId;\n \n this.ProductListType = \n odataObject.ProductListType;\n \n }\n }\n entityDictionary['ProductListSearchCriteriaClass'] = ProductListSearchCriteriaClass;\n \n /**\n * ProjectionDomain entity class.\n */\n export class ProjectionDomainClass implements Entities.ProjectionDomain {\n public ChannelId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProjectionDomainClass'] = ProjectionDomainClass;\n \n /**\n * AffiliationLoyaltyTier entity class.\n */\n export class AffiliationLoyaltyTierClass implements Entities.AffiliationLoyaltyTier {\n public AffiliationId: number;\n public LoyaltyTierId: number;\n public AffiliationTypeValue: number;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public CustomerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationId = \n (odataObject.AffiliationId != null) ? parseInt(odataObject.AffiliationId, 10) : undefined;\n \n this.LoyaltyTierId = \n (odataObject.LoyaltyTierId != null) ? parseInt(odataObject.LoyaltyTierId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationLoyaltyTierClass'] = AffiliationLoyaltyTierClass;\n \n /**\n * ClientBookCustomerSearchCriteria entity class.\n */\n export class ClientBookCustomerSearchCriteriaClass implements Entities.ClientBookCustomerSearchCriteria {\n public FilterByCurrentEmployee: boolean;\n public Refinement: Entities.ClientBookRefinerValue[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FilterByCurrentEmployee = \n odataObject.FilterByCurrentEmployee;\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ClientBookRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerSearchCriteriaClass'] = ClientBookCustomerSearchCriteriaClass;\n \n /**\n * ClientBookCustomer entity class.\n */\n export class ClientBookCustomerClass implements Entities.ClientBookCustomer {\n public CustomerId: string;\n public Name: string;\n public Phone: string;\n public Email: string;\n public StaffId: string;\n public ImageUris: Entities.MediaLocation[];\n public Attributes: Entities.CustomerAttribute[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Name = \n odataObject.Name;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ImageUris = undefined;\n if (odataObject.ImageUris) {\n this.ImageUris = [];\n for (var i = 0; i < odataObject.ImageUris.length; i++) {\n if (odataObject.ImageUris[i] != null) {\n if (odataObject.ImageUris[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageUris[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageUris[i] = new entityDictionary[className](odataObject.ImageUris[i])\n }\n } else {\n this.ImageUris[i] = new MediaLocationClass(odataObject.ImageUris[i]);\n }\n } else {\n this.ImageUris[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerClass'] = ClientBookCustomerClass;\n \n /**\n * ClientBookChanges entity class.\n */\n export class ClientBookChangesClass implements Entities.ClientBookChanges {\n public Changes: Entities.ClientBookChange[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Changes = undefined;\n if (odataObject.Changes) {\n this.Changes = [];\n for (var i = 0; i < odataObject.Changes.length; i++) {\n if (odataObject.Changes[i] != null) {\n if (odataObject.Changes[i]['@odata.type'] != null) {\n var className: string = odataObject.Changes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Changes[i] = new entityDictionary[className](odataObject.Changes[i])\n }\n } else {\n this.Changes[i] = new ClientBookChangeClass(odataObject.Changes[i]);\n }\n } else {\n this.Changes[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookChangesClass'] = ClientBookChangesClass;\n \n /**\n * ChargeCode entity class.\n */\n export class ChargeCodeClass implements Entities.ChargeCode {\n public Code: string;\n public ModuleTypeValue: number;\n public Description: string;\n public ItemTaxGroupId: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeCodeClass'] = ChargeCodeClass;\n \n /**\n * PaymentMerchantInformation entity class.\n */\n export class PaymentMerchantInformationClass implements Entities.PaymentMerchantInformation {\n public PaymentConnectorPropertiesXml: string;\n public MerchantPropertiesHashValue: string;\n public ServiceAccountId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PaymentConnectorPropertiesXml = \n odataObject.PaymentConnectorPropertiesXml;\n \n this.MerchantPropertiesHashValue = \n odataObject.MerchantPropertiesHashValue;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentMerchantInformationClass'] = PaymentMerchantInformationClass;\n \n /**\n * StoreSafe entity class.\n */\n export class StoreSafeClass implements Entities.StoreSafe {\n public SafeNumber: string;\n public Name: string;\n public StoreNumber: string;\n public SafeBalance: number;\n public LastUpdatedTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SafeNumber = \n odataObject.SafeNumber;\n \n this.Name = \n odataObject.Name;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.SafeBalance = \n (odataObject.SafeBalance != null) ? parseFloat(odataObject.SafeBalance) : undefined;\n \n this.LastUpdatedTime = \n (odataObject.LastUpdatedTime instanceof Date) ? odataObject.LastUpdatedTime\n : (odataObject.LastUpdatedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdatedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreSafeClass'] = StoreSafeClass;\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity class.\n */\n export class InventoryDocumentReceiptSearchCriteriaClass implements Entities.InventoryDocumentReceiptSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentReceiptSearchCriteriaClass'] = InventoryDocumentReceiptSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass'] = InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecord {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public StaffId: string;\n public UpdateNowQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.UpdateNowQuantity = \n (odataObject.UpdateNowQuantity != null) ? parseFloat(odataObject.UpdateNowQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordClass'] = InventoryDocumentSourceDocumentLineCommitRecordClass;\n \n /**\n * CreateHardwareStationTokenResult entity class.\n */\n export class CreateHardwareStationTokenResultClass implements Entities.CreateHardwareStationTokenResult {\n public HardwareStationToken: string;\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HardwareStationToken = \n odataObject.HardwareStationToken;\n \n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreateHardwareStationTokenResultClass'] = CreateHardwareStationTokenResultClass;\n \n /**\n * ValidateHardwareStationTokenResult entity class.\n */\n export class ValidateHardwareStationTokenResultClass implements Entities.ValidateHardwareStationTokenResult {\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidateHardwareStationTokenResultClass'] = ValidateHardwareStationTokenResultClass;\n \n /**\n * MediaBlob entity class.\n */\n export class MediaBlobClass implements Entities.MediaBlob {\n public MediaType: string;\n public Content: string;\n public IsDefault: boolean;\n public AltText: string;\n public PictureId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MediaType = \n odataObject.MediaType;\n \n this.Content = \n odataObject.Content;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.AltText = \n odataObject.AltText;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaBlobClass'] = MediaBlobClass;\n \n /**\n * OnlineChannel entity class.\n */\n export class OnlineChannelClass implements Entities.OnlineChannel {\n public OnlineStoreCustomerTypeValue: number;\n public OnlineChannelName: string;\n public CurrencyCode: string;\n public EventNotificationProfileId: string;\n public RecordId: number;\n public OrgUnitTypeValue: number;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public InventoryLocationId: string;\n public ChannelProfile: Entities.ChannelProfile;\n public ChannelProperties: Entities.ChannelProperty[];\n public ChannelLanguages: Entities.ChannelLanguage[];\n public Contacts: Entities.OrgUnitContact[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public CountryRegions: Entities.CountryRegion[];\n \n // Navigation properties names\n public static countryRegionsPropertyName: string = \"CountryRegions\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OnlineStoreCustomerTypeValue = \n odataObject.OnlineStoreCustomerTypeValue;\n \n this.OnlineChannelName = \n odataObject.OnlineChannelName;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrgUnitTypeValue = \n odataObject.OrgUnitTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n if (odataObject.ChannelProfile == null) {\n this.ChannelProfile = undefined;\n } else if (odataObject.ChannelProfile['@odata.type'] == null) {\n this.ChannelProfile = new ChannelProfileClass(odataObject.ChannelProfile);\n } else {\n var className: string = odataObject.ChannelProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProfile = new entityDictionary[className](odataObject.ChannelProfile)\n }\n }\n\n \n this.ChannelProperties = undefined;\n if (odataObject.ChannelProperties) {\n this.ChannelProperties = [];\n for (var i = 0; i < odataObject.ChannelProperties.length; i++) {\n if (odataObject.ChannelProperties[i] != null) {\n if (odataObject.ChannelProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProperties[i] = new entityDictionary[className](odataObject.ChannelProperties[i])\n }\n } else {\n this.ChannelProperties[i] = new ChannelPropertyClass(odataObject.ChannelProperties[i]);\n }\n } else {\n this.ChannelProperties[i] = undefined;\n }\n }\n }\n \n this.ChannelLanguages = undefined;\n if (odataObject.ChannelLanguages) {\n this.ChannelLanguages = [];\n for (var i = 0; i < odataObject.ChannelLanguages.length; i++) {\n if (odataObject.ChannelLanguages[i] != null) {\n if (odataObject.ChannelLanguages[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelLanguages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelLanguages[i] = new entityDictionary[className](odataObject.ChannelLanguages[i])\n }\n } else {\n this.ChannelLanguages[i] = new ChannelLanguageClass(odataObject.ChannelLanguages[i]);\n }\n } else {\n this.ChannelLanguages[i] = undefined;\n }\n }\n }\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.CountryRegions = undefined;\n if (odataObject.CountryRegions) {\n this.CountryRegions = [];\n for (var i = 0; i < odataObject.CountryRegions.length; i++) {\n if (odataObject.CountryRegions[i] != null) {\n if (odataObject.CountryRegions[i]['@odata.type'] != null) {\n var className: string = odataObject.CountryRegions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CountryRegions[i] = new entityDictionary[className](odataObject.CountryRegions[i])\n }\n } else {\n this.CountryRegions[i] = new CountryRegionClass(odataObject.CountryRegions[i]);\n }\n } else {\n this.CountryRegions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OnlineChannelClass'] = OnlineChannelClass;\n \n /**\n * TerminalDataDownloadRequestInfo entity class.\n */\n export class TerminalDataDownloadRequestInfoClass implements Entities.TerminalDataDownloadRequestInfo {\n public TerminalId: string;\n public RequiresDataInitialization: boolean;\n public HasBeenInitializedBefore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.RequiresDataInitialization = \n odataObject.RequiresDataInitialization;\n \n this.HasBeenInitializedBefore = \n odataObject.HasBeenInitializedBefore;\n \n }\n }\n entityDictionary['TerminalDataDownloadRequestInfoClass'] = TerminalDataDownloadRequestInfoClass;\n \n /**\n * DataDownloadParameters entity class.\n */\n export class DataDownloadParametersClass implements Entities.DataDownloadParameters {\n public DownloadInterval: number;\n public DownloadSessions: Entities.DownloadSession[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DownloadInterval = \n odataObject.DownloadInterval;\n \n this.DownloadSessions = undefined;\n if (odataObject.DownloadSessions) {\n this.DownloadSessions = [];\n for (var i = 0; i < odataObject.DownloadSessions.length; i++) {\n if (odataObject.DownloadSessions[i] != null) {\n if (odataObject.DownloadSessions[i]['@odata.type'] != null) {\n var className: string = odataObject.DownloadSessions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DownloadSessions[i] = new entityDictionary[className](odataObject.DownloadSessions[i])\n }\n } else {\n this.DownloadSessions[i] = new DownloadSessionClass(odataObject.DownloadSessions[i]);\n }\n } else {\n this.DownloadSessions[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataDownloadParametersClass'] = DataDownloadParametersClass;\n \n /**\n * TerminalDataUploadRequestInfo entity class.\n */\n export class TerminalDataUploadRequestInfoClass implements Entities.TerminalDataUploadRequestInfo {\n public TerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n }\n }\n entityDictionary['TerminalDataUploadRequestInfoClass'] = TerminalDataUploadRequestInfoClass;\n \n /**\n * DataUploadParameters entity class.\n */\n export class DataUploadParametersClass implements Entities.DataUploadParameters {\n public UploadInterval: number;\n public UploadJobPackageRequests: Entities.UploadJobPackageRequest[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UploadInterval = \n odataObject.UploadInterval;\n \n this.UploadJobPackageRequests = undefined;\n if (odataObject.UploadJobPackageRequests) {\n this.UploadJobPackageRequests = [];\n for (var i = 0; i < odataObject.UploadJobPackageRequests.length; i++) {\n if (odataObject.UploadJobPackageRequests[i] != null) {\n if (odataObject.UploadJobPackageRequests[i]['@odata.type'] != null) {\n var className: string = odataObject.UploadJobPackageRequests[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UploadJobPackageRequests[i] = new entityDictionary[className](odataObject.UploadJobPackageRequests[i])\n }\n } else {\n this.UploadJobPackageRequests[i] = new UploadJobPackageRequestClass(odataObject.UploadJobPackageRequests[i]);\n }\n } else {\n this.UploadJobPackageRequests[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataUploadParametersClass'] = DataUploadParametersClass;\n \n /**\n * DownloadSession entity class.\n */\n export class DownloadSessionClass implements Entities.DownloadSession {\n public Id: number;\n public JobId: string;\n public JobDescription: string;\n public FileSize: number;\n public RowsAffected: number;\n public Checksum: string;\n public DateDownloaded: string;\n public DateRequested: string;\n public DataStoreName: string;\n public StatusValue: number;\n public Message: string;\n public DownloadLink: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.JobId = \n odataObject.JobId;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.FileSize = \n (odataObject.FileSize != null) ? parseInt(odataObject.FileSize, 10) : undefined;\n \n this.RowsAffected = \n odataObject.RowsAffected;\n \n this.Checksum = \n odataObject.Checksum;\n \n this.DateDownloaded = \n odataObject.DateDownloaded;\n \n this.DateRequested = \n odataObject.DateRequested;\n \n this.DataStoreName = \n odataObject.DataStoreName;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Message = \n odataObject.Message;\n \n this.DownloadLink = \n odataObject.DownloadLink;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DownloadSessionClass'] = DownloadSessionClass;\n \n /**\n * OfflineTerminalState entity class.\n */\n export class OfflineTerminalStateClass implements Entities.OfflineTerminalState {\n public TerminalId: string;\n public State: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.State = \n odataObject.State;\n \n }\n }\n entityDictionary['OfflineTerminalStateClass'] = OfflineTerminalStateClass;\n \n /**\n * LoyaltyRewardPointActivity entity class.\n */\n export class LoyaltyRewardPointActivityClass implements Entities.LoyaltyRewardPointActivity {\n public ActivityDate: Date;\n public LoyaltyRewardPointTimelineEntryType: string;\n public ExtensibleLoyaltyRewardPointActivityEntryTypeValue: number;\n public LoyaltyPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActivityDate = \n (odataObject.ActivityDate instanceof Date) ? odataObject.ActivityDate\n : (odataObject.ActivityDate != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyRewardPointTimelineEntryType = \n odataObject.LoyaltyRewardPointTimelineEntryType;\n \n this.ExtensibleLoyaltyRewardPointActivityEntryTypeValue = \n odataObject.ExtensibleLoyaltyRewardPointActivityEntryTypeValue;\n \n this.LoyaltyPoints = \n (odataObject.LoyaltyPoints != null) ? parseFloat(odataObject.LoyaltyPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointActivityClass'] = LoyaltyRewardPointActivityClass;\n \n /**\n * CurrencyRequest entity class.\n */\n export class CurrencyRequestClass implements Entities.CurrencyRequest {\n public AmountToConvert: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AmountToConvert = \n (odataObject.AmountToConvert != null) ? parseFloat(odataObject.AmountToConvert) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyRequestClass'] = CurrencyRequestClass;\n \n /**\n * HardwareStationProfile entity class.\n */\n export class HardwareStationProfileClass implements Entities.HardwareStationProfile {\n public RecordId: number;\n public HardwareStationId: string;\n public HardwareStationTypeValue: number;\n public HardwareProfileId: string;\n public HardwareStationName: string;\n public HardwareStationDescription: string;\n public HardwareStationUrl: string;\n public HardwareStationHostName: string;\n public HardwareStationEftTerminalId: string;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationId = \n odataObject.HardwareStationId;\n \n this.HardwareStationTypeValue = \n odataObject.HardwareStationTypeValue;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.HardwareStationName = \n odataObject.HardwareStationName;\n \n this.HardwareStationDescription = \n odataObject.HardwareStationDescription;\n \n this.HardwareStationUrl = \n odataObject.HardwareStationUrl;\n \n this.HardwareStationHostName = \n odataObject.HardwareStationHostName;\n \n this.HardwareStationEftTerminalId = \n odataObject.HardwareStationEftTerminalId;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareStationProfileClass'] = HardwareStationProfileClass;\n \n /**\n * NameValuePair entity class.\n */\n export class NameValuePairClass implements Entities.NameValuePair {\n public Name: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['NameValuePairClass'] = NameValuePairClass;\n \n /**\n * LinkToExistingCustomerResult entity class.\n */\n export class LinkToExistingCustomerResultClass implements Entities.LinkToExistingCustomerResult {\n public EmailAddress: string;\n public ExternalIdentityProvider: string;\n public ExternalIdentityLinkRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.ExternalIdentityProvider = \n odataObject.ExternalIdentityProvider;\n \n this.ExternalIdentityLinkRecordId = \n (odataObject.ExternalIdentityLinkRecordId != null) ? parseInt(odataObject.ExternalIdentityLinkRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['LinkToExistingCustomerResultClass'] = LinkToExistingCustomerResultClass;\n \n /**\n * OfflineSyncStatsLine entity class.\n */\n export class OfflineSyncStatsLineClass implements Entities.OfflineSyncStatsLine {\n public IsUploadJob: boolean;\n public JobDescription: string;\n public LastSyncDateTime: Date;\n public Status: string;\n public FileSize: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsUploadJob = \n odataObject.IsUploadJob;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.LastSyncDateTime = \n (odataObject.LastSyncDateTime instanceof Date) ? odataObject.LastSyncDateTime\n : (odataObject.LastSyncDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSyncDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.FileSize = \n odataObject.FileSize;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OfflineSyncStatsLineClass'] = OfflineSyncStatsLineClass;\n \n /**\n * StorageAccessToken entity class.\n */\n export class StorageAccessTokenClass implements Entities.StorageAccessToken {\n public Url: string;\n public SasKey: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.SasKey = \n odataObject.SasKey;\n \n }\n }\n entityDictionary['StorageAccessTokenClass'] = StorageAccessTokenClass;\n \n /**\n * TaskGuidesSearchResult entity class.\n */\n export class TaskGuidesSearchResultClass implements Entities.TaskGuidesSearchResult {\n public Lines: Entities.Line[];\n public FrameworkPublisherName: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.FrameworkPublisherName = \n odataObject.FrameworkPublisherName;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['TaskGuidesSearchResultClass'] = TaskGuidesSearchResultClass;\n \n /**\n * AuditEvent entity class.\n */\n export class AuditEventClass implements Entities.AuditEvent {\n public EventId: number;\n public EventIdString: string;\n public Channel: number;\n public Store: string;\n public Terminal: string;\n public UploadType: string;\n public EventType: string;\n public EventDateTime: Date;\n public DurationInMilliseconds: number;\n public Source: string;\n public EventMessage: string;\n public LogLevel: string;\n public Staff: string;\n public ShiftId: number;\n public ClosedShiftId: number;\n public ReferenceId: number;\n public RefChannel: number;\n public RefStore: string;\n public RefTerminal: string;\n public RefTransactionId: string;\n public AuditEventTypeValue: number;\n public FiscalTransactions: Entities.AuditEventFiscalTransaction[];\n public FiscalRegistrationLines: Entities.AuditEventFiscalRegistrationLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.EventIdString = \n odataObject.EventIdString;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.EventType = \n odataObject.EventType;\n \n this.EventDateTime = \n (odataObject.EventDateTime instanceof Date) ? odataObject.EventDateTime\n : (odataObject.EventDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EventDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DurationInMilliseconds = \n odataObject.DurationInMilliseconds;\n \n this.Source = \n odataObject.Source;\n \n this.EventMessage = \n odataObject.EventMessage;\n \n this.LogLevel = \n odataObject.LogLevel;\n \n this.Staff = \n odataObject.Staff;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ClosedShiftId = \n (odataObject.ClosedShiftId != null) ? parseInt(odataObject.ClosedShiftId, 10) : undefined;\n \n this.ReferenceId = \n (odataObject.ReferenceId != null) ? parseInt(odataObject.ReferenceId, 10) : undefined;\n \n this.RefChannel = \n (odataObject.RefChannel != null) ? parseInt(odataObject.RefChannel, 10) : undefined;\n \n this.RefStore = \n odataObject.RefStore;\n \n this.RefTerminal = \n odataObject.RefTerminal;\n \n this.RefTransactionId = \n odataObject.RefTransactionId;\n \n this.AuditEventTypeValue = \n odataObject.AuditEventTypeValue;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new AuditEventFiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.FiscalRegistrationLines = undefined;\n if (odataObject.FiscalRegistrationLines) {\n this.FiscalRegistrationLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationLines.length; i++) {\n if (odataObject.FiscalRegistrationLines[i] != null) {\n if (odataObject.FiscalRegistrationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationLines[i])\n }\n } else {\n this.FiscalRegistrationLines[i] = new AuditEventFiscalRegistrationLineClass(odataObject.FiscalRegistrationLines[i]);\n }\n } else {\n this.FiscalRegistrationLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventClass'] = AuditEventClass;\n \n /**\n * ItemAvailability entity class.\n */\n export class ItemAvailabilityClass implements Entities.ItemAvailability {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public InventoryLocationId: string;\n public ProductId: number;\n public AvailableQuantity: number;\n public OrderedSum: number;\n public PhysicalReserved: number;\n public UnitOfMeasure: string;\n public InventoryUnitOfMeasure: string;\n public InventoryUnitOfMeasureDescription: string;\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.OrderedSum = \n (odataObject.OrderedSum != null) ? parseFloat(odataObject.OrderedSum) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.InventoryUnitOfMeasure = \n odataObject.InventoryUnitOfMeasure;\n \n this.InventoryUnitOfMeasureDescription = \n odataObject.InventoryUnitOfMeasureDescription;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemAvailabilityClass'] = ItemAvailabilityClass;\n \n /**\n * InventoryAvailableToPromise entity class.\n */\n export class InventoryAvailableToPromiseClass\n extends ItemAvailabilityClass\n implements Entities.InventoryAvailableToPromise {\n public Date: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Date = \n odataObject.Date;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InventoryAvailableToPromise\";\n \n }\n }\n entityDictionary['InventoryAvailableToPromiseClass'] = InventoryAvailableToPromiseClass;\n \n /**\n * NotificationItem entity class.\n */\n export class NotificationItemClass implements Entities.NotificationItem {\n public Action: number;\n public ActionName: string;\n public NotificationDetails: Entities.NotificationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionName = \n odataObject.ActionName;\n \n this.NotificationDetails = undefined;\n if (odataObject.NotificationDetails) {\n this.NotificationDetails = [];\n for (var i = 0; i < odataObject.NotificationDetails.length; i++) {\n if (odataObject.NotificationDetails[i] != null) {\n if (odataObject.NotificationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.NotificationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NotificationDetails[i] = new entityDictionary[className](odataObject.NotificationDetails[i])\n }\n } else {\n this.NotificationDetails[i] = new NotificationDetailClass(odataObject.NotificationDetails[i]);\n }\n } else {\n this.NotificationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationItemClass'] = NotificationItemClass;\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity class.\n */\n export class FiscalIntegrationDocumentRetrievalCriteriaClass implements Entities.FiscalIntegrationDocumentRetrievalCriteria {\n public TransactionId: string;\n public IsRemoteTransaction: boolean;\n public QueryBySalesId: boolean;\n public FiscalRegistrationEventTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public DocumentContext: Entities.FiscalIntegrationDocumentContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.DocumentContext == null) {\n this.DocumentContext = undefined;\n } else if (odataObject.DocumentContext['@odata.type'] == null) {\n this.DocumentContext = new FiscalIntegrationDocumentContextClass(odataObject.DocumentContext);\n } else {\n var className: string = odataObject.DocumentContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentContext = new entityDictionary[className](odataObject.DocumentContext)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentRetrievalCriteriaClass'] = FiscalIntegrationDocumentRetrievalCriteriaClass;\n \n /**\n * FiscalIntegrationDocument entity class.\n */\n export class FiscalIntegrationDocumentClass implements Entities.FiscalIntegrationDocument {\n public Document: string;\n public DocumentGenerationResultTypeValue: number;\n public FiscalConnectorTechnicalProfile: Entities.FiscalIntegrationTechnicalProfile;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public SequentialSignatureDataContext: Entities.FiscalIntegrationSignatureDataContext;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Document = \n odataObject.Document;\n \n this.DocumentGenerationResultTypeValue = \n odataObject.DocumentGenerationResultTypeValue;\n \n if (odataObject.FiscalConnectorTechnicalProfile == null) {\n this.FiscalConnectorTechnicalProfile = undefined;\n } else if (odataObject.FiscalConnectorTechnicalProfile['@odata.type'] == null) {\n this.FiscalConnectorTechnicalProfile = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalConnectorTechnicalProfile);\n } else {\n var className: string = odataObject.FiscalConnectorTechnicalProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalConnectorTechnicalProfile = new entityDictionary[className](odataObject.FiscalConnectorTechnicalProfile)\n }\n }\n\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n if (odataObject.SequentialSignatureDataContext == null) {\n this.SequentialSignatureDataContext = undefined;\n } else if (odataObject.SequentialSignatureDataContext['@odata.type'] == null) {\n this.SequentialSignatureDataContext = new FiscalIntegrationSignatureDataContextClass(odataObject.SequentialSignatureDataContext);\n } else {\n var className: string = odataObject.SequentialSignatureDataContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureDataContext = new entityDictionary[className](odataObject.SequentialSignatureDataContext)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentClass'] = FiscalIntegrationDocumentClass;\n \n /**\n * FiscalIntegrationRegistrationResult entity class.\n */\n export class FiscalIntegrationRegistrationResultClass implements Entities.FiscalIntegrationRegistrationResult {\n public TransactionID: string;\n public AuditEventId: string;\n public Response: string;\n public SubmittedDocument: string;\n public RegisterInfo: string;\n public RegistrationStatusValue: number;\n public FiscalRegistrationEventTypeValue: number;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public SequentialSignatureData: Entities.FiscalIntegrationSequentialSignatureData;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionID = \n odataObject.TransactionID;\n \n this.AuditEventId = \n odataObject.AuditEventId;\n \n this.Response = \n odataObject.Response;\n \n this.SubmittedDocument = \n odataObject.SubmittedDocument;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.SequentialSignatureData == null) {\n this.SequentialSignatureData = undefined;\n } else if (odataObject.SequentialSignatureData['@odata.type'] == null) {\n this.SequentialSignatureData = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SequentialSignatureData);\n } else {\n var className: string = odataObject.SequentialSignatureData['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureData = new entityDictionary[className](odataObject.SequentialSignatureData)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationResultClass'] = FiscalIntegrationRegistrationResultClass;\n \n /**\n * FiscalIntegrationRegistrationProcess entity class.\n */\n export class FiscalIntegrationRegistrationProcessClass implements Entities.FiscalIntegrationRegistrationProcess {\n public RecordId: number;\n public RegistrationProcessId: string;\n public Description: string;\n public ModeValue: number;\n public RegistrationProcessLines: Entities.FiscalIntegrationRegistrationProcessLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.Description = \n odataObject.Description;\n \n this.ModeValue = \n odataObject.ModeValue;\n \n this.RegistrationProcessLines = undefined;\n if (odataObject.RegistrationProcessLines) {\n this.RegistrationProcessLines = [];\n for (var i = 0; i < odataObject.RegistrationProcessLines.length; i++) {\n if (odataObject.RegistrationProcessLines[i] != null) {\n if (odataObject.RegistrationProcessLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RegistrationProcessLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLines[i] = new entityDictionary[className](odataObject.RegistrationProcessLines[i])\n }\n } else {\n this.RegistrationProcessLines[i] = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLines[i]);\n }\n } else {\n this.RegistrationProcessLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessClass'] = FiscalIntegrationRegistrationProcessClass;\n \n /**\n * FiscalIntegrationSupportedEvents entity class.\n */\n export class FiscalIntegrationSupportedEventsClass implements Entities.FiscalIntegrationSupportedEvents {\n public FunctionalityProfileGroupId: string;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSupportedEventsClass'] = FiscalIntegrationSupportedEventsClass;\n \n /**\n * FiscalIntegrationTechnicalProfile entity class.\n */\n export class FiscalIntegrationTechnicalProfileClass implements Entities.FiscalIntegrationTechnicalProfile {\n public ProfileId: string;\n public Description: string;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public TechnicalProfile: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.Description = \n odataObject.Description;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.TechnicalProfile = \n odataObject.TechnicalProfile;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileClass'] = FiscalIntegrationTechnicalProfileClass;\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummary entity class.\n */\n export class FiscalIntegrationFiscalRegistrationProcessSummaryClass implements Entities.FiscalIntegrationFiscalRegistrationProcessSummary {\n public RegistrationProcessId: string;\n public FiscalRegistrationProcessSummaryLines: Entities.FiscalIntegrationFiscalRegistrationProcessSummaryLine[];\n public ErrorCode: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.FiscalRegistrationProcessSummaryLines = undefined;\n if (odataObject.FiscalRegistrationProcessSummaryLines) {\n this.FiscalRegistrationProcessSummaryLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationProcessSummaryLines.length; i++) {\n if (odataObject.FiscalRegistrationProcessSummaryLines[i] != null) {\n if (odataObject.FiscalRegistrationProcessSummaryLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationProcessSummaryLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationProcessSummaryLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationProcessSummaryLines[i])\n }\n } else {\n this.FiscalRegistrationProcessSummaryLines[i] = new FiscalIntegrationFiscalRegistrationProcessSummaryLineClass(odataObject.FiscalRegistrationProcessSummaryLines[i]);\n }\n } else {\n this.FiscalRegistrationProcessSummaryLines[i] = undefined;\n }\n }\n }\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n }\n }\n entityDictionary['FiscalIntegrationFiscalRegistrationProcessSummaryClass'] = FiscalIntegrationFiscalRegistrationProcessSummaryClass;\n \n /**\n * FiscalIntegrationTechnicalProfileSearchCriteria entity class.\n */\n export class FiscalIntegrationTechnicalProfileSearchCriteriaClass implements Entities.FiscalIntegrationTechnicalProfileSearchCriteria {\n public ExcludeOptionalProcessLines: boolean;\n public FunctionalityProfileGroupIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExcludeOptionalProcessLines = \n odataObject.ExcludeOptionalProcessLines;\n \n this.FunctionalityProfileGroupIds = undefined;\n if (odataObject.FunctionalityProfileGroupIds) {\n this.FunctionalityProfileGroupIds = [];\n for (var i = 0; i < odataObject.FunctionalityProfileGroupIds.length; i++) {\n if (odataObject.FunctionalityProfileGroupIds[i] != null) {\n this.FunctionalityProfileGroupIds[i] = \n odataObject.FunctionalityProfileGroupIds[i];\n } else {\n this.FunctionalityProfileGroupIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileSearchCriteriaClass'] = FiscalIntegrationTechnicalProfileSearchCriteriaClass;\n \n /**\n * FiscalIntegrationServiceInfo entity class.\n */\n export class FiscalIntegrationServiceInfoClass implements Entities.FiscalIntegrationServiceInfo {\n public ServiceName: string;\n public ServiceProperties: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ServiceName = \n odataObject.ServiceName;\n \n this.ServiceProperties = \n odataObject.ServiceProperties;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceInfoClass'] = FiscalIntegrationServiceInfoClass;\n \n /**\n * FiscalIntegrationServiceStatus entity class.\n */\n export class FiscalIntegrationServiceStatusClass implements Entities.FiscalIntegrationServiceStatus {\n public IsReady: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsReady = \n odataObject.IsReady;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceStatusClass'] = FiscalIntegrationServiceStatusClass;\n \n /**\n * FiscalIntegrationServiceCommunicationResult entity class.\n */\n export class FiscalIntegrationServiceCommunicationResultClass implements Entities.FiscalIntegrationServiceCommunicationResult {\n public Response: string;\n public CommunicationResultTypeValue: number;\n public FailureDetails: Entities.FiscalIntegrationServiceFailureDetails;\n public FiscalIntegrationServiceInfo: string;\n public UserNotificationMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Response = \n odataObject.Response;\n \n this.CommunicationResultTypeValue = \n odataObject.CommunicationResultTypeValue;\n \n if (odataObject.FailureDetails == null) {\n this.FailureDetails = undefined;\n } else if (odataObject.FailureDetails['@odata.type'] == null) {\n this.FailureDetails = new FiscalIntegrationServiceFailureDetailsClass(odataObject.FailureDetails);\n } else {\n var className: string = odataObject.FailureDetails['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FailureDetails = new entityDictionary[className](odataObject.FailureDetails)\n }\n }\n\n \n this.FiscalIntegrationServiceInfo = \n odataObject.FiscalIntegrationServiceInfo;\n \n this.UserNotificationMessage = \n odataObject.UserNotificationMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceCommunicationResultClass'] = FiscalIntegrationServiceCommunicationResultClass;\n \n /**\n * FiscalIntegrationSequentialSignatureData entity class.\n */\n export class FiscalIntegrationSequentialSignatureDataClass implements Entities.FiscalIntegrationSequentialSignatureData {\n public LastRegisterResponse: string;\n public SequenceKey: string;\n public IsOffline: boolean;\n public SequentialNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LastRegisterResponse = \n odataObject.LastRegisterResponse;\n \n this.SequenceKey = \n odataObject.SequenceKey;\n \n this.IsOffline = \n odataObject.IsOffline;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSequentialSignatureDataClass'] = FiscalIntegrationSequentialSignatureDataClass;\n \n /**\n * DiscountsSearchCriteria entity class.\n */\n export class DiscountsSearchCriteriaClass implements Entities.DiscountsSearchCriteria {\n public ChannelId: number;\n public Keyword: string;\n public IsDiscountCodeRequired: boolean;\n public StartDate: Date;\n public EndDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Keyword = \n odataObject.Keyword;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountsSearchCriteriaClass'] = DiscountsSearchCriteriaClass;\n \n /**\n * Promotion entity class.\n */\n export class PromotionClass implements Entities.Promotion {\n public OfferId: string;\n public OfferName: string;\n public PeriodicDiscountTypeValue: number;\n public IsDiscountCodeRequired: boolean;\n public ValidationPeriodId: string;\n public AdditionalRestrictions: string;\n public Description: string;\n public ValidFromDate: Date;\n public ValidToDate: Date;\n public ValidationPeriod: Entities.ValidationPeriod;\n public CouponCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ValidationPeriodId = \n odataObject.ValidationPeriodId;\n \n this.AdditionalRestrictions = \n odataObject.AdditionalRestrictions;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFromDate = \n (odataObject.ValidFromDate instanceof Date) ? odataObject.ValidFromDate\n : (odataObject.ValidFromDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDate = \n (odataObject.ValidToDate instanceof Date) ? odataObject.ValidToDate\n : (odataObject.ValidToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.ValidationPeriod == null) {\n this.ValidationPeriod = undefined;\n } else if (odataObject.ValidationPeriod['@odata.type'] == null) {\n this.ValidationPeriod = new ValidationPeriodClass(odataObject.ValidationPeriod);\n } else {\n var className: string = odataObject.ValidationPeriod['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationPeriod = new entityDictionary[className](odataObject.ValidationPeriod)\n }\n }\n\n \n this.CouponCodes = undefined;\n if (odataObject.CouponCodes) {\n this.CouponCodes = [];\n for (var i = 0; i < odataObject.CouponCodes.length; i++) {\n if (odataObject.CouponCodes[i] != null) {\n this.CouponCodes[i] = \n odataObject.CouponCodes[i];\n } else {\n this.CouponCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PromotionClass'] = PromotionClass;\n \n /**\n * CategoryPathLookup entity class.\n */\n export class CategoryPathLookupClass implements Entities.CategoryPathLookup {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathLookupClass'] = CategoryPathLookupClass;\n \n /**\n * CategoryPathResult entity class.\n */\n export class CategoryPathResultClass implements Entities.CategoryPathResult {\n public ProductId: number;\n public CategoryPath: Entities.CategoryPath[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CategoryPath = undefined;\n if (odataObject.CategoryPath) {\n this.CategoryPath = [];\n for (var i = 0; i < odataObject.CategoryPath.length; i++) {\n if (odataObject.CategoryPath[i] != null) {\n if (odataObject.CategoryPath[i]['@odata.type'] != null) {\n var className: string = odataObject.CategoryPath[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategoryPath[i] = new entityDictionary[className](odataObject.CategoryPath[i])\n }\n } else {\n this.CategoryPath[i] = new CategoryPathClass(odataObject.CategoryPath[i]);\n }\n } else {\n this.CategoryPath[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathResultClass'] = CategoryPathResultClass;\n \n /**\n * PickupTimeslotAvailabilitySearchCriteria entity class.\n */\n export class PickupTimeslotAvailabilitySearchCriteriaClass implements Entities.PickupTimeslotAvailabilitySearchCriteria {\n public DeliveryModeCode: string;\n public StoreId: string;\n public StartDate: Date;\n public EndDate: Date;\n public SearchOptionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SearchOptionValue = \n odataObject.SearchOptionValue;\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilitySearchCriteriaClass'] = PickupTimeslotAvailabilitySearchCriteriaClass;\n \n /**\n * PickupTimeslotAvailability entity class.\n */\n export class PickupTimeslotAvailabilityClass implements Entities.PickupTimeslotAvailability {\n public AvailableCapacity: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AvailableCapacity = \n odataObject.AvailableCapacity;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilityClass'] = PickupTimeslotAvailabilityClass;\n \n /**\n * CheckInForOrderPickupConfirmation entity class.\n */\n export class CheckInForOrderPickupConfirmationClass implements Entities.CheckInForOrderPickupConfirmation {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CheckInForOrderPickupConfirmationClass'] = CheckInForOrderPickupConfirmationClass;\n \n /**\n * VendorSearchCriteria entity class.\n */\n export class VendorSearchCriteriaClass implements Entities.VendorSearchCriteria {\n public SearchText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchText = \n odataObject.SearchText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VendorSearchCriteriaClass'] = VendorSearchCriteriaClass;\n \n /**\n * Vendor entity class.\n */\n export class VendorClass implements Entities.Vendor {\n public RecordId: number;\n public AccountNumber: string;\n public PartyId: number;\n public DataAreaId: string;\n public Name: string;\n public NameAlias: string;\n public PartyNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.PartyId = \n (odataObject.PartyId != null) ? parseInt(odataObject.PartyId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Name = \n odataObject.Name;\n \n this.NameAlias = \n odataObject.NameAlias;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VendorClass'] = VendorClass;\n \n /**\n * VendorValidationResult entity class.\n */\n export class VendorValidationResultClass implements Entities.VendorValidationResult {\n public Message: string;\n public VendorValidationResultLevelValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Message = \n odataObject.Message;\n \n this.VendorValidationResultLevelValue = \n odataObject.VendorValidationResultLevelValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VendorValidationResultClass'] = VendorValidationResultClass;\n \n /**\n * ExtensionProfile entity class.\n */\n export class ExtensionProfileClass implements Entities.ExtensionProfile {\n public ExtensionServiceUrl: string;\n public AttachedServices: Entities.AttachedService[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionServiceUrl = \n odataObject.ExtensionServiceUrl;\n \n this.AttachedServices = undefined;\n if (odataObject.AttachedServices) {\n this.AttachedServices = [];\n for (var i = 0; i < odataObject.AttachedServices.length; i++) {\n if (odataObject.AttachedServices[i] != null) {\n if (odataObject.AttachedServices[i]['@odata.type'] != null) {\n var className: string = odataObject.AttachedServices[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttachedServices[i] = new entityDictionary[className](odataObject.AttachedServices[i])\n }\n } else {\n this.AttachedServices[i] = new AttachedServiceClass(odataObject.AttachedServices[i]);\n }\n } else {\n this.AttachedServices[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionProfileClass'] = ExtensionProfileClass;\n \n /**\n * ChannelInventoryConfiguration entity class.\n */\n export class ChannelInventoryConfigurationClass implements Entities.ChannelInventoryConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowTransferOrderOverDelivery: boolean;\n public AllowTransferOrderUnderDelivery: boolean;\n public UserLocationProfileId: string;\n public InventoryProductAttributeRecordId: number;\n public InventoryOutOfStockAttributeValueText: string;\n public ProductAvailabilitySortableAttributeRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowTransferOrderOverDelivery = \n odataObject.AllowTransferOrderOverDelivery;\n \n this.AllowTransferOrderUnderDelivery = \n odataObject.AllowTransferOrderUnderDelivery;\n \n this.UserLocationProfileId = \n odataObject.UserLocationProfileId;\n \n this.InventoryProductAttributeRecordId = \n (odataObject.InventoryProductAttributeRecordId != null) ? parseInt(odataObject.InventoryProductAttributeRecordId, 10) : undefined;\n \n this.InventoryOutOfStockAttributeValueText = \n odataObject.InventoryOutOfStockAttributeValueText;\n \n this.ProductAvailabilitySortableAttributeRecordId = \n (odataObject.ProductAvailabilitySortableAttributeRecordId != null) ? parseInt(odataObject.ProductAvailabilitySortableAttributeRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelInventoryConfigurationClass'] = ChannelInventoryConfigurationClass;\n \n /**\n * ChannelPurchaseConfiguration entity class.\n */\n export class ChannelPurchaseConfigurationClass implements Entities.ChannelPurchaseConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowOverDelivery: boolean;\n public AllowSubDelivery: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this.AllowSubDelivery = \n odataObject.AllowSubDelivery;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPurchaseConfigurationClass'] = ChannelPurchaseConfigurationClass;\n \n /**\n * InventoryJournalName entity class.\n */\n export class InventoryJournalNameClass implements Entities.InventoryJournalName {\n public RecordId: number;\n public JournalNameId: string;\n public InventoryJournalTypeValue: number;\n public Description: string;\n public DefaultAdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.JournalNameId = \n odataObject.JournalNameId;\n \n this.InventoryJournalTypeValue = \n odataObject.InventoryJournalTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DefaultAdjustmentTypeValue = \n odataObject.DefaultAdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameClass'] = InventoryJournalNameClass;\n \n /**\n * ShiftRetrievalCriteria entity class.\n */\n export class ShiftRetrievalCriteriaClass implements Entities.ShiftRetrievalCriteria {\n public ShiftStatusValue: number;\n public FilterByUserRole: boolean;\n public IncludeAllShiftsForStore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftStatusValue = \n odataObject.ShiftStatusValue;\n \n this.FilterByUserRole = \n odataObject.FilterByUserRole;\n \n this.IncludeAllShiftsForStore = \n odataObject.IncludeAllShiftsForStore;\n \n }\n }\n entityDictionary['ShiftRetrievalCriteriaClass'] = ShiftRetrievalCriteriaClass;\n \n /**\n * UserDefinedSecretCertificateResult entity class.\n */\n export class UserDefinedSecretCertificateResultClass implements Entities.UserDefinedSecretCertificateResult {\n public CertificateData: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CertificateData = \n odataObject.CertificateData;\n \n }\n }\n entityDictionary['UserDefinedSecretCertificateResultClass'] = UserDefinedSecretCertificateResultClass;\n \n /**\n * TerminalInfo entity class.\n */\n export class TerminalInfoClass implements Entities.TerminalInfo {\n public TerminalId: string;\n public DeviceNumber: string;\n public Name: string;\n public DeviceType: number;\n public ActivationStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.Name = \n odataObject.Name;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TerminalInfoClass'] = TerminalInfoClass;\n \n /**\n * CustomerTimelineItemTypeMap entity class.\n */\n export class CustomerTimelineItemTypeMapClass implements Entities.CustomerTimelineItemTypeMap {\n public EntityType: string;\n public Types: Entities.CustomerTimelineItemType[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EntityType = \n odataObject.EntityType;\n \n this.Types = undefined;\n if (odataObject.Types) {\n this.Types = [];\n for (var i = 0; i < odataObject.Types.length; i++) {\n if (odataObject.Types[i] != null) {\n if (odataObject.Types[i]['@odata.type'] != null) {\n var className: string = odataObject.Types[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Types[i] = new entityDictionary[className](odataObject.Types[i])\n }\n } else {\n this.Types[i] = new CustomerTimelineItemTypeClass(odataObject.Types[i]);\n }\n } else {\n this.Types[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeMapClass'] = CustomerTimelineItemTypeMapClass;\n \n /**\n * CustomerTimelineRefiner entity class.\n */\n export class CustomerTimelineRefinerClass implements Entities.CustomerTimelineRefiner {\n public RefinedResultsCount: number;\n public EntityType: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinedResultsCount = \n odataObject.RefinedResultsCount;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineRefinerClass'] = CustomerTimelineRefinerClass;\n \n /**\n * CustomerTitle entity class.\n */\n export class CustomerTitleClass implements Entities.CustomerTitle {\n public Text: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Text = \n odataObject.Text;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTitleClass'] = CustomerTitleClass;\n \n /**\n * ProductWarehouse entity class.\n */\n export class ProductWarehouseClass implements Entities.ProductWarehouse {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseClass'] = ProductWarehouseClass;\n \n /**\n * ProductWarehouseInventoryInformation entity class.\n */\n export class ProductWarehouseInventoryInformationClass implements Entities.ProductWarehouseInventoryInformation {\n public ProductWarehouseInventoryAvailabilities: Entities.ProductWarehouseInventoryAvailability[];\n public AggregatedProductInventoryAvailabilities: Entities.ProductInventoryAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductWarehouseInventoryAvailabilities = undefined;\n if (odataObject.ProductWarehouseInventoryAvailabilities) {\n this.ProductWarehouseInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.ProductWarehouseInventoryAvailabilities.length; i++) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i] != null) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductWarehouseInventoryAvailabilities[i] = new entityDictionary[className](odataObject.ProductWarehouseInventoryAvailabilities[i])\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = new ProductWarehouseInventoryAvailabilityClass(odataObject.ProductWarehouseInventoryAvailabilities[i]);\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.AggregatedProductInventoryAvailabilities = undefined;\n if (odataObject.AggregatedProductInventoryAvailabilities) {\n this.AggregatedProductInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.AggregatedProductInventoryAvailabilities.length; i++) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i] != null) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregatedProductInventoryAvailabilities[i] = new entityDictionary[className](odataObject.AggregatedProductInventoryAvailabilities[i])\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = new ProductInventoryAvailabilityClass(odataObject.AggregatedProductInventoryAvailabilities[i]);\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryInformationClass'] = ProductWarehouseInventoryInformationClass;\n \n /**\n * InventoryAvailabilitySearchCriteria entity class.\n */\n export class InventoryAvailabilitySearchCriteriaClass implements Entities.InventoryAvailabilitySearchCriteria {\n public ProductIds: number[];\n public DefaultWarehouseOnly: boolean;\n public SearchArea: Entities.SearchArea;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public QuantityUnitTypeValue: number;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n if (odataObject.SearchArea == null) {\n this.SearchArea = undefined;\n } else if (odataObject.SearchArea['@odata.type'] == null) {\n this.SearchArea = new SearchAreaClass(odataObject.SearchArea);\n } else {\n var className: string = odataObject.SearchArea['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchArea = new entityDictionary[className](odataObject.SearchArea)\n }\n }\n\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['InventoryAvailabilitySearchCriteriaClass'] = InventoryAvailabilitySearchCriteriaClass;\n \n /**\n * ExtensibleEnumerationContainer entity class.\n */\n export class ExtensibleEnumerationContainerClass implements Entities.ExtensibleEnumerationContainer {\n public TypeName: string;\n public ExtensibleEnumerations: Entities.ExtensibleEnumeration[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeName = \n odataObject.TypeName;\n \n this.ExtensibleEnumerations = undefined;\n if (odataObject.ExtensibleEnumerations) {\n this.ExtensibleEnumerations = [];\n for (var i = 0; i < odataObject.ExtensibleEnumerations.length; i++) {\n if (odataObject.ExtensibleEnumerations[i] != null) {\n if (odataObject.ExtensibleEnumerations[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensibleEnumerations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEnumerations[i] = new entityDictionary[className](odataObject.ExtensibleEnumerations[i])\n }\n } else {\n this.ExtensibleEnumerations[i] = new ExtensibleEnumerationClass(odataObject.ExtensibleEnumerations[i]);\n }\n } else {\n this.ExtensibleEnumerations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensibleEnumerationContainerClass'] = ExtensibleEnumerationContainerClass;\n \n /**\n * PackingSlipData entity class.\n */\n export class PackingSlipDataClass implements Entities.PackingSlipData {\n public PackingSlipId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PackingSlipId = \n odataObject.PackingSlipId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PackingSlipDataClass'] = PackingSlipDataClass;\n \n /**\n * EmailReceiptSettings entity class.\n */\n export class EmailReceiptSettingsClass implements Entities.EmailReceiptSettings {\n public ReceiptTypeValue: number;\n public EmailBehaviorValue: number;\n public ReceiptTitle: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.EmailBehaviorValue = \n odataObject.EmailBehaviorValue;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmailReceiptSettingsClass'] = EmailReceiptSettingsClass;\n \n /**\n * FiscalIntegrationComplianceResult entity class.\n */\n export class FiscalIntegrationComplianceResultClass implements Entities.FiscalIntegrationComplianceResult {\n public ErrorMessages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorMessages = undefined;\n if (odataObject.ErrorMessages) {\n this.ErrorMessages = [];\n for (var i = 0; i < odataObject.ErrorMessages.length; i++) {\n if (odataObject.ErrorMessages[i] != null) {\n this.ErrorMessages[i] = \n odataObject.ErrorMessages[i];\n } else {\n this.ErrorMessages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationComplianceResultClass'] = FiscalIntegrationComplianceResultClass;\n \n /**\n * OrgUnitAddress entity class.\n */\n export class OrgUnitAddressClass\n extends AddressClass\n implements Entities.OrgUnitAddress {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrgUnitAddress\";\n \n }\n }\n entityDictionary['OrgUnitAddressClass'] = OrgUnitAddressClass;\n \n /**\n * WarehouseDetails entity class.\n */\n export class WarehouseDetailsClass\n extends AddressClass\n implements Entities.WarehouseDetails {\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.WarehouseDetails\";\n \n }\n }\n entityDictionary['WarehouseDetailsClass'] = WarehouseDetailsClass;\n \n /**\n * AttributeSwatch entity class.\n */\n export class AttributeSwatchClass implements Entities.AttributeSwatch {\n public SwatchValue: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public IsDefault: boolean;\n public ProductImageUrls: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SwatchValue = \n odataObject.SwatchValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ProductImageUrls = undefined;\n if (odataObject.ProductImageUrls) {\n this.ProductImageUrls = [];\n for (var i = 0; i < odataObject.ProductImageUrls.length; i++) {\n if (odataObject.ProductImageUrls[i] != null) {\n this.ProductImageUrls[i] = \n odataObject.ProductImageUrls[i];\n } else {\n this.ProductImageUrls[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeSwatchClass'] = AttributeSwatchClass;\n \n /**\n * AttributeBooleanValue entity class.\n */\n export class AttributeBooleanValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeBooleanValue {\n public Value: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeBooleanValue\";\n \n }\n }\n entityDictionary['AttributeBooleanValueClass'] = AttributeBooleanValueClass;\n \n /**\n * AttributeCurrencyValue entity class.\n */\n export class AttributeCurrencyValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeCurrencyValue {\n public CurrencyValue: number;\n public CurrencyCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeCurrencyValue\";\n \n }\n }\n entityDictionary['AttributeCurrencyValueClass'] = AttributeCurrencyValueClass;\n \n /**\n * AttributeDateTimeOffsetValue entity class.\n */\n export class AttributeDateTimeOffsetValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeDateTimeOffsetValue {\n public Value: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value instanceof Date) ? odataObject.Value\n : (odataObject.Value != null) ? jsonLightReadStringPropertyValue(odataObject.Value, \"Edm.DateTimeOffset\", false) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeDateTimeOffsetValue\";\n \n }\n }\n entityDictionary['AttributeDateTimeOffsetValueClass'] = AttributeDateTimeOffsetValueClass;\n \n /**\n * AttributeFloatValue entity class.\n */\n export class AttributeFloatValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeFloatValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeFloatValue\";\n \n }\n }\n entityDictionary['AttributeFloatValueClass'] = AttributeFloatValueClass;\n \n /**\n * AttributeIntValue entity class.\n */\n export class AttributeIntValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeIntValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeIntValue\";\n \n }\n }\n entityDictionary['AttributeIntValueClass'] = AttributeIntValueClass;\n \n /**\n * AttributeMediaLocationValue entity class.\n */\n export class AttributeMediaLocationValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeMediaLocationValue {\n public Value: Entities.MediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = undefined;\n if (odataObject.Value) {\n this.Value = [];\n for (var i = 0; i < odataObject.Value.length; i++) {\n if (odataObject.Value[i] != null) {\n if (odataObject.Value[i]['@odata.type'] != null) {\n var className: string = odataObject.Value[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value[i] = new entityDictionary[className](odataObject.Value[i])\n }\n } else {\n this.Value[i] = new MediaLocationClass(odataObject.Value[i]);\n }\n } else {\n this.Value[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeMediaLocationValue\";\n \n }\n }\n entityDictionary['AttributeMediaLocationValueClass'] = AttributeMediaLocationValueClass;\n \n /**\n * AttributeTextValue entity class.\n */\n export class AttributeTextValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeTextValue {\n public TextValue: string;\n public TextValueTranslations: Entities.TextValueTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TextValue = \n odataObject.TextValue;\n \n this.TextValueTranslations = undefined;\n if (odataObject.TextValueTranslations) {\n this.TextValueTranslations = [];\n for (var i = 0; i < odataObject.TextValueTranslations.length; i++) {\n if (odataObject.TextValueTranslations[i] != null) {\n if (odataObject.TextValueTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.TextValueTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TextValueTranslations[i] = new entityDictionary[className](odataObject.TextValueTranslations[i])\n }\n } else {\n this.TextValueTranslations[i] = new TextValueTranslationClass(odataObject.TextValueTranslations[i]);\n }\n } else {\n this.TextValueTranslations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue\";\n \n }\n }\n entityDictionary['AttributeTextValueClass'] = AttributeTextValueClass;\n \n /**\n * ButtonGridButton entity class.\n */\n export class ButtonGridButtonClass implements Entities.ButtonGridButton {\n public Action: number;\n public ActionProperty: string;\n public BackColorAsARGB: Entities.ARGBColor;\n public BorderColorAsARGB: Entities.ARGBColor;\n public Column: number;\n public ColumnSpan: number;\n public DisplayText: string;\n public FontColorAsARGB: Entities.ARGBColor;\n public ButtonId: number;\n public Row: number;\n public RowSpan: number;\n public UseCustomLookAndFeel: boolean;\n public PictureId: number;\n public PictureAsBase64: string;\n public FontStyle: number;\n public FontSize: number;\n public EnableCustomFontForPOS: boolean;\n public HideButtonText: boolean;\n public Tooltip: string;\n public EnableLiveContent: boolean;\n public NotificationContentAlignment: number;\n public ImageAlignment: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionProperty = \n odataObject.ActionProperty;\n \n if (odataObject.BackColorAsARGB == null) {\n this.BackColorAsARGB = undefined;\n } else if (odataObject.BackColorAsARGB['@odata.type'] == null) {\n this.BackColorAsARGB = new ARGBColorClass(odataObject.BackColorAsARGB);\n } else {\n var className: string = odataObject.BackColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BackColorAsARGB = new entityDictionary[className](odataObject.BackColorAsARGB)\n }\n }\n\n \n if (odataObject.BorderColorAsARGB == null) {\n this.BorderColorAsARGB = undefined;\n } else if (odataObject.BorderColorAsARGB['@odata.type'] == null) {\n this.BorderColorAsARGB = new ARGBColorClass(odataObject.BorderColorAsARGB);\n } else {\n var className: string = odataObject.BorderColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BorderColorAsARGB = new entityDictionary[className](odataObject.BorderColorAsARGB)\n }\n }\n\n \n this.Column = \n odataObject.Column;\n \n this.ColumnSpan = \n odataObject.ColumnSpan;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n if (odataObject.FontColorAsARGB == null) {\n this.FontColorAsARGB = undefined;\n } else if (odataObject.FontColorAsARGB['@odata.type'] == null) {\n this.FontColorAsARGB = new ARGBColorClass(odataObject.FontColorAsARGB);\n } else {\n var className: string = odataObject.FontColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FontColorAsARGB = new entityDictionary[className](odataObject.FontColorAsARGB)\n }\n }\n\n \n this.ButtonId = \n odataObject.ButtonId;\n \n this.Row = \n odataObject.Row;\n \n this.RowSpan = \n odataObject.RowSpan;\n \n this.UseCustomLookAndFeel = \n odataObject.UseCustomLookAndFeel;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.FontStyle = \n odataObject.FontStyle;\n \n this.FontSize = \n odataObject.FontSize;\n \n this.EnableCustomFontForPOS = \n odataObject.EnableCustomFontForPOS;\n \n this.HideButtonText = \n odataObject.HideButtonText;\n \n this.Tooltip = \n odataObject.Tooltip;\n \n this.EnableLiveContent = \n odataObject.EnableLiveContent;\n \n this.NotificationContentAlignment = \n odataObject.NotificationContentAlignment;\n \n this.ImageAlignment = \n odataObject.ImageAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridButtonClass'] = ButtonGridButtonClass;\n \n /**\n * ARGBColor entity class.\n */\n export class ARGBColorClass implements Entities.ARGBColor {\n public A: number;\n public R: number;\n public G: number;\n public B: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.A = \n (odataObject.A != null) ? parseInt(odataObject.A, 10) : undefined;\n \n this.R = \n (odataObject.R != null) ? parseInt(odataObject.R, 10) : undefined;\n \n this.G = \n (odataObject.G != null) ? parseInt(odataObject.G, 10) : undefined;\n \n this.B = \n (odataObject.B != null) ? parseInt(odataObject.B, 10) : undefined;\n \n }\n }\n entityDictionary['ARGBColorClass'] = ARGBColorClass;\n \n /**\n * PriceLine entity class.\n */\n export class PriceLineClass implements Entities.PriceLine {\n public RecordId: number;\n public Value: number;\n public PriceMethod: string;\n public OriginId: string;\n public PriceChangedByExtensions: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.PriceMethod = \n odataObject.PriceMethod;\n \n this.OriginId = \n odataObject.OriginId;\n \n this.PriceChangedByExtensions = \n odataObject.PriceChangedByExtensions;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PriceLineClass'] = PriceLineClass;\n \n /**\n * TradeAgreementPriceLine entity class.\n */\n export class TradeAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.TradeAgreementPriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['TradeAgreementPriceLineClass'] = TradeAgreementPriceLineClass;\n \n /**\n * AttributePricingTradeAgreementPriceLine entity class.\n */\n export class AttributePricingTradeAgreementPriceLineClass\n extends TradeAgreementPriceLineClass\n implements Entities.AttributePricingTradeAgreementPriceLine {\n public CanApplyPriceAdjustments: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanApplyPriceAdjustments = \n odataObject.CanApplyPriceAdjustments;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingTradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingTradeAgreementPriceLineClass'] = AttributePricingTradeAgreementPriceLineClass;\n \n /**\n * SalesAgreementPriceLine entity class.\n */\n export class SalesAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.SalesAgreementPriceLine {\n public SalesAgreementName: string;\n public UnitPrice: number;\n public DiscountAmount: number;\n public DiscountPercent: number;\n public SalesAgreementLineTypeValue: number;\n public PriceUnit: number;\n public EffectiveDate: Date;\n public ExpirationDate: Date;\n public CommittedQuantity: number;\n public RemainingQuantity: number;\n public CommittedAmount: number;\n public RemainingAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SalesAgreementName = \n odataObject.SalesAgreementName;\n \n this.UnitPrice = \n (odataObject.UnitPrice != null) ? parseFloat(odataObject.UnitPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.SalesAgreementLineTypeValue = \n odataObject.SalesAgreementLineTypeValue;\n \n this.PriceUnit = \n (odataObject.PriceUnit != null) ? parseFloat(odataObject.PriceUnit) : undefined;\n \n this.EffectiveDate = \n (odataObject.EffectiveDate instanceof Date) ? odataObject.EffectiveDate\n : (odataObject.EffectiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.EffectiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommittedQuantity = \n (odataObject.CommittedQuantity != null) ? parseFloat(odataObject.CommittedQuantity) : undefined;\n \n this.RemainingQuantity = \n (odataObject.RemainingQuantity != null) ? parseFloat(odataObject.RemainingQuantity) : undefined;\n \n this.CommittedAmount = \n (odataObject.CommittedAmount != null) ? parseFloat(odataObject.CommittedAmount) : undefined;\n \n this.RemainingAmount = \n (odataObject.RemainingAmount != null) ? parseFloat(odataObject.RemainingAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAgreementPriceLine\";\n \n }\n }\n entityDictionary['SalesAgreementPriceLineClass'] = SalesAgreementPriceLineClass;\n \n /**\n * PriceAdjustmentPriceLine entity class.\n */\n export class PriceAdjustmentPriceLineClass\n extends PriceLineClass\n implements Entities.PriceAdjustmentPriceLine {\n public IsCompoundable: boolean;\n public Concurrency: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.Concurrency = \n odataObject.Concurrency;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PriceAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['PriceAdjustmentPriceLineClass'] = PriceAdjustmentPriceLineClass;\n \n /**\n * AttributePricingAdjustmentPriceLine entity class.\n */\n export class AttributePricingAdjustmentPriceLineClass\n extends PriceAdjustmentPriceLineClass\n implements Entities.AttributePricingAdjustmentPriceLine {\n public CanCompoundOnAdjustedPrice: boolean;\n public PricingPriorityNumber: number;\n public AdjustedAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanCompoundOnAdjustedPrice = \n odataObject.CanCompoundOnAdjustedPrice;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.AdjustedAmount = \n (odataObject.AdjustedAmount != null) ? parseFloat(odataObject.AdjustedAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingAdjustmentPriceLineClass'] = AttributePricingAdjustmentPriceLineClass;\n \n /**\n * BasePriceLine entity class.\n */\n export class BasePriceLineClass\n extends PriceLineClass\n implements Entities.BasePriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.BasePriceLine\";\n \n }\n }\n entityDictionary['BasePriceLineClass'] = BasePriceLineClass;\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity class.\n */\n export class ExtensiblePeriodicDiscountOfferTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensiblePeriodicDiscountOfferType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensiblePeriodicDiscountOfferType\";\n \n }\n }\n entityDictionary['ExtensiblePeriodicDiscountOfferTypeClass'] = ExtensiblePeriodicDiscountOfferTypeClass;\n \n /**\n * ChargeLineOverride entity class.\n */\n export class ChargeLineOverrideClass implements Entities.ChargeLineOverride {\n public OriginalAmount: number;\n public OverrideAmount: number;\n public OverrideReasonDescription: string;\n public OverrideDateTime: Date;\n public UserId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalAmount = \n (odataObject.OriginalAmount != null) ? parseFloat(odataObject.OriginalAmount) : undefined;\n \n this.OverrideAmount = \n (odataObject.OverrideAmount != null) ? parseFloat(odataObject.OverrideAmount) : undefined;\n \n this.OverrideReasonDescription = \n odataObject.OverrideReasonDescription;\n \n this.OverrideDateTime = \n (odataObject.OverrideDateTime instanceof Date) ? odataObject.OverrideDateTime\n : (odataObject.OverrideDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OverrideDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.UserId = \n odataObject.UserId;\n \n }\n }\n entityDictionary['ChargeLineOverrideClass'] = ChargeLineOverrideClass;\n \n /**\n * TaxLineGTE entity class.\n */\n export class TaxLineGTEClass\n extends TaxLineClass\n implements Entities.TaxLineGTE {\n public TaxComponent: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaxComponent = \n odataObject.TaxComponent;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaxLineGTE\";\n \n }\n }\n entityDictionary['TaxLineGTEClass'] = TaxLineGTEClass;\n \n /**\n * TaxMeasure entity class.\n */\n export class TaxMeasureClass implements Entities.TaxMeasure {\n public Path: string;\n public Value: number;\n public DataAreaId: string;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Path = \n odataObject.Path;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxMeasureClass'] = TaxMeasureClass;\n \n /**\n * DetailedLineStatus entity class.\n */\n export class DetailedLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedLineStatus\";\n \n }\n }\n entityDictionary['DetailedLineStatusClass'] = DetailedLineStatusClass;\n \n /**\n * CardTokenInfo entity class.\n */\n export class CardTokenInfoClass implements Entities.CardTokenInfo {\n public CardToken: string;\n public UniqueCardId: string;\n public ServiceAccountId: string;\n public MaskedCardNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardToken = \n odataObject.CardToken;\n \n this.UniqueCardId = \n odataObject.UniqueCardId;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n }\n }\n entityDictionary['CardTokenInfoClass'] = CardTokenInfoClass;\n \n /**\n * DataverseTenderLine entity class.\n */\n export class DataverseTenderLineClass\n extends TenderLineClass\n implements Entities.DataverseTenderLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DataverseTenderLine\";\n \n }\n }\n entityDictionary['DataverseTenderLineClass'] = DataverseTenderLineClass;\n \n /**\n * PaymentError entity class.\n */\n export class PaymentErrorClass implements Entities.PaymentError {\n public Code: string;\n public Message: string;\n public IsLocalized: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.Message = \n odataObject.Message;\n \n this.IsLocalized = \n odataObject.IsLocalized;\n \n }\n }\n entityDictionary['PaymentErrorClass'] = PaymentErrorClass;\n \n /**\n * ProductAttributeMetadataFlags entity class.\n */\n export class ProductAttributeMetadataFlagsClass implements Entities.ProductAttributeMetadataFlags {\n public IsSearchable: boolean;\n public IsRetrievable: boolean;\n public IsQueryable: boolean;\n public IsRefinable: boolean;\n public IsSortable: boolean;\n public IsMultiValue: boolean;\n public IsTokenNormalization: boolean;\n public IsCompleteMatch: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSearchable = \n odataObject.IsSearchable;\n \n this.IsRetrievable = \n odataObject.IsRetrievable;\n \n this.IsQueryable = \n odataObject.IsQueryable;\n \n this.IsRefinable = \n odataObject.IsRefinable;\n \n this.IsSortable = \n odataObject.IsSortable;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsTokenNormalization = \n odataObject.IsTokenNormalization;\n \n this.IsCompleteMatch = \n odataObject.IsCompleteMatch;\n \n }\n }\n entityDictionary['ProductAttributeMetadataFlagsClass'] = ProductAttributeMetadataFlagsClass;\n \n /**\n * UnitOfMeasureConversion entity class.\n */\n export class UnitOfMeasureConversionClass implements Entities.UnitOfMeasureConversion {\n public ItemId: string;\n public FromUnitOfMeasureId: string;\n public ToUnitOfMeasureId: string;\n public FromUnitOfMeasureSymbol: string;\n public ToUnitOfMeasureSymbol: string;\n public IsBackward: boolean;\n public RecordId: number;\n public ProductRecordId: number;\n public Factor: number;\n public Numerator: number;\n public Denominator: number;\n public InnerOffset: number;\n public OuterOffset: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.FromUnitOfMeasureId = \n odataObject.FromUnitOfMeasureId;\n \n this.ToUnitOfMeasureId = \n odataObject.ToUnitOfMeasureId;\n \n this.FromUnitOfMeasureSymbol = \n odataObject.FromUnitOfMeasureSymbol;\n \n this.ToUnitOfMeasureSymbol = \n odataObject.ToUnitOfMeasureSymbol;\n \n this.IsBackward = \n odataObject.IsBackward;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.Factor = \n (odataObject.Factor != null) ? parseFloat(odataObject.Factor) : undefined;\n \n this.Numerator = \n odataObject.Numerator;\n \n this.Denominator = \n odataObject.Denominator;\n \n this.InnerOffset = \n (odataObject.InnerOffset != null) ? parseFloat(odataObject.InnerOffset) : undefined;\n \n this.OuterOffset = \n (odataObject.OuterOffset != null) ? parseFloat(odataObject.OuterOffset) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureConversionClass'] = UnitOfMeasureConversionClass;\n \n /**\n * ReturnLabelContent entity class.\n */\n export class ReturnLabelContentClass implements Entities.ReturnLabelContent {\n public ReturnLocationText: string;\n public ReturnWarehouseText: string;\n public ReturnReasonText: string;\n public ReturnPalleteText: string;\n public ItemId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnLocationText = \n odataObject.ReturnLocationText;\n \n this.ReturnWarehouseText = \n odataObject.ReturnWarehouseText;\n \n this.ReturnReasonText = \n odataObject.ReturnReasonText;\n \n this.ReturnPalleteText = \n odataObject.ReturnPalleteText;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnLabelContentClass'] = ReturnLabelContentClass;\n \n /**\n * LoyaltyRewardPointLine entity class.\n */\n export class LoyaltyRewardPointLineClass implements Entities.LoyaltyRewardPointLine {\n public TransactionId: string;\n public SaleLineNumber: number;\n public LoyaltyGroupRecordId: number;\n public LoyaltyCardNumber: string;\n public CustomerAccount: string;\n public EntryDate: Date;\n public EntryTime: number;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public LineNumber: number;\n public LoyaltyTierRecordId: number;\n public RewardPointRecordId: number;\n public RewardPointAmountQuantity: number;\n public RewardPointId: string;\n public RewardPointIsRedeemable: boolean;\n public RewardPointType: string;\n public RewardPointCurrency: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.LoyaltyGroupRecordId = \n (odataObject.LoyaltyGroupRecordId != null) ? parseInt(odataObject.LoyaltyGroupRecordId, 10) : undefined;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.EntryDate = \n (odataObject.EntryDate instanceof Date) ? odataObject.EntryDate\n : (odataObject.EntryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTime = \n odataObject.EntryTime;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.RewardPointRecordId = \n (odataObject.RewardPointRecordId != null) ? parseInt(odataObject.RewardPointRecordId, 10) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.RewardPointIsRedeemable = \n odataObject.RewardPointIsRedeemable;\n \n this.RewardPointType = \n odataObject.RewardPointType;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointLineClass'] = LoyaltyRewardPointLineClass;\n \n /**\n * TrackingInfo entity class.\n */\n export class TrackingInfoClass implements Entities.TrackingInfo {\n public TrackingNumber: string;\n public ServiceType: string;\n public PackageWeight: Entities.Weight;\n public ShippedOnDate: Date;\n public Status: string;\n public DeliveredOnDate: Date;\n public EstimatedDeliveryDate: Date;\n public TrackingUrl: string;\n public PackagingType: string;\n public DestinationAddress: Entities.Address;\n public OriginAddress: Entities.Address;\n public ShipmentProgress: Entities.ShipmentProgress[];\n public ShippingCharge: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.ServiceType = \n odataObject.ServiceType;\n \n if (odataObject.PackageWeight == null) {\n this.PackageWeight = undefined;\n } else if (odataObject.PackageWeight['@odata.type'] == null) {\n this.PackageWeight = new WeightClass(odataObject.PackageWeight);\n } else {\n var className: string = odataObject.PackageWeight['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PackageWeight = new entityDictionary[className](odataObject.PackageWeight)\n }\n }\n\n \n this.ShippedOnDate = \n (odataObject.ShippedOnDate instanceof Date) ? odataObject.ShippedOnDate\n : (odataObject.ShippedOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShippedOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.DeliveredOnDate = \n (odataObject.DeliveredOnDate instanceof Date) ? odataObject.DeliveredOnDate\n : (odataObject.DeliveredOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveredOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EstimatedDeliveryDate = \n (odataObject.EstimatedDeliveryDate instanceof Date) ? odataObject.EstimatedDeliveryDate\n : (odataObject.EstimatedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EstimatedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n this.PackagingType = \n odataObject.PackagingType;\n \n if (odataObject.DestinationAddress == null) {\n this.DestinationAddress = undefined;\n } else if (odataObject.DestinationAddress['@odata.type'] == null) {\n this.DestinationAddress = new AddressClass(odataObject.DestinationAddress);\n } else {\n var className: string = odataObject.DestinationAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationAddress = new entityDictionary[className](odataObject.DestinationAddress)\n }\n }\n\n \n if (odataObject.OriginAddress == null) {\n this.OriginAddress = undefined;\n } else if (odataObject.OriginAddress['@odata.type'] == null) {\n this.OriginAddress = new AddressClass(odataObject.OriginAddress);\n } else {\n var className: string = odataObject.OriginAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OriginAddress = new entityDictionary[className](odataObject.OriginAddress)\n }\n }\n\n \n this.ShipmentProgress = undefined;\n if (odataObject.ShipmentProgress) {\n this.ShipmentProgress = [];\n for (var i = 0; i < odataObject.ShipmentProgress.length; i++) {\n if (odataObject.ShipmentProgress[i] != null) {\n if (odataObject.ShipmentProgress[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentProgress[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentProgress[i] = new entityDictionary[className](odataObject.ShipmentProgress[i])\n }\n } else {\n this.ShipmentProgress[i] = new ShipmentProgressClass(odataObject.ShipmentProgress[i]);\n }\n } else {\n this.ShipmentProgress[i] = undefined;\n }\n }\n }\n \n this.ShippingCharge = \n (odataObject.ShippingCharge != null) ? parseFloat(odataObject.ShippingCharge) : undefined;\n \n }\n }\n entityDictionary['TrackingInfoClass'] = TrackingInfoClass;\n \n /**\n * Weight entity class.\n */\n export class WeightClass implements Entities.Weight {\n public Value: number;\n public Unit: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n }\n }\n entityDictionary['WeightClass'] = WeightClass;\n \n /**\n * ShipmentProgress entity class.\n */\n export class ShipmentProgressClass implements Entities.ShipmentProgress {\n public Location: Entities.Address;\n public DateTime: Date;\n public Activity: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Location == null) {\n this.Location = undefined;\n } else if (odataObject.Location['@odata.type'] == null) {\n this.Location = new AddressClass(odataObject.Location);\n } else {\n var className: string = odataObject.Location['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Location = new entityDictionary[className](odataObject.Location)\n }\n }\n\n \n this.DateTime = \n (odataObject.DateTime instanceof Date) ? odataObject.DateTime\n : (odataObject.DateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Activity = \n odataObject.Activity;\n \n }\n }\n entityDictionary['ShipmentProgressClass'] = ShipmentProgressClass;\n \n /**\n * ShiftKey entity class.\n */\n export class ShiftKeyClass implements Entities.ShiftKey {\n public ShiftTerminalId: string;\n public ShiftId: number;\n public Store: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftKeyClass'] = ShiftKeyClass;\n \n /**\n * LocalizedText entity class.\n */\n export class LocalizedTextClass implements Entities.LocalizedText {\n public RecordId: number;\n public LanguageId: string;\n public TextId: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedTextClass'] = LocalizedTextClass;\n \n /**\n * AddressFormattingInfo entity class.\n */\n export class AddressFormattingInfoClass implements Entities.AddressFormattingInfo {\n public AddressComponentNameValue: number;\n public LineNumber: number;\n public IsDataEntryOnly: boolean;\n public NewLine: boolean;\n public Expand: boolean;\n public Inactive: boolean;\n public Special: boolean;\n public NumberOfSpaces: number;\n public Separator: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressComponentNameValue = \n odataObject.AddressComponentNameValue;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.IsDataEntryOnly = \n odataObject.IsDataEntryOnly;\n \n this.NewLine = \n odataObject.NewLine;\n \n this.Expand = \n odataObject.Expand;\n \n this.Inactive = \n odataObject.Inactive;\n \n this.Special = \n odataObject.Special;\n \n this.NumberOfSpaces = \n odataObject.NumberOfSpaces;\n \n this.Separator = \n odataObject.Separator;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressFormattingInfoClass'] = AddressFormattingInfoClass;\n \n /**\n * HardwareConfigurations entity class.\n */\n export class HardwareConfigurationsClass implements Entities.HardwareConfigurations {\n public CashDrawerConfigurations: Entities.HardwareConfiguration[];\n public PrinterConfigurations: Entities.HardwareConfiguration[];\n public PinPadConfiguration: Entities.HardwareConfiguration;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashDrawerConfigurations = undefined;\n if (odataObject.CashDrawerConfigurations) {\n this.CashDrawerConfigurations = [];\n for (var i = 0; i < odataObject.CashDrawerConfigurations.length; i++) {\n if (odataObject.CashDrawerConfigurations[i] != null) {\n if (odataObject.CashDrawerConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawerConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawerConfigurations[i] = new entityDictionary[className](odataObject.CashDrawerConfigurations[i])\n }\n } else {\n this.CashDrawerConfigurations[i] = new HardwareConfigurationClass(odataObject.CashDrawerConfigurations[i]);\n }\n } else {\n this.CashDrawerConfigurations[i] = undefined;\n }\n }\n }\n \n this.PrinterConfigurations = undefined;\n if (odataObject.PrinterConfigurations) {\n this.PrinterConfigurations = [];\n for (var i = 0; i < odataObject.PrinterConfigurations.length; i++) {\n if (odataObject.PrinterConfigurations[i] != null) {\n if (odataObject.PrinterConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.PrinterConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PrinterConfigurations[i] = new entityDictionary[className](odataObject.PrinterConfigurations[i])\n }\n } else {\n this.PrinterConfigurations[i] = new HardwareConfigurationClass(odataObject.PrinterConfigurations[i]);\n }\n } else {\n this.PrinterConfigurations[i] = undefined;\n }\n }\n }\n \n if (odataObject.PinPadConfiguration == null) {\n this.PinPadConfiguration = undefined;\n } else if (odataObject.PinPadConfiguration['@odata.type'] == null) {\n this.PinPadConfiguration = new HardwareConfigurationClass(odataObject.PinPadConfiguration);\n } else {\n var className: string = odataObject.PinPadConfiguration['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PinPadConfiguration = new entityDictionary[className](odataObject.PinPadConfiguration)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationsClass'] = HardwareConfigurationsClass;\n \n /**\n * HardwareConfiguration entity class.\n */\n export class HardwareConfigurationClass implements Entities.HardwareConfiguration {\n public RecordId: number;\n public HardwareStationRecordId: number;\n public TerminalId: string;\n public DeviceName: string;\n public IPAddress: string;\n public Port: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationRecordId = \n (odataObject.HardwareStationRecordId != null) ? parseInt(odataObject.HardwareStationRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.IPAddress = \n odataObject.IPAddress;\n \n this.Port = \n odataObject.Port;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationClass'] = HardwareConfigurationClass;\n \n /**\n * Printer entity class.\n */\n export class PrinterClass implements Entities.Printer {\n public Name: string;\n public PrinterType: number;\n public Terminal: number;\n public PrintBehaviorValue: number;\n public ReceiptLayoutId: string;\n public HardwareProfileId: string;\n public ReceiptType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.PrinterType = \n odataObject.PrinterType;\n \n this.Terminal = \n (odataObject.Terminal != null) ? parseInt(odataObject.Terminal, 10) : undefined;\n \n this.PrintBehaviorValue = \n odataObject.PrintBehaviorValue;\n \n this.ReceiptLayoutId = \n odataObject.ReceiptLayoutId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.ReceiptType = \n odataObject.ReceiptType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PrinterClass'] = PrinterClass;\n \n /**\n * CustomerRefinerValue entity class.\n */\n export class CustomerRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.CustomerRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefinerValue\";\n \n }\n }\n entityDictionary['CustomerRefinerValueClass'] = CustomerRefinerValueClass;\n \n /**\n * TransferOrderJournalLine entity class.\n */\n export class TransferOrderJournalLineClass implements Entities.TransferOrderJournalLine {\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public TotalQuantityShipped: number;\n public QuantityShipped: number;\n public TransferQuantity: number;\n public UnitId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public DeliveryMethod: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.TransferQuantity = \n (odataObject.TransferQuantity != null) ? parseFloat(odataObject.TransferQuantity) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalLineClass'] = TransferOrderJournalLineClass;\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity class.\n */\n export class InventoryDocumentSourceSerialNumberLineClass implements Entities.InventoryDocumentSourceSerialNumberLine {\n public SourceDocumentTypeValue: number;\n public SourceDocumentId: string;\n public DocumentLineRecordId: number;\n public InventTransRecordId: number;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.DocumentLineRecordId = \n (odataObject.DocumentLineRecordId != null) ? parseInt(odataObject.DocumentLineRecordId, 10) : undefined;\n \n this.InventTransRecordId = \n (odataObject.InventTransRecordId != null) ? parseInt(odataObject.InventTransRecordId, 10) : undefined;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceSerialNumberLineClass'] = InventoryDocumentSourceSerialNumberLineClass;\n \n /**\n * KitTransactionLine entity class.\n */\n export class KitTransactionLineClass implements Entities.KitTransactionLine {\n public ItemId: string;\n public Quantity: number;\n public InventoryDimensionId: string;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitTransactionLineClass'] = KitTransactionLineClass;\n \n /**\n * StoreAddressBook entity class.\n */\n export class StoreAddressBookClass implements Entities.StoreAddressBook {\n public AddressBookId: number;\n public StoreId: number;\n public AddressBookTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressBookId = \n (odataObject.AddressBookId != null) ? parseInt(odataObject.AddressBookId, 10) : undefined;\n \n this.StoreId = \n (odataObject.StoreId != null) ? parseInt(odataObject.StoreId, 10) : undefined;\n \n this.AddressBookTypeValue = \n odataObject.AddressBookTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreAddressBookClass'] = StoreAddressBookClass;\n \n /**\n * TenderDetail entity class.\n */\n export class TenderDetailClass implements Entities.TenderDetail {\n public LineNumber: number;\n public Amount: number;\n public AmountInForeignCurrency: number;\n public ForeignCurrencyExchangeRate: number;\n public ForeignCurrency: string;\n public BankBagNumber: string;\n public TenderTypeId: string;\n public TenderRecount: number;\n public DenominationDetails: Entities.DenominationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountInForeignCurrency = \n (odataObject.AmountInForeignCurrency != null) ? parseFloat(odataObject.AmountInForeignCurrency) : undefined;\n \n this.ForeignCurrencyExchangeRate = \n (odataObject.ForeignCurrencyExchangeRate != null) ? parseFloat(odataObject.ForeignCurrencyExchangeRate) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.BankBagNumber = \n odataObject.BankBagNumber;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderRecount = \n odataObject.TenderRecount;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDetailClass'] = TenderDetailClass;\n \n /**\n * DenominationDetail entity class.\n */\n export class DenominationDetailClass implements Entities.DenominationDetail {\n public Type: number;\n public Currency: string;\n public DenominationAmount: number;\n public QuantityDeclared: number;\n public AmountDeclared: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Type = \n odataObject.Type;\n \n this.Currency = \n odataObject.Currency;\n \n this.DenominationAmount = \n (odataObject.DenominationAmount != null) ? parseFloat(odataObject.DenominationAmount) : undefined;\n \n this.QuantityDeclared = \n odataObject.QuantityDeclared;\n \n this.AmountDeclared = \n (odataObject.AmountDeclared != null) ? parseFloat(odataObject.AmountDeclared) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DenominationDetailClass'] = DenominationDetailClass;\n \n /**\n * ButtonGridZone entity class.\n */\n export class ButtonGridZoneClass implements Entities.ButtonGridZone {\n public ButtonGridId: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridId = \n odataObject.ButtonGridId;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridZoneClass'] = ButtonGridZoneClass;\n \n /**\n * ImageZone entity class.\n */\n export class ImageZoneClass implements Entities.ImageZone {\n public PictureId: number;\n public PictureAsBase64: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ImageZoneClass'] = ImageZoneClass;\n \n /**\n * ReportZone entity class.\n */\n export class ReportZoneClass implements Entities.ReportZone {\n public ReportRecordId: number;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportRecordId = \n (odataObject.ReportRecordId != null) ? parseInt(odataObject.ReportRecordId, 10) : undefined;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportZoneClass'] = ReportZoneClass;\n \n /**\n * SalesInvoiceLine entity class.\n */\n export class SalesInvoiceLineClass implements Entities.SalesInvoiceLine {\n public RecordId: number;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public InventDimensionId: string;\n public InventTransactionId: string;\n public Quantity: number;\n public Price: number;\n public DiscountPercent: number;\n public DiscountAmount: number;\n public BatchId: string;\n public NetAmount: number;\n public Site: string;\n public Warehouse: string;\n public SerialId: string;\n public ColorId: string;\n public SizeId: string;\n public StyleId: string;\n public ConfigId: string;\n public ColorName: string;\n public SizeName: string;\n public StyleName: string;\n public ConfigName: string;\n public SalesTaxGroup: string;\n public ItemTaxGroup: string;\n public SalesMarkup: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public PeriodicPercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.InventTransactionId = \n odataObject.InventTransactionId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.Site = \n odataObject.Site;\n \n this.Warehouse = \n odataObject.Warehouse;\n \n this.SerialId = \n odataObject.SerialId;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.ColorName = \n odataObject.ColorName;\n \n this.SizeName = \n odataObject.SizeName;\n \n this.StyleName = \n odataObject.StyleName;\n \n this.ConfigName = \n odataObject.ConfigName;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.ItemTaxGroup = \n odataObject.ItemTaxGroup;\n \n this.SalesMarkup = \n (odataObject.SalesMarkup != null) ? parseFloat(odataObject.SalesMarkup) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceLineClass'] = SalesInvoiceLineClass;\n \n /**\n * ReportRow entity class.\n */\n export class ReportRowClass implements Entities.ReportRow {\n public RowData: Entities.CommerceProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RowData = undefined;\n if (odataObject.RowData) {\n this.RowData = [];\n for (var i = 0; i < odataObject.RowData.length; i++) {\n if (odataObject.RowData[i] != null) {\n if (odataObject.RowData[i]['@odata.type'] != null) {\n var className: string = odataObject.RowData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RowData[i] = new entityDictionary[className](odataObject.RowData[i])\n }\n } else {\n this.RowData[i] = new CommercePropertyClass(odataObject.RowData[i]);\n }\n } else {\n this.RowData[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportRowClass'] = ReportRowClass;\n \n /**\n * FormAnnotation entity class.\n */\n export class FormAnnotationClass\n extends AnnotationClass\n implements Entities.FormAnnotation {\n public MenuItemLabel: string;\n public MenuItemName: string;\n public MenuItemType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemLabel = \n odataObject.MenuItemLabel;\n \n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormAnnotation\";\n \n }\n }\n entityDictionary['FormAnnotationClass'] = FormAnnotationClass;\n \n /**\n * TaskGuideAnnotation entity class.\n */\n export class TaskGuideAnnotationClass\n extends AnnotationClass\n implements Entities.TaskGuideAnnotation {\n public RecordingValueType: string;\n public Title: string;\n public ExampleText: string;\n public Hidden: boolean;\n public GlobalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RecordingValueType = \n odataObject.RecordingValueType;\n \n this.Title = \n odataObject.Title;\n \n this.ExampleText = \n odataObject.ExampleText;\n \n this.Hidden = \n odataObject.Hidden;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskGuideAnnotation\";\n \n }\n }\n entityDictionary['TaskGuideAnnotationClass'] = TaskGuideAnnotationClass;\n \n /**\n * CommandArgument entity class.\n */\n export class CommandArgumentClass implements Entities.CommandArgument {\n public Value: string;\n public IsReference: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.IsReference = \n odataObject.IsReference;\n \n }\n }\n entityDictionary['CommandArgumentClass'] = CommandArgumentClass;\n \n /**\n * PropertyUserAction entity class.\n */\n export class PropertyUserActionClass\n extends FormUserActionClass\n implements Entities.PropertyUserAction {\n public Value: string;\n public ValueLabel: string;\n public PropertyName: string;\n public ControlName: string;\n public ControlType: string;\n public UserActionType: string;\n public IsReference: boolean;\n public LabelId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ValueLabel = \n odataObject.ValueLabel;\n \n this.PropertyName = \n odataObject.PropertyName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.UserActionType = \n odataObject.UserActionType;\n \n this.IsReference = \n odataObject.IsReference;\n \n this.LabelId = \n odataObject.LabelId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PropertyUserAction\";\n \n }\n }\n entityDictionary['PropertyUserActionClass'] = PropertyUserActionClass;\n \n /**\n * InfoUserAction entity class.\n */\n export class InfoUserActionClass\n extends UserActionClass\n implements Entities.InfoUserAction {\n public FormId: string;\n public ControlLabel: string;\n public ControlLabelId: string;\n public ControlName: string;\n public Text: string;\n public Notes: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this.ControlLabelId = \n odataObject.ControlLabelId;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.Text = \n odataObject.Text;\n \n this.Notes = \n odataObject.Notes;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InfoUserAction\";\n \n }\n }\n entityDictionary['InfoUserActionClass'] = InfoUserActionClass;\n \n /**\n * MenuItemUserAction entity class.\n */\n export class MenuItemUserActionClass\n extends UserActionClass\n implements Entities.MenuItemUserAction {\n public MenuItemName: string;\n public MenuItemType: string;\n public NavigationPath: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this.NavigationPath = undefined;\n if (odataObject.NavigationPath) {\n this.NavigationPath = [];\n for (var i = 0; i < odataObject.NavigationPath.length; i++) {\n if (odataObject.NavigationPath[i] != null) {\n this.NavigationPath[i] = \n odataObject.NavigationPath[i];\n } else {\n this.NavigationPath[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.MenuItemUserAction\";\n \n }\n }\n entityDictionary['MenuItemUserActionClass'] = MenuItemUserActionClass;\n \n /**\n * ValidationUserAction entity class.\n */\n export class ValidationUserActionClass\n extends UserActionClass\n implements Entities.ValidationUserAction {\n public Name: string;\n public Comment: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ValidationUserAction\";\n \n }\n }\n entityDictionary['ValidationUserActionClass'] = ValidationUserActionClass;\n \n /**\n * ArtifactSummary entity class.\n */\n export class ArtifactSummaryClass implements Entities.ArtifactSummary {\n public ArtifactType: string;\n public LanguageTags: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ArtifactType = \n odataObject.ArtifactType;\n \n this.LanguageTags = undefined;\n if (odataObject.LanguageTags) {\n this.LanguageTags = [];\n for (var i = 0; i < odataObject.LanguageTags.length; i++) {\n if (odataObject.LanguageTags[i] != null) {\n this.LanguageTags[i] = \n odataObject.LanguageTags[i];\n } else {\n this.LanguageTags[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ArtifactSummaryClass'] = ArtifactSummaryClass;\n \n /**\n * MetadataPropertyValue entity class.\n */\n export class MetadataPropertyValueClass implements Entities.MetadataPropertyValue {\n public PropertyId: string;\n public SingleValue: string;\n public MultiValue: Entities.MetadataText[];\n public Tags: string[];\n public ComboBox: string;\n public MultiSelect: string[];\n public Links: Entities.MetadataHypertextLink[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PropertyId = \n odataObject.PropertyId;\n \n this.SingleValue = \n odataObject.SingleValue;\n \n this.MultiValue = undefined;\n if (odataObject.MultiValue) {\n this.MultiValue = [];\n for (var i = 0; i < odataObject.MultiValue.length; i++) {\n if (odataObject.MultiValue[i] != null) {\n if (odataObject.MultiValue[i]['@odata.type'] != null) {\n var className: string = odataObject.MultiValue[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MultiValue[i] = new entityDictionary[className](odataObject.MultiValue[i])\n }\n } else {\n this.MultiValue[i] = new MetadataTextClass(odataObject.MultiValue[i]);\n }\n } else {\n this.MultiValue[i] = undefined;\n }\n }\n }\n \n this.Tags = undefined;\n if (odataObject.Tags) {\n this.Tags = [];\n for (var i = 0; i < odataObject.Tags.length; i++) {\n if (odataObject.Tags[i] != null) {\n this.Tags[i] = \n odataObject.Tags[i];\n } else {\n this.Tags[i] = undefined;\n }\n }\n }\n \n this.ComboBox = \n odataObject.ComboBox;\n \n this.MultiSelect = undefined;\n if (odataObject.MultiSelect) {\n this.MultiSelect = [];\n for (var i = 0; i < odataObject.MultiSelect.length; i++) {\n if (odataObject.MultiSelect[i] != null) {\n this.MultiSelect[i] = \n odataObject.MultiSelect[i];\n } else {\n this.MultiSelect[i] = undefined;\n }\n }\n }\n \n this.Links = undefined;\n if (odataObject.Links) {\n this.Links = [];\n for (var i = 0; i < odataObject.Links.length; i++) {\n if (odataObject.Links[i] != null) {\n if (odataObject.Links[i]['@odata.type'] != null) {\n var className: string = odataObject.Links[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Links[i] = new entityDictionary[className](odataObject.Links[i])\n }\n } else {\n this.Links[i] = new MetadataHypertextLinkClass(odataObject.Links[i]);\n }\n } else {\n this.Links[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MetadataPropertyValueClass'] = MetadataPropertyValueClass;\n \n /**\n * FormContext entity class.\n */\n export class FormContextClass implements Entities.FormContext {\n public FormID: string;\n public FormName: string;\n public RecordingName: string;\n public HasMetadata: boolean;\n public Sequence: number;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormID = \n odataObject.FormID;\n \n this.FormName = \n odataObject.FormName;\n \n this.RecordingName = \n odataObject.RecordingName;\n \n this.HasMetadata = \n odataObject.HasMetadata;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FormContextClass'] = FormContextClass;\n \n /**\n * ExtensibleFiscalRegistrationType entity class.\n */\n export class ExtensibleFiscalRegistrationTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleFiscalRegistrationType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleFiscalRegistrationType\";\n \n }\n }\n entityDictionary['ExtensibleFiscalRegistrationTypeClass'] = ExtensibleFiscalRegistrationTypeClass;\n \n /**\n * FiscalTransactionTenderLineAdjustment entity class.\n */\n export class FiscalTransactionTenderLineAdjustmentClass implements Entities.FiscalTransactionTenderLineAdjustment {\n public TenderLineNumber: number;\n public AdjustmentAmount: number;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineNumber = \n (odataObject.TenderLineNumber != null) ? parseFloat(odataObject.TenderLineNumber) : undefined;\n \n this.AdjustmentAmount = \n (odataObject.AdjustmentAmount != null) ? parseFloat(odataObject.AdjustmentAmount) : undefined;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionTenderLineAdjustmentClass'] = FiscalTransactionTenderLineAdjustmentClass;\n \n /**\n * FiscalTransactionSalesLineAdjustment entity class.\n */\n export class FiscalTransactionSalesLineAdjustmentClass implements Entities.FiscalTransactionSalesLineAdjustment {\n public SalesLineNumber: number;\n public Exclude: boolean;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Exclude = \n odataObject.Exclude;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionSalesLineAdjustmentClass'] = FiscalTransactionSalesLineAdjustmentClass;\n \n /**\n * DetailedOrderStatus entity class.\n */\n export class DetailedOrderStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedOrderStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedOrderStatus\";\n \n }\n }\n entityDictionary['DetailedOrderStatusClass'] = DetailedOrderStatusClass;\n \n /**\n * LineValidationResult entity class.\n */\n export class LineValidationResultClass implements Entities.LineValidationResult {\n public LineId: string;\n public ValidationFailures: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.ValidationFailures = undefined;\n if (odataObject.ValidationFailures) {\n this.ValidationFailures = [];\n for (var i = 0; i < odataObject.ValidationFailures.length; i++) {\n if (odataObject.ValidationFailures[i] != null) {\n if (odataObject.ValidationFailures[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailures[i] = new entityDictionary[className](odataObject.ValidationFailures[i])\n }\n } else {\n this.ValidationFailures[i] = new DataValidationFailureClass(odataObject.ValidationFailures[i]);\n }\n } else {\n this.ValidationFailures[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineValidationResultClass'] = LineValidationResultClass;\n \n /**\n * SalesAffiliationLoyaltyTier entity class.\n */\n export class SalesAffiliationLoyaltyTierClass\n extends AffiliationLoyaltyTierClass\n implements Entities.SalesAffiliationLoyaltyTier {\n public TransactionId: string;\n public ChannelId: number;\n public TerminalId: string;\n public ReceiptId: string;\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAffiliationLoyaltyTier\";\n \n }\n }\n entityDictionary['SalesAffiliationLoyaltyTierClass'] = SalesAffiliationLoyaltyTierClass;\n \n /**\n * TaxViewLine entity class.\n */\n export class TaxViewLineClass implements Entities.TaxViewLine {\n public TaxId: string;\n public TaxAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxId = \n odataObject.TaxId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n }\n }\n entityDictionary['TaxViewLineClass'] = TaxViewLineClass;\n \n /**\n * Coupon entity class.\n */\n export class CouponClass implements Entities.Coupon {\n public CodeId: string;\n public Code: string;\n public DiscountOfferId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CodeId = \n odataObject.CodeId;\n \n this.Code = \n odataObject.Code;\n \n this.DiscountOfferId = \n odataObject.DiscountOfferId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CouponClass'] = CouponClass;\n \n /**\n * CustomerAccountDepositLine entity class.\n */\n export class CustomerAccountDepositLineClass implements Entities.CustomerAccountDepositLine {\n public Amount: number;\n public CustomerAccount: string;\n public Comment: string;\n public StoreNumber: string;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.Comment = \n odataObject.Comment;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAccountDepositLineClass'] = CustomerAccountDepositLineClass;\n \n /**\n * CustomerAttribute entity class.\n */\n export class CustomerAttributeClass implements Entities.CustomerAttribute {\n public AttributeValue: Entities.CommercePropertyValue;\n public Units: string;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new CommercePropertyValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.Units = \n odataObject.Units;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAttributeClass'] = CustomerAttributeClass;\n \n /**\n * ContactInfo entity class.\n */\n export class ContactInfoClass implements Entities.ContactInfo {\n public AddressTypeValue: number;\n public RecordId: number;\n public PartyLocationRecordId: number;\n public PartyRecordId: number;\n public PartyNumber: string;\n public Description: string;\n public Value: string;\n public ValueExtension: string;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public ParentLocation: number;\n public IsPrimary: boolean;\n public IsMobilePhone: boolean;\n public IsPrivate: boolean;\n public IsOptedInMarketing: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PartyLocationRecordId = \n (odataObject.PartyLocationRecordId != null) ? parseInt(odataObject.PartyLocationRecordId, 10) : undefined;\n \n this.PartyRecordId = \n (odataObject.PartyRecordId != null) ? parseInt(odataObject.PartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.Description = \n odataObject.Description;\n \n this.Value = \n odataObject.Value;\n \n this.ValueExtension = \n odataObject.ValueExtension;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.ParentLocation = \n (odataObject.ParentLocation != null) ? parseInt(odataObject.ParentLocation, 10) : undefined;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsMobilePhone = \n odataObject.IsMobilePhone;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsOptedInMarketing = \n odataObject.IsOptedInMarketing;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInfoClass'] = ContactInfoClass;\n \n /**\n * InventoryQuantities entity class.\n */\n export class InventoryQuantitiesClass implements Entities.InventoryQuantities {\n public UnitOfMeasure: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public QuantityReturned: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.QuantityReturned = \n (odataObject.QuantityReturned != null) ? parseFloat(odataObject.QuantityReturned) : undefined;\n \n }\n }\n entityDictionary['InventoryQuantitiesClass'] = InventoryQuantitiesClass;\n \n /**\n * DeliveryInformation entity class.\n */\n export class DeliveryInformationClass implements Entities.DeliveryInformation {\n public DeliveryMode: string;\n public DeliveryAddress: Entities.Address;\n public DeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['DeliveryInformationClass'] = DeliveryInformationClass;\n \n /**\n * ShiftTaxLine entity class.\n */\n export class ShiftTaxLineClass implements Entities.ShiftTaxLine {\n public TaxCode: string;\n public TaxAmount: number;\n public TaxRate: number;\n public NetAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxCode = \n odataObject.TaxCode;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxRate = \n (odataObject.TaxRate != null) ? parseFloat(odataObject.TaxRate) : undefined;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTaxLineClass'] = ShiftTaxLineClass;\n \n /**\n * TaxRegistration entity class.\n */\n export class TaxRegistrationClass implements Entities.TaxRegistration {\n public RecordId: number;\n public Name: string;\n public CountryRegionId: string;\n public IsRegistrationNumberUnique: boolean;\n public IsPrimaryAddressRestricted: boolean;\n public TypeApplicabilityRuleRecordId: number;\n public TypeValue: number;\n public Description: string;\n public DirPartyLocationRecordId: number;\n public RegistrationNumber: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public Issuer: string;\n public IssueDate: Date;\n public Section: string;\n public DirectoryPartyRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsRegistrationNumberUnique = \n odataObject.IsRegistrationNumberUnique;\n \n this.IsPrimaryAddressRestricted = \n odataObject.IsPrimaryAddressRestricted;\n \n this.TypeApplicabilityRuleRecordId = \n (odataObject.TypeApplicabilityRuleRecordId != null) ? parseInt(odataObject.TypeApplicabilityRuleRecordId, 10) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DirPartyLocationRecordId = \n (odataObject.DirPartyLocationRecordId != null) ? parseInt(odataObject.DirPartyLocationRecordId, 10) : undefined;\n \n this.RegistrationNumber = \n odataObject.RegistrationNumber;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.IssueDate = \n (odataObject.IssueDate instanceof Date) ? odataObject.IssueDate\n : (odataObject.IssueDate != null) ? jsonLightReadStringPropertyValue(odataObject.IssueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Section = \n odataObject.Section;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxRegistrationClass'] = TaxRegistrationClass;\n \n /**\n * ChannelTaxRegistration entity class.\n */\n export class ChannelTaxRegistrationClass\n extends TaxRegistrationClass\n implements Entities.ChannelTaxRegistration {\n public ChannelId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ChannelTaxRegistration\";\n \n }\n }\n entityDictionary['ChannelTaxRegistrationClass'] = ChannelTaxRegistrationClass;\n \n /**\n * LinkedProduct entity class.\n */\n export class LinkedProductClass implements Entities.LinkedProduct {\n public ProductRecordId: number;\n public LinkedProductRecordId: number;\n public Quantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.LinkedProductRecordId = \n (odataObject.LinkedProductRecordId != null) ? parseInt(odataObject.LinkedProductRecordId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LinkedProductClass'] = LinkedProductClass;\n \n /**\n * DisplayOrderInCategory entity class.\n */\n export class DisplayOrderInCategoryClass implements Entities.DisplayOrderInCategory {\n public CategoryRecordId: number;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryRecordId = \n (odataObject.CategoryRecordId != null) ? parseInt(odataObject.CategoryRecordId, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DisplayOrderInCategoryClass'] = DisplayOrderInCategoryClass;\n \n /**\n * RelatedProduct entity class.\n */\n export class RelatedProductClass implements Entities.RelatedProduct {\n public ProductRecordId: number;\n public RelatedProductRecordId: number;\n public CatalogId: number;\n public RelationName: string;\n public IsExcludedRelation: boolean;\n public IsDirectRelation: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.RelatedProductRecordId = \n (odataObject.RelatedProductRecordId != null) ? parseInt(odataObject.RelatedProductRecordId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.RelationName = \n odataObject.RelationName;\n \n this.IsExcludedRelation = \n odataObject.IsExcludedRelation;\n \n this.IsDirectRelation = \n odataObject.IsDirectRelation;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RelatedProductClass'] = RelatedProductClass;\n \n /**\n * KitComponent entity class.\n */\n export class KitComponentClass implements Entities.KitComponent {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitComponentClass'] = KitComponentClass;\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity class.\n */\n export class ChannelReferenceAdditionalLookupCriteriaClass implements Entities.ChannelReferenceAdditionalLookupCriteria {\n public OrderLookupAdditionalCriteriaTypeValue: number;\n public OrderLookupAdditionalCriteriaTypeParameterValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderLookupAdditionalCriteriaTypeValue = \n odataObject.OrderLookupAdditionalCriteriaTypeValue;\n \n this.OrderLookupAdditionalCriteriaTypeParameterValue = \n odataObject.OrderLookupAdditionalCriteriaTypeParameterValue;\n \n }\n }\n entityDictionary['ChannelReferenceAdditionalLookupCriteriaClass'] = ChannelReferenceAdditionalLookupCriteriaClass;\n \n /**\n * UserAlertFulfillmentLineParameter entity class.\n */\n export class UserAlertFulfillmentLineParameterClass\n extends FulfillmentLineParameterClass\n implements Entities.UserAlertFulfillmentLineParameter {\n public ItemId: string;\n public ProductId: number;\n public UnitOfMeasure: string;\n public SerialNumberInLatestFulfillmentTransaction: string;\n public LatestFulfillmentTransactionOperationTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.SerialNumberInLatestFulfillmentTransaction = \n odataObject.SerialNumberInLatestFulfillmentTransaction;\n \n this.LatestFulfillmentTransactionOperationTypeValue = \n odataObject.LatestFulfillmentTransactionOperationTypeValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAlertFulfillmentLineParameter\";\n \n }\n }\n entityDictionary['UserAlertFulfillmentLineParameterClass'] = UserAlertFulfillmentLineParameterClass;\n \n /**\n * ListingIdentity entity class.\n */\n export class ListingIdentityClass implements Entities.ListingIdentity {\n public ProductId: number;\n public LanguageId: string;\n public CatalogId: number;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingIdentityClass'] = ListingIdentityClass;\n \n /**\n * ProductRatingCount entity class.\n */\n export class ProductRatingCountClass implements Entities.ProductRatingCount {\n public Rating: number;\n public Count: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Rating = \n (odataObject.Rating != null) ? parseFloat(odataObject.Rating) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingCountClass'] = ProductRatingCountClass;\n \n /**\n * RegularStoreHours entity class.\n */\n export class RegularStoreHoursClass implements Entities.RegularStoreHours {\n public MondayOpenTime: number;\n public MondayCloseTime: number;\n public IsClosedOnMonday: boolean;\n public TuesdayOpenTime: number;\n public TuesdayCloseTime: number;\n public IsClosedOnTuesday: boolean;\n public WednesdayOpenTime: number;\n public WednesdayCloseTime: number;\n public IsClosedOnWednesday: boolean;\n public ThursdayOpenTime: number;\n public ThursdayCloseTime: number;\n public IsClosedOnThursday: boolean;\n public FridayOpenTime: number;\n public FridayCloseTime: number;\n public IsClosedOnFriday: boolean;\n public SaturdayOpenTime: number;\n public SaturdayCloseTime: number;\n public IsClosedOnSaturday: boolean;\n public SundayOpenTime: number;\n public SundayCloseTime: number;\n public IsClosedOnSunday: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MondayOpenTime = \n odataObject.MondayOpenTime;\n \n this.MondayCloseTime = \n odataObject.MondayCloseTime;\n \n this.IsClosedOnMonday = \n odataObject.IsClosedOnMonday;\n \n this.TuesdayOpenTime = \n odataObject.TuesdayOpenTime;\n \n this.TuesdayCloseTime = \n odataObject.TuesdayCloseTime;\n \n this.IsClosedOnTuesday = \n odataObject.IsClosedOnTuesday;\n \n this.WednesdayOpenTime = \n odataObject.WednesdayOpenTime;\n \n this.WednesdayCloseTime = \n odataObject.WednesdayCloseTime;\n \n this.IsClosedOnWednesday = \n odataObject.IsClosedOnWednesday;\n \n this.ThursdayOpenTime = \n odataObject.ThursdayOpenTime;\n \n this.ThursdayCloseTime = \n odataObject.ThursdayCloseTime;\n \n this.IsClosedOnThursday = \n odataObject.IsClosedOnThursday;\n \n this.FridayOpenTime = \n odataObject.FridayOpenTime;\n \n this.FridayCloseTime = \n odataObject.FridayCloseTime;\n \n this.IsClosedOnFriday = \n odataObject.IsClosedOnFriday;\n \n this.SaturdayOpenTime = \n odataObject.SaturdayOpenTime;\n \n this.SaturdayCloseTime = \n odataObject.SaturdayCloseTime;\n \n this.IsClosedOnSaturday = \n odataObject.IsClosedOnSaturday;\n \n this.SundayOpenTime = \n odataObject.SundayOpenTime;\n \n this.SundayCloseTime = \n odataObject.SundayCloseTime;\n \n this.IsClosedOnSunday = \n odataObject.IsClosedOnSunday;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RegularStoreHoursClass'] = RegularStoreHoursClass;\n \n /**\n * ValidationPeriod entity class.\n */\n export class ValidationPeriodClass implements Entities.ValidationPeriod {\n public RecordId: number;\n public PeriodId: string;\n public Description: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public StartingTime: number;\n public EndingTime: number;\n public IsTimeBounded: number;\n public MondayStartingTime: number;\n public MondayEndingTime: number;\n public IsMondayTimeBounded: number;\n public TuesdayStartingTime: number;\n public TuesdayEndingTime: number;\n public IsTuesdayTimeBounded: number;\n public WednesdayStartingTime: number;\n public WednesdayEndingTime: number;\n public IsWednesdayTimeBounded: number;\n public ThursdayStartingTime: number;\n public ThursdayEndingTime: number;\n public IsThursdayTimeBounded: number;\n public FridayStartingTime: number;\n public FridayEndingTime: number;\n public IsFridayTimeBounded: number;\n public SaturdayStartingTime: number;\n public SaturdayEndingTime: number;\n public IsSaturdayTimeBounded: number;\n public SundayStartingTime: number;\n public SundayEndingTime: number;\n public IsSundayTimeBounded: number;\n public IsEndTimeAfterMidnight: number;\n public IsMondayEndTimeAfterMidnight: number;\n public IsTuesdayEndTimeAfterMidnight: number;\n public IsWednesdayEndTimeAfterMidnight: number;\n public IsThursdayEndTimeAfterMidnight: number;\n public IsFridayEndTimeAfterMidnight: number;\n public IsSaturdayEndTimeAfterMidnight: number;\n public IsSundayEndTimeAfterMidnight: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PeriodId = \n odataObject.PeriodId;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StartingTime = \n odataObject.StartingTime;\n \n this.EndingTime = \n odataObject.EndingTime;\n \n this.IsTimeBounded = \n odataObject.IsTimeBounded;\n \n this.MondayStartingTime = \n odataObject.MondayStartingTime;\n \n this.MondayEndingTime = \n odataObject.MondayEndingTime;\n \n this.IsMondayTimeBounded = \n odataObject.IsMondayTimeBounded;\n \n this.TuesdayStartingTime = \n odataObject.TuesdayStartingTime;\n \n this.TuesdayEndingTime = \n odataObject.TuesdayEndingTime;\n \n this.IsTuesdayTimeBounded = \n odataObject.IsTuesdayTimeBounded;\n \n this.WednesdayStartingTime = \n odataObject.WednesdayStartingTime;\n \n this.WednesdayEndingTime = \n odataObject.WednesdayEndingTime;\n \n this.IsWednesdayTimeBounded = \n odataObject.IsWednesdayTimeBounded;\n \n this.ThursdayStartingTime = \n odataObject.ThursdayStartingTime;\n \n this.ThursdayEndingTime = \n odataObject.ThursdayEndingTime;\n \n this.IsThursdayTimeBounded = \n odataObject.IsThursdayTimeBounded;\n \n this.FridayStartingTime = \n odataObject.FridayStartingTime;\n \n this.FridayEndingTime = \n odataObject.FridayEndingTime;\n \n this.IsFridayTimeBounded = \n odataObject.IsFridayTimeBounded;\n \n this.SaturdayStartingTime = \n odataObject.SaturdayStartingTime;\n \n this.SaturdayEndingTime = \n odataObject.SaturdayEndingTime;\n \n this.IsSaturdayTimeBounded = \n odataObject.IsSaturdayTimeBounded;\n \n this.SundayStartingTime = \n odataObject.SundayStartingTime;\n \n this.SundayEndingTime = \n odataObject.SundayEndingTime;\n \n this.IsSundayTimeBounded = \n odataObject.IsSundayTimeBounded;\n \n this.IsEndTimeAfterMidnight = \n odataObject.IsEndTimeAfterMidnight;\n \n this.IsMondayEndTimeAfterMidnight = \n odataObject.IsMondayEndTimeAfterMidnight;\n \n this.IsTuesdayEndTimeAfterMidnight = \n odataObject.IsTuesdayEndTimeAfterMidnight;\n \n this.IsWednesdayEndTimeAfterMidnight = \n odataObject.IsWednesdayEndTimeAfterMidnight;\n \n this.IsThursdayEndTimeAfterMidnight = \n odataObject.IsThursdayEndTimeAfterMidnight;\n \n this.IsFridayEndTimeAfterMidnight = \n odataObject.IsFridayEndTimeAfterMidnight;\n \n this.IsSaturdayEndTimeAfterMidnight = \n odataObject.IsSaturdayEndTimeAfterMidnight;\n \n this.IsSundayEndTimeAfterMidnight = \n odataObject.IsSundayEndTimeAfterMidnight;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidationPeriodClass'] = ValidationPeriodClass;\n \n /**\n * ClientBookChange entity class.\n */\n export class ClientBookChangeClass implements Entities.ClientBookChange {\n public FromStaffId: string;\n public ToStaffId: string;\n public CustomerId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromStaffId = \n odataObject.FromStaffId;\n \n this.ToStaffId = \n odataObject.ToStaffId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n }\n }\n entityDictionary['ClientBookChangeClass'] = ClientBookChangeClass;\n \n /**\n * ChannelProfile entity class.\n */\n export class ChannelProfileClass implements Entities.ChannelProfile {\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfileClass'] = ChannelProfileClass;\n \n /**\n * RetailSharedConfigurationParameter entity class.\n */\n export class RetailSharedConfigurationParameterClass implements Entities.RetailSharedConfigurationParameter {\n public RecordId: number;\n public Name: string;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RetailSharedConfigurationParameterClass'] = RetailSharedConfigurationParameterClass;\n \n /**\n * CDXDataStore entity class.\n */\n export class CDXDataStoreClass implements Entities.CDXDataStore {\n public Name: string;\n public RecId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CDXDataStoreClass'] = CDXDataStoreClass;\n \n /**\n * UploadJobPackageRequest entity class.\n */\n export class UploadJobPackageRequestClass implements Entities.UploadJobPackageRequest {\n public JobId: string;\n public RerunUploadSessionId: number;\n public TargetStorage: string;\n public UploadJobDefintion: string;\n public UploadUrl: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JobId = \n odataObject.JobId;\n \n this.RerunUploadSessionId = \n (odataObject.RerunUploadSessionId != null) ? parseInt(odataObject.RerunUploadSessionId, 10) : undefined;\n \n this.TargetStorage = \n odataObject.TargetStorage;\n \n this.UploadJobDefintion = \n odataObject.UploadJobDefintion;\n \n this.UploadUrl = \n odataObject.UploadUrl;\n \n }\n }\n entityDictionary['UploadJobPackageRequestClass'] = UploadJobPackageRequestClass;\n \n /**\n * ExtensibleAuditEventType entity class.\n */\n export class ExtensibleAuditEventTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAuditEventType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAuditEventType\";\n \n }\n }\n entityDictionary['ExtensibleAuditEventTypeClass'] = ExtensibleAuditEventTypeClass;\n \n /**\n * AuditEventFiscalTransaction entity class.\n */\n export class AuditEventFiscalTransactionClass implements Entities.AuditEventFiscalTransaction {\n public EventId: number;\n public LineNumber: number;\n public RegisterResponse: string;\n public Store: string;\n public TransDateTime: Date;\n public Terminal: string;\n public UploadType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.Store = \n odataObject.Store;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalTransactionClass'] = AuditEventFiscalTransactionClass;\n \n /**\n * AuditEventFiscalRegistrationLine entity class.\n */\n export class AuditEventFiscalRegistrationLineClass implements Entities.AuditEventFiscalRegistrationLine {\n public EventId: number;\n public RegisterResponse: string;\n public StoreId: string;\n public TransactionDateTime: Date;\n public TerminalId: string;\n public UploadType: string;\n public UploadTypeValue: number;\n public StaffId: string;\n public RecordGuid: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TransactionDateTime = \n (odataObject.TransactionDateTime instanceof Date) ? odataObject.TransactionDateTime\n : (odataObject.TransactionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.UploadTypeValue = \n odataObject.UploadTypeValue;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalRegistrationLineClass'] = AuditEventFiscalRegistrationLineClass;\n \n /**\n * NotificationDetail entity class.\n */\n export class NotificationDetailClass implements Entities.NotificationDetail {\n public ActionProperty: string;\n public ItemCount: number;\n public DisplayText: string;\n public IsNew: boolean;\n public LastUpdatedDateTimeStr: string;\n public IsSuccess: boolean;\n public IsLiveContentOnly: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActionProperty = \n odataObject.ActionProperty;\n \n this.ItemCount = \n (odataObject.ItemCount != null) ? parseInt(odataObject.ItemCount, 10) : undefined;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n this.IsNew = \n odataObject.IsNew;\n \n this.LastUpdatedDateTimeStr = \n odataObject.LastUpdatedDateTimeStr;\n \n this.IsSuccess = \n odataObject.IsSuccess;\n \n this.IsLiveContentOnly = \n odataObject.IsLiveContentOnly;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationDetailClass'] = NotificationDetailClass;\n \n /**\n * FiscalIntegrationDocumentContext entity class.\n */\n export class FiscalIntegrationDocumentContextClass implements Entities.FiscalIntegrationDocumentContext {\n public AuditEvent: Entities.AuditEvent;\n public SignatureData: Entities.FiscalIntegrationSequentialSignatureData[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AuditEvent == null) {\n this.AuditEvent = undefined;\n } else if (odataObject.AuditEvent['@odata.type'] == null) {\n this.AuditEvent = new AuditEventClass(odataObject.AuditEvent);\n } else {\n var className: string = odataObject.AuditEvent['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AuditEvent = new entityDictionary[className](odataObject.AuditEvent)\n }\n }\n\n \n this.SignatureData = undefined;\n if (odataObject.SignatureData) {\n this.SignatureData = [];\n for (var i = 0; i < odataObject.SignatureData.length; i++) {\n if (odataObject.SignatureData[i] != null) {\n if (odataObject.SignatureData[i]['@odata.type'] != null) {\n var className: string = odataObject.SignatureData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SignatureData[i] = new entityDictionary[className](odataObject.SignatureData[i])\n }\n } else {\n this.SignatureData[i] = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SignatureData[i]);\n }\n } else {\n this.SignatureData[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentContextClass'] = FiscalIntegrationDocumentContextClass;\n \n /**\n * FiscalIntegrationDocumentAdjustment entity class.\n */\n export class FiscalIntegrationDocumentAdjustmentClass implements Entities.FiscalIntegrationDocumentAdjustment {\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentAdjustmentClass'] = FiscalIntegrationDocumentAdjustmentClass;\n \n /**\n * FiscalIntegrationSignatureDataContext entity class.\n */\n export class FiscalIntegrationSignatureDataContextClass implements Entities.FiscalIntegrationSignatureDataContext {\n public SequentialSignatureKey: string;\n public SequentialNumber: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SequentialSignatureKey = \n odataObject.SequentialSignatureKey;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n }\n }\n entityDictionary['FiscalIntegrationSignatureDataContextClass'] = FiscalIntegrationSignatureDataContextClass;\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity class.\n */\n export class FiscalIntegrationRegistrationProcessLineClass implements Entities.FiscalIntegrationRegistrationProcessLine {\n public RegistrationProcessId: string;\n public SequenceNumber: number;\n public Priority: number;\n public ConnectorTypeValue: number;\n public FunctionalityProfileGroupId: string;\n public AllowSkip: boolean;\n public AllowMarkAsRegistered: boolean;\n public AllowPostpone: boolean;\n public Optional: boolean;\n public RegistrationSettings: Entities.FiscalIntegrationRegistrationSettings;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public SequentialKeys: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.SequenceNumber = \n odataObject.SequenceNumber;\n \n this.Priority = \n odataObject.Priority;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.AllowSkip = \n odataObject.AllowSkip;\n \n this.AllowMarkAsRegistered = \n odataObject.AllowMarkAsRegistered;\n \n this.AllowPostpone = \n odataObject.AllowPostpone;\n \n this.Optional = \n odataObject.Optional;\n \n if (odataObject.RegistrationSettings == null) {\n this.RegistrationSettings = undefined;\n } else if (odataObject.RegistrationSettings['@odata.type'] == null) {\n this.RegistrationSettings = new FiscalIntegrationRegistrationSettingsClass(odataObject.RegistrationSettings);\n } else {\n var className: string = odataObject.RegistrationSettings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationSettings = new entityDictionary[className](odataObject.RegistrationSettings)\n }\n }\n\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SequentialKeys = undefined;\n if (odataObject.SequentialKeys) {\n this.SequentialKeys = [];\n for (var i = 0; i < odataObject.SequentialKeys.length; i++) {\n if (odataObject.SequentialKeys[i] != null) {\n this.SequentialKeys[i] = \n odataObject.SequentialKeys[i];\n } else {\n this.SequentialKeys[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessLineClass'] = FiscalIntegrationRegistrationProcessLineClass;\n \n /**\n * FiscalIntegrationRegistrationSettings entity class.\n */\n export class FiscalIntegrationRegistrationSettingsClass implements Entities.FiscalIntegrationRegistrationSettings {\n public SkipReasonCode: string;\n public MarkAsRegisteredReasonCode: string;\n public PostponeReasonCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SkipReasonCode = \n odataObject.SkipReasonCode;\n \n this.MarkAsRegisteredReasonCode = \n odataObject.MarkAsRegisteredReasonCode;\n \n this.PostponeReasonCode = \n odataObject.PostponeReasonCode;\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationSettingsClass'] = FiscalIntegrationRegistrationSettingsClass;\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummaryLine entity class.\n */\n export class FiscalIntegrationFiscalRegistrationProcessSummaryLineClass implements Entities.FiscalIntegrationFiscalRegistrationProcessSummaryLine {\n public RegistrationProcessLine: Entities.FiscalIntegrationRegistrationProcessLine;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public ConnectionProperties: Entities.FiscalIntegrationConfigurationProperty[];\n public ErrorCode: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegistrationProcessLine == null) {\n this.RegistrationProcessLine = undefined;\n } else if (odataObject.RegistrationProcessLine['@odata.type'] == null) {\n this.RegistrationProcessLine = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLine);\n } else {\n var className: string = odataObject.RegistrationProcessLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLine = new entityDictionary[className](odataObject.RegistrationProcessLine)\n }\n }\n\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.ConnectionProperties = undefined;\n if (odataObject.ConnectionProperties) {\n this.ConnectionProperties = [];\n for (var i = 0; i < odataObject.ConnectionProperties.length; i++) {\n if (odataObject.ConnectionProperties[i] != null) {\n if (odataObject.ConnectionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ConnectionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ConnectionProperties[i] = new entityDictionary[className](odataObject.ConnectionProperties[i])\n }\n } else {\n this.ConnectionProperties[i] = new FiscalIntegrationConfigurationPropertyClass(odataObject.ConnectionProperties[i]);\n }\n } else {\n this.ConnectionProperties[i] = undefined;\n }\n }\n }\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n }\n }\n entityDictionary['FiscalIntegrationFiscalRegistrationProcessSummaryLineClass'] = FiscalIntegrationFiscalRegistrationProcessSummaryLineClass;\n \n /**\n * FiscalIntegrationConfigurationProperty entity class.\n */\n export class FiscalIntegrationConfigurationPropertyClass implements Entities.FiscalIntegrationConfigurationProperty {\n public LabelName: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LabelName = \n odataObject.LabelName;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['FiscalIntegrationConfigurationPropertyClass'] = FiscalIntegrationConfigurationPropertyClass;\n \n /**\n * FiscalIntegrationServiceFailureDetails entity class.\n */\n export class FiscalIntegrationServiceFailureDetailsClass implements Entities.FiscalIntegrationServiceFailureDetails {\n public FailureTypeValue: number;\n public IsRetryAllowed: boolean;\n public ErrorCode: string;\n public ErrorMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FailureTypeValue = \n odataObject.FailureTypeValue;\n \n this.IsRetryAllowed = \n odataObject.IsRetryAllowed;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceFailureDetailsClass'] = FiscalIntegrationServiceFailureDetailsClass;\n \n /**\n * CategoryPath entity class.\n */\n export class CategoryPathClass implements Entities.CategoryPath {\n public Segments: Entities.CategoryPathSegment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Segments = undefined;\n if (odataObject.Segments) {\n this.Segments = [];\n for (var i = 0; i < odataObject.Segments.length; i++) {\n if (odataObject.Segments[i] != null) {\n if (odataObject.Segments[i]['@odata.type'] != null) {\n var className: string = odataObject.Segments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Segments[i] = new entityDictionary[className](odataObject.Segments[i])\n }\n } else {\n this.Segments[i] = new CategoryPathSegmentClass(odataObject.Segments[i]);\n }\n } else {\n this.Segments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathClass'] = CategoryPathClass;\n \n /**\n * CategoryPathSegment entity class.\n */\n export class CategoryPathSegmentClass implements Entities.CategoryPathSegment {\n public CategoryName: string;\n public CategoryId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.CategoryId = \n (odataObject.CategoryId != null) ? parseInt(odataObject.CategoryId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathSegmentClass'] = CategoryPathSegmentClass;\n \n /**\n * AttachedService entity class.\n */\n export class AttachedServiceClass implements Entities.AttachedService {\n public BaseUrl: string;\n public ServiceId: string;\n public StatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BaseUrl = \n odataObject.BaseUrl;\n \n this.ServiceId = \n odataObject.ServiceId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttachedServiceClass'] = AttachedServiceClass;\n \n /**\n * ExtensibleInventoryJournalType entity class.\n */\n export class ExtensibleInventoryJournalTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleInventoryJournalType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleInventoryJournalType\";\n \n }\n }\n entityDictionary['ExtensibleInventoryJournalTypeClass'] = ExtensibleInventoryJournalTypeClass;\n \n /**\n * CustomerTimelineItemType entity class.\n */\n export class CustomerTimelineItemTypeClass implements Entities.CustomerTimelineItemType {\n public Description: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeClass'] = CustomerTimelineItemTypeClass;\n \n /**\n * ProductWarehouseInventoryAvailability entity class.\n */\n export class ProductWarehouseInventoryAvailabilityClass implements Entities.ProductWarehouseInventoryAvailability {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public PhysicalInventory: number;\n public PhysicalReserved: number;\n public TotalAvailable: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public OrderedInTotal: number;\n public PhysicalAvailable: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public LastInventoryTransactionId: number;\n public UnpostedOnlineOrderedQuantity: number;\n public UnpostedFulfilledQuantity: number;\n public IsInventoryAvailabilityQuantityReturned: boolean;\n public UnprocessedQuantity: number;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public SumUncountedTransactions: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.PhysicalInventory = \n (odataObject.PhysicalInventory != null) ? parseFloat(odataObject.PhysicalInventory) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.TotalAvailable = \n (odataObject.TotalAvailable != null) ? parseFloat(odataObject.TotalAvailable) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.OrderedInTotal = \n (odataObject.OrderedInTotal != null) ? parseFloat(odataObject.OrderedInTotal) : undefined;\n \n this.PhysicalAvailable = \n (odataObject.PhysicalAvailable != null) ? parseFloat(odataObject.PhysicalAvailable) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.LastInventoryTransactionId = \n (odataObject.LastInventoryTransactionId != null) ? parseInt(odataObject.LastInventoryTransactionId, 10) : undefined;\n \n this.UnpostedOnlineOrderedQuantity = \n (odataObject.UnpostedOnlineOrderedQuantity != null) ? parseFloat(odataObject.UnpostedOnlineOrderedQuantity) : undefined;\n \n this.UnpostedFulfilledQuantity = \n (odataObject.UnpostedFulfilledQuantity != null) ? parseFloat(odataObject.UnpostedFulfilledQuantity) : undefined;\n \n this.IsInventoryAvailabilityQuantityReturned = \n odataObject.IsInventoryAvailabilityQuantityReturned;\n \n this.UnprocessedQuantity = \n (odataObject.UnprocessedQuantity != null) ? parseFloat(odataObject.UnprocessedQuantity) : undefined;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.SumUncountedTransactions = \n (odataObject.SumUncountedTransactions != null) ? parseFloat(odataObject.SumUncountedTransactions) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryAvailabilityClass'] = ProductWarehouseInventoryAvailabilityClass;\n \n /**\n * QuantityUnitType entity class.\n */\n export class QuantityUnitTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.QuantityUnitType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.QuantityUnitType\";\n \n }\n }\n entityDictionary['QuantityUnitTypeClass'] = QuantityUnitTypeClass;\n \n /**\n * ProductInventoryAvailability entity class.\n */\n export class ProductInventoryAvailabilityClass implements Entities.ProductInventoryAvailability {\n public ProductId: number;\n public DataAreaId: string;\n public TotalAvailableQuantity: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableQuantity: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.TotalAvailableQuantity = \n (odataObject.TotalAvailableQuantity != null) ? parseFloat(odataObject.TotalAvailableQuantity) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableQuantity = \n (odataObject.PhysicalAvailableQuantity != null) ? parseFloat(odataObject.PhysicalAvailableQuantity) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductInventoryAvailabilityClass'] = ProductInventoryAvailabilityClass;\n \n /**\n * ParameterSet entity class.\n */\n export class ParameterSetClass implements Entities.ParameterSet {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ParameterSetClass'] = ParameterSetClass;\n \n /**\n * CartLineValidationResults entity class.\n */\n export class CartLineValidationResultsClass implements Entities.CartLineValidationResults {\n public ValidationResultsByLineId: Entities.CartLineValidationResultsByLineId;\n public ValidationFailuresByCartLines: Entities.LineDataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ValidationResultsByLineId == null) {\n this.ValidationResultsByLineId = undefined;\n } else if (odataObject.ValidationResultsByLineId['@odata.type'] == null) {\n this.ValidationResultsByLineId = new CartLineValidationResultsByLineIdClass(odataObject.ValidationResultsByLineId);\n } else {\n var className: string = odataObject.ValidationResultsByLineId['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsByLineId = new entityDictionary[className](odataObject.ValidationResultsByLineId)\n }\n }\n\n \n this.ValidationFailuresByCartLines = undefined;\n if (odataObject.ValidationFailuresByCartLines) {\n this.ValidationFailuresByCartLines = [];\n for (var i = 0; i < odataObject.ValidationFailuresByCartLines.length; i++) {\n if (odataObject.ValidationFailuresByCartLines[i] != null) {\n if (odataObject.ValidationFailuresByCartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailuresByCartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailuresByCartLines[i] = new entityDictionary[className](odataObject.ValidationFailuresByCartLines[i])\n }\n } else {\n this.ValidationFailuresByCartLines[i] = new LineDataValidationFailureClass(odataObject.ValidationFailuresByCartLines[i]);\n }\n } else {\n this.ValidationFailuresByCartLines[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsClass'] = CartLineValidationResultsClass;\n \n /**\n * CommerceException entity class.\n */\n export class CommerceExceptionClass implements Entities.CommerceException {\n public LocalizedMessage: string;\n public ErrorResourceId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n }\n }\n entityDictionary['CommerceExceptionClass'] = CommerceExceptionClass;\n \n /**\n * DataValidationException entity class.\n */\n export class DataValidationExceptionClass\n extends CommerceExceptionClass\n implements Entities.DataValidationException {\n public ValidationResults: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ValidationResults = undefined;\n if (odataObject.ValidationResults) {\n this.ValidationResults = [];\n for (var i = 0; i < odataObject.ValidationResults.length; i++) {\n if (odataObject.ValidationResults[i] != null) {\n if (odataObject.ValidationResults[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResults[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResults[i] = new entityDictionary[className](odataObject.ValidationResults[i])\n }\n } else {\n this.ValidationResults[i] = new DataValidationFailureClass(odataObject.ValidationResults[i]);\n }\n } else {\n this.ValidationResults[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataValidationException\";\n \n }\n }\n entityDictionary['DataValidationExceptionClass'] = DataValidationExceptionClass;\n \n /**\n * MissingRequiredReasonCodeException entity class.\n */\n export class MissingRequiredReasonCodeExceptionClass\n extends DataValidationExceptionClass\n implements Entities.MissingRequiredReasonCodeException {\n public RequiredReasonCodes: Entities.ReasonCode[];\n public TransactionRequiredReasonCodeIds: string[];\n public ReasonCodeRequirements: Entities.ReasonCodeRequirement[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RequiredReasonCodes = undefined;\n if (odataObject.RequiredReasonCodes) {\n this.RequiredReasonCodes = [];\n for (var i = 0; i < odataObject.RequiredReasonCodes.length; i++) {\n if (odataObject.RequiredReasonCodes[i] != null) {\n if (odataObject.RequiredReasonCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.RequiredReasonCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RequiredReasonCodes[i] = new entityDictionary[className](odataObject.RequiredReasonCodes[i])\n }\n } else {\n this.RequiredReasonCodes[i] = new ReasonCodeClass(odataObject.RequiredReasonCodes[i]);\n }\n } else {\n this.RequiredReasonCodes[i] = undefined;\n }\n }\n }\n \n this.TransactionRequiredReasonCodeIds = undefined;\n if (odataObject.TransactionRequiredReasonCodeIds) {\n this.TransactionRequiredReasonCodeIds = [];\n for (var i = 0; i < odataObject.TransactionRequiredReasonCodeIds.length; i++) {\n if (odataObject.TransactionRequiredReasonCodeIds[i] != null) {\n this.TransactionRequiredReasonCodeIds[i] = \n odataObject.TransactionRequiredReasonCodeIds[i];\n } else {\n this.TransactionRequiredReasonCodeIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeRequirements = undefined;\n if (odataObject.ReasonCodeRequirements) {\n this.ReasonCodeRequirements = [];\n for (var i = 0; i < odataObject.ReasonCodeRequirements.length; i++) {\n if (odataObject.ReasonCodeRequirements[i] != null) {\n if (odataObject.ReasonCodeRequirements[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeRequirements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeRequirements[i] = new entityDictionary[className](odataObject.ReasonCodeRequirements[i])\n }\n } else {\n this.ReasonCodeRequirements[i] = new ReasonCodeRequirementClass(odataObject.ReasonCodeRequirements[i]);\n }\n } else {\n this.ReasonCodeRequirements[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.MissingRequiredReasonCodeException\";\n \n }\n }\n entityDictionary['MissingRequiredReasonCodeExceptionClass'] = MissingRequiredReasonCodeExceptionClass;\n \n /**\n * SecurityException entity class.\n */\n export class SecurityExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecurityException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecurityException\";\n \n }\n }\n entityDictionary['SecurityExceptionClass'] = SecurityExceptionClass;\n \n /**\n * DeviceAuthenticationException entity class.\n */\n export class DeviceAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.DeviceAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DeviceAuthenticationException\";\n \n }\n }\n entityDictionary['DeviceAuthenticationExceptionClass'] = DeviceAuthenticationExceptionClass;\n \n /**\n * HeadquarterTransactionServiceException entity class.\n */\n export class HeadquarterTransactionServiceExceptionClass\n extends CommerceExceptionClass\n implements Entities.HeadquarterTransactionServiceException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.HeadquarterTransactionServiceException\";\n \n }\n }\n entityDictionary['HeadquarterTransactionServiceExceptionClass'] = HeadquarterTransactionServiceExceptionClass;\n \n /**\n * UserAuthenticationException entity class.\n */\n export class UserAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthenticationException\";\n \n }\n }\n entityDictionary['UserAuthenticationExceptionClass'] = UserAuthenticationExceptionClass;\n \n /**\n * UserAuthorizationException entity class.\n */\n export class UserAuthorizationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthorizationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthorizationException\";\n \n }\n }\n entityDictionary['UserAuthorizationExceptionClass'] = UserAuthorizationExceptionClass;\n \n /**\n * FeatureNotSupportedException entity class.\n */\n export class FeatureNotSupportedExceptionClass\n extends CommerceExceptionClass\n implements Entities.FeatureNotSupportedException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.FeatureNotSupportedException\";\n \n }\n }\n entityDictionary['FeatureNotSupportedExceptionClass'] = FeatureNotSupportedExceptionClass;\n \n /**\n * CartValidationException entity class.\n */\n export class CartValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.CartValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CartValidationException\";\n \n }\n }\n entityDictionary['CartValidationExceptionClass'] = CartValidationExceptionClass;\n \n /**\n * TenderValidationException entity class.\n */\n export class TenderValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.TenderValidationException {\n public TenderTypeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TenderValidationException\";\n \n }\n }\n entityDictionary['TenderValidationExceptionClass'] = TenderValidationExceptionClass;\n \n /**\n * CommerceDataExchangeException entity class.\n */\n export class CommerceDataExchangeExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceDataExchangeException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceDataExchangeException\";\n \n }\n }\n entityDictionary['CommerceDataExchangeExceptionClass'] = CommerceDataExchangeExceptionClass;\n \n /**\n * ExtensibleEnumerationException entity class.\n */\n export class ExtensibleEnumerationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationExceptionClass'] = ExtensibleEnumerationExceptionClass;\n \n /**\n * TaskManagementException entity class.\n */\n export class TaskManagementExceptionClass\n extends CommerceExceptionClass\n implements Entities.TaskManagementException {\n public TaskManagementErrors: Entities.TaskManagementError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaskManagementErrors = undefined;\n if (odataObject.TaskManagementErrors) {\n this.TaskManagementErrors = [];\n for (var i = 0; i < odataObject.TaskManagementErrors.length; i++) {\n if (odataObject.TaskManagementErrors[i] != null) {\n if (odataObject.TaskManagementErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.TaskManagementErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaskManagementErrors[i] = new entityDictionary[className](odataObject.TaskManagementErrors[i])\n }\n } else {\n this.TaskManagementErrors[i] = new TaskManagementErrorClass(odataObject.TaskManagementErrors[i]);\n }\n } else {\n this.TaskManagementErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementException\";\n \n }\n }\n entityDictionary['TaskManagementExceptionClass'] = TaskManagementExceptionClass;\n \n /**\n * TaskManagementServerException entity class.\n */\n export class TaskManagementServerExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementServerException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementServerException\";\n \n }\n }\n entityDictionary['TaskManagementServerExceptionClass'] = TaskManagementServerExceptionClass;\n \n /**\n * TaskManagementClientException entity class.\n */\n export class TaskManagementClientExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementClientException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementClientException\";\n \n }\n }\n entityDictionary['TaskManagementClientExceptionClass'] = TaskManagementClientExceptionClass;\n \n /**\n * PaymentException entity class.\n */\n export class PaymentExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentException {\n public AdditionalContext: string;\n public PaymentSdkErrors: Entities.PaymentError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentException\";\n \n }\n }\n entityDictionary['PaymentExceptionClass'] = PaymentExceptionClass;\n \n /**\n * DataValidationFailure entity class.\n */\n export class DataValidationFailureClass implements Entities.DataValidationFailure {\n public ErrorContext: string;\n public ErrorResourceId: string;\n public MemberNames: string[];\n public LocalizedMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorContext = \n odataObject.ErrorContext;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.MemberNames = undefined;\n if (odataObject.MemberNames) {\n this.MemberNames = [];\n for (var i = 0; i < odataObject.MemberNames.length; i++) {\n if (odataObject.MemberNames[i] != null) {\n this.MemberNames[i] = \n odataObject.MemberNames[i];\n } else {\n this.MemberNames[i] = undefined;\n }\n }\n }\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n }\n }\n entityDictionary['DataValidationFailureClass'] = DataValidationFailureClass;\n \n /**\n * ItemDiscontinuedException entity class.\n */\n export class ItemDiscontinuedExceptionClass\n extends CommerceExceptionClass\n implements Entities.ItemDiscontinuedException {\n public RemovedUnavailableItemIds: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RemovedUnavailableItemIds = \n odataObject.RemovedUnavailableItemIds;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ItemDiscontinuedException\";\n \n }\n }\n entityDictionary['ItemDiscontinuedExceptionClass'] = ItemDiscontinuedExceptionClass;\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity class.\n */\n export class InventoryDocumentLockedByOtherTerminalExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentLockedByOtherTerminalException {\n public WorkingTerminalId: string;\n public CurrentTerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.WorkingTerminalId = \n odataObject.WorkingTerminalId;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentLockedByOtherTerminalException\";\n \n }\n }\n entityDictionary['InventoryDocumentLockedByOtherTerminalExceptionClass'] = InventoryDocumentLockedByOtherTerminalExceptionClass;\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity class.\n */\n export class InventoryDocumentExceedMaximumQuantityExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentExceedMaximumQuantityException {\n public MaximumQuantity: number;\n public AllowOverDelivery: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentExceedMaximumQuantityException\";\n \n }\n }\n entityDictionary['InventoryDocumentExceedMaximumQuantityExceptionClass'] = InventoryDocumentExceedMaximumQuantityExceptionClass;\n \n /**\n * CartLineValidationResultsByLineId entity class.\n */\n export class CartLineValidationResultsByLineIdClass implements Entities.CartLineValidationResultsByLineId {\n public LineIdToProductBehaviorMap: Entities.KeyValuePair_2OfString_ProductBehavior[];\n public ValidationResultsPairs: Entities.LineValidationResult[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIdToProductBehaviorMap = undefined;\n if (odataObject.LineIdToProductBehaviorMap) {\n this.LineIdToProductBehaviorMap = [];\n for (var i = 0; i < odataObject.LineIdToProductBehaviorMap.length; i++) {\n if (odataObject.LineIdToProductBehaviorMap[i] != null) {\n if (odataObject.LineIdToProductBehaviorMap[i]['@odata.type'] != null) {\n var className: string = odataObject.LineIdToProductBehaviorMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LineIdToProductBehaviorMap[i] = new entityDictionary[className](odataObject.LineIdToProductBehaviorMap[i])\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = new KeyValuePair_2OfString_ProductBehaviorClass(odataObject.LineIdToProductBehaviorMap[i]);\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = undefined;\n }\n }\n }\n \n this.ValidationResultsPairs = undefined;\n if (odataObject.ValidationResultsPairs) {\n this.ValidationResultsPairs = [];\n for (var i = 0; i < odataObject.ValidationResultsPairs.length; i++) {\n if (odataObject.ValidationResultsPairs[i] != null) {\n if (odataObject.ValidationResultsPairs[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResultsPairs[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsPairs[i] = new entityDictionary[className](odataObject.ValidationResultsPairs[i])\n }\n } else {\n this.ValidationResultsPairs[i] = new LineValidationResultClass(odataObject.ValidationResultsPairs[i]);\n }\n } else {\n this.ValidationResultsPairs[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsByLineIdClass'] = CartLineValidationResultsByLineIdClass;\n \n /**\n * CommerceRuntimeCompositionException entity class.\n */\n export class CommerceRuntimeCompositionExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceRuntimeCompositionException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceRuntimeCompositionException\";\n \n }\n }\n entityDictionary['CommerceRuntimeCompositionExceptionClass'] = CommerceRuntimeCompositionExceptionClass;\n \n /**\n * ChecklistTaskValidationException entity class.\n */\n export class ChecklistTaskValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.ChecklistTaskValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChecklistTaskValidationException\";\n \n }\n }\n entityDictionary['ChecklistTaskValidationExceptionClass'] = ChecklistTaskValidationExceptionClass;\n \n /**\n * InsufficientCredentialLengthException entity class.\n */\n export class InsufficientCredentialLengthExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InsufficientCredentialLengthException {\n public ActualLength: number;\n public MinLength: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ActualLength = \n odataObject.ActualLength;\n \n this.MinLength = \n odataObject.MinLength;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InsufficientCredentialLengthException\";\n \n }\n }\n entityDictionary['InsufficientCredentialLengthExceptionClass'] = InsufficientCredentialLengthExceptionClass;\n \n /**\n * ExtensibleEnumerationCacheException entity class.\n */\n export class ExtensibleEnumerationCacheExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationCacheException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationCacheException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationCacheExceptionClass'] = ExtensibleEnumerationCacheExceptionClass;\n \n /**\n * ExtensionConfigurationException entity class.\n */\n export class ExtensionConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensionConfigurationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensionConfigurationException\";\n \n }\n }\n entityDictionary['ExtensionConfigurationExceptionClass'] = ExtensionConfigurationExceptionClass;\n \n /**\n * StaffPasswordExpiredException entity class.\n */\n export class StaffPasswordExpiredExceptionClass\n extends UserAuthenticationExceptionClass\n implements Entities.StaffPasswordExpiredException {\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.StaffPasswordExpiredException\";\n \n }\n }\n entityDictionary['StaffPasswordExpiredExceptionClass'] = StaffPasswordExpiredExceptionClass;\n \n /**\n * ChannelConfigurationNotFoundException entity class.\n */\n export class ChannelConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.ChannelConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChannelConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['ChannelConfigurationNotFoundExceptionClass'] = ChannelConfigurationNotFoundExceptionClass;\n \n /**\n * PaymentConfigurationException entity class.\n */\n export class PaymentConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentConfigurationException {\n public PaymentConfigurationSdkErrors: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.PaymentConfigurationSdkErrors = undefined;\n if (odataObject.PaymentConfigurationSdkErrors) {\n this.PaymentConfigurationSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentConfigurationSdkErrors.length; i++) {\n if (odataObject.PaymentConfigurationSdkErrors[i] != null) {\n this.PaymentConfigurationSdkErrors[i] = \n odataObject.PaymentConfigurationSdkErrors[i];\n } else {\n this.PaymentConfigurationSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentConfigurationException\";\n \n }\n }\n entityDictionary['PaymentConfigurationExceptionClass'] = PaymentConfigurationExceptionClass;\n \n /**\n * SecretConfigurationNotFoundException entity class.\n */\n export class SecretConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecretConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecretConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['SecretConfigurationNotFoundExceptionClass'] = SecretConfigurationNotFoundExceptionClass;\n \n /**\n * TenderTypePolicy entity class.\n */\n export class TenderTypePolicyClass implements Entities.TenderTypePolicy {\n public OriginalTenderType: string;\n public AllowedReturnTenderTypes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalTenderType = \n odataObject.OriginalTenderType;\n \n this.AllowedReturnTenderTypes = undefined;\n if (odataObject.AllowedReturnTenderTypes) {\n this.AllowedReturnTenderTypes = [];\n for (var i = 0; i < odataObject.AllowedReturnTenderTypes.length; i++) {\n if (odataObject.AllowedReturnTenderTypes[i] != null) {\n this.AllowedReturnTenderTypes[i] = \n odataObject.AllowedReturnTenderTypes[i];\n } else {\n this.AllowedReturnTenderTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypePolicyClass'] = TenderTypePolicyClass;\n \n /**\n * AccountStatementRequest entity class.\n */\n export class AccountStatementRequestClass implements Entities.AccountStatementRequest {\n public RequestedUserId: string;\n public IsForFullOrganization: boolean;\n public FromDate: Date;\n public ToDate: Date;\n public RequestingUserEmail: string;\n public DeliveryTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedUserId = \n odataObject.RequestedUserId;\n \n this.IsForFullOrganization = \n odataObject.IsForFullOrganization;\n \n this.FromDate = \n (odataObject.FromDate instanceof Date) ? odataObject.FromDate\n : (odataObject.FromDate != null) ? jsonLightReadStringPropertyValue(odataObject.FromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDate = \n (odataObject.ToDate instanceof Date) ? odataObject.ToDate\n : (odataObject.ToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestingUserEmail = \n odataObject.RequestingUserEmail;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AccountStatementRequestClass'] = AccountStatementRequestClass;\n \n /**\n * BusinessPartnerOperationRequestDetails entity class.\n */\n export class BusinessPartnerOperationRequestDetailsClass implements Entities.BusinessPartnerOperationRequestDetails {\n public InvoiceId: string;\n public AccountStatementStartDateTime: Date;\n public AccountStatementEndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.AccountStatementStartDateTime = \n (odataObject.AccountStatementStartDateTime instanceof Date) ? odataObject.AccountStatementStartDateTime\n : (odataObject.AccountStatementStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.AccountStatementEndDateTime = \n (odataObject.AccountStatementEndDateTime instanceof Date) ? odataObject.AccountStatementEndDateTime\n : (odataObject.AccountStatementEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestDetailsClass'] = BusinessPartnerOperationRequestDetailsClass;\n \n /**\n * TaskManagementError entity class.\n */\n export class TaskManagementErrorClass implements Entities.TaskManagementError {\n public ErrorResourceId: string;\n public LocalizedMessage: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.TaskId = \n odataObject.TaskId;\n \n }\n }\n entityDictionary['TaskManagementErrorClass'] = TaskManagementErrorClass;\n \n /**\n * LineDataValidationFailure entity class.\n */\n export class LineDataValidationFailureClass implements Entities.LineDataValidationFailure {\n public DataValidationFailure: Entities.DataValidationFailure;\n public LineIndex: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.DataValidationFailure == null) {\n this.DataValidationFailure = undefined;\n } else if (odataObject.DataValidationFailure['@odata.type'] == null) {\n this.DataValidationFailure = new DataValidationFailureClass(odataObject.DataValidationFailure);\n } else {\n var className: string = odataObject.DataValidationFailure['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataValidationFailure = new entityDictionary[className](odataObject.DataValidationFailure)\n }\n }\n\n \n this.LineIndex = \n odataObject.LineIndex;\n \n }\n }\n entityDictionary['LineDataValidationFailureClass'] = LineDataValidationFailureClass;\n \n /**\n * WrongEndpointException entity class.\n */\n export class WrongEndpointExceptionClass\n extends CommerceExceptionClass\n implements Entities.WrongEndpointException {\n public RedirectUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RedirectUri = \n odataObject.RedirectUri;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.WrongEndpointException\";\n \n }\n }\n entityDictionary['WrongEndpointExceptionClass'] = WrongEndpointExceptionClass;\n \n /**\n * BadRequestException entity class.\n */\n export class BadRequestExceptionClass\n extends CommerceExceptionClass\n implements Entities.BadRequestException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.BadRequestException\";\n \n }\n }\n entityDictionary['BadRequestExceptionClass'] = BadRequestExceptionClass;\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity class.\n */\n export class KeyValuePair_2OfString_ProductBehaviorClass implements Entities.KeyValuePair_2OfString_ProductBehavior {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['KeyValuePair_2OfString_ProductBehaviorClass'] = KeyValuePair_2OfString_ProductBehaviorClass;\n "],"names":["CustomResponse_CAPExtensionClass","constructor","odataObject","this","Status","Error","Id","ExtensionProperties","undefined","i","length","className","substr","lastIndexOf","concat","EntityClasses","EuroTaxCode_CAPExtensionClass","EuroTaxCode","RetailTransactionTableAttachment_CAPExtensionClass","AttachmentFileName","RetailAttachment","Store","DataAreaId","Channel","parseInt","Terminal","TransactionId","AttachmentType","ConfirmOrderLink","customResponse_CAPQuery","id","key","DataServiceQuery","DataServiceEntities","addAttachmentString_CAPAsync","context","transactionid","attachmentFilename","attachmentBody","attachmentType","request","createDataServiceRequestForOperation","bypassCache","returnEntity","createAddAttachmentString_CAPInput","callActionOrExecute","callerContext","changeAddressByTransactionId_CAPAsync","transactionId","deliveryName","address","city","countryRegionId","zipCode","phone","createChangeAddressByTransactionId_CAPInput","deleteAttachment_CAPAsync","createDeleteAttachment_CAPInput","euroTax_CAPAsync","itemId","confName","createEuroTax_CAPInput","getAttachmentList_CAPAsync","queryResultSettings","resultSettings","createGetAttachmentList_CAPInput","modifyOrder_CAPAsync","loanAmount_CAP","finalAmount_CAP","loanStatus_CAP","eComOrderStatus_CAP","quotationId_CAP","createModifyOrder_CAPInput","requireComfirmReport_CAPAsync","cartId","createRequireComfirmReport_CAPInput","addConfirmDeposit_CAPAsync","transactioId","createAddConfirmDeposit_CAPInput","getSalesIdByTransactionId_CAPAsync","createGetSalesIdByTransactionId_CAPInput","SantanderCOPostResponse_CAPExtensionClass","AmountDue","MonthlyRate","MaxiRate","QuotationName","QuotationNumber","LegalNotes","Taeg","Tan","Interests","VarRates","SantanderVarRates_CAPExtensionClass","SecciUrl","ErrorMessage","SantanderLink_CAPExtensionClass","Link","SantanderLoanLenghtResponse_CAPExtensionClass","Lenghts","CapitaleResiduo","parseFloat","ImportoRata","DaRata","ARata","getCOValue_CAPAsync","opt","custType","loanDesc","lenght","amountFinancied","sellPrice","euroTax","createGetCOValue_CAPInput","getSantanderLink_c_CAPAsync","prevNum","province","tel","mail","firstName","lastName","fiscCode","nationality","exitUrl","createGetSantanderLink_c_CAPInput","getLoanLenghtValue_CAPAsync","createGetLoanLenghtValue_CAPInput","CheckoutContract","React","init","async","props","moduleState","onEdit","isPaymentVerificationRedirection","onReady","onUpdating","data","checkout","result","status","requestFormData","query","pv","componentDidUpdate","placeOrderBtnUpd","document","querySelectorAll","setTimeout","click","componentDidMount","alertCtn","alertPaymentCtn","guidedForm","loadingElement","createElement","innerHTML","appendChild","style","display","then","when","isDataReady","reaction","shippingAddress","setHasError","hasError","checkoutCart","cart","TotalAmount","render","config","isReady","viewProps","state","moduleProps","classnames","renderView","__decorate","computed","withModuleState","observer","getSharepointAttachmentFromTransId_CAPAsync","createGetSharepointAttachmentFromTransId_CAPInput","resources","thisProps","personalDataType","filter","Key","Value","StringValue","loading","setLoading","loading_user","setLoadingUser","docDownloaded","setDocDownloaded","contract","setContract","_viewContract","actionContext","t","Promise","resolve","contractFile","localStorage","setItem","getElementsByClassName","addConfirmDeposit_CAPAsyncCO","checkoutCartResult","refreshCart","register","handleSubmit","reset","watch","setValue","useForm","defaultValues","ContractAccepted_CAP","CompanyClausesAccepted_CAP","shouldDirty","onSubmit","contractAcception","companyClausescAcception","localContract","getItem","Module","target","href","download","rel","viewContract","introText","onClick","hidden","alertText","name","ref","required","disabled","type","contractAcceptText","companyClausesAccepted","title","CheckoutFinancing","productDimension","products","Dimensions","DimensionTypeValue","productDimensionId","DimensionValue","DimensionId","financingProps","CartLines","ItemId","finalPrice","financingStaticTexts","financingStaticData","productExtensionProperties","itemConfiguration","onSave","Financing","salesOrderStatus","productExtProps","durationMax","IntegerValue","tan","DecimalValue","taeg","fromAmountSA","confirmDepositAmt","loanType","goodType","legalNotice","financingTexts","fTexts","text","advanceDesc","fAdvanceDesc","baloonDesc","fBaloonDesc","baloonTitle","fBaloonTitle","standardDesc","fStandardDesc","standardTitle","fStandardTitle","standardTooltip","fStandardTooltip","baloonTooltip","fBaloonTooltip","tanTooltip","fTanTooltip","taegTooltip","fTaegTooltip","_renderCartAndActions","addToCart","addToOrderTemplate","deposit","addToCartExt","button","addToCartText","errorBlock","_renderKeyInPrice","keyInPrice","ContainerProps","LabelContainerProps","heading","input","Node","_renderConfigureDropdown","dropdown","errors","select","localHeading","mSelect","dropdownList","p","isDefault","children","_renderConfigure","configure","dropdowns","map","description","inventoryLabel","price","findInStore","product","priceProps","productPrice","customerContextualPrice","CustomerContextualPrice","discountLines","DiscountLines","originalPrice","Math","max","BasePrice","TradeAgreementPrice","AdjustedPrice","getOriginalPrice","productResult","productDimensions","ModuleProps","MediaGalleryContainerProps","mediaGallery","slots","extraInfo","ProductInfoContainerProps","toLocaleString","discountLine","Percentage","Amount","OfferName","app","enableFinancing","taxOutOfPriceText","externalLinkButtons","PickUpAtStoreComponent","PickUpAtStore","label","location","EmailDeliveryComponent","EmailDelivery","LineItemComponent","LineItem","item","pickUpAtStore","emailDelivery","LineItemGroupComponent","LineItemDeliveryGroup","LineItemList","lineItems","lineItem","LineId","LineItemGroupComponentWithMultiplePickUp","lineItemWraper","lineItemWraperIcon","LineItemComponentWithMultiplePickUp","PickUpAtStoreComponentWithMultiplePickUp","LineItemsComponent","LineItems","Header","editLink","itemsForPickup","itemsForShip","itemsForEmail","itemsGroupWithMulitplePickupMode","OrderSummaryComponent","lines","other","totalPrice","totalAmount","taxIncludedInPriceText","Number","iptTaxAmount","toFixed","taxTooltipText","canShow","checkoutProps","headerProps","hasSalesOrder","bodyProps","mainProps","mainControlProps","sideProps","sideControlFirstProps","sideControlSecondProps","termsAndConditionsProps","orderConfirmation","alert","orderSummary","placeOrderButton","termsAndConditions","cartLines","extraProps","deliveryMode","DeliveryMode","OtherChargeAmount","deliveryPrice","ShippingChargeAmount","freeText","deliveryModeId","deliveryModeNameA","deliveryOptions","DeliveryOptions","Code","deliveryModeNameFull","Description","deliveryModeName","split","checkoutSideSimulationProps","Price","deliveryAmount","deliveryLabel","currentProductId","clear","showItemDetails","setShowItemDetails","productsLoaded","setProductsLoaded","error","console","log","CheckoutSideSimulation","amountToBeFinanced","loanStatus","advanceFromUser","durationFromUser","rataMensileFromUser","tanFromUser","taegFromUser","now","Date","expiry","getTime","saResultData","setSaResultData","Flex","duration","durationTotal","monthlyRate","secondPartFirstMonth","maxiRateFinal","monthlyRateSecondPart","tanSecondPart","taegSecondPart","toString","querySelector","classList","add","window","financingToggle","setFinancingToggle","loanTypeAutoSelect","anticipoFromUserString","control","loanTypeFromUser","anticipo","importo","currentDuration","setCurrentDuration","getElementById","getAttribute","getCurrentDuration","setDuration","min","steps","lastDuration","_durationValues","durations","sliderProps","inForm","orientation","showProgressBar","showLabels","showTooltip","step","labels","labelId","labelString","labelPositioning","sliderThumbs","value","handleOpt","contains","remove","setShowSimulation","showSimulation","errorCOValue","setErrorCOValue","legalNotes","setLegalNotes","changeFinancingStatus","changeSimulationView","dispatchEvent","Event","RichTextComponent","role","onChange","checked","htmlFor","Object","entries","JSON","stringify","String","catch","err","Controller","NumberFormat","allowNegative","decimalSeparator","decimalScale","onValueChange","v","floatValue","thousandSeparator","fixedDecimalScale","defaultValue","rules","field","Slider","onChangeEnd","borderBottomColor","extraPersonalData","addressData","OrderConfirmationOwnerData","ownerData","ownerName","ownerEmail","Type_CAP","keys","includes","OrderConfirmationOrderInfomation","orderInformationProps","receiptEmail","createdDate","channelReferenceId","OrderConfirmationSalesLine","salesLineProps","salesLine","OrderConfirmationGroupDelivery","deliveryProps","pickupDateTimeslot","OrderConfirmationGroup","groupProps","delivery","shippingItemsToYou","OrderConfirmationItem","salesLinesProps","salesLines","OrderConfirmationGroups","groupsProps","groups","group","index","OrderConfirmationItems","OrderConfirmationOrderSummary","orderSummaryProps","subtotal","shipping","tax","earnedPoints","OrderConfirmationPayment","paymentMethodsProps","methods","OrderConfirmationHelp","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","GoToMyAccount","link","orderInfomation","payment","home","routes","destinationUrl","user","isAuthenticated","salesOrder","orderHydration","salesId","SalesId","orderDetails","orderSummaryShippingFeeLabel","salesOrderExtProps","salesOrderChargeLines","SalesLines","ChargeLines","ChargeCode","NetAmountWithTax","compiledFields","indexOf","setOwnerData","compiledFieldsData","compiledField","values","BooleanValue","ownerInfo","ReceiptEmail","OrderCancel","tooltip","requestOrderCanceling","requestOrderReturn","Msdyn365","addressName","fullAddress","modifiedAddress_CAP","addressChoosen","setAddressChoosen","modifyAddress","setModifyAddress","AddressType_CAP","Country_CAP","Address_CAP","addressDef","cityDef","zipCodeDef","phoneDef","City_CAP","ZipCode_CAP","Phone_CAP","apiData","getUrlForSalesId","orderDetailUrl","origin","res","_changeShippingAddress","_onModify","_renderInput","errorMessage","pattern","format","readOnly","typeSelected","addressStreetLabel","addressCityLabel","addressZipCodeLabel","addressThreeLetterISORegionNameLabel","addressPhoneLabel","OrderDetailsDocuments","docProps","attachmentData","ic","fc","rd","af","fileList","setFileList","getDocs","inputFileIC","inputFileFC","inputFileRD","inputFileAF","fileTypes","all","fileType","file","push","readFileDataAsBase64","e","files","reject","reader","FileReader","onload","event","prevState","onerror","readAsDataURL","onButtonClick","current","deleteFile","filteredArray","step3aRegistrationDocuments","docAddress","addressProps","OrderDetailsAddress","madeChoiceFinancing","setMadeChoiceFinancing","transactionIdString","toggleStateOpened","importoString","importoNumber","round","EPSILON","finalAmountFinancingOFF","seccirUrl","externalLink","hasSeenSecci","setHasSeenSecci","secci","customerData","emailAddress","FiscalCode_CAP","CitezenShip_CAP","financingStatus","setFinancingStatus","proceedStateOne","reload","defaultChecked","open","receiptId","SalesLine","OrderDetailsGroup","TotalOrderAmount","salesStatus","orderRecapProps","financingSaPracticeNum","isExpanded","setIsExpanded","handleExpand","currentTarget","setAttribute","nextElementSibling","salesOrderAmountToPay","salesOrderLoanAmount","financingSaStatus","infobox","step1FinancingInfobox","step2DocsAddressInfobox","step2DocsAddressPayInfobox","step3LoadDocsInfobox","step4CongratsInfobox","step10returnRequiredInfobox","step11returnProcessingInfobox","step12returnCompleteInfobox","step2FinancingToBeCompletedInfobox","step2FinancingInApprovementInfobox","step2FinancingApprovedInfobox","step2FinancingNotApprovedInfobox","step2PaymentDetailsInfobox","OrderDetailsSubStepper","currentStep","CurrentSubStepTitle","stepper5Title","stepper5Desc","stepper6Title","stepper6Desc","stepper7Title","stepper7Desc","stepper8Title","stepper8Desc","stepper9Title","stepper9Desc","salesOrderStatusString","extraOrderSummary","GrossAmount","ShippingAddress","FullAddress","Name","abs","NetAmount","orderStepsInfoProps","OrderDetailsProduct","OrderDetailsInformations","OrderDetailsSubstepInfos","OrderDetailsFinancing","OrderDetailsDocumentsAddresses","OrderDetailsRecap","apiSettings","getCacheKey","buildCacheKey","_this","getCacheObjectType","dataCacheType","createObservableDataAction","action","ctx","CheckoutState","inputData","CheckoutStateInput","requestContext","_giftCards","_giftCardExtends","_loyaltyAmount","_guestCheckoutEmail","_isTermsAndConditionAccepted","_customerAccountAmount","_tokenizedPaymentCard","_tenderLine","_billingAddress","_shippingAddress","_cardPrefix","_loyaltyCardNumber","newTokenizedPaymentCard","newTenderLine","newShippingAddress","newBillingAddress","newCardPrefix","giftCardNumber","giftCard","newLoyaltyCardNumber","newAmount","newGuestCheckoutEmail","newIsTermsAndConditionAccepted","observable","getModuleStates","cacheKey","ModuleStatesCacheKey","moduleStates","get","update","WrappedComponent","_super","typeName","states","hasInitialized","isRequired","isCancellable","isSubmitContainer","childIds","telemetry","validate","isUpdating","isPending","isSkipped","isDisabled","isCancelAllowed","shouldSubmitContainer","hasExternalSubmitGroup","hasModuleState","setIsRequired","setIsCancellable","setIsSubmitContainer","onPending","onSkip","onDisable","getModule","moduleId","getModuleStateManager","getModuleByTypeName","getModuleStateManagerByTypeName","options","find","_moduleState","modules","source","module","isMatch","allMatched","skipSkippableItem","_validateLeaf","shouldEnableSinglePaymentAuthorizationCheckout","childId","_isPaymentSectionContainer","_validateContainer","ArrayExtensions","enableControl","initializeState","__extends","ModuleState","nextProps","entityDictionary","CategoryClass","RecordId","OfflineImage","ParentCategory","DisplayOrder","LocalizedDescription","Images","MediaLocationClass","NameTranslations","TextValueTranslationClass","CommercePropertyClass","CartClass","AffiliationLines","AffiliationLoyaltyTierClass","IsRequiredAmountPaid","IsDiscountFullyCalculated","IgnoreDiscountCalculation","AmountPaid","AttributeValues","AttributeValueBaseClass","IsTaxIncludedInPrice","BeginDateTime","jsonLightReadStringPropertyValue","BusinessDate","CancellationChargeAmount","EstimatedShippingAmount","CartLineClass","CartTypeValue","ChannelId","ChargeAmount","CustomerOrderRemainingBalance","ChargeLineClass","TaxViewLines","TaxViewLineClass","Comment","InvoiceComment","Coupons","CouponClass","CustomerId","CustomerOrderModeValue","DeliveryModeChargeAmount","DiscountAmount","DiscountAmountWithoutTax","DiscountCodes","SuspendedCartId","TransactionTypeValue","CustomerAccountDepositLines","CustomerAccountDepositLineClass","IncomeExpenseLines","IncomeExpenseLineClass","IncomeExpenseTotalAmount","IsReturnByReceipt","ReturnTransactionHasLoyaltyPayment","IsFavorite","IsRecurring","IsSuspended","LoyaltyCardId","ModifiedDateTime","OrderNumber","AvailableDepositAmount","OverriddenDepositAmount","OverriddenDepositWithoutCarryoutAmount","PrepaymentAmountPaid","PrepaymentRoundingDifference","PrepaymentAppliedOnPickup","PrepaymentAmountInvoiced","PromotionLines","QuotationExpiryDate","ReasonCodeLines","ReasonCodeLineClass","RequestedDeliveryDate","RequiredDepositAmount","RequiredDepositWithoutCarryoutAmount","AddressClass","StaffId","SubtotalAmount","SubtotalAmountWithoutTax","NetPrice","SubtotalSalesAmount","TaxAmount","TaxOnCancellationCharge","TaxOnShippingCharge","TaxOnNonShippingCharges","TaxOverrideCode","TenderLines","TenderLineClass","RefundableTenderLines","TerminalId","TotalSalesAmount","TotalReturnAmount","TotalCarryoutSalesAmount","TotalCustomerOrderSalesAmount","TotalManualDiscountAmount","TotalManualDiscountPercentage","WarehouseId","IsCreatedOffline","CartStatusValue","ReceiptTransactionTypeValue","CommissionSalesGroup","Version","TotalItems","HasTaxCalculationTriggered","MerchantProperties","PaymentMerchantInformationClass","HasChargeCalculationTriggered","FiscalTransactions","FiscalTransactionClass","PeriodicDiscountsCalculateScopeValue","CustomerClass","AccountNumber","CreatedDateTime","ChargeGroup","PriceGroup","IsCustomerTaxInclusive","Phone","PhoneRecordId","PhoneExt","Cellphone","Email","EmailRecordId","Url","UrlRecordId","PersonNameId","FirstName","MiddleName","LastName","DirectoryPartyRecordId","PartyNumber","CustomerTypeValue","Language","CustomerGroup","CurrencyCode","CNPJCPFNumber","IdentificationNumber","InvoiceAccount","MandatoryCreditLimit","CreditRating","CreditLimit","Balance","Blocked","BlockedType","UseOrderNumberReference","OrganizationId","UsePurchaseRequest","MultilineDiscountGroup","TotalDiscountGroup","LineDiscountGroup","TaxGroup","SalesTaxGroup","CommissionSalesGroupId","TaxExemptNumber","VatNumber","TaxOffice","NonChargeableAccount","Tag","ReceiptSettings","OptOutPersonalization","OptOutWebActivityTracking","RetailCustomerTableRecordId","IsAsyncCustomer","NewCustomerPartyNumber","CustomerAffiliations","CustomerAffiliationClass","Addresses","Attributes","CustomerAttributeClass","TitleRecordId","IsFloorLimitBlocked","IsB2b","IsB2bAdmin","BusinessPartnerId","Contacts","ContactInfoClass","AllowOnAccountPayment","DefaultPaymentMethod","EmployeeClass","NameOnReceipt","CultureName","NumberOfDaysToPasswordExpiry","Permissions","EmployeePermissionsClass","DefaultImage","DefaultCommissionSalesGroup","IdentifierTypeValue","ChecklistClass","Tasks","ChecklistTaskClass","ProcessId","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","HasLoyaltyPayment","InternalTransactionId","SuspendedTransactionId","InventoryLocationId","IsTaxExemptedForPriceInclusive","LineDiscount","LineDiscountCalculationTypeValue","LoyaltyDiscountAmount","LoyaltyManualDiscountAmount","LoyaltyRewardPointLines","LoyaltyRewardPointLineClass","NetAmountWithoutTax","NetAmountWithNoTax","NumberOfItems","PeriodicDiscountAmount","TenderDiscountAmount","PrepaymentAmountAppliedOnPickup","ReceiptId","SalesPaymentDifference","SalesLineClass","ShiftId","ShiftTerminalId","StatementCode","StoreId","TaxAmountExclusive","TaxAmountInclusive","TaxLines","TaxLineClass","TotalDiscount","TaxCalculationTypeValue","SalesInvoiceAmount","GiftCardActiveFrom","GiftCardBalance","GiftCardExpireDate","GiftCardHistoryDetails","GiftCardIssueAmount","GiftCardIdMasked","IsCommissionSalesGroupOverriddenByCustomer","CommissionSalesGroupSetByCashier","CustomerName","LanguageId","SalesAgreementRecordId","ShiftClass","StartingAmountTotal","FloatingEntryAmountTotal","AddToTenderAmountTotal","SafeDropTotal","BankDropTotal","RemoveTenderAmountTotal","DeclareTenderAmountTotal","OverShortTotal","TenderedTotal","ChangeTotal","IncomeAccountTotal","ExpenseAccountTotal","CashDrawer","StoreRecordId","CurrentStaffId","CloseDateTime","ClosedAtTerminalId","ClosedAtShiftId","CurrentTerminalId","SalesTotal","StatusDateTime","ReturnsTotal","PaidToAccountTotal","TaxTotal","ChargeTotal","DiscountTotal","RoundedAmountTotal","CustomerCount","SaleTransactionCount","NoSaleTransactionCount","VoidTransactionCount","LogOnTransactionCount","SuspendedTransactionCount","TransactionCount","ReceiptsCount","ReturnsCount","GoodsSoldQty","ServicesSoldQty","ReceiptCopiesCount","ReceiptCopiesTotal","PriceOverrideTotal","SuspendedTotal","SalesTotalIncludingTax","SalesTotalExcludingTax","SalesGrandTotal","ReturnsGrandTotal","ShiftTaxLineClass","ShiftTenderLineClass","AccountLines","ShiftAccountLineClass","IsShared","StartingAmountRunningTotal","GiftCardsTotal","GiftCardCashOutTotal","VoidedSalesTotal","ShiftSalesTotal","ShiftReturnsTotal","HasPendingOfflineTransactions","NumberOfUnreconciledLines","StockCountJournalClass","JournalId","InventLocationId","StockCountTransactionLines","StockCountJournalTransactionClass","Worker","OrgUnitClass","OrgUnitNumber","OMOperatingUnitNumber","FunctionalityProfileId","UseCustomerBasedTax","UseCustomerBasedTaxExemption","UseDestinationBasedTax","Currency","TimeZoneCode","OrgUnitAddress","OrgUnitFullAddress","OrgUnitName","Latitude","Longitude","EmailReceiptProfileId","ShippingWarehouseAddress","TaxRegistrations","TaxRegistrationClass","EventNotificationProfileId","DefaultCustomerAccount","CategoryHierarchyId","ProductClass","ProductName","ProductNumber","IsMasterProduct","IsKit","HasLinkedProducts","Rules","ProductRulesClass","DefaultUnitOfMeasure","Locale","IsRemote","ChangeTrackingInformation","ProductChangeTrackingInformationClass","Image","RichMediaLocationsClass","UnitsOfMeasureSymbol","LinkedProducts","LinkedProductClass","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","Lines","OrderTypeValue","InventLocationIdFrom","InventLocationIdTo","QuantityShipped","QuantityReceived","QuantityShipNow","QuantityReceiveNow","QuantityShipRemaining","QuantityReceiveRemaining","ShipDate","ReceiveDate","DeliveryModeId","OrderLines","TransferOrderLineClass","PurchaseOrderClass","TotalReceived","PurchaseOrderLineClass","PickingListClass","DeliveryDate","PickingListLineClass","WarehouseClass","InventLocation","IsWMSEnabled","DefaultInventoryStatus","DefaultReceiptLocation","DefaultLocationId","DefaultIssueLocation","Address","ScanResultClass","ScannedText","MaskTypeValue","Barcode","BarcodeClass","Product","SimpleProductClass","LoyaltyCard","LoyaltyCardClass","GiftCard","GiftCardClass","Customer","SalesOrderContextualOperationsMapClass","ApplicableOperationsValues","SalesOrder","InventoryInboundOutboundDocumentClass","WorkDocumentId","CommitRequestId","Sender","Receiver","SenderDetails","ReceiverDetails","OperationTypeValue","Note","OperationResultMessage","DocumentId","LongVersion","SourceDocument","InventoryInboundOutboundSourceDocumentClass","SourceDocumentTypeValue","NoteModifiedByStaffId","NoteModifiedDateTime","DocumentTypeId","TransactionDate","BusinessPartnerClass","BusinessPartnerUserClass","B2BUserId","SpendingLimit","LastOperationId","IsAdmin","SuspendedCartClass","Cart","CountryRegionClass","CountryRegionId","IsoCode","ShortName","ExtensibleEnumerationClass","ExtensibleEnumeration_1OfTClass","super","ExtensibleTransactionTypeClass","ExtensibleSalesTransactionTypeClass","FulfillmentLineStatusClass","FulfillmentLineDeliveryTypeClass","ExtensibleAddressTypeClass","ExtensibleLoyaltyRewardPointActivityEntryTypeClass","ExtensibleAttributeDataTypeClass","ReleasedProductServiceTypeClass","ExtensibleElectronicAddressTypeClass","ReceiptOutputFormatTypeClass","OrderLookupAdditionalCriteriaTypeClass","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","DateTimeOffsetValue","FloatValue","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","ProductId","ExtendedPrice","ItemTaxGroupId","LinePercentageDiscount","LineManualDiscountPercentage","LineManualDiscountAmount","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","IsWarrantyLine","WarrantableTransactionId","WarrantableSalesId","WarrantableLineNumber","WarrantableSerialNumber","WarrantiedId","ReturnTransactionId","ReturnLineNumber","ReturnInventTransId","IsVoided","IsTaxOverideCodeTaxExempt","IsGiftCardLine","IsPriceKeyedIn","GiftCardId","GiftCardCurrencyCode","GiftCardOperationValue","GiftCardTypeValue","SalesStatusValue","QuantityOrdered","QuantityNotProcessed","QuantityReserved","QuantityPicked","QuantityPacked","QuantityInvoiced","QuantityCanceled","FulfillmentStoreId","SerialNumber","ElectronicDeliveryEmail","ElectronicDeliveryEmailContent","IsPriceOverridden","OriginalPrice","IsInvoiceLine","InvoiceId","InvoiceAmount","LineVersion","PriceLines","PriceLineClass","DiscountLineClass","RelatedDiscountedLineIds","ReturnTaxLines","TaxRatePercent","IsCustomerAccountDeposit","LinkedParentLineId","QuantityReturnable","LineNumber","TrackingId","QuantityRemained","CatalogId","ThirdPartyGiftCardInfo","ThirdPartyGiftCardInfoClass","BarcodeEmbeddedPrice","PriceInBarcode","InvoiceTypeValue","InvoicedSalesId","WarehouseLocation","DetailedLineStatusValue","SalesAgreementLineRecordId","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","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","ModuleTypeValue","IsHeaderChargeProrated","ChargeTypeValue","ChargeMethodValue","CalculatedAmount","MarkupAutoLineRecordId","MarkupAutoTableRecId","SaleLineNumber","FromAmount","ToAmount","Keep","AmountRefunded","ChargeLineOverrides","ChargeLineOverrideClass","IsRefundable","IsShipping","IsOverridden","IsInvoiced","CalculatedProratedAmount","SalesTaxGroupId","OriginalSalesTaxGroupId","OriginalItemTaxGroupId","SalesOrderUnitOfMeasure","NetAmountPerUnit","TaxMeasures","TaxMeasureClass","TaxAmountExemptInclusive","NetAmountWithAllInclusiveTax","ReturnLineTaxAmount","TaxExemptPriceInclusiveReductionAmount","TaxExemptPriceInclusiveOriginalPrice","CityInfoClass","StateId","CountyId","CommissionSalesGroupClass","GroupId","ContactInformationTypeValue","AttributeCategoryClass","CommercePropertyValueClass","Attribute","AttributeProductClass","MetadataFlags","ProductAttributeMetadataFlagsClass","IsDimension","ProductComparisonEntryClass","AttributeValue","ProductComparisonLineClass","AttributeRecordId","AttributeName","ProductAttributeComparisonEntries","CustomerSearchFieldClass","IsShortcut","DisplayName","CanBeRefined","SearchField","CustomerSearchFieldTypeClass","CustomerSearchByFieldCriteriaClass","Criteria","CustomerSearchByFieldCriterionClass","DataLevelValue","SearchTerm","OrderShipmentsClass","ShipmentId","DeliveryAddress","TermsOfDelivery","WeightUnit","TrackingNumber","TrackingUrl","LatestCarrierTrackingInfo","TrackingInfoClass","CarrierId","CarrierName","ShippingWeight","ShipmentLines","ShipmentLineClass","ShipmentLineId","InventDimId","OrderedQuantity","DeliveredQuantity","RemainingQuantity","InventoryTransactionId","TransactionClass","FromSafe","ToSafe","FromShiftTerminalId","ToShiftTerminalId","FromShiftId","TransactionSourceContextTypeValue","TransactionDestinationContextTypeValue","ToShiftId","TransactionDateTime","ShiftReconciliationLineClass","GroupDescription","ShiftGroupLinesCount","ShiftGroupLinesClosedCount","AmountInOriginalCurrency","TransactionCurrencyCode","TenderType","ShiftReconciliationLineRetrievalCriteriaClass","TransactionTypeValues","ShiftReconciliationLineStatusValue","Shifts","ShiftKeyClass","DestinationShift","SourceShift","SourceSafe","DestinationSafe","SearchConfigurationClass","ProductSortColumns","SortColumnClass","ProductSearchServiceTypeValue","ProductSortColumnsLabels","LocalizedTextClass","CustomerTimelineItemClass","EntityType","AttributeDefinitionClass","AttributeTypeName","ExtDataType","IsHidden","IsMandatory","IsMultiValue","IsEnumeration","TranslationDetails","AttributeTranslationDetailsClass","EnumerationDetails","AttributeEnumerationClass","DefaultValue","UpperBound","LowerBound","FriendlyName","HelpText","OrdinalNumber","EnumerationValue","AttributeEnumerationTranslations","AttributeEnumerationTranslationClass","EnumerationTranslationValue","AttributeDefinitionCriteriaClass","AttributeGroupIdentifier","Languages","AttributeGroupDefinitionClass","AttributeGroupTranslationDetailsClass","AttributeGroupRecordId","AttributeGroupDefinitionCriteriaClass","AttributeGroupIdentifiers","CountyInfoClass","CustomerGroupClass","CustomerGroupNumber","CustomerGroupName","OfferId","OfferDescription","DiscountCost","EffectiveAmount","EffectivePercentage","SavedEffectiveAmount","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","ByteValue","LongValue","CountryRegionInfoClass","LongName","ISOCode","TimeZone","AddressFormatLines","AddressFormattingInfoClass","AddressFormatId","AddressFormatName","CreditMemoClass","CurrencyClass","CurrencySymbol","RoundOffPrice","RoundOffSales","RoundOffTypePrice","RoundOffTypeSales","NumberOfDecimals","CurrencyAmountClass","ConvertedAmount","RoundedConvertedAmount","ScaleUnitConfigurationClass","Region","EnvironmentConfigurationClass","EnvironmentId","EnvironmentName","TenantId","ClientAppInsightsInstrumentationKey","HardwareStationAppInsightsInstrumentationKey","WindowsPhonePosAppInsightsInstrumentationKey","BaseVersion","ScaleUnit","AADAuthority","FrameworkName","DeviceConfigurationClass","UseInMemoryDeviceDataStorage","AllowItemsAggregation","AggregateItemsForPrinting","AggregatePayments","AlwaysExpandTransactionScreenLineDetails","AuditEnabled","DiscountAtTotal","ProductDiscount","ManuallyCalculateComplexDiscounts","DisplaySecondaryTotalCurrency","EndOfTransaction","ItemNotOnFile","LimitStaffListToStore","LineItemTaxChange","MarkUp","MaximumPrice","MaximumQuantity","MinimumPasswordLength","MustKeyInPriceIfZero","NfcEContingencyModeEnabled","NfcEVoided","FunctionalityProfileDescription","OverridePrice","PrintVoidTransactionReceipts","PrintReceiptsOnCardDecline","PrintXZReportsOnTerminal","PrintTenderDetailsOnXReport","ProfileId","RefundSale","ReturnProduct","SalesPerson","SecondaryTotalCurrency","SelectHardwareStationOnTendering","ShowStaffListAtLogOn","StaffBarcodeLogOn","StaffBarcodeLogOnRequiresPassword","StaffCardLogOn","StaffCardLogOnRequiresPassword","StartOfTransaction","EnableTimeRegistration","TenderDeclaration","TransactionTaxChange","VoidItem","VoidPayment","SalesModeDefaultsAsCustomerOrder","CreateOfflineCustomerOrders","CreateAsyncCustomers","EnableAxCustomerSearch","VoidTransaction","SystemLegalTermsUrl","SystemPrivacyStatementUrl","HideTrainingMode","StorePhone","StatementMethod","StoreTaxGroup","TaxIdNumber","TaxOverrideGroup","TenderDeclarationCalculation","AutoLogOffTimeoutInMinutes","AutoExitMethodValue","CustomerDisplayText1","CustomerDisplayText2","EFTStoreId","EFTTerminalId","ExitAfterEachTransaction","HardwareProfile","Placement","TerminalDescription","OpenDrawer","OpenDrawerAtLogOnLogOff","PrintTaxRefundChecks","StandAlone","TerminalStatement","VisualProfile","IncludeKitComponents","AccentColor","HeaderColor","Theme","FontScheme","ShowAppBarLabel","LogOnBackgroundPictureAsBase64","LogOnBackgroundPicturePortraitAsBase64","BackgroundPictureAsBase64","LogonBackgroundPictureId","LogonBackgroundPictureIdCompact","LogonBackgroundPictureIdPortrait","LogonBackgroundPictureIdCompactPortrait","BackgroundPictureId","RequireAmountDeclaration","DecimalNotRequiredForMinorCurrencyUnit","MaxTransactionSearchResults","OfflineProfileId","NewOfflineDatabaseCheckInterval","OfflineTransactionUploadInterval","ReconnectToOnlineInterval","SwitchToOfflineTimeout","OfflineSwitchApiPerformanceThresholdInSeconds","ReconnectFromPerformanceInducedOfflineIntervalInSeconds","RetentionDays","HardwareConfigurations","HardwareConfigurationsClass","CreateRecording","PlaybackRecording","ShouldUseDefaultCommisionSalesGroup","AskForSalesRepresentative","IsSalesRepRequired","ProhibitMixingSalesAndReturns","ApplyDiscountsToPriceKeyedIn","ApplyDiscountsToPriceOverrides","IsProductSuggestionsEnabled","ProductSearchType","TerminalRecId","DeviceRecId","DenominationsToDisplayValue","PromptOnSeamlessOffline","RetryCountToOffline","EnableAdvancedOfflineSwitching","SystemHealthCheckInterval","RejectOrderFulfillment","ManuallyCalculateTaxes","EmployeeLogonTypeValue","StartAmountCalculation","BankDropCalculation","GenerateLoyaltyCardNumber","FiscalRegistrationProcessId","IncludeSalesOrderInvoices","IncludeFreeTextInvoices","IncludeProjectInvoices","IncludeCreditNoteInvoices","DisplayTaxExemptInLineDetails","TaxExemptReceiptIndicator","ManuallyCalculateCharges","ChargeOverrideReasonCode","ShiftReconcilation","CustomerAccountFloorLimit","VoidSuspendedTransactionsOnCloseShift","ShowDateTime","UseAdvancedCashManagement","DefaultCustomerSearchModeValue","AllowManualOfflineBeforeSignIn","UseFinancialReconciliationInStore","RequirePaymentForFulfillmentValue","CardNotPresentProcessingConfigurationValue","EnableQuickPayShortcuts","ChangeDueBehaviorValue","VisualProfileClass","FontSchemeTypeValue","IsAppBarLabelVisible","IsDateTimeVisible","LogOnLayoutTypeValue","LogOnKeyboardTypeValue","CompactLogonBackgroundPictureId","PortraitLogonBackgroundPictureId","CompactPortraitLogonBackgroundPictureId","LogOnLogoPictureId","IsProductIdVisibleOnCartLine","OperationalInsightsConfigurationClass","InstrumentationKey","IsEnabled","DeviceClass","DeviceNumber","DeviceId","DeviceType","TerminalRecordId","ChannelName","TokenIssueTime","ActivationStatusValue","Token","CountryRegionIsoCode","DiscountCodeClass","ConcurrencyMode","Disclaimer","DistrictInfoClass","CityName","HardwareProfileClass","LineDisplayDelayForLinkedItems","LineDisplayBalanceText","LineDisplayBinaryConversion","LineDisplayCharacterSet","LineDisplayClosedLine1","LineDisplayClosedLine2","LineDisplayDeviceDescription","LineDisplayDeviceTypeValue","LineDisplayDeviceName","LineDisplayDisplayLinkedItem","LineDisplayDisplayTerminalClosed","LineDisplayTotalText","DualDisplayActive","DualDisplayWebBrowserUrl","DualDisplayImageRotatorInterval","DualDisplayImageRotatorPath","DualDisplayReceiptWidthPercentage","DualDisplayDisplayType","EftTypeId","EftCompanyId","EftConfiguration","EftPaymentConnectorName","EftData","EftDescription","EftMerchantId","EftPassword","EftServerName","EftServerPort","EftUserId","EftTestMode","MsrEndTrack1","MsrEndTrack2","FiscalPrinterManagementReportPAFIdentification","FiscalPrinterManagementReportConfigParameter","FiscalPrinterManagementReportTenderType","FiscalPrinterManagementReportGiftCard","FiscalRegisterDeviceTypeValue","FiscalRegisterConfiguration","FiscalRegisterDeviceDescription","FiscalRegisterDeviceName","KeyboardMappingId","KeyLockDeviceTypeValue","KeyLockDeviceDescription","KeyLockDeviceName","MsrDeviceTypeValue","MsrDeviceDescription","MsrDeviceName","MsrMake","MsrModel","MsrSeparator","MsrStartTrack","PinPadDeviceTypeValue","PinPadDeviceName","PinPadMake","PinPadModel","PinPadDeviceDescription","ProfileDescription","RFIDDeviceTypeValue","RFIDDeviceName","RFIDDeviceDescription","ScaleDeviceTypeValue","ScaleDeviceName","ScaleDeviceDescription","ScaleManualInputAllowed","ScaleTimeoutInSeconds","SignatureCaptureDeviceTypeValue","SignatureCaptureDeviceName","SignatureCaptureMake","SignatureCaptureModel","SignatureCaptureDeviceDescription","SignatureCaptureFormName","Printers","HardwareProfilePrinterClass","Scanners","HardwareProfileScannerClass","FiscalIntegrationTechnicalProfiles","FiscalIntegrationTechnicalProfileClass","CashDrawers","HardwareProfileCashDrawerClass","SupportedLanguageClass","UseShippingAddress","CardNumber","CCID","Track1","Track2","Track3","VoiceAuthorizationCode","EncryptedPin","AdditionalSecurityData","IsSwipe","Country","House","Address1","Address2","Zip","NameOnCard","ExpirationMonth","ExpirationYear","CardPaymentAcceptSettingsClass","HostPageOrigin","AdaptorPath","CardTokenizationEnabled","CardPaymentEnabled","PaymentAmount","HideBillingAddress","RequireShippingAddress","CardPaymentAcceptPointClass","AcceptPageUrl","AcceptPageSubmitUrl","MessageOrigin","AcceptPageContent","PaymentConnectorId","TenderLine","PaymentSdkErrors","PaymentErrorClass","AdditionalContext","AccessCode","Settings","RetrievePaymentResultSettingsClass","Information","InformationAmount","InputTypeValue","ItemTender","LineTypeValue","ParentLineId","ReasonCodeId","SubReasonCodeId","SourceCode","SourceCode2","SourceCode3","FiscalTransactionParentGuid","IsChanged","ReasonSubCodeClass","TriggerCode","AmountPercent","SubCodeId","TriggerFunctionTypeValue","PriceTypeValue","ReceiptClass","Body","Footer","Width","LayoutId","ReceiptTitle","ReceiptTypeValue","ReceiptTypeStrValue","PrinterClass","ReceiptMaskClass","IsIndependent","Mask","OriginLineId","MasterProductId","ListingId","TotalPercentageDiscount","PeriodicDiscount","InventorySiteId","InventoryStatusId","LicensePlate","ReservationId","ReturnQuantity","ProductSourceValue","IsInvoiceSettled","IsPriceLocked","AgreementPrice","ReturnStore","ReturnTerminalId","ReturnChannelId","SalesDate","SavedQuantity","IsSavedDiscount","ElectronicDeliveryEmailAddress","LoyaltyPercentageDiscount","TenderDiscountPercentage","Found","DateToActivateItem","PeriodicPercentageDiscount","QuantityDiscounted","UnitQuantity","UnitOfMeasureConversion","UnitOfMeasureConversionClass","AttainablePriceLines","PeriodicDiscountPossibilities","ReturnLabelProperties","ReturnLabelContentClass","LineMultilineDiscOnItem","LineMultilineDiscOnItemValue","WasChanged","OriginalSalesOrderUnitOfMeasure","InventOrderUnitOfMeasure","IsLoyaltyDiscountApplied","ReturnLoyaltyRewardPointLines","FulfillmentStatus","FulfillmentStatusValue","DetailedLineStatus","DetailedLineStatusClass","LastReturnProcessedTime","SalesAgreementPrice","IsSalesAgreementSkipped","SearchAreaClass","Radius","DistanceUnitValue","TenderTypeName","TenderCurrency","CountingRequired","StartingAmountOfStoreCurrency","StartingAmountOfTenderCurrency","FloatingEntryAmountOfStoreCurrency","FloatingEntryAmountOfTenderCurrency","SafeDropAmountOfStoreCurrency","SafeDropAmountOfTenderCurrency","BankDropAmountOfStoreCurrency","BankDropAmountOfTenderCurrency","RemoveTenderAmountOfStoreCurrency","RemoveTenderAmountOfTenderCurrency","DeclareTenderAmountOfStoreCurrency","DeclareTenderAmountOfTenderCurrency","TenderedAmountOfStoreCurrency","TenderedAmountOfTenderCurrency","ChangeAmountOfStoreCurrency","ChangeAmountOfTenderCurrency","Count","Notes","Overridden","OverriddenFloatEntryAmountInStoreCurrency","OverriddenFloatEntryAmountInTenderedCurrency","OverriddenBankDropAmountInStoreCurrency","OverriddenBankDropAmountInTenderedCurrency","OverriddenChangeAmountInStoreCurrency","OverriddenChangeAmountInTenderedCurrency","OverriddenDeclaredTenderAmountInStoreCurrency","OverriddenDeclaredTenderAmountInTenderedCurrency","OverriddenRemovedTenderAmountInStoreCurrency","OverriddenRemovedTenderAmountInTenderedCurrency","OverriddenSafeDropAmountInStoreCurrency","OverriddenSafeDropAmountInTenderedCurrency","OverriddenStartingAmountInStoreCurrency","OverriddenStartingAmountInTenderedCurrency","OverriddenTenderedAmountInStoreCurrency","OverriddenTenderedAmountInTenderedCurrency","OverShortAmountOfTenderCurrency","OperationType","ProductRecordId","ItemName","Counted","EstimatedOnHandQuantity","OnHandCalculationDateTime","Unit","UserId","CountedDate","InventBatchId","WarehouseLocationId","InventoryStatus","WarehousePalletId","InventSiteId","ConfigId","InventSizeId","InventColorId","InventStyleId","InventSerialId","TrackingGuid","UpdatedInAx","IsExempt","TaxBasis","IsIncludedInPrice","TaxCode","IsTaxGroupRounding","RefundableAmount","CaptureToken","CardToken","IncomeExpenseAccountTypeValue","MaskedCardNumber","TenderDate","IsPreProcessed","IsDeposit","IsCustomerAccountFloorLimitUsed","AuthorizationReferenceId","IsIncrementalCaptureEnabled","IsReauthorizationEnabled","IncrementalOffsetAmount","RoundingDifference","Text","UnitOfMeasureClass","DecimalPrecision","Symbol","RecommendedElementClass","ElementId","ElementTypeValue","RecommendationCriteriaClass","CustomerAccountNumber","ProductIds","ProductListId","UnitOfMeasure","CommerceListId","InvitationId","Invitee","IsSent","LastRequestDateTime","LastSentDateTime","InvitationTypeValue","SearchFilterClass","FilterTypeValue","SearchValues","SearchFilterValueClass","TransactionSearchCriteriaClass","TransactionIds","CustomerFirstName","CustomerLastName","ReceiptEmailAddress","SearchIdentifiers","SearchLocationTypeValue","CustomFilters","SalesOrderSearchCriteriaClass","SearchTypeValue","IncludeDetails","SalesTransactionTypeValues","TransactionStatusTypeValues","SearchStoreCriteriaClass","CustomerSearchCriteriaClass","Keyword","SearchOnlyCurrentCompany","SearchLocationValue","Refinements","CustomerRefinerValueClass","ProductPriceClass","MaxVariantPrice","MinVariantPrice","ProductLookupId","PriceSourceTypeValue","OrgUnitAvailabilityClass","OrgUnitLocation","OrgUnitLocationClass","ItemAvailabilities","ItemAvailabilityClass","ProductVariantPropertySetClass","ProductVariantPropertiesAsList","PurchaseQuantity","PurchaseUnit","PurchaseReceived","PurchaseReceivedNow","WMSLocationId","WMSPalletId","IsCommitted","UniqueIdentifier","DeliveryMethod","QuantityTransferred","QuantityRemainShip","QuantityRemainReceive","Guid","TransferOrderJournalClass","VoucherId","UpdatedByWorker","PostingDate","Comments","JournalLines","TransferOrderJournalLineClass","AffiliationClass","AffiliationTypeValue","InventoryInboundOutboundDocumentLinesSummaryClass","InProgressQuantity","TotalLineNumber","InventoryDocumentSerialNumberLinesSummaryClass","RegisteringQuantity","RegisteredQuantity","InventoryInboundOutboundDocumentLineClass","SourceDocumentRecordId","SourceDocumentLineRecordId","QuantityCancelled","QuantityToUpdate","LocationId","ItemPrimaryImageUrl","IsLocationActive","IsLocationAllowBlankReceiptEnabled","IsLocationBlankIssueAllowed","ProductDimensions","ProductDimensionClass","IsCloseLine","OriginTypeValue","SourceDocumentLine","InventoryInboundOutboundSourceDocumentLineClass","SerialNumberLines","InventoryDocumentSerialNumberLineClass","ToLocationId","AdjustmentTypeValue","DocumentTypeValue","TotalQuantityOrdered","TotalQuantityShipped","TotalQuantityReceived","TotalQuantityCancelled","TotalLines","IsChangeAllowed","DocumentRecordId","OverDeliveryPercentage","UnderDeliveryPercentage","HasSerialNumber","IsSerialNumberBlankReceiptAllowed","IsSerialNumberDuplicateCheckEnabled","InventoryDocumentSourceSerialNumberLineClass","ToProductId","ToInventoryDimensionId","InventoryDocumentLineFilterCriteriaClass","InventoryDocumentUpdateLinesActionClass","ActionTypeValue","InventoryDocumentLineOperationResultSettingsClass","ModeValue","InventoryDocumentLineSearchCriteriaClass","SourceDocumentId","ItemIds","AvailableSerializedLineOnly","DocumentLineIds","DocumentOperationTypeValue","InventoryDocumentSearchCriteriaClass","TransferFromWarehouse","ShipFromWarehouse","TransferToWarehouse","DocumentTypeIds","DocumentStateValue","DocumentTypeValues","InventoryDocumentSerialNumberLineSearchCriteriaClass","DocumentLineId","InventoryDocumentSerialNumberLineUpdateActionClass","InventoryDocumentSerialNumberLineResetActionClass","InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass","UpdatedLines","TotalLinesUpdated","WarehouseLocationSearchCriteriaClass","WarehouseIds","IsLocationProfileRequired","SearchText","WorkDocumentLineId","SourceLineId","SourceLine","InventoryDocumentValidationCategoryResultsSummaryClass","CategoryName","SeverityValue","TotalValidationResultCount","InventoryDocumentValidationResultSummaryClass","DocumentVersion","CategorySummaries","InventoryDocumentValidationResultLineClass","DocumentValidationResultLineId","ErrorCode","DocumentLongVersion","InventoryDocumentValidationResultSearchCriteriaClass","Categories","ProductDimensionValueInventoryAvailabilityClass","ProductDimensionValueClass","TotalAvailableInventoryLevelLabel","TotalAvailableInventoryLevelCode","PhysicalAvailableInventoryLevelLabel","PhysicalAvailableInventoryLevelCode","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","ProductTypeValue","Components","IsGiftCard","SimpleLinkedProductClass","PrimaryImageUrl","ItemTypeValue","ItemServiceTypeValue","IsDiscountAllowed","IsManualDiscountAllowed","IsKitDisassemblyAllowed","IsNegativeQuantityAllowed","IsReturnAllowed","IsSaleAtPhysicalStoresAllowed","IsZeroSalePriceAllowed","KeyInPriceValue","KeyInQuantityValue","MustPrintIndividualShelfLabelsForVariants","MustPromptForSerialNumberOnlyAtSale","MustWeighProductAtSale","ValidFromDateForSaleAtPhysicalStores","ValidToDateForSaleAtPhysicalStores","IsStorageDimensionGroupLocationActive","IsStorageDimensionGroupLocationAllowBlankReceiptEnabled","AllowNegativePhysicalInventory","IsStockedProduct","IsBlankSerialNumberAllowed","IsBlankSerialNumberReceiptAllowed","IsSerialNumberControlEnabled","IsStorageDimensionGroupLocationBlankIssueAllowed","IsSerialNumberRequired","DefaultQuantity","MinimumQuantity","MultipleOfQuantity","ProductSearchResultClass","AverageRating","TotalRatings","SearchSuggestionClass","Value2","Value3","Value4","SuggestionType","LoyaltyPointRedemptionEstimateClass","MaxCurrencyValueOfLoyaltyPoints","RewardPointToRedeemList","LoyaltyTiers","LoyaltyTierClass","LoyaltyCardTiers","LoyaltyCardTierClass","HighestActiveLoyaltyCardTier","TierId","TierLevel","LoyaltyTierRecordId","IsRedeemable","RewardPointCurrency","RewardPointTypeValue","RewardPointId","IssuedPoints","UsedPoints","ExpiredPoints","ActivePoints","PointsExpiringSoon","UnvestedPoints","LoyaltyCardTransactionClass","EntryDateTime","EntryTypeValue","ExpirationDate","RewardPointAmountQuantity","BalanceCurrencyCode","BalanceInCardCurrency","CardCurrencyCode","OperationPermissionClass","OperationName","OperationId","CheckUserAccess","AllowAnonymousAccess","AllowCustomerAccess","AllowApplicationAccess","IsEnabledForTaskManagement","StateProvinceInfoClass","TransactionLogClass","KitTransactionClass","KitTransactionLines","KitTransactionLineClass","SalesTaxGroupClass","TaxGroupName","ProductPropertyClass","ValueString","PropertyTypeValue","IsDimensionProperty","GroupTypeValue","GroupName","VariantInformation","ProductVariantInformationClass","KitDefinition","KitDefinitionClass","ActiveVariantProductId","Variants","ProductVariantClass","ProductDimensionSetClass","ChangeActionValue","RequestedActionValue","DimensionKey","DimensionValues","ProductDimensionValueSetClass","VariantSet","SwatchRefinerGroupValue","SwatchRefinerGroupTranslation","SwatchRefinerGroupImageUrl","SwatchRefinerGroupColorHexCode","Items","RichMediaLocationsRichMediaLocationClass","AltText","IsSelfHosted","IsDefault","Priority","DisassembleAtRegister","KitLineDefinitions","KitLineDefinitionClass","KitLineProductToVariantMap","ComponentKitVariantSetClass","KitVariantToComponentMap","KitVariantContentClass","KitLineProductId","KitVariantIdList","ComponentProductId","KitLineIdentifier","SubstituteProductIds","ComponentProperties","KitLineProductPropertyClass","Charge","KitComponentKeyClass","DistinctProductId","KitVariantId","KitComponentKeyList","ProductLookupClauseClass","InventDimensionId","ProductAssortmentIntervalClass","OrgUnitContactClass","Distance","PostalAddressId","OpenFrom","OpenTo","Locator","LocatorExtension","ContactTypeValue","SalesLineDeliveryOptionClass","SalesLineId","DeliveryOptionClass","DeliveryChargeLines","DeliveryChargeLineClass","TotalChargeAmount","ChannelDeliveryOptionClass","ChannelIdentityClass","ChannelType","ExtensibleRetailChannelTypeClass","OperatingUnitNumber","ChannelProfilePropertyClass","ChannelConfigurationClass","ChannelNaturalId","MinimumDepositPercentage","QuoteExpirationDays","PickupDeliveryModeCode","CarryoutDeliveryModeCode","CancellationChargePercentage","InventLocationDataAreaId","BingMapsApiKey","BingMapsEnabled","CatalogDefaultImageTemplate","CompanyCurrency","PriceIncludesSalesTax","ChannelCountryRegionISOCode","DefaultLanguageId","TimeZoneInfoId","EmailDeliveryModeCode","GiftCardItemId","EnableProductRecommendations","RefundableShippingAmountWithoutApproval","RefundShippingCharges","ReceiptSettingsValue","CustomerAttributeGroupId","ClientBookAttributeGroupId","NotificationRefreshInterval","AllowExchangeOnReturnOrders","IsInventoryAutomaticValidationEnabled","ProfileProperties","Properties","ChannelPropertyClass","ChannelLanguageClass","UseAdvancedAutoCharges","UseRTSForOnlineOrderCreation","IsWarrantyAutoPromptEnabled","EnableProductRatingsForRetailStores","EnableFetchingPickingListsForPickingAndReceiving","EnableReturnsForMultipleOrderInvoices","EnableAnonymousOrderLookupByChannelReferenceId","EnableOmniChannelPayments","EnableFiscalRegistrationStorageBackup","UseSalesReceiptAsDefaultReceiptTypeInJournal","SalesOrderHeaderAttributeGroups","SalesOrderLinesAttributeGroups","CustomerAddressBooks","StoreAddressBookClass","EnableReturnPolicies","InventAvailabilityCalculationMode","IsPriceInclusiveTaxExemptCalculationEnabled","EnableValidationOfSerialNumbersForInStoreReturns","ChannelDeliveryOptionConfigurationClass","PickupDeliveryModeCodes","NonSalesTransactionClass","ForeignCurrency","DenominationDetails","DenominationDetailClass","DropAndDeclareTransactionClass","TenderDetails","TenderDetailClass","ProductSearchCriteriaClass","Ids","IncludeProductsFromDescendantCategories","SearchCondition","SkipVariantExpansion","IncludeAttributes","Barcodes","Refinement","RecommendationListId","DownloadProductData","Context","IsOnline","ChangedProductsSearchCriteriaClass","SynchronizationToken","AsListings","Session","ReadChangedProductsSessionClass","EmployeeActivitySearchCriteriaClass","FromDateTimeOffset","ToDateTimeOffset","EmployeeActivityTypeValues","SearchSuggestionCriteriaClass","ProductSearchCriteria","CustomerSearchCriteria","HitPrefix","HitSuffix","CartLineDeliveryPreferenceClass","DeliveryPreferenceTypeValues","CartLinePromotionClass","Promotions","Color","Style","Size","Configuration","ColorId","StyleId","SizeId","DistinctProductVariantId","PropertiesAsList","DeviceTypeValue","DeviceName","DeviceMake","DeviceModel","DeviceDescription","CharacterSet","ReceiptProfileId","BinaryConversion","DocInsertRemovalTimeout","Logo","LogoAlignment","DecodeData","IsSharedShiftDrawer","TillLayoutClass","CashChangerLayoutXml","CustomerLayoutId","CustomerLayoutXml","Height","LayoutTypeValue","LayoutXml","LayoutXmlPortrait","ReceiptItemsLayoutXml","ReceiptPaymentLayoutXml","TotalId","TotalsLayoutXml","StartScreen","ButtonGridZones","ButtonGridZoneClass","ImageZones","ImageZoneClass","ReportZones","ReportZoneClass","SalesInvoiceClass","SalesType","InvoiceDate","DueDate","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalLineDiscount","AmountBalance","Account","SalesInvoiceLine","SalesInvoiceLineClass","OrderAccount","OrderedByCustomerName","OrderInvoiceClass","InvoiceDueDate","InvoicePaidStatusValue","TaxOverrideClass","SourceTaxGroup","DestinationTaxGroup","SourceItemTaxGroup","DestinationItemTaxGroup","AdditionalDescription","TenderTypeClass","Function","ChangeTenderTypeId","AboveMinimumChangeAmount","AboveMinimumChangeTenderTypeId","UseSignatureCaptureDevice","MinimumSignatureCaptureAmount","IsOvertenderAllowed","IsUndertenderAllowed","MaximumOvertenderAmount","MaximumUndertenderAmount","MaximumAmountPerTransaction","MaximumAmountPerLine","MinimumAmountPerTransaction","MinimumAmountPerLine","RoundOff","TakenToBank","TakenToSafe","ConnectorId","GiftCardItem","GiftCardCashoutOutThreshold","ChangeLineOnReceipt","HideCardInputDetails","CashDrawerLimitEnabled","CashDrawerLimit","RestrictReturnsWithoutReceipt","DefaultCardTypeId","UseForDeclareStartAmount","ReasonCodeClass","InputRequired","LinkedReasonCodeId","MaximumLength","MaximumValue","MinimumLength","MinimumValue","OncePerTransaction","PrintInputNameOnReceipt","PrintInputToReceipt","PrintPromptToReceipt","Prompt","RandomFactor","RetailUseReasonCode","ActivityValue","IsMultiLineText","ReasonSubCodes","ReportDataSetClass","ReportId","Parameters","Output","ReportRowClass","HasTotalRow","HasDisclaimer","ZipCodeInfoClass","ZipPostalCode","StreetName","CityAlias","District","ReasonCodeRequirementClass","SourceId","TableRefTypeValue","QueryResultSettingsClass","Paging","PagingInfoClass","Sorting","SortingInfoClass","Columns","ColumnName","IsDescending","NextPageToken","Top","Skip","TranslationLanguage","TranslatedProperties","NumberSequenceSeedDataClass","DataValue","LastTransactionDataValue","LastTransactionCreatedDateTime","LastTransactionId","ReceiptNumberResetInfoClass","ResetDate","TypeValue","Enabled","DeviceActivationResultClass","Device","PurchaseHistoryClass","DatePurchased","PurchaseHistorySearchCriteriaClass","StartDate","EndDate","ProductNameFilter","NodeClass","ParentScopeId","ParentSequence","Sequence","ScreenshotUri","LineClass","ChildrenIds","IsLinked","LineMetadataId","Artifacts","ArtifactSummaryClass","MetadataPropertyValues","MetadataPropertyValueClass","MetadataTextClass","MetadataHypertextLinkClass","ScopeClass","ScopeTypeValue","Children","ActiveCount","IsForm","FrameworkClass","Access","Hierarchy","Publisher","UserActionClass","SystemGenerated","GlobalId","Annotations","AnnotationClass","TaskUserActionClass","UserActionTypeValue","TaskId","FormUserActionClass","FormId","ControlLabel","CommandUserActionClass","ReturnTypeValue","CommandName","ControlName","ControlType","Arguments","CommandArgumentClass","LabelId","ReturnValue","RecordingClass","Scopes","FormContextEntries","FormContextDictionaryEntryClass","RootScope","FormContext","FormContextClass","ProductVariantResolutionContextClass","ProductVariantResolutionOnKitSelectionContextClass","SelectedComponents","WarehouseLocationClass","IsLicensePlateControlled","TransDateTime","RegisterResponse","ReceiptCopy","RecordGUID","RegisterStoreId","RegisterTerminalId","RegistrationStatusValue","RegistrationProcessId","ConnectorGroup","ConnectorFunctionalityProfileId","RegisterInfo","DocumentNumber","RegistrationTypeValue","ServiceName","TenderLineAdjustments","FiscalTransactionTenderLineAdjustmentClass","SalesLineAdjustments","FiscalTransactionSalesLineAdjustmentClass","FulfillmentLineClass","SalesPersonStoreId","SalesPersonId","SalesPersonFirstName","SalesPersonLastName","SalesLineNumber","EmailAddress","DeliveryModeCode","FulfillmentDeliveryType","DeliveryTypeValue","StoreInventoryTotalQuantity","StoreInventoryReservedQuantity","StoreInventoryOrderedQuantity","ProductVariant","RequestedShipDate","RequestedReceiptDate","CreatedDate","ChannelTypeValue","FulfillmentLineSearchCriteriaClass","OrderCreatedStartDate","OrderCreatedEndDate","RequestedReceiptStartDate","RequestedReceiptEndDate","RequestedDeliveryStartDate","RequestedDeliveryEndDate","FulfillmentStatusValues","CustomerPhoneNumber","CommentClass","AuthorStaffId","AuthorName","AddressPurposeClass","AddressType","ExtensionPackageDefinitionClass","ReturnPolicyClass","TenderTypePolicies","TenderTypePolicyClass","IsManagerOverrideEnabled","TenderTypeAmountClass","FeatureStateClass","WarrantyClass","DurationUnitValue","Duration","ApplicablePriceRangeBaseTypeValue","ApplicablePriceRangeMin","ApplicablePriceRangeMax","RecallInvoicedSalesLineLookupClass","InvoicedLineId","IgnoreSerialNumberMismatch","WarrantyGroupClass","Warranties","ProductWarrantiesMappingClass","WarrantyGroups","WarrantableProductId","FulfillmentLineContextualOperationsMapClass","FulfillmentLine","UserAlertClass","AlertSourceIdValue","LocalizedMessage","IsBlocking","CartLineUserAlertsClass","LineIndex","UserAlerts","FulfillmentLineUserAlertsClass","BusinessPartnerProspectClass","CompanyName","JobTitle","Department","CompanySize","ChannelSearchCriteriaClass","BusinessPartnerOperationClass","BusinessPartnerOperationRequestClass","Details","BusinessPartnerOperationRequestDetailsClass","UserFirstName","UserLastName","ReceiptTypesByFormatTypeClass","ReceiptOutputFormatType","ReceiptTypesValues","InventoryJournalNameSearchCriteriaClass","JournalNameIds","AssortedProductIdentityClass","IsRemoteProduct","ProductExistenceIdClass","ProductExistenceCriteriaClass","InstructionsVersion","AssignedToPersonnelNumbers","AssignedToExternalSubId","DeepLinkTypeValue","DeepLink","DeepLinkPosOperationName","ContactPersonPersonnelNumber","Instructions","CompletionDateTime","ResolvedByPersonnelNumber","ChecklistId","Uri","EmployeeActivityClass","StaffName","Activity","ActivityDateTimeOffset","EmployeeActivityTypeValue","BreakCategory","CustomerRefinerClass","CardTokenInfo","CardTokenInfoClass","ProductDimensionAvailabilitySearchCriteriaClass","RequestedDimensionTypeValue","MatchingDimensionValues","DefaultWarehouseOnly","FilterByChannelFulfillmentGroup","DeliveryModeTypeFilterValue","LineShippingAddressClass","CartDeliveryPreferencesClass","HeaderDeliveryPreferenceTypeValues","CartLineDeliveryPreferences","LineDeliverySpecificationClass","DeliverySpecification","DeliverySpecificationClass","DeliveryPreferenceTypeValue","PickUpStoreId","ShipFromStoreId","OrderSearchCriteriaClass","OrderStatusValues","OrderType","FulfillmentTypeValues","PickupStartDate","PickupEndDate","PickupTimeslotStartTime","PickupTimeslotEndTime","ChecklistSearchCriteriaClass","PersonnelNumber","ChecklistIds","StatusValues","TaskSearchCriteriaClass","TaskIds","FilterMyTasks","FilterOverdueTasks","ChecklistTaskTeamsIntegrationConfigurationClass","MicrosoftGraphResource","ReturnCartLineClass","TenderDiscountLineClass","ReceiptRetrievalCriteriaClass","IsCopy","IsRemoteTransaction","IsPreview","QueryBySalesId","HardwareProfileId","CartSearchCriteriaClass","CartId","ExpectedCartVersion","IncludeAnonymous","SuspendedOnly","LastModifiedDateTimeFrom","LastModifiedDateTimeTo","ReturnUrl","SearchReceiptCriteriaClass","ReceiptTypesByFormatTypeCollection","GiftReceiptLineNumbers","ElectronicAddressClass","ExtensibleEAddressType","ChannelReferenceLookupCriteriaClass","ChannelReferenceAdditionalLookupCriteria","ChannelReferenceAdditionalLookupCriteriaClass","FulfillmentLineParameterClass","ShipFulfillmentLineClass","RejectFulfillmentLineClass","RejectedQuantity","InfoCodeId","SubInfoCodeId","TotalNumberOfProducts","NumberOfProductsRead","NumberOfProductsReadInCurrentPage","NextSynchronizationToken","IsInitialSync","DeletedListingsResultClass","HasMorePublishedListings","DeletedListings","ListingIdentityClass","ProductRatingClass","RatingDistribution","ProductRatingCountClass","ProductDeliveryOptionsClass","ListingPublishStatusClass","PublishStatusValue","ListingModifiedDateTime","ChannelListingId","AppliedActionValue","StatusMessage","OrgUnitLocationSearchCriteriaClass","InventoryLocationIds","StoreHoursClass","RegularStoreHours","RegularStoreHoursClass","CartPromotionsClass","HeaderPromotions","CartLinePromotions","CartPromotionLineClass","Promotion","PromotionClass","ItemUnitClass","VariantInventoryDimensionId","DistinctProductVariant","ProductAvailableQuantityClass","AvailableQuantity","OrgUnitAvailabilitySearchCriteriaClass","InvoiceSearchCriteriaClass","InvoiceIds","InvoiceTypeValues","InvoicePaidStatusValues","InvoiceDetailsSearchCriteriaClass","PickAndPackSalesLineParameterClass","ProductListSearchCriteriaClass","ProductListType","AffiliationId","LoyaltyTierId","ClientBookCustomerSearchCriteriaClass","FilterByCurrentEmployee","ClientBookCustomerClass","ImageUris","ClientBookChangesClass","Changes","ClientBookChangeClass","ChargeCodeClass","PaymentConnectorPropertiesXml","MerchantPropertiesHashValue","ServiceAccountId","StoreSafeClass","SafeNumber","SafeBalance","LastUpdatedTime","InventoryDocumentReceiptSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordClass","UpdateNowQuantity","CreateHardwareStationTokenResultClass","HardwareStationToken","PairingKey","ValidateHardwareStationTokenResultClass","MediaBlobClass","MediaType","Content","PictureId","OnlineChannelClass","OnlineStoreCustomerTypeValue","OnlineChannelName","OrgUnitTypeValue","ChannelProfile","ChannelProfileClass","ChannelProperties","ChannelLanguages","CountryRegions","TerminalDataDownloadRequestInfoClass","RequiresDataInitialization","HasBeenInitializedBefore","DataDownloadParametersClass","DownloadInterval","DownloadSessions","DownloadSessionClass","FeatureControlList","RetailSharedConfigurationParameterClass","DataStore","CDXDataStoreClass","TerminalDataUploadRequestInfoClass","DataUploadParametersClass","UploadInterval","UploadJobPackageRequests","UploadJobPackageRequestClass","JobId","JobDescription","FileSize","RowsAffected","Checksum","DateDownloaded","DateRequested","DataStoreName","DownloadLink","OfflineTerminalStateClass","LoyaltyRewardPointActivityClass","ActivityDate","LoyaltyRewardPointTimelineEntryType","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","LoyaltyPoints","CurrencyRequestClass","AmountToConvert","HardwareStationProfileClass","HardwareStationId","HardwareStationTypeValue","HardwareStationName","HardwareStationDescription","HardwareStationUrl","HardwareStationHostName","HardwareStationEftTerminalId","NameValuePairClass","LinkToExistingCustomerResultClass","ExternalIdentityProvider","ExternalIdentityLinkRecordId","OfflineSyncStatsLineClass","IsUploadJob","LastSyncDateTime","StorageAccessTokenClass","SasKey","TaskGuidesSearchResultClass","FrameworkPublisherName","AuditEventClass","EventId","EventIdString","UploadType","EventType","EventDateTime","DurationInMilliseconds","Source","EventMessage","LogLevel","Staff","ClosedShiftId","ReferenceId","RefChannel","RefStore","RefTerminal","RefTransactionId","AuditEventTypeValue","AuditEventFiscalTransactionClass","FiscalRegistrationLines","AuditEventFiscalRegistrationLineClass","OrderedSum","PhysicalReserved","InventoryUnitOfMeasure","InventoryUnitOfMeasureDescription","InventoryAvailableToPromiseClass","NotificationItemClass","Action","ActionName","NotificationDetails","NotificationDetailClass","FiscalIntegrationDocumentRetrievalCriteriaClass","FiscalRegistrationEventTypeValue","DocumentContext","FiscalIntegrationDocumentContextClass","FiscalIntegrationDocumentClass","Document","DocumentGenerationResultTypeValue","FiscalConnectorTechnicalProfile","DocumentAdjustment","FiscalIntegrationDocumentAdjustmentClass","SequentialSignatureDataContext","FiscalIntegrationSignatureDataContextClass","FiscalIntegrationRegistrationResultClass","TransactionID","AuditEventId","Response","SubmittedDocument","SequentialSignatureData","FiscalIntegrationSequentialSignatureDataClass","FiscalIntegrationRegistrationProcessClass","RegistrationProcessLines","FiscalIntegrationRegistrationProcessLineClass","FiscalIntegrationSupportedEventsClass","FunctionalityProfileGroupId","SupportedFiscalEventTypes","SupportedNonFiscalEventTypes","ConnectorTypeValue","ConnectorLocationValue","TechnicalProfile","FiscalIntegrationFiscalRegistrationProcessSummaryClass","FiscalRegistrationProcessSummaryLines","FiscalIntegrationFiscalRegistrationProcessSummaryLineClass","FiscalIntegrationTechnicalProfileSearchCriteriaClass","ExcludeOptionalProcessLines","FunctionalityProfileGroupIds","FiscalIntegrationServiceInfoClass","ServiceProperties","FiscalIntegrationServiceStatusClass","IsReady","FiscalIntegrationServiceCommunicationResultClass","CommunicationResultTypeValue","FailureDetails","FiscalIntegrationServiceFailureDetailsClass","FiscalIntegrationServiceInfo","UserNotificationMessage","LastRegisterResponse","SequenceKey","IsOffline","SequentialNumber","DiscountsSearchCriteriaClass","ValidationPeriodId","AdditionalRestrictions","ValidFromDate","ValidToDate","ValidationPeriod","ValidationPeriodClass","CouponCodes","CategoryPathLookupClass","CategoryPathResultClass","CategoryPath","CategoryPathClass","PickupTimeslotAvailabilitySearchCriteriaClass","SearchOptionValue","PickupTimeslotAvailabilityClass","AvailableCapacity","CheckInForOrderPickupConfirmationClass","VendorSearchCriteriaClass","VendorClass","PartyId","NameAlias","VendorValidationResultClass","VendorValidationResultLevelValue","ExtensionProfileClass","ExtensionServiceUrl","AttachedServices","AttachedServiceClass","ChannelInventoryConfigurationClass","AllowTransferOrderOverDelivery","AllowTransferOrderUnderDelivery","UserLocationProfileId","InventoryProductAttributeRecordId","InventoryOutOfStockAttributeValueText","ProductAvailabilitySortableAttributeRecordId","ChannelPurchaseConfigurationClass","AllowOverDelivery","AllowSubDelivery","InventoryJournalNameClass","JournalNameId","InventoryJournalTypeValue","DefaultAdjustmentTypeValue","ShiftRetrievalCriteriaClass","ShiftStatusValue","FilterByUserRole","IncludeAllShiftsForStore","UserDefinedSecretCertificateResultClass","CertificateData","TerminalInfoClass","CustomerTimelineItemTypeMapClass","Types","CustomerTimelineItemTypeClass","CustomerTimelineRefinerClass","RefinedResultsCount","CustomerTitleClass","ProductWarehouseClass","ProductWarehouseInventoryInformationClass","ProductWarehouseInventoryAvailabilities","ProductWarehouseInventoryAvailabilityClass","AggregatedProductInventoryAvailabilities","ProductInventoryAvailabilityClass","InventoryAvailabilitySearchCriteriaClass","SearchArea","QuantityUnitTypeValue","ExtensibleEnumerationContainerClass","TypeName","ExtensibleEnumerations","PackingSlipDataClass","PackingSlipId","EmailReceiptSettingsClass","EmailBehaviorValue","FiscalIntegrationComplianceResultClass","ErrorMessages","OrgUnitAddressClass","WarehouseDetailsClass","SwatchValue","ProductImageUrls","AttributeBooleanValueClass","AttributeCurrencyValueClass","AttributeDateTimeOffsetValueClass","AttributeFloatValueClass","UnitSymbol","AttributeIntValueClass","AttributeMediaLocationValueClass","AttributeTextValueClass","TextValueTranslations","ActionProperty","BackColorAsARGB","ARGBColorClass","BorderColorAsARGB","Column","ColumnSpan","DisplayText","FontColorAsARGB","ButtonId","Row","RowSpan","UseCustomLookAndFeel","PictureAsBase64","FontStyle","FontSize","EnableCustomFontForPOS","HideButtonText","Tooltip","EnableLiveContent","NotificationContentAlignment","ImageAlignment","A","R","G","B","PriceMethod","OriginId","PriceChangedByExtensions","TradeAgreementPriceLineClass","AttributePricingTradeAgreementPriceLineClass","CanApplyPriceAdjustments","SalesAgreementPriceLineClass","SalesAgreementName","UnitPrice","DiscountPercent","SalesAgreementLineTypeValue","PriceUnit","EffectiveDate","CommittedQuantity","CommittedAmount","RemainingAmount","PriceAdjustmentPriceLineClass","Concurrency","AttributePricingAdjustmentPriceLineClass","CanCompoundOnAdjustedPrice","AdjustedAmount","BasePriceLineClass","ExtensiblePeriodicDiscountOfferTypeClass","OriginalAmount","OverrideAmount","OverrideReasonDescription","OverrideDateTime","TaxLineGTEClass","TaxComponent","Path","UniqueCardId","DataverseTenderLineClass","IsLocalized","IsSearchable","IsRetrievable","IsQueryable","IsRefinable","IsSortable","IsTokenNormalization","IsCompleteMatch","FromUnitOfMeasureId","ToUnitOfMeasureId","FromUnitOfMeasureSymbol","ToUnitOfMeasureSymbol","IsBackward","Factor","Numerator","Denominator","InnerOffset","OuterOffset","ReturnLocationText","ReturnWarehouseText","ReturnReasonText","ReturnPalleteText","LoyaltyGroupRecordId","EntryDate","EntryTime","RewardPointRecordId","RewardPointIsRedeemable","RewardPointType","ServiceType","PackageWeight","WeightClass","ShippedOnDate","DeliveredOnDate","EstimatedDeliveryDate","PackagingType","DestinationAddress","OriginAddress","ShipmentProgress","ShipmentProgressClass","ShippingCharge","Location","DateTime","AddressComponentNameValue","IsDataEntryOnly","NewLine","Expand","Inactive","Special","NumberOfSpaces","Separator","CashDrawerConfigurations","HardwareConfigurationClass","PrinterConfigurations","PinPadConfiguration","HardwareStationRecordId","IPAddress","Port","PrinterType","PrintBehaviorValue","ReceiptLayoutId","ReceiptType","TransferQuantity","DocumentLineRecordId","InventTransRecordId","AddressBookId","AddressBookTypeValue","AmountInForeignCurrency","ForeignCurrencyExchangeRate","BankBagNumber","TenderRecount","Type","DenominationAmount","QuantityDeclared","AmountDeclared","ButtonGridId","ZoneId","ZoneName","ReportRecordId","InventTransactionId","Site","Warehouse","SerialId","ColorName","SizeName","StyleName","ConfigName","ItemTaxGroup","SalesMarkup","RowData","FormAnnotationClass","MenuItemLabel","MenuItemName","MenuItemType","TaskGuideAnnotationClass","RecordingValueType","ExampleText","Hidden","IsReference","PropertyUserActionClass","ValueLabel","PropertyName","UserActionType","InfoUserActionClass","ControlLabelId","MenuItemUserActionClass","NavigationPath","ValidationUserActionClass","ArtifactType","LanguageTags","PropertyId","SingleValue","MultiValue","Tags","ComboBox","MultiSelect","Links","FormID","FormName","RecordingName","HasMetadata","ExtensibleFiscalRegistrationTypeClass","TenderLineNumber","AdjustmentAmount","RecordGuid","Exclude","DetailedOrderStatusClass","LineValidationResultClass","ValidationFailures","DataValidationFailureClass","TaxId","CodeId","DiscountOfferId","Units","PartyLocationRecordId","PartyRecordId","ValueExtension","ParentLocation","IsMobilePhone","IsOptedInMarketing","QuantityReturned","TaxRate","IsRegistrationNumberUnique","IsPrimaryAddressRestricted","TypeApplicabilityRuleRecordId","DirPartyLocationRecordId","RegistrationNumber","IssueDate","Section","ChannelTaxRegistrationClass","LinkedProductRecordId","CategoryRecordId","RelatedProductRecordId","RelationName","IsExcludedRelation","IsDirectRelation","OrderLookupAdditionalCriteriaTypeValue","OrderLookupAdditionalCriteriaTypeParameterValue","UserAlertFulfillmentLineParameterClass","SerialNumberInLatestFulfillmentTransaction","LatestFulfillmentTransactionOperationTypeValue","Rating","MondayOpenTime","MondayCloseTime","IsClosedOnMonday","TuesdayOpenTime","TuesdayCloseTime","IsClosedOnTuesday","WednesdayOpenTime","WednesdayCloseTime","IsClosedOnWednesday","ThursdayOpenTime","ThursdayCloseTime","IsClosedOnThursday","FridayOpenTime","FridayCloseTime","IsClosedOnFriday","SaturdayOpenTime","SaturdayCloseTime","IsClosedOnSaturday","SundayOpenTime","SundayCloseTime","IsClosedOnSunday","PeriodId","StartingTime","EndingTime","IsTimeBounded","MondayStartingTime","MondayEndingTime","IsMondayTimeBounded","TuesdayStartingTime","TuesdayEndingTime","IsTuesdayTimeBounded","WednesdayStartingTime","WednesdayEndingTime","IsWednesdayTimeBounded","ThursdayStartingTime","ThursdayEndingTime","IsThursdayTimeBounded","FridayStartingTime","FridayEndingTime","IsFridayTimeBounded","SaturdayStartingTime","SaturdayEndingTime","IsSaturdayTimeBounded","SundayStartingTime","SundayEndingTime","IsSundayTimeBounded","IsEndTimeAfterMidnight","IsMondayEndTimeAfterMidnight","IsTuesdayEndTimeAfterMidnight","IsWednesdayEndTimeAfterMidnight","IsThursdayEndTimeAfterMidnight","IsFridayEndTimeAfterMidnight","IsSaturdayEndTimeAfterMidnight","IsSundayEndTimeAfterMidnight","FromStaffId","ToStaffId","RecId","RerunUploadSessionId","TargetStorage","UploadJobDefintion","UploadUrl","ExtensibleAuditEventTypeClass","UploadTypeValue","ItemCount","IsNew","LastUpdatedDateTimeStr","IsSuccess","IsLiveContentOnly","AuditEvent","SequentialSignatureKey","SequenceNumber","AllowSkip","AllowMarkAsRegistered","AllowPostpone","Optional","RegistrationSettings","FiscalIntegrationRegistrationSettingsClass","SequentialKeys","SkipReasonCode","MarkAsRegisteredReasonCode","PostponeReasonCode","RegistrationProcessLine","ConnectionProperties","FiscalIntegrationConfigurationPropertyClass","LabelName","FailureTypeValue","IsRetryAllowed","Segments","CategoryPathSegmentClass","CategoryId","BaseUrl","ServiceId","ExtensibleInventoryJournalTypeClass","PhysicalInventory","TotalAvailable","OrderedInTotal","PhysicalAvailable","LastInventoryTransactionId","UnpostedOnlineOrderedQuantity","UnpostedFulfilledQuantity","IsInventoryAvailabilityQuantityReturned","UnprocessedQuantity","MaximumPurchasablePhysicalAvailableQuantity","MaximumPurchasableTotalAvailableQuantity","SumUncountedTransactions","QuantityUnitTypeClass","TotalAvailableQuantity","PhysicalAvailableQuantity","ParameterSetClass","CartLineValidationResultsClass","ValidationResultsByLineId","CartLineValidationResultsByLineIdClass","ValidationFailuresByCartLines","LineDataValidationFailureClass","CommerceExceptionClass","ErrorResourceId","DataValidationExceptionClass","ValidationResults","MissingRequiredReasonCodeExceptionClass","RequiredReasonCodes","TransactionRequiredReasonCodeIds","ReasonCodeRequirements","SecurityExceptionClass","DeviceAuthenticationExceptionClass","HeadquarterTransactionServiceExceptionClass","UserAuthenticationExceptionClass","UserAuthorizationExceptionClass","FeatureNotSupportedExceptionClass","CartValidationExceptionClass","TenderValidationExceptionClass","CommerceDataExchangeExceptionClass","ExtensibleEnumerationExceptionClass","TaskManagementExceptionClass","TaskManagementErrors","TaskManagementErrorClass","TaskManagementServerExceptionClass","TaskManagementClientExceptionClass","PaymentExceptionClass","ErrorContext","MemberNames","ItemDiscontinuedExceptionClass","RemovedUnavailableItemIds","InventoryDocumentLockedByOtherTerminalExceptionClass","WorkingTerminalId","InventoryDocumentExceedMaximumQuantityExceptionClass","LineIdToProductBehaviorMap","KeyValuePair_2OfString_ProductBehaviorClass","ValidationResultsPairs","CommerceRuntimeCompositionExceptionClass","ChecklistTaskValidationExceptionClass","InsufficientCredentialLengthExceptionClass","ActualLength","MinLength","ExtensibleEnumerationCacheExceptionClass","ExtensionConfigurationExceptionClass","StaffPasswordExpiredExceptionClass","ChannelConfigurationNotFoundExceptionClass","PaymentConfigurationExceptionClass","PaymentConfigurationSdkErrors","SecretConfigurationNotFoundExceptionClass","OriginalTenderType","AllowedReturnTenderTypes","AccountStatementRequestClass","RequestedUserId","IsForFullOrganization","FromDate","ToDate","RequestingUserEmail","AccountStatementStartDateTime","AccountStatementEndDateTime","DataValidationFailure","WrongEndpointExceptionClass","RedirectUri","BadRequestExceptionClass"],"sourceRoot":""}