summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrisusilo48 <tri.susilo@altama.co.id>2025-04-29 09:09:05 +0700
committertrisusilo48 <tri.susilo@altama.co.id>2025-04-29 09:09:05 +0700
commit509eb9406e6c48caf3e6366c3d8ac60643b71546 (patch)
tree2a94ea83fc3ff550b40aa1684b85fbb4261b1276
parent914705630f61f2e02f15ee24a479191e945a0f22 (diff)
fixing jam 15
-rw-r--r--indoteknik_api/controllers/api_v1/product.py2
-rwxr-xr-xindoteknik_custom/models/sale_order.py24
-rw-r--r--indoteknik_custom/models/stock_picking.py1
3 files changed, 16 insertions, 11 deletions
diff --git a/indoteknik_api/controllers/api_v1/product.py b/indoteknik_api/controllers/api_v1/product.py
index bd969f67..0c26f064 100644
--- a/indoteknik_api/controllers/api_v1/product.py
+++ b/indoteknik_api/controllers/api_v1/product.py
@@ -66,7 +66,7 @@ class Product(controller.Controller):
'include_instant': include_instant,
'sla_duration': 1,
'sla_additional_days': additional_days,
- 'sla_total' : int(additional_days),
+ 'sla_total' : 1 + int(additional_days),
'sla_unit': 'Hari'
})
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 1e40d15e..91905037 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -2,7 +2,7 @@ from re import search
from odoo import fields, models, api, _
from odoo.exceptions import UserError, ValidationError
-from datetime import datetime, timedelta
+from datetime import datetime, timedelta, timezone
import logging, random, string, requests, math, json, re, qrcode, base64
from io import BytesIO
from collections import defaultdict
@@ -566,16 +566,20 @@ class SaleOrder(models.Model):
while True:
# Tambah satu hari, cek apakah hari kerja
current_day += timedelta(days=1)
- offset += 1
# Lewati weekend
- if current_day.weekday() >= 5:
- continue
+ is_weekend = current_day.weekday() >= 5
+
+ if is_weekend:
+ offset += 1
+ continue
# Lewati hari libur
is_holiday = holiday.search([("start_date", "=", current_day)])
+
if is_holiday:
- continue
+ offset += 1
+ continue
break
@@ -588,7 +592,7 @@ class SaleOrder(models.Model):
# Cek apakah SEMUA produk memiliki qty_free_bandengan >= qty_needed
all_fast_products = all(product.product_id.qty_free_bandengan >= product.product_uom_qty for product in products)
if all_fast_products:
- return {'slatime': 1, 'include_instant': include_instant}
+ return {'slatime': 0, 'include_instant': include_instant}
# Cari semua vendor pemenang untuk produk yang diberikan
vendors = self.env['purchase.pricelist'].search([
@@ -623,7 +627,8 @@ class SaleOrder(models.Model):
rec.expected_ready_to_ship = False
return
- current_date = datetime.now()
+ jakarta = pytz.timezone("Asia/Jakarta")
+ current_date = datetime.now(jakarta)
max_slatime = 1 # Default SLA jika tidak ada
slatime = self.calculate_sla_by_vendor(rec.order_line)
@@ -634,6 +639,7 @@ class SaleOrder(models.Model):
rec.estimated_arrival_days = sum_days
eta_date = current_date + timedelta(days=sum_days)
+ eta_date = eta_date.astimezone(timezone.utc).replace(tzinfo=None)
rec.commitment_date = eta_date
rec.expected_ready_to_ship = eta_date
@@ -645,7 +651,7 @@ class SaleOrder(models.Model):
def _validate_expected_ready_ship_date(self):
for rec in self:
if rec.expected_ready_to_ship and rec.commitment_date:
- current_date = datetime.now().date()
+ current_date = datetime.now()
# Hanya membandingkan tanggal saja, tanpa jam
expected_date = rec.expected_ready_to_ship.date()
@@ -655,7 +661,7 @@ class SaleOrder(models.Model):
sum_days = max_slatime + self.get_days_until_next_business_day(current_date)
eta_minimum = current_date + timedelta(days=sum_days)
- if expected_date < eta_minimum:
+ if expected_date < eta_minimum.date():
rec.expected_ready_to_ship = eta_minimum
raise ValidationError(
"Tanggal 'Expected Ready to Ship' tidak boleh lebih kecil dari {}. Mohon pilih tanggal minimal {}."
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 38a1173c..39c74aa2 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -523,7 +523,6 @@ class StockPicking(models.Model):
raise UserError(f"Kesalahan tidak terduga: {str(e)}")
def action_send_to_biteship(self):
-
if self.biteship_tracking_id:
raise UserError(f"Order ini sudah dikirim ke Biteship. Dengan Tracking Id: {self.biteship_tracking_id}")