mirror of
https://github.com/koloideal/DutyLog.git
synced 2026-06-10 18:35:29 +03:00
update
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user