From b27d4c067249d4f91d5b8a6ce5c5dd57fbf79292 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Fri, 7 Jul 2023 10:55:24 +0700 Subject: refactor response api airway bill --- indoteknik_custom/models/airway_bill.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/indoteknik_custom/models/airway_bill.py b/indoteknik_custom/models/airway_bill.py index edbaf671..638ec530 100644 --- a/indoteknik_custom/models/airway_bill.py +++ b/indoteknik_custom/models/airway_bill.py @@ -43,7 +43,7 @@ class AirwayBill(models.Model): self.ensure_one() return self._json_decode(self.response) - def _update_data_way_bill(self, history): + def _update_data_way_bill(self): # jne, pos, tiki, wahana, jnt, rpx, sap, sicepat, jet, dse, dan first # 51, 53, 54, 7, 57, 55, 59, 59, 27, 60, 62, 64 current_time = datetime.now() @@ -77,7 +77,7 @@ class AirwayBill(models.Model): if not waybill: waybill = self.create(values) - waybill.response = history + waybill.response = json.dumps(history, indent=2, ensure_ascii=False) waybill.manifest_ids.unlink() self.env['airway.bill.manifest'].generate_airway_bill_line(history, waybill.id) @@ -106,15 +106,21 @@ class AirwayBill(models.Model): response = self.decode_response() if not response: return response - return response.get('raja_ongkir', {}).get('result', {}).get(key) + + if response.get('raja_ongkir', {}): + raja_ongkir = response.get('raja_ongkir', {}) + elif response.get('rajaongkir', {}): + raja_ongkir = response.get('rajaongkir', {}) + result = raja_ongkir.get('result', {}) + return result.get(key) def _compute_way_bill(self, airway, key, attribute): details = airway._get_history('details') delivery_status = airway._get_history('delivery_status') value = None - if key in details: + if details and key in details: value = details.get(key) - elif key in delivery_status: + elif delivery_status and key in delivery_status: value = delivery_status.get(key) setattr(airway, attribute, value if value else '-') -- cgit v1.2.3