summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-06-02 11:19:21 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-06-02 11:19:21 +0700
commit9e71d7ac3e018e9d4415e1341231671e62fbdb45 (patch)
tree4c97d373511456864c982acc6a0a78d91c8cec74
parent00fb3752ece083d28accad7b0a5ec8971a1cbb34 (diff)
<hafid> fix hours shipping method
-rwxr-xr-xindoteknik_custom/models/sale_order.py32
1 files changed, 26 insertions, 6 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index a76d8011..a86d43cb 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -1068,13 +1068,33 @@ class SaleOrder(models.Model):
def _compute_eta_date(self):
for rec in self:
if rec.expected_ready_to_ship and rec.shipping_option_id and rec.shipping_option_id.etd and rec.state not in ['cancel']:
- etd_text = rec.shipping_option_id.etd
- match = re.match(r"(\d+)\s*-\s*(\d+)", etd_text)
+ etd_text = rec.shipping_option_id.etd.strip().lower()
+ match = re.match(r"(\d+)\s*-\s*(\d+)\s*(days?|hours?)", etd_text)
+ single_match = re.match(r"(\d+)\s*(days?|hours?)", etd_text)
+
if match:
- start_days = int(match.group(1))
- end_days = int(match.group(2))
- rec.eta_date_start = rec.expected_ready_to_ship + timedelta(days=start_days)
- rec.eta_date = rec.expected_ready_to_ship + timedelta(days=end_days)
+ start_val = int(match.group(1))
+ end_val = int(match.group(2))
+ unit = match.group(3)
+
+ if 'hour' in unit:
+ rec.eta_date_start = rec.expected_ready_to_ship + timedelta(hours=start_val)
+ rec.eta_date = rec.expected_ready_to_ship + timedelta(hours=end_val)
+ else:
+ rec.eta_date_start = rec.expected_ready_to_ship + timedelta(days=start_val)
+ rec.eta_date = rec.expected_ready_to_ship + timedelta(days=end_val)
+
+ elif single_match:
+ val = int(single_match.group(1))
+ unit = single_match.group(2)
+
+ if 'hour' in unit:
+ rec.eta_date_start = rec.expected_ready_to_ship + timedelta(hours=val)
+ rec.eta_date = rec.expected_ready_to_ship + timedelta(hours=val)
+ else:
+ rec.eta_date_start = rec.expected_ready_to_ship + timedelta(days=val)
+ rec.eta_date = rec.expected_ready_to_ship + timedelta(days=val)
+
else:
rec.eta_date_start = False
rec.eta_date = False