summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-07-28 11:36:33 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-07-28 11:36:33 +0700
commit71bdce1310997736f84a6d65d423fca801bfe655 (patch)
tree9001ee9f97d5abcd3214ea61ef12f78ff2b26f95 /indoteknik_api/controllers/api_v1
parenteacf53b314861bc797e1222d4b8d7ae9ef677040 (diff)
parentf26b2447f4f233a838e8990a800d975ab27a1557 (diff)
Merge branch 'aiway-bill' into development
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/sale_order.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py
index a8b2fd11..cc7fd48f 100644
--- a/indoteknik_api/controllers/api_v1/sale_order.py
+++ b/indoteknik_api/controllers/api_v1/sale_order.py
@@ -372,7 +372,38 @@ class SaleOrder(controller.Controller):
'id': sale_order.id,
'name': sale_order.name
})
+
+ @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 = 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)
+
@http.route('/api/sale_order/invoiced', auth='public', methods=['GET'])
def get_sale_order_invoiced_by_partner_id(self, **kw):
if not self.authenticate():
@@ -481,3 +512,4 @@ class SaleOrder(controller.Controller):
}
return self.response(data)
+ \ No newline at end of file