File size: 832 Bytes
57ae0a7
 
9d9d2a1
57ae0a7
9d9d2a1
097fc11
57ae0a7
 
9d9d2a1
57ae0a7
097fc11
57ae0a7
 
 
097fc11
 
 
57ae0a7
097fc11
57ae0a7
 
816c5f8
 
 
 
097fc11
57ae0a7
097fc11
57ae0a7
 
 
097fc11
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from datetime import datetime, timedelta
import pytz

OMAN_TZ = pytz.timezone("Asia/Muscat")


def utc_now_iso() -> str:
    return datetime.utcnow().replace(microsecond=0).isoformat() + "Z"


def muscat_now() -> datetime:
    return datetime.now(OMAN_TZ)


local_now = muscat_now


def local_date_str() -> str:
    return muscat_now().strftime("%Y-%m-%d")


def muscat_date_str() -> str:
    return local_date_str()


def business_day_for_close(now: datetime | None = None) -> str:
    if now is None:
        now = muscat_now()
    if now.hour < 6:
        return (now.date() - timedelta(days=1)).isoformat()
    return now.date().isoformat()


business_date_for_closing = business_day_for_close


def should_auto_close(now: datetime | None = None) -> bool:
    if now is None:
        now = muscat_now()
    return now.hour >= 6