feat: time tracking
This commit is contained in:
45
test.py
45
test.py
@@ -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()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user