summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2023-07-07 09:01:25 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2023-07-07 09:01:25 +0700
commita3f31a6b473177a459673bf815d474f7e11d734c (patch)
tree48cba54d5ceaacf53fc0d0acfdf0ee850fc6858e
parenta07c0242de1c79f3ea0add3ee6b51e2cbf4982b6 (diff)
refactor compute field waybill
-rw-r--r--indoteknik_custom/models/airway_bill.py149
1 files changed, 47 insertions, 102 deletions
diff --git a/indoteknik_custom/models/airway_bill.py b/indoteknik_custom/models/airway_bill.py
index 09f88a91..8429d250 100644
--- a/indoteknik_custom/models/airway_bill.py
+++ b/indoteknik_custom/models/airway_bill.py
@@ -106,145 +106,90 @@ class AirwayBill(models.Model):
response = self.decode_response()
if not response:
return response
- return self.decode_response()['raja_ongkir']['result'][key]
-
+ return response['raja_ongkir']['result'][key]
+
+ def _compute_way_bill(self, airway, key, attribute):
+ details = airway._get_history('details')
+ delivery_status = airway._get_history('delivery_status')
+ if details:
+ setattr(airway, attribute, details[key])
+ elif delivery_status:
+ setattr(airway, attribute, delivery_status[key])
+ else:
+ setattr(airway, attribute, '-')
+
def _compute_way_bill_datetime(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- waybill_date = details['waybill_date']
- waybill_time = details['waybill_date']
- airway.way_bill_date = waybill_date+' '+waybill_time
- else:
- airway.way_bill_date = '-'
+ self._compute_way_bill(airway, 'waybill_date', 'way_bill_date')
def _compute_way_bill_weight(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.weight = details['weight']
- else:
- airway.weight = '-'
-
+ self._compute_way_bill(airway, 'weight', 'weight')
+
def _compute_way_bill_origin(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.origin = details['origin']
- else:
- airway.origin = '-'
-
+ self._compute_way_bill(airway, 'origin', 'origin')
+
def _compute_way_bill_destination(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.destination = details['destination']
- else:
- airway.destination = '-'
-
+ self._compute_way_bill(airway, 'destination', 'destination')
+
def _compute_way_bill_shipper_name(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.shipper_name = details['shipper_name']
- else:
- airway.shipper_name = '-'
-
+ self._compute_way_bill(airway, 'shipper_name', 'shipper_name')
+
def _compute_way_bill_shipper_address1(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.shipper_address1 = details['shipper_address1']
- else:
- airway.shipper_address1 = '-'
-
+ self._compute_way_bill(airway, 'shipper_address1', 'shipper_address1')
+
def _compute_way_bill_shipper_address2(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.shipper_address2 = details['shipper_address2']
- else:
- airway.shipper_address2 = '-'
-
+ self._compute_way_bill(airway, 'shipper_address2', 'shipper_address2')
+
def _compute_way_bill_shipper_address3(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.shipper_address3 = details['shipper_address3']
- else:
- airway.shipper_address3 = '-'
-
+ self._compute_way_bill(airway, 'shipper_address3', 'shipper_address3')
+
def _compute_way_bill_shipper_city(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.shipper_city = details['shipper_city']
- else:
- airway.shipper_city = '-'
-
+ self._compute_way_bill(airway, 'shipper_city', 'shipper_city')
+
def _compute_way_bill_receiver_name(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.receiver_name = details['receiver_name']
- else:
- airway.receiver_name = '-'
-
+ self._compute_way_bill(airway, 'receiver_name', 'receiver_name')
+
def _compute_way_bill_receiver_address1(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.receiver_address1 = details['receiver_address1']
- else:
- airway.receiver_address1 = '-'
-
+ self._compute_way_bill(airway, 'receiver_address1', 'receiver_address1')
+
def _compute_way_bill_receiver_address2(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.receiver_address2 = details['receiver_address2']
- else:
- airway.receiver_address2 = '-'
-
+ self._compute_way_bill(airway, 'receiver_address2', 'receiver_address2')
+
def _compute_way_bill_receiver_address3(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.receiver_address3 = details['receiver_address3']
- else:
- airway.receiver_address3 = '-'
-
+ self._compute_way_bill(airway, 'receiver_address3', 'receiver_address3')
+
def _compute_way_bill_receiver_city(self):
for airway in self:
- details = airway._get_history('details')
- if details:
- airway.receiver_city = details['receiver_city']
- else:
- airway.receiver_city = '-'
-
+ self._compute_way_bill(airway, 'receiver_city', 'receiver_city')
+
def _compute_way_bill_status(self):
for airway in self:
- details = airway._get_history('delivery_status')
- if details:
- airway.status = details['status']
- else:
- airway.status = '-'
-
+ self._compute_way_bill(airway, 'status', 'status')
+
def _compute_way_bill_pod_receiver(self):
for airway in self:
- details = airway._get_history('delivery_status')
- if details:
- airway.pod_receiver = details['pod_receiver']
- else:
- airway.pod_receiver = '-'
-
+ self._compute_way_bill(airway, 'pod_receiver', 'pod_receiver')
+
def _compute_way_bill_pod_datetime(self):
for airway in self:
details = airway._get_history('delivery_status')
-4 if details:
+ if details:
pod_date = details['pod_date']
- pod_time = details['pod_tiem']
- airway.pod_datetime = pod_date+' '+pod_time
+ pod_time = details['pod_time']
+ airway.pod_datetime = pod_date + ' ' + pod_time
else:
airway.pod_datetime = '-'
+
\ No newline at end of file