diff options
| author | trisusilo48 <tri.susilo@altama.co.id> | 2025-04-29 09:09:05 +0700 |
|---|---|---|
| committer | trisusilo48 <tri.susilo@altama.co.id> | 2025-04-29 09:09:05 +0700 |
| commit | 509eb9406e6c48caf3e6366c3d8ac60643b71546 (patch) | |
| tree | 2a94ea83fc3ff550b40aa1684b85fbb4261b1276 | |
| parent | 914705630f61f2e02f15ee24a479191e945a0f22 (diff) | |
fixing jam 15
| -rw-r--r-- | indoteknik_api/controllers/api_v1/product.py | 2 | ||||
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 24 | ||||
| -rw-r--r-- | indoteknik_custom/models/stock_picking.py | 1 |
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}") |
