feat: worktime table with dates range

This commit is contained in:
2025-05-09 16:19:18 +04:00
parent be13c77164
commit 74faa57805
2 changed files with 12 additions and 17 deletions

View File

@@ -23,8 +23,8 @@ class TimeTrackingRecord(BaseSchema):
# region Requests # region Requests
class GetTimeTrackingRecordsRequest(BaseSchema): class GetTimeTrackingRecordsRequest(BaseSchema):
date: datetime.date date_from: datetime.date
user_ids: list[int] date_to: datetime.date
class UpdateTimeTrackingRecordRequest(BaseSchema): class UpdateTimeTrackingRecordRequest(BaseSchema):

View File

@@ -1,6 +1,6 @@
from collections import defaultdict from collections import defaultdict
from sqlalchemy import select, func from sqlalchemy import select
from sqlalchemy.orm import joinedload from sqlalchemy.orm import joinedload
from models import PaymentRecord, User from models import PaymentRecord, User
@@ -26,13 +26,11 @@ class TimeTrackingService(BaseService):
PaymentRecord.user_id == User.id PaymentRecord.user_id == User.id
) )
.where( .where(
func.date(func.date_trunc('month', PaymentRecord.start_date)) == request.date, PaymentRecord.start_date.between(request.date_from, request.date_to),
func.date(func.date_trunc('month', PaymentRecord.end_date)) == request.date,
PaymentRecord.start_date == PaymentRecord.end_date, PaymentRecord.start_date == PaymentRecord.end_date,
User.is_deleted == False User.is_deleted == False
# PaymentRecord.user_id.in_(request.user_ids)
) )
.order_by(User.id)
) )
query_result = (await self.session.scalars(stmt)).all() query_result = (await self.session.scalars(stmt)).all()
records_dict = defaultdict(list) records_dict = defaultdict(list)
@@ -58,14 +56,11 @@ class TimeTrackingService(BaseService):
data=data_list, data=data_list,
total_amount=amount total_amount=amount
) )
records.append( records.append(record)
record return GetTimeTrackingRecordsResponse(records=records)
)
return GetTimeTrackingRecordsResponse(
records=records
)
async def update_record(self, async def update_record(
self,
user: User, user: User,
request: UpdateTimeTrackingRecordRequest request: UpdateTimeTrackingRecordRequest
) -> UpdateTimeTrackingRecordResponse: ) -> UpdateTimeTrackingRecordResponse: