From ea2ee9c5e6eb1fbb7ae310769ac2c15788f45fb2 Mon Sep 17 00:00:00 2001 From: Christian Hood Date: Thu, 19 Mar 2026 19:53:46 -0400 Subject: [PATCH] Lock bill amount_override when marked paid, clear on unpaid Co-Authored-By: Claude Sonnet 4.6 --- server/src/routes/paychecks.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/server/src/routes/paychecks.js b/server/src/routes/paychecks.js index 12f607d..666a307 100644 --- a/server/src/routes/paychecks.js +++ b/server/src/routes/paychecks.js @@ -246,11 +246,13 @@ router.patch('/paycheck-bills/:id/paid', async (req, res) => { try { const result = await pool.query( - `UPDATE paycheck_bills + `UPDATE paycheck_bills pb SET paid = $1, - paid_at = CASE WHEN $1 THEN NOW() ELSE NULL END - WHERE id = $2 - RETURNING id, paid, paid_at`, + paid_at = CASE WHEN $1 THEN NOW() ELSE NULL END, + amount_override = CASE WHEN $1 THEN b.amount ELSE NULL END + FROM bills b + WHERE pb.bill_id = b.id AND pb.id = $2 + RETURNING pb.id, pb.paid, pb.paid_at, pb.amount_override`, [paid, id] );