feat(shift): confirm-before-close with X-report + split tickets vs subscriptions; fix dark <select>
CI / check (push) Failing after 31s
CI / check (push) Failing after 31s
Three changes: 1. Confirm-before-close. The header shift button closed the shift directly — a stray click would sign the irreversible Z-report. It now opens a confirm modal showing the live X-report (takings split by source + expected drawer) with Cancel / End-shift. Opening a shift stays immediate (no such risk). 2. Split takings by SOURCE. The report separates Tickets (transient) from Subscriptions (monthly sales + a subscriber's out-of-window charge), so the operator sees subscriber money apart from ticket money. Buckets are derived from the signed payment payload flags (subscriptionSale / subscriptionWindowCharge) and always reconcile to cash + card (a payment with neither flag is a ticket). Computed in #summariseWindow, carried on the signed shift_z_report payload, and shown in the X-report, the close modal, the shift history detail, and the printed Z-report. Reports predating the fields default subscription to 0 (ticket absorbs the whole take), so old shifts still reconcile. 3. Fix dark-theme native <select> popups rendering WHITE on WebKitGTK (the Tauri Linux WebView): set color-scheme dark/light on <html> per theme + explicit <option> colours, so the OS-drawn dropdown list follows the theme. Verified the split on a read-only DB copy: tickets 0, subscriptions 10,200 (10,000 sale + 200 out-of-window), reconciles to cash+card. build+lint 14/14, i18n parity (sq+en). Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
@@ -164,6 +164,17 @@ body,
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* Tell the engine the UI is dark so NATIVE controls — the <select> option popup,
|
||||
scrollbars, date pickers, form widgets — render dark too. WebKitGTK (the Tauri
|
||||
Linux WebView) otherwise paints the dropdown list with the OS light palette, so a
|
||||
dark-theme <select> opened to a WHITE option list. `.theme-light` flips it back. */
|
||||
html {
|
||||
color-scheme: dark;
|
||||
}
|
||||
html.theme-light {
|
||||
color-scheme: light;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background: var(--color-term-bg);
|
||||
@@ -244,6 +255,14 @@ body {
|
||||
.textarea:disabled {
|
||||
@apply cursor-not-allowed opacity-50;
|
||||
}
|
||||
/* Native <option> popup colours. `color-scheme: dark` (on <html>) handles most
|
||||
engines, but WebKitGTK (Tauri Linux) needs the option row colours set explicitly
|
||||
or the open dropdown list stays white-on-light. The light theme re-lightens below. */
|
||||
.select option,
|
||||
.select optgroup {
|
||||
background-color: var(--color-term-panel);
|
||||
color: var(--color-term-text);
|
||||
}
|
||||
/* Small / dense variant for inline table cells */
|
||||
.input-sm {
|
||||
height: var(--control-h-sm);
|
||||
|
||||
Reference in New Issue
Block a user