mirror of
https://github.com/koloideal/DutyLog.git
synced 2026-06-10 10:25:29 +03:00
update
This commit is contained in:
@@ -39,3 +39,38 @@ class HoursTransactionsDAO:
|
||||
delete(HoursTransaction).where(HoursTransaction.id == transaction_id)
|
||||
)
|
||||
await self.session.commit()
|
||||
async def delete(self, transaction_id: int) -> None:
|
||||
await self.session.execute(
|
||||
delete(HoursTransaction).where(HoursTransaction.id == transaction_id)
|
||||
)
|
||||
await self.session.commit()
|
||||
|
||||
async def get_by_period(self, start_date, end_date) -> list[HoursTransaction]:
|
||||
"""Получает транзакции за период"""
|
||||
from datetime import datetime, time
|
||||
|
||||
start_datetime = datetime.combine(start_date, time.min)
|
||||
end_datetime = datetime.combine(end_date, time.max)
|
||||
|
||||
result = await self.session.execute(
|
||||
select(HoursTransaction)
|
||||
.where(HoursTransaction.created_at >= start_datetime)
|
||||
.where(HoursTransaction.created_at <= end_datetime)
|
||||
.order_by(HoursTransaction.created_at.asc())
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
|
||||
|
||||
async def get_by_period(self, start_date, end_date) -> list[HoursTransaction]:
|
||||
from datetime import datetime, time
|
||||
|
||||
start_datetime = datetime.combine(start_date, time.min)
|
||||
end_datetime = datetime.combine(end_date, time.max)
|
||||
|
||||
result = await self.session.execute(
|
||||
select(HoursTransaction)
|
||||
.where(HoursTransaction.created_at >= start_datetime)
|
||||
.where(HoursTransaction.created_at <= end_datetime)
|
||||
.order_by(HoursTransaction.created_at.asc())
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
|
||||
@@ -28,3 +28,6 @@ class FloorsRepository:
|
||||
|
||||
async def delete_floor(self, floor_id: int) -> None:
|
||||
await self.floors_dao.delete(floor_id)
|
||||
|
||||
async def get_by_id(self, floor_id: int) -> Floor | None:
|
||||
return await self.get_floor_by_id(floor_id)
|
||||
|
||||
@@ -121,3 +121,6 @@ class HoursTransactionsRepository:
|
||||
self, transaction_id: int
|
||||
) -> HoursTransaction | None:
|
||||
return await self.transactions_dao.get_by_id(transaction_id)
|
||||
|
||||
async def get_by_period(self, start_date, end_date) -> list[HoursTransaction]:
|
||||
return await self.transactions_dao.get_by_period(start_date, end_date)
|
||||
|
||||
@@ -26,3 +26,9 @@ class ReportingPeriodsRepository:
|
||||
|
||||
async def delete_period(self, period_id: int) -> None:
|
||||
await self.reporting_periods_dao.delete(period_id)
|
||||
|
||||
async def get_by_id(self, period_id: int) -> ReportingPeriod | None:
|
||||
return await self.get_period_by_id(period_id)
|
||||
|
||||
async def get_all(self) -> list[ReportingPeriod]:
|
||||
return await self.get_all_periods()
|
||||
|
||||
@@ -103,3 +103,6 @@ class ResidentsRepository:
|
||||
|
||||
async def delete_resident(self, resident_id: int) -> None:
|
||||
await self.residents_dao.delete(resident_id)
|
||||
|
||||
async def get_by_id(self, resident_id: int) -> Resident | None:
|
||||
return await self.get_resident_by_id(resident_id)
|
||||
|
||||
@@ -24,3 +24,6 @@ class RoomsRepository:
|
||||
|
||||
async def delete_room(self, room_id: int) -> None:
|
||||
await self.rooms_dao.delete(room_id)
|
||||
|
||||
async def get_by_id(self, room_id: int) -> Room | None:
|
||||
return await self.get_room_by_id(room_id)
|
||||
|
||||
@@ -33,6 +33,7 @@ from dutylog.infrastructure.database.repositories.reporting_periods_repository i
|
||||
ReportingPeriodsRepository,
|
||||
)
|
||||
from dutylog.infrastructure.utils.config import Config, load_config
|
||||
from dutylog.services.report_service import ReportService
|
||||
|
||||
|
||||
class ConfigProvider(Provider):
|
||||
@@ -118,3 +119,20 @@ class RepositoryProvider(Provider):
|
||||
self, reporting_periods_dao: ReportingPeriodsDAO
|
||||
) -> ReportingPeriodsRepository:
|
||||
return ReportingPeriodsRepository(reporting_periods_dao)
|
||||
|
||||
|
||||
class ServiceProvider(Provider):
|
||||
@provide(scope=Scope.REQUEST)
|
||||
def get_report_service(
|
||||
self,
|
||||
hours_transactions_repository: HoursTransactionsRepository,
|
||||
residents_repository: ResidentsRepository,
|
||||
rooms_repository: RoomsRepository,
|
||||
floors_repository: FloorsRepository,
|
||||
) -> ReportService:
|
||||
return ReportService(
|
||||
hours_transactions_repository,
|
||||
residents_repository,
|
||||
rooms_repository,
|
||||
floors_repository,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user