diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2023-07-07 09:01:25 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2023-07-07 09:01:25 +0700 |
| commit | a3f31a6b473177a459673bf815d474f7e11d734c (patch) | |
| tree | 48cba54d5ceaacf53fc0d0acfdf0ee850fc6858e | |
| parent | a07c0242de1c79f3ea0add3ee6b51e2cbf4982b6 (diff) | |
refactor compute field waybill
| -rw-r--r-- | indoteknik_custom/models/airway_bill.py | 149 |
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 |
