Add settlement links to payment entries for traceability
- Add settled_entry_links parameter to format_payment_entry and format_net_settlement_entry - Query unsettled expenses/receivables before creating settlement entries - Pass original entry links to format functions so settlements reference what they settle - Update all callers in views_api.py (5 locations) and tasks.py (1 location) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
da74e668c8
commit
e403ec223d
3 changed files with 59 additions and 9 deletions
|
|
@ -497,7 +497,8 @@ def format_payment_entry(
|
|||
fiat_currency: Optional[str] = None,
|
||||
fiat_amount: Optional[Decimal] = None,
|
||||
payment_hash: Optional[str] = None,
|
||||
reference: Optional[str] = None
|
||||
reference: Optional[str] = None,
|
||||
settled_entry_links: Optional[List[str]] = None
|
||||
) -> Dict[str, Any]:
|
||||
"""
|
||||
Format a payment entry (Lightning payment recorded).
|
||||
|
|
@ -516,6 +517,7 @@ def format_payment_entry(
|
|||
fiat_amount: Optional fiat amount (unsigned)
|
||||
payment_hash: Lightning payment hash
|
||||
reference: Optional reference
|
||||
settled_entry_links: List of expense/receivable links being settled (e.g., ["exp-abc123"])
|
||||
|
||||
Returns:
|
||||
Fava API entry dict
|
||||
|
|
@ -584,6 +586,8 @@ def format_payment_entry(
|
|||
entry_meta["payment-hash"] = payment_hash
|
||||
|
||||
links = []
|
||||
if settled_entry_links:
|
||||
links.extend(settled_entry_links)
|
||||
if reference:
|
||||
links.append(reference)
|
||||
if payment_hash:
|
||||
|
|
@ -594,7 +598,7 @@ def format_payment_entry(
|
|||
flag="*", # Cleared (payment already happened)
|
||||
narration=description,
|
||||
postings=postings,
|
||||
tags=["lightning-payment"],
|
||||
tags=["lightning-payment", "settlement"],
|
||||
links=links,
|
||||
meta=entry_meta
|
||||
)
|
||||
|
|
@ -713,7 +717,8 @@ def format_net_settlement_entry(
|
|||
description: str,
|
||||
entry_date: date,
|
||||
payment_hash: Optional[str] = None,
|
||||
reference: Optional[str] = None
|
||||
reference: Optional[str] = None,
|
||||
settled_entry_links: Optional[List[str]] = None
|
||||
) -> Dict[str, Any]:
|
||||
"""
|
||||
Format a net settlement payment entry (user paying net balance).
|
||||
|
|
@ -743,6 +748,7 @@ def format_net_settlement_entry(
|
|||
entry_date: Date of payment
|
||||
payment_hash: Lightning payment hash
|
||||
reference: Optional reference
|
||||
settled_entry_links: List of expense/receivable links being settled (e.g., ["exp-abc123", "rcv-def456"])
|
||||
|
||||
Returns:
|
||||
Fava API entry dict
|
||||
|
|
@ -780,6 +786,8 @@ def format_net_settlement_entry(
|
|||
entry_meta["payment-hash"] = payment_hash
|
||||
|
||||
links = []
|
||||
if settled_entry_links:
|
||||
links.extend(settled_entry_links)
|
||||
if reference:
|
||||
links.append(reference)
|
||||
if payment_hash:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue