# BONE FLOW #024 v1.0.273 Server income / expense voucher projection

## Symptom and root cause
Server-side DB restored vouchers correctly (voucher IDs present), but #024 treated only payrollDetails as monetary entries. Ordinary journal vouchers intentionally showed identity only, making monetary columns blank. v273 adds a read-only, master-aware report projection.

## Rules
- Payroll: preserve original gross and withholding display, do not double-count journal lines.
- Normal journal: if accounts contain cash, bank deposits, held funds, PayPay or electronic wallet, compute net liquidity debit-minus-credit. Positive = receipts, negative = payouts. Intra-liquidity transfers show neither.
- Otherwise, classified revenue credit-minus-debit = income and classified expense debit-minus-credit = expense. Household/individual accounts explicitly named (家計)/(個人) are reportable but remain nonbusiness categories.
- Unknown account classifications and unsupported transactions are NOT silently converted to an expense or revenue; voucher remains clickable and hover tooltip says 収支未判定.
- Master: use the persisted SQLite calendarSettings.financeMaster when present; fallback to current Calendar financeMaster. Do not change records or SQLite schema.
- Report recomputes on DB loaded / option changes. No voucher or master writes.
- Currency rounded in cents. Payroll gross and withholding not interpreted as bank cash inflow.

## Deployment
Freshly install the whole v273 ZIP using install.bat (as with previous versions) and hard-reload the server URL. Back up SQLite/IndexedDB and user masters. On https://pcsr.net use Apache deployed host configuration and check actual version from installed minimal.html. Do not replace existing database with package content. A screenshot alone cannot prove classification of specific stored records; inspect their debit/credit accounts when a journal still has blank amounts.

## Verification limits
Node regressions + JS syntax + manifest/ZIP integrity are run here. The user's remote production SQLite, Edge runtime and Windows PowerShell installer are not accessible, so no production acceptance is claimed.
