feat: extend comprehensive monthly settlement snapshots (#18)
This commit is contained in:
@@ -484,3 +484,14 @@ def finalize_settlement_draft(draft_id: str, expected_version: int, review_finge
|
||||
@mcp.tool()
|
||||
def cancel_settlement_draft(draft_id: str, expected_version: int, cancelled_by: str, reason: str) -> dict:
|
||||
return contracts.cancel_settlement_draft(draft_id, expected_version, cancelled_by, reason)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def set_settlement_cashflow_policy(draft_id: str, expected_version: int, updated_by: str, cashflow_policy: dict) -> dict:
|
||||
"""Set explicit monthly cashflow classification policy for a settlement draft."""
|
||||
return contracts.set_settlement_cashflow_policy(draft_id, expected_version, updated_by, cashflow_policy)
|
||||
|
||||
@mcp.tool()
|
||||
def get_monthly_settlement_snapshot(month: str = "", run_id: str = "") -> dict:
|
||||
"""Read a saved monthly settlement snapshot, optionally selecting an exact run."""
|
||||
return contracts.get_monthly_settlement_snapshot(month, run_id)
|
||||
|
||||
@@ -10,6 +10,8 @@ from ...service import (
|
||||
refresh_settlement_draft_targets as refresh_settlement_draft_targets,
|
||||
review_settlement_draft as review_settlement_draft,
|
||||
set_settlement_draft_item as set_settlement_draft_item,
|
||||
set_settlement_cashflow_policy as set_settlement_cashflow_policy,
|
||||
get_monthly_settlement_snapshot as get_monthly_settlement_snapshot,
|
||||
update_settlement_draft as update_settlement_draft,
|
||||
annotations as annotations,
|
||||
apply_categorization_rules as apply_categorization_rules,
|
||||
@@ -91,6 +93,7 @@ TOOL_CONTRACTS = {
|
||||
"update_settlement_draft", "refresh_settlement_draft_targets",
|
||||
"set_settlement_draft_item", "review_settlement_draft",
|
||||
"approve_settlement_draft", "finalize_settlement_draft", "cancel_settlement_draft",
|
||||
"set_settlement_cashflow_policy", "get_monthly_settlement_snapshot",
|
||||
)
|
||||
}
|
||||
|
||||
@@ -99,6 +102,7 @@ __all__ = [
|
||||
"finalize_settlement_draft", "get_settlement_draft", "list_settlement_drafts",
|
||||
"refresh_settlement_draft_targets", "review_settlement_draft",
|
||||
"set_settlement_draft_item", "update_settlement_draft",
|
||||
"set_settlement_cashflow_policy", "get_monthly_settlement_snapshot",
|
||||
"annotations",
|
||||
"apply_categorization_rules",
|
||||
"close_asset_snapshot",
|
||||
|
||||
@@ -9,15 +9,18 @@ from ...service import (
|
||||
create_settlement_draft as create_settlement_draft,
|
||||
finalize_settlement_draft as finalize_settlement_draft,
|
||||
get_settlement_draft as get_settlement_draft,
|
||||
get_monthly_settlement_snapshot as get_monthly_settlement_snapshot,
|
||||
list_account_valuations as list_account_valuations,
|
||||
list_settlement_drafts as list_settlement_drafts,
|
||||
refresh_settlement_draft_targets as refresh_settlement_draft_targets,
|
||||
register_account_valuation as register_account_valuation,
|
||||
review_settlement_draft as review_settlement_draft,
|
||||
set_settlement_draft_item as set_settlement_draft_item,
|
||||
set_settlement_cashflow_policy as set_settlement_cashflow_policy,
|
||||
update_settlement_draft as update_settlement_draft,
|
||||
)
|
||||
from ...application import settlement_draft_service as _draft_service
|
||||
from ...application import monthly_settlement_service as _monthly_service
|
||||
from ... import service as _service
|
||||
|
||||
|
||||
@@ -32,7 +35,12 @@ def _guard(db_path: str | None) -> str:
|
||||
|
||||
def _wrap(fn):
|
||||
def call(*args, db_path=None, **kwargs):
|
||||
target = _draft_service if fn.__name__ in {"create_settlement_draft", "list_settlement_drafts", "get_settlement_draft", "update_settlement_draft", "refresh_settlement_draft_targets", "set_settlement_draft_item", "review_settlement_draft", "approve_settlement_draft", "finalize_settlement_draft", "cancel_settlement_draft"} else _service
|
||||
if fn.__name__ == "set_settlement_cashflow_policy":
|
||||
target = _draft_service
|
||||
elif fn.__name__ == "get_monthly_settlement_snapshot":
|
||||
target = _monthly_service
|
||||
else:
|
||||
target = _draft_service if fn.__name__ in {"create_settlement_draft", "list_settlement_drafts", "get_settlement_draft", "update_settlement_draft", "refresh_settlement_draft_targets", "set_settlement_draft_item", "review_settlement_draft", "approve_settlement_draft", "finalize_settlement_draft", "cancel_settlement_draft"} else _service
|
||||
return getattr(target, fn.__name__)(*args, db_path=_guard(db_path), **kwargs)
|
||||
call.__name__ = fn.__name__
|
||||
call.__doc__ = fn.__doc__
|
||||
@@ -47,6 +55,7 @@ for _name in (
|
||||
"set_settlement_draft_item", "review_settlement_draft",
|
||||
"approve_settlement_draft", "finalize_settlement_draft", "cancel_settlement_draft",
|
||||
"register_account_valuation", "list_account_valuations", "correct_account_valuation",
|
||||
"set_settlement_cashflow_policy", "get_monthly_settlement_snapshot",
|
||||
):
|
||||
globals()[_name] = _wrap(getattr(_service, _name))
|
||||
|
||||
@@ -56,4 +65,5 @@ __all__ = [
|
||||
"set_settlement_draft_item", "review_settlement_draft",
|
||||
"approve_settlement_draft", "finalize_settlement_draft", "cancel_settlement_draft",
|
||||
"register_account_valuation", "list_account_valuations", "correct_account_valuation",
|
||||
"set_settlement_cashflow_policy", "get_monthly_settlement_snapshot",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user