From 21ee3f19583c28c3df3785eda0e6ce4b4ef7e48d Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 6 Jul 2023 15:55:10 +0700 Subject: API airway bill --- indoteknik_api/controllers/api_v1/sale_order.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index c1665b72..038508c4 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -418,3 +418,23 @@ class SaleOrder(controller.Controller): } return self.response(data) + + @http.route('/api/sale_order//airway', auth='public', methods=['GET']) + def get_sale_order_airway_bill_by_id(self, **kw): + if not self.authenticate(): + return self.unauthorized_response() + + 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'] + } + + return self.response(response) \ No newline at end of file -- cgit v1.2.3 From 93146912c0f157edb4d4f08b4b17871277bb9677 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 18 Jul 2023 10:51:31 +0700 Subject: Add cron xml airway bill and update model, api --- indoteknik_api/controllers/api_v1/sale_order.py | 39 ++++++++++++------------- 1 file changed, 19 insertions(+), 20 deletions(-) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 038508c4..c3501db4 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -314,6 +314,24 @@ class SaleOrder(controller.Controller): 'id': sale_order.id, 'name': sale_order.name }) + + @http.route(PREFIX_PARTNER + 'sale_order//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'] + } + + return self.response(response) @http.route('/api/sale_order/invoiced', auth='public', methods=['GET']) def get_sale_order_invoiced_by_partner_id(self, **kw): @@ -418,23 +436,4 @@ class SaleOrder(controller.Controller): } return self.response(data) - - @http.route('/api/sale_order//airway', auth='public', methods=['GET']) - def get_sale_order_airway_bill_by_id(self, **kw): - if not self.authenticate(): - return self.unauthorized_response() - - 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'] - } - - return self.response(response) \ No newline at end of file + \ No newline at end of file -- cgit v1.2.3 From f26b2447f4f233a838e8990a800d975ab27a1557 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 28 Jul 2023 11:31:28 +0700 Subject: Update airway bill API response --- indoteknik_api/controllers/api_v1/sale_order.py | 39 ++++++++++++++++--------- 1 file changed, 26 insertions(+), 13 deletions(-) (limited to 'indoteknik_api/controllers/api_v1') 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//awb', auth='public', methods=['GET', 'OPTIONS']) + @http.route(PREFIX_PARTNER + 'sale-order//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) -- cgit v1.2.3