summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-07-28 11:31:28 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-07-28 11:31:28 +0700
commitf26b2447f4f233a838e8990a800d975ab27a1557 (patch)
treea31214537d07ddf3466fe5cfdfb1f1237e83188c /indoteknik_api/controllers/api_v1
parent7ada4bbe5bf00dd494b05b4a5e5b86ab3461d56f (diff)
Update airway bill API response
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py39
1 files changed, 26 insertions, 13 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py
index c3501db4..9dcd06d0 100644
--- a/indoteknik_api/controllers/api_v1/sale_order.py
+++ b/indoteknik_api/controllers/api_v1/sale_order.py
@@ -315,21 +315,34 @@ class SaleOrder(controller.Controller):
'name': sale_order.name
})
- @http.route(PREFIX_PARTNER + 'sale_order/<id>/awb', auth='public', methods=['GET', 'OPTIONS'])
+ @http.route(PREFIX_PARTNER + 'sale-order/<id>/awb', auth='public', methods=['GET', 'OPTIONS'])
@controller.Controller.must_authorized(private=True, private_key='partner_id')
def get_airway_bill_by_sale_order_id(self, **kw):
- id = kw.get('id')
- airway_bill = request.env['airway.bill'].search([('so_id', '=', id)], limit=1)
-
- data = airway_bill.decode_response()
- result = data['rajaongkir']['result']
-
- response = {
- 'delivery_status': result['delivery_status'],
- 'manifest': result['manifest'],
- 'delivered': result['delivered'],
- 'waybill_number': result['summary']['waybill_number']
- }
+ id = int(kw.get('id', 0))
+ response = {'airways': None}
+ airway_bills = request.env['airway.bill'].search([('so_id', '=', id)])
+
+ if not airway_bills:
+ return self.response(response)
+
+ airways = []
+ for airway_bill in airway_bills:
+ data = airway_bill.decode_response()
+ delivery_order = airway_bill.do_id
+ result = data['rajaongkir']['result']
+ airways.append({
+ 'delivery_order': {
+ 'name': delivery_order.name,
+ 'carrier': delivery_order.carrier_id.name,
+ 'receiver_name': airway_bill.receiver_name,
+ 'receiver_city': airway_bill.receiver_city,
+ },
+ 'delivered': result['delivered'],
+ 'waybill_number': result['summary']['waybill_number'],
+ 'delivery_status': result['delivery_status'],
+ 'manifests': result['manifest']
+ })
+ response = {'airways': airways}
return self.response(response)