diff --git a/api/ee/src/dbs/postgres/meters/dao.py b/api/ee/src/dbs/postgres/meters/dao.py index 5302329dc3..36a2338060 100644 --- a/api/ee/src/dbs/postgres/meters/dao.py +++ b/api/ee/src/dbs/postgres/meters/dao.py @@ -132,17 +132,13 @@ async def check( if quota.monthly: now = datetime.now(timezone.utc) - if not anchor: - meter.year = now.year - meter.month = now.month - - if anchor: - if now.day < anchor: - meter.year = now.year - meter.month = now.month - else: - meter.year = now.year + now.month // 12 - meter.month = (now.month + 1) % 12 + if not anchor or now.day < anchor: + year, month = now.year, now.month + else: + year = now.year + now.month // 12 + month = ((now.month + 1) % 12) or 12 + + meter.year, meter.month = year, month async with engine.core_session() as session: stmt = select(MeterDBE).filter_by( @@ -185,15 +181,13 @@ async def adjust( if quota.monthly: now = datetime.now(timezone.utc) - if not anchor: - meter.year = now.year - meter.month = now.month - elif now.day < anchor: - meter.year = now.year - meter.month = now.month + if not anchor or now.day < anchor: + year, month = now.year, now.month else: - meter.year = now.year + now.month // 12 - meter.month = (now.month + 1) % 12 + year = now.year + now.month // 12 + month = ((now.month + 1) % 12) or 12 + + meter.year, meter.month = year, month # 2. Calculate proposed value (starting from 0) desired_value = meter.value if meter.value is not None else (meter.delta or 0)