feat: time tracking

This commit is contained in:
2024-08-03 05:39:05 +03:00
parent 82c9126d87
commit 58220a246b
7 changed files with 245 additions and 63 deletions

45
test.py
View File

@@ -1,25 +1,44 @@
import asyncio
import datetime
from sqlalchemy import select
from sqlalchemy import select, func
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import joinedload
from backend.session import session_maker
from models import User
from models import User, PaymentRecord
async def main():
work_units = 15
base_rate = 0
overtime_units = max([0, work_units - base_rate])
base_units = work_units - overtime_units
print(overtime_units, base_units)
return
session: AsyncSession = session_maker()
a = await session.scalar(
select(User).where(User.first_name == "Абид")
)
print(a)
try:
d = datetime.date.today()
d = d.replace(day=1)
print(d)
stmt = (
select(
PaymentRecord
)
.select_from(PaymentRecord)
.options(
joinedload(
PaymentRecord.user
)
)
.where(
func.date(func.date_trunc('month', PaymentRecord.start_date)) == d,
func.date(func.date_trunc('month', PaymentRecord.end_date)) == d,
PaymentRecord.start_date == PaymentRecord.end_date,
# PaymentRecord.user_id.in_(request.user_ids)
)
)
print(stmt.compile(compile_kwargs={
'literal_binds': True
}))
query_result = (await session.scalars(stmt)).all()
print(query_result)
except Exception as e:
print(e)
await session.close()