diff options
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sale_order.py | 16 |
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] |
