This commit is contained in:
2026-02-28 11:48:31 +03:00
parent 3c0d50a1aa
commit 29504c5502
4 changed files with 255 additions and 14 deletions
@@ -78,6 +78,33 @@ class HoursTransactionsRepository:
return transaction, resident
async def move_hours_to_completed(
self,
resident_id: int,
amount: int,
admin_id: int | None = None,
) -> tuple[HoursTransaction, Resident | None]:
"""Перемещает часы из неотработанных в отработанные"""
transaction = HoursTransaction(
resident_id=resident_id,
transaction_type=TransactionType.DECREASE.value,
amount=amount,
admin_id=admin_id,
)
transaction = await self.transactions_dao.create(transaction)
resident = await self.residents_dao.get_by_id(resident_id)
if resident:
new_active = max(0, resident.active_hours - amount)
new_inactive = resident.inactive_hours + amount
resident = await self.residents_dao.update(
resident_id,
active_hours=new_active,
inactive_hours=new_inactive
)
return transaction, resident
async def get_resident_history(self, resident_id: int) -> list[HoursTransaction]:
return await self.transactions_dao.get_by_resident_id(resident_id)