summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authortrisusilo48 <tri.susilo@altama.co.id>2025-02-07 15:07:01 +0700
committertrisusilo48 <tri.susilo@altama.co.id>2025-02-07 15:07:01 +0700
commit0dbcd5eb060924a0860b2586776f65d5ce19b9ef (patch)
tree9bded0399668761aa60644e3d959038953b54378 /indoteknik_api/controllers/api_v1
parentd0647f4b4a0df94c7b51852823df37eeb5b89e3e (diff)
estimation delerivery date
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/product.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/indoteknik_api/controllers/api_v1/product.py b/indoteknik_api/controllers/api_v1/product.py
index 5d564ff9..93ef305c 100644
--- a/indoteknik_api/controllers/api_v1/product.py
+++ b/indoteknik_api/controllers/api_v1/product.py
@@ -9,6 +9,17 @@ import json
_logger = logging.getLogger(__name__)
+def get_days_until_next_business_day(start_date=None, *args, **kwargs):
+ today = start_date or datetime.today().date()
+ offset = 0 # Counter jumlah hari yang ditambahkan
+
+ while today.weekday() >= 5 :
+ today += timedelta(days=1)
+ offset += 1
+
+ return offset
+
+
class Product(controller.Controller):
prefix = '/api/v1/'
@@ -75,12 +86,17 @@ class Product(controller.Controller):
if product_sla.sla_vendor_id.unit != 'jam':
include_instant = False
break
+
+ start_date = datetime.today().date()
+ additional_days = get_days_until_next_business_day(start_date)
# Jika semua loop selesai tanpa include_instant menjadi False
return self.response({
'include_instant': include_instant,
'sla_duration': sla_duration,
- 'sla_unit': sla_unit
+ 'sla_additional_days': additional_days,
+ 'sla_total' : int(sla_duration) + int(additional_days),
+ 'sla_unit': 'Hari' if additional_days > 0 else sla_unit
}
)