feat: worktime table with dates range
This commit is contained in:
@@ -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):
|
||||||
|
|||||||
@@ -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,17 +56,14 @@ 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(
|
||||||
user: User,
|
self,
|
||||||
request: UpdateTimeTrackingRecordRequest
|
user: User,
|
||||||
) -> UpdateTimeTrackingRecordResponse:
|
request: UpdateTimeTrackingRecordRequest
|
||||||
|
) -> UpdateTimeTrackingRecordResponse:
|
||||||
try:
|
try:
|
||||||
record_user = await UserService(self.session).get_by_id(user_id=request.user_id)
|
record_user = await UserService(self.session).get_by_id(user_id=request.user_id)
|
||||||
if not record_user:
|
if not record_user:
|
||||||
|
|||||||
Reference in New Issue
Block a user