1

I do have my Jaydata model like

$data.Entity.extend('Razoom.Model.Product', {
    'ProductID': { 'key': true, 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'LocationID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'Code': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 50 },
    'Name': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 150 },
    'Notes': { 'type': 'Edm.String', 'maxLength': 250 },
    'Quantity': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'RetailPrice': { 'type': 'Edm.Decimal', 'nullable': false, 'required': true },
    'CostPrice': { 'type': 'Edm.Decimal', 'nullable': false, 'required': true },
    'AddedUserID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'AddedDate': { 'type': 'Edm.DateTime', 'nullable': false, 'required': true },
    'UpdatedUserID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'UpdatedDate': { 'type': 'Edm.DateTime', 'nullable': false, 'required': true },
    'SaleAccountID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'SaleTaxGroupID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'PurchaseAccountID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'PurchaseTaxGroupID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'Active': { 'type': 'Edm.Boolean', 'nullable': false, 'required': true },
    'UnitOfMeasureId': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'ItemTypeId': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'IsDefaultLabour': { 'type': 'Edm.Boolean', 'nullable': false, 'required': true },
    'BinId': { 'type': 'Edm.Int32' },
    'ProductPackages': { 'type': 'Array', 'elementType': 'Razoom.Model.ProductPackage', 'inverseProperty': 'Product' },
    'PurchaseTaxGroup': { 'type': 'Razoom.Model.TaxGroup', 'required': true, 'inverseProperty': 'PurchaseProducts' },
    'SaleTaxGroup': { 'type': 'Razoom.Model.TaxGroup', 'required': true, 'inverseProperty': 'SaleProducts' },
    'PurchaseAccount': { 'type': 'Razoom.Model.Account', 'required': true, 'inverseProperty': 'PurchaseProducts' },
    'SaleAccount': { 'type': 'Razoom.Model.Account', 'required': true, 'inverseProperty': 'SaleProducts' },
    'User': { 'type': 'Razoom.Model.User', 'required': true, 'inverseProperty': 'AddedProducts' },
    'User1': { 'type': 'Razoom.Model.User', 'required': true, 'inverseProperty': 'UpdatedProducts' },
    'Items': { 'type': 'Array', 'elementType': 'Razoom.Model.Item', 'inverseProperty': 'Product' },
    'Location': { 'type': 'Razoom.Model.Location', 'required': true, 'inverseProperty': 'Products' },
    'Notes1': { 'type': 'Array', 'elementType': 'Razoom.Model.Note', 'inverseProperty': 'Product' },
    'Inventories': { 'type': 'Array', 'elementType': 'Razoom.Model.Inventory', 'inverseProperty': 'Product' },
    'ItemType': { 'type': 'Razoom.Model.ItemType', 'required': true, 'inverseProperty': 'Products' },
    'Bin': { 'type': 'Razoom.Model.Bin', 'inverseProperty': 'Products' }
});    

$data.Entity.extend('Razoom.Model.Inventory', {
    'InventoryID': { 'key': true, 'type': 'Edm.Int32', 'nullable': false, 'computed': true },
    'ProductID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
    'DefaultBinID': { 'type': 'Edm.Int32' },
    'AddedUserID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'AddedDate': { 'type': 'Edm.DateTime', 'nullable': false, 'required': true },
    'DeletedUserID': { 'type': 'Edm.Int32' },
    'DeletedDate': { 'type': 'Edm.DateTime' },
    'User': { 'type': 'Razoom.Model.User', 'required': true, 'inverseProperty': 'Inventories' },
    'User1': { 'type': 'Razoom.Model.User', 'inverseProperty': 'Inventories1' },
    'Bin': { 'type': 'Razoom.Model.Bin', 'inverseProperty': 'Inventories' },
    'Product': { 'type': 'Razoom.Model.Product', 'required': true, 'inverseProperty': 'Inventories' },
    'EventHistories': { 'type': 'Array', 'elementType': 'Razoom.Model.EventHistory', 'inverseProperty': 'Inventory' },
    'InventoryBins': { 'type': 'Array', 'elementType': 'Razoom.Model.InventoryBin', 'inverseProperty': 'Inventory' }
});


$data.Entity.extend('Razoom.Model.InventoryBin', {
    'InventoryBinID': { 'key': true, 'type': 'Edm.Int32', 'nullable': false, 'computed': true },
    'BinID': { 'type': 'Edm.Int32' },
    'InventoryID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'Quantity': { 'type': 'Edm.Decimal', 'nullable': false, 'required': true },
    'MinInventoryLevel': { 'type': 'Edm.Decimal' },
    'MaxInventoryLevel': { 'type': 'Edm.Decimal' },
    'Bin': { 'type': 'Razoom.Model.Bin', 'inverseProperty': 'InventoryBins' },
    'Inventory': { 'type': 'Razoom.Model.Inventory', 'required': true, 'inverseProperty': 'InventoryBins' }
});

I am trying to retrieve all the products with Inventory and InventoryBins data using the below code.

var ProductResponse = RazoomCoreEntities.Products.include('Inventories').include('Inventories.InventoryBins').map(mapCallback).toArray();

but always get a error message.

My questions are

  1. does JayData support deep include? in my case, one product has multiple "Inventory" and further "Inventory" has multiple "InventoryBin"

  2. I have also tried

    var ProductResponse = RazoomCoreEntities.Products.include('c=>c.Inventories.InventoryBins')
    

    but nothing seem to work. Can anyone guide me to write the correct code or at least tell me does JayData support deep include or not?

Please guide me as I have stuck in code and it could fail me in deliver my project. any help is very much appriciated. Thanks in Advance

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459

0 Answers0