Wire createCommission() into compliance batch checkout
Compliance batch orders now create commission ledger entries when a discount code (agent referral) is used. Tracks total order amount, discount applied, and links to the agent for payout processing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
fa80c6dab9
commit
71d466c922
4 changed files with 204 additions and 0 deletions
|
|
@ -1493,6 +1493,34 @@ export async function handlePaymentComplete(
|
|||
} catch (err) {
|
||||
console.error(`[checkout] Batch ${batchId}: failed to load sub-orders:`, err);
|
||||
}
|
||||
|
||||
// ── Commission tracking for compliance batch orders ─────────────────
|
||||
try {
|
||||
const discRow = await pool.query(
|
||||
`SELECT DISTINCT discount_code FROM compliance_orders WHERE batch_id = $1 AND discount_code IS NOT NULL LIMIT 1`,
|
||||
[batchId],
|
||||
);
|
||||
const discountCode = discRow.rows[0]?.discount_code as string | null;
|
||||
if (discountCode) {
|
||||
const { createCommission } = await import("./agents.js");
|
||||
const totalCents = (updated.rows as any[]).reduce((sum, r) =>
|
||||
sum + (Number(r.service_fee_cents) || 0) + (Number(r.gov_fee_cents) || 0) - (Number(r.discount_cents) || 0), 0);
|
||||
await createCommission({
|
||||
agentCode: discountCode,
|
||||
orderType: "service",
|
||||
orderId: 0,
|
||||
orderNumber: batchId,
|
||||
serviceSlug: "compliance-batch",
|
||||
customerName: (order.customer_name as string) || "",
|
||||
customerEmail: (order.customer_email as string) || "",
|
||||
orderAmountCents: totalCents,
|
||||
discountCents: (updated.rows as any[]).reduce((sum, r) => sum + (Number(r.discount_cents) || 0), 0),
|
||||
});
|
||||
console.log(`[checkout] Commission created for batch ${batchId} via ${discountCode}`);
|
||||
}
|
||||
} catch (commErr) {
|
||||
console.warn("[checkout] Commission creation failed (non-fatal):", commErr);
|
||||
}
|
||||
}
|
||||
|
||||
// ── Advance compliance order workflow (queues document generation) ────────
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue