AURORA-1652 #203
@ -1,7 +1,6 @@
|
||||
"""Чтение версионированных правил элиминации и счетов их сторон."""
|
||||
|
||||
import uuid
|
||||
from collections.abc import Collection
|
||||
from datetime import date
|
||||
|
||||
from sqlalchemy import func, select
|
||||
@ -52,21 +51,6 @@ async def list_rules(session: AsyncSession, version_no: int) -> list[Elimination
|
||||
return list((await session.scalars(stmt)).all())
|
||||
|
||||
|
||||
async def list_rule_accounts(
|
||||
session: AsyncSession, rule_ids: Collection[uuid.UUID]
|
||||
) -> list[tuple[EliminationRuleAccount, str]]:
|
||||
"""Счета правил §4 с кодами из плана счетов; `company_no` задаёт сторону, `is_excluded` — исключение."""
|
||||
if not rule_ids:
|
||||
return []
|
||||
stmt = (
|
||||
select(EliminationRuleAccount, ChartOfAccount.code)
|
||||
.join(ChartOfAccount, ChartOfAccount.id == EliminationRuleAccount.account_id)
|
||||
.where(EliminationRuleAccount.rule_id.in_(rule_ids))
|
||||
.order_by(EliminationRuleAccount.rule_id, EliminationRuleAccount.company_no, ChartOfAccount.code)
|
||||
)
|
||||
return [(account, code) for account, code in (await session.execute(stmt)).all()]
|
||||
|
||||
|
||||
async def rule_with_account(
|
||||
session: AsyncSession, rule_id: uuid.UUID
|
||||
) -> tuple[EliminationRule | None, list[EliminationRuleAccount]]:
|
||||
|
||||
@ -609,15 +609,6 @@ class IntercompanyMatrixService:
|
||||
items = calculate_rule_total_items(osv_result.consolidated.rows, rules, list(osv_result.members))
|
||||
return EliminationTotalsOut(version_no=version.elimination_rules_version, items=items)
|
||||
|
||||
async def build(
|
||||
self,
|
||||
version_id: uuid.UUID,
|
||||
selection: MatrixSelection,
|
||||
) -> IntercompanyMatrixOut:
|
||||
"""Счета принимает готовыми; выбор режима ALL/MANUAL выполняется вызывающим кодом."""
|
||||
result = await self._osv_service.build_with_members(version_id)
|
||||
return self._calculate(result.consolidated.rows, result.members, selection)
|
||||
|
||||
def _calculate(
|
||||
self, rows: Iterable[ConsolidatedRow], members: dict[uuid.UUID, Entity], selection: MatrixSelection
|
||||
) -> IntercompanyMatrixOut:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user