summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrisusilo48 <tri.susilo@altama.co.id>2025-02-26 10:47:01 +0700
committertrisusilo48 <tri.susilo@altama.co.id>2025-02-26 10:47:01 +0700
commit62caad158a936eee9a0b85fd4df0c664374b6bfb (patch)
tree56de407f001b99bce3cc797435c542ec9a67c3e5
parent39da2566a2af32b3fdaeae1ce826e4f778e9b8ce (diff)
biteship tracking
-rwxr-xr-xindoteknik_custom/models/sale_order.py2
-rw-r--r--indoteknik_custom/models/stock_picking.py25
2 files changed, 18 insertions, 9 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 43177f33..634ea918 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -98,7 +98,7 @@ class SaleOrder(models.Model):
email = fields.Char(string='Email')
picking_iu_id = fields.Many2one('stock.picking', 'Picking IU')
helper_by_id = fields.Many2one('res.users', 'Helper By')
- eta_date_start = fields.Datetime(string='ETA Date start', copy=False, compute='_compute_eta_start_date')
+ eta_date_start = fields.Datetime(string='ETA Date start', copy=False, compute='_compute_eta_date')
eta_date = fields.Datetime(string='ETA Date end', copy=False, compute='_compute_eta_date')
flash_sale = fields.Boolean(string='Flash Sale', help='Data dari web')
is_continue_transaction = fields.Boolean(string='Button Transaction', help='Data dari web')
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 00db6717..605452e3 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -1099,15 +1099,12 @@ class StockPicking(models.Model):
self.ensure_one()
order = self.env['sale.order'].search([('name', '=', self.sale_id.name)], limit=1)
-
- eta_start = order.date_order + timedelta(days=order.estimated_arrival_days_start).strftime('%d %b')
- eta_end = order.date_order + timedelta(days=order.estimated_arrival_days).strftime('%d %b %Y')
- formatted_eta = f"{eta_start} - {eta_end}"
response = {
'delivery_order': {
'name': self.name,
'carrier': self.carrier_id.name or '',
+ 'service' : order.delivery_service_type or '',
'receiver_name': '',
'receiver_city': ''
},
@@ -1115,19 +1112,21 @@ class StockPicking(models.Model):
'status': self.shipping_status,
'waybill_number': self.delivery_tracking_no or '',
'delivery_status': None,
- 'eta': formatted_eta,
+ 'eta': self.generate_eta_delivery(),
'is_biteship': True if self.biteship_id else False,
'manifests': self.get_manifests()
}
if self.biteship_id :
histori = self.get_manifest_biteship()
+ eta_start = order.date_order + timedelta(days=order.estimated_arrival_days_start)
+ eta_end = order.date_order + timedelta(days=order.estimated_arrival_days)
+ formatted_eta = f"{eta_start.strftime('%d %b')} - {eta_end.strftime('%d %b %Y')}"
+ response['eta'] = formatted_eta
response['manifests'] = histori.get("manifests", [])
response['delivered'] = histori.get("delivered", False) or self.sj_return_date != False or self.driver_arrival_date != False
response['status'] = self._map_status_biteship(histori.get("delivered"))
- response
-
return response
if not self.waybill_id or len(self.waybill_id.manifest_ids) == 0:
@@ -1155,6 +1154,15 @@ class StockPicking(models.Model):
# Kirim request ke Biteship
response = requests.get(_biteship_url+'/trackings/'+self.biteship_tracking_id, headers=headers, json=manifests)
result = response.json()
+ description = {
+ 'confirmed' : 'Indoteknik telah melakukan permintaan pick-up',
+ 'allocated' : 'Kurir akan melakukan pick-up pesanan',
+ 'picking_up' : 'Kurir sedang dalam perjalanan menuju lokasi pick-up',
+ 'picked' : 'Pesanan sudah di pick-up kurir '+result.get("courier", {}).get("name", ""),
+ 'on_hold' : 'Pesanan ditahan sementara karena masalah pengiriman',
+ 'dropping_off' : 'Kurir sudah ditugaskan dan pesanan akan segera diantar ke pembeli',
+ 'delivered' : 'Pesanan telah sampai dan diterima oleh '+result.get("destination", {}).get("contact_name", "")
+ }
if(result.get('success') == True):
history = result.get("history", [])
status = result.get("status", "")
@@ -1163,7 +1171,8 @@ class StockPicking(models.Model):
manifests.append({
"status": re.sub(r'[^a-zA-Z0-9\s]', ' ', entry["status"]).lower().capitalize(),
"datetime": self._convert_to_local_time(entry["updated_at"]),
- "description": GoogleTranslator(source='auto', target='id').translate(entry["note"]),
+ # "description": GoogleTranslator(source='auto', target='id').translate(entry["note"]),
+ "description": description[entry["status"]],
})
return {