diff --git a/supplychain/__pycache__/init.cpython-310.pyc b/supplychain/__pycache__/init.cpython-310.pyc index 34fa216..ac1bc91 100644 Binary files a/supplychain/__pycache__/init.cpython-310.pyc and b/supplychain/__pycache__/init.cpython-310.pyc differ diff --git a/supplychain/init.py b/supplychain/init.py index 0f4b7f9..f00c23c 100644 --- a/supplychain/init.py +++ b/supplychain/init.py @@ -995,39 +995,35 @@ async def get_agreement_discount_items(request): async def get_contract_discount_items(request): """Return products with discount status for a supply contract. - Products link to suppliers via: product → resource_ref_id → - product_resource_supplier.supplier_org_id. + Filters products where product.providerid matches the contract's supplier_id. """ params_kw = getattr(request._run_ns, 'params_kw', {}) or {} contract_id = params_kw.get('contract_id') or params_kw.get('id') if not contract_id: return [] env = request._run_ns - # Get supplier orgid from contract - supplier_orgid = None + # Get supplier_id from contract + supplier_id = None async with get_sor_context(env, 'supplychain') as sor: rows = await sor.sqlExe( - "SELECT s.orgid FROM suppliers s " - "JOIN supply_contracts sc ON sc.supplier_id = s.id " - "WHERE sc.id = ${cid}$", + "SELECT supplier_id FROM supply_contracts WHERE id = ${cid}$", {'cid': contract_id} ) if rows: - supplier_orgid = rows[0].orgid - if not supplier_orgid: + supplier_id = rows[0].supplier_id + if not supplier_id: return [] - # Get products from sage — join through product_resource_supplier + # Get products from sage — filter by providerid = supplier_id products = [] async with get_sor_context(env, 'sage') as sor: rows = await sor.sqlExe( - "SELECT DISTINCT p.id as productid, p.product_name, p.product_code, " + "SELECT p.id as productid, p.product_name, p.product_code, " "p.price as sale_price, pc.id as category_id, pc.name as category_name " "FROM product p " - "JOIN product_resource_supplier prs ON p.resource_ref_id = prs.product_resource_id " "LEFT JOIN product_category pc ON p.category_id = pc.id " - "WHERE p.status = '1' AND prs.supplier_org_id = ${oid}$ AND prs.status = '1' " + "WHERE p.status = '1' AND p.providerid = ${sid}$ " "ORDER BY pc.sort_order, pc.name, p.sort_order, p.product_name", - {'oid': supplier_orgid} + {'sid': supplier_id} ) for r in rows: products.append({