fix(sales): wire missing berth-rule triggers + portal company-billed invoices

- G-C4: deposit_received in invoices.ts
- G-C4 + G-I2: interest_archived + notifyNextInLine in archiveInterest
- G-C4: interest_completed in setInterestOutcome
- G-C4: berth_unlinked in removeInterestBerth
- G-I5: portal invoices include billingEntityType='company' when client is the director

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-11 13:53:10 +02:00
parent 1b00c8a7a2
commit c0e5af8b92
5 changed files with 149 additions and 17 deletions

View File

@@ -745,6 +745,13 @@ export async function recordPayment(
meta,
`Deposit invoice ${existing.invoiceNumber} paid`,
);
// Deposit-paid also fires the berth-rule for `deposit_received` so admins
// can auto-mark the primary berth as Sold (default rule mode: 'auto').
// Dynamic import keeps the invoices ↔ berth-rules graph one-way and
// mirrors the existing advanceStageIfBehind dispatch above.
const { evaluateRule } = await import('@/lib/services/berth-rules-engine');
void evaluateRule('deposit_received', updated.interestId, portId, meta);
}
return updated;