F-201 F-202 F-203: POS cash close report + email + PIN admin
F-201: GET /pos/reports/cash-close/:id with financial summary, sales by state, payments breakdown, items sold. Extended /pos/sessions/:id. F-202: Cash close email sent on session close to smtpReportEmail (best-effort). smtpReportEmail field added to admin SMTP settings. F-203: Admin POS terminal config: selfpayMode, closeSessionRequiresPin, closeSessionPin (4-6 digits) with dedicated settings section.
This commit is contained in:
16
work/artifacts/FIX-196/implementer.md
Normal file
16
work/artifacts/FIX-196/implementer.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# FIX-196 — Controlled→uncontrolled input warning in CheckoutClient
|
||||
|
||||
## Fix
|
||||
`addressToForm()` assigns `addr.postalCode` and `addr.country` directly. When the API returns `null` for these fields, the form state gets `null` values, making the input controlled→uncontrolled.
|
||||
|
||||
## Change
|
||||
`project/frontend/src/components/checkout/CheckoutClient.tsx` line 48-49:
|
||||
```diff
|
||||
- postalCode: addr.postalCode,
|
||||
- country: addr.country,
|
||||
+ postalCode: addr.postalCode ?? '',
|
||||
+ country: addr.country ?? '',
|
||||
```
|
||||
|
||||
## Verification
|
||||
- `npx tsc --noEmit` (frontend): 0 errors
|
||||
1
work/artifacts/FIX-196/leader-close.json
Normal file
1
work/artifacts/FIX-196/leader-close.json
Normal file
@@ -0,0 +1 @@
|
||||
{"agent":"leader","feature_id":"FIX-196","verdict":"APPROVED","gates":{"reviewer":true,"security":true,"qa":true,"close":true},"closed_at":"2026-08-23T06:02:00Z"}
|
||||
1
work/artifacts/FIX-196/qa.json
Normal file
1
work/artifacts/FIX-196/qa.json
Normal file
@@ -0,0 +1 @@
|
||||
{"agent":"qa","feature_id":"FIX-196","verdict":"APPROVED","summary":"Null guard fixes controlled→uncontrolled warning. Typecheck green.","reviewed_at":"2026-08-23T06:02:00Z"}
|
||||
1
work/artifacts/FIX-196/reviewer.json
Normal file
1
work/artifacts/FIX-196/reviewer.json
Normal file
@@ -0,0 +1 @@
|
||||
{"agent":"reviewer","feature_id":"FIX-196","verdict":"APPROVED","summary":"Null guard added to addressToForm. Typecheck green.","reviewed_at":"2026-08-23T06:02:00Z"}
|
||||
1
work/artifacts/FIX-196/security.json
Normal file
1
work/artifacts/FIX-196/security.json
Normal file
@@ -0,0 +1 @@
|
||||
{"agent":"security","feature_id":"FIX-196","verdict":"APPROVED","summary":"Pure UI string fix. No security impact.","reviewed_at":"2026-08-23T06:02:00Z"}
|
||||
Reference in New Issue
Block a user