diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-07-28 11:36:33 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-07-28 11:36:33 +0700 |
| commit | 71bdce1310997736f84a6d65d423fca801bfe655 (patch) | |
| tree | 9001ee9f97d5abcd3214ea61ef12f78ff2b26f95 /indoteknik_api/controllers/api_v1 | |
| parent | eacf53b314861bc797e1222d4b8d7ae9ef677040 (diff) | |
| parent | f26b2447f4f233a838e8990a800d975ab27a1557 (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.py | 32 |
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 |
