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,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:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user