summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-03-10 11:21:30 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-03-10 11:21:30 +0700
commitd7285a4c58256bbadcdd72dc5afbba2cc0b2b491 (patch)
tree02ddb35dc6ab4b40189df8bfa4579d215d893908
parent2c2ef831e327539c81a707042ad5812a8adcd1ad (diff)
<iman> add sort filter
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py
index 5914a23c..bf03e04d 100644
--- a/indoteknik_api/controllers/api_v1/sale_order.py
+++ b/indoteknik_api/controllers/api_v1/sale_order.py
@@ -86,7 +86,8 @@ class SaleOrder(controller.Controller):
'limit': ['default:0', 'number'],
'offset': ['default:0', 'number'],
'context': [],
- 'status': []
+ 'status': [],
+ 'sort': [],
})
limit = params['value']['limit']
offset = params['value']['offset']
@@ -117,6 +118,7 @@ class SaleOrder(controller.Controller):
domain += [
('partner_id.site_id.name', 'ilike', '%' + site + '%')
]
+
if params['value']['status']:
if params['value']['status'] == 'quotation':
domain += [('state', '=', 'draft')]
@@ -134,8 +136,18 @@ class SaleOrder(controller.Controller):
domain += [('picking_ids.state', 'not in', ['draft', 'waiting', 'confirmed', 'assigned', 'cancel'])]
elif params['value']['status'] == 'selesai':
domain += [('state', '=', 'done')]
+
+ # Sorting
+ order = None
+ if params['value']['sort']:
+ if params['value']['sort'] == 'asc':
+ order = 'amount_total asc'
+ elif params['value']['sort'] == 'desc':
+ order = 'amount_total desc'
+
sale_orders = request.env['sale.order'].search(
- domain, offset=offset, limit=limit)
+ domain, offset=offset, limit=limit, order=order)
+
data = {
'sale_order_total': request.env['sale.order'].search_count(domain),
'sale_orders': [request.env['sale.order'].api_v1_single_response(x) for x in sale_orders]