fix: restore manual confirm_duplicate compatibility and precision safeguards

Co-authored-by: genichin <4282227+genichin@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-09-09 02:53:15 +00:00
committed by GitHub
co-authored by genichin
parent a71c91f6ef
commit aa40c7fdff
4 changed files with 113 additions and 15 deletions
+4 -4
View File
@@ -177,7 +177,7 @@ class ManualLedgerRequest(BaseModel):
fee_or_tax_provided = "fee" in provided_fields or "tax" in provided_fields
fee_provided = "fee" in provided_fields
executed_at_provided = "executed_at" in provided_fields
confirm_duplicate_provided = "confirm_duplicate" in provided_fields
confirm_duplicate_requested = bool(self.confirm_duplicate)
if self.action in amount_actions:
if self.amount is None:
raise ValueError("amount is required for this action")
@@ -187,7 +187,7 @@ class ManualLedgerRequest(BaseModel):
or self.target_ledger_entry_id is not None
or fee_or_tax_provided
or executed_at_provided
or confirm_duplicate_provided
or confirm_duplicate_requested
):
raise ValueError("unexpected numeric/target field for amount action")
elif self.action == "DIVIDEND":
@@ -200,7 +200,7 @@ class ManualLedgerRequest(BaseModel):
elif self.action in trade_actions:
if self.quantity is None or self.price is None:
raise ValueError("quantity and price are required for BUY/SELL")
if self.amount is not None or self.target_ledger_entry_id is not None or executed_at_provided or confirm_duplicate_provided:
if self.amount is not None or self.target_ledger_entry_id is not None or executed_at_provided or confirm_duplicate_requested:
raise ValueError("unexpected amount/target field for BUY/SELL")
elif self.action == "REVERSAL":
if self.target_ledger_entry_id is None:
@@ -211,7 +211,7 @@ class ManualLedgerRequest(BaseModel):
or self.price is not None
or fee_or_tax_provided
or executed_at_provided
or confirm_duplicate_provided
or confirm_duplicate_requested
):
raise ValueError("unexpected numeric field for REVERSAL")
return self