summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2023-07-07 10:55:24 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2023-07-07 10:55:24 +0700
commitb27d4c067249d4f91d5b8a6ce5c5dd57fbf79292 (patch)
tree31ee62a42e16dcfc573768729e0828cbeca2f614
parent56df7760109b6e7c322bb8cf6f26b322b5c94bd8 (diff)
refactor response api airway bill
-rw-r--r--indoteknik_custom/models/airway_bill.py16
1 files 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 '-')