summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-08-28 11:02:58 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-08-28 11:02:58 +0700
commit3757621d0b0232603a3d578b27b845054cae5982 (patch)
treedcc8e0490408870282a03c6e395dcab4af6ab527 /indoteknik_custom/models
parent3cf2809ab4cd0ca113318665997d58d0d758e495 (diff)
Refactor get manifest and add last manifest on get stock picking api
Diffstat (limited to 'indoteknik_custom/models')
-rw-r--r--indoteknik_custom/models/stock_picking.py51
1 files changed, 33 insertions, 18 deletions
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index e4a3e09e..bf321172 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -364,23 +364,39 @@ class StockPicking(models.Model):
}
def get_manifests(self):
- manifest_datas = []
+ if self.waybill_id and len(self.waybill_id.manifest_ids) > 0:
+ return [self.create_manifest_data(x.description, x.datetime) for x in self.waybill_id.manifest_ids]
+
+ status_mapping = {
+ 'pickup': {
+ 'arrival': 'Sudah diambil',
+ 'departure': 'Siap diambil',
+ 'prepare': 'Sedang disiapkan'
+ },
+ 'delivery': {
+ 'arrival': 'Sudah sampai',
+ 'departure': 'Sedang dikirim',
+ 'prepare': 'Menunggu pickup',
+ }
+ }
+ status_key = 'delivery'
+ if self.carrier_id.id == 32:
+ status_key = 'pickup'
+
+ manifest_datas = []
departure_date = self.driver_departure_date
arrival_date = self.driver_arrival_date
+ status = status_mapping.get(status_key)
- if self.carrier_id.id == 32: # Pickup Bandengan
- if arrival_date:
- manifest_datas.append(self.create_manifest_data('Sudah diambil', arrival_date))
- if departure_date:
- manifest_datas.append(self.create_manifest_data('Siap diambil', departure_date))
- manifest_datas.append(self.create_manifest_data('Sedang disiapkan', self.create_date))
- else:
- if arrival_date:
- manifest_datas.append(self.create_manifest_data('Sudah sampai', arrival_date))
- if departure_date:
- manifest_datas.append(self.create_manifest_data('Sedang dikirim', departure_date))
- manifest_datas.append(self.create_manifest_data('Menunggu pickup', self.create_date))
+ if not status:
+ return manifest_datas
+
+ if arrival_date:
+ manifest_datas.append(self.create_manifest_data(status['arrival'], arrival_date))
+ if departure_date:
+ manifest_datas.append(self.create_manifest_data(status['departure'], departure_date))
+ manifest_datas.append(self.create_manifest_data(status['prepare'], self.create_date))
return manifest_datas
@@ -397,19 +413,18 @@ class StockPicking(models.Model):
'delivered': False,
'waybill_number': self.delivery_tracking_no or '',
'delivery_status': None,
- 'eta': self.generate_eta_delivery()
+ 'eta': self.generate_eta_delivery(),
+ 'manifests': self.get_manifests()
}
if not self.waybill_id or len(self.waybill_id.manifest_ids) == 0:
response['delivered'] = self.driver_arrival_date != False
- response['manifests'] = self.get_manifests()
return response
- response['delivery_order']['receiver_name'] = self.waybill_id.receiver_name,
- response['delivery_order']['receiver_city'] = self.waybill_id.receiver_city,
+ response['delivery_order']['receiver_name'] = self.waybill_id.receiver_name
+ response['delivery_order']['receiver_city'] = self.waybill_id.receiver_city
response['delivery_status'] = self.waybill_id._get_history('delivery_status')
response['delivered'] = self.waybill_id.delivered
- response['manifests'] = [self.create_manifest_data(x.description, x.datetime) for x in self.waybill_id.manifest_ids]
return response