Fix products grid query when filter/sort has multiple ProductCost joins
This commit is contained in:
parent
1dc21d846e
commit
1dd42e1ab2
|
@ -147,7 +147,8 @@ class ProductsView(MasterView):
|
|||
# These aliases enable the grid queries to filter products which may be
|
||||
# purchased from *any* vendor, and yet sort by only the "preferred" vendor
|
||||
# (since that's what shows up in the grid column).
|
||||
ProductCostAny = orm.aliased(model.ProductCost)
|
||||
ProductVendorCost = orm.aliased(model.ProductCost)
|
||||
ProductVendorCostAny = orm.aliased(model.ProductCost)
|
||||
VendorAny = orm.aliased(model.Vendor)
|
||||
|
||||
# same, but for prices
|
||||
|
@ -188,17 +189,17 @@ class ProductsView(MasterView):
|
|||
super(ProductsView, self).configure_grid(g)
|
||||
|
||||
def join_vendor(q):
|
||||
return q.outerjoin(model.ProductCost,
|
||||
return q.outerjoin(self.ProductVendorCost,
|
||||
sa.and_(
|
||||
model.ProductCost.product_uuid == model.Product.uuid,
|
||||
model.ProductCost.preference == 1))\
|
||||
self.ProductVendorCost.product_uuid == model.Product.uuid,
|
||||
self.ProductVendorCost.preference == 1))\
|
||||
.outerjoin(model.Vendor)
|
||||
|
||||
def join_vendor_any(q):
|
||||
return q.outerjoin(self.ProductCostAny,
|
||||
self.ProductCostAny.product_uuid == model.Product.uuid)\
|
||||
return q.outerjoin(self.ProductVendorCostAny,
|
||||
self.ProductVendorCostAny.product_uuid == model.Product.uuid)\
|
||||
.outerjoin(self.VendorAny,
|
||||
self.VendorAny.uuid == self.ProductCostAny.vendor_uuid)
|
||||
self.VendorAny.uuid == self.ProductVendorCostAny.vendor_uuid)
|
||||
|
||||
ProductCostCode = orm.aliased(model.ProductCost)
|
||||
ProductCostCodeAny = orm.aliased(model.ProductCost)
|
||||
|
|
Loading…
Reference in a new issue